langwatch-scenario 0.7.8__tar.gz → 0.7.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/PKG-INFO +4 -3
  2. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/README.md +1 -1
  3. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/langwatch_scenario.egg-info/PKG-INFO +4 -3
  4. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/langwatch_scenario.egg-info/SOURCES.txt +1 -0
  5. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/langwatch_scenario.egg-info/requires.txt +1 -0
  6. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/pyproject.toml +4 -6
  7. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_events/event_alert_message_logger.py +20 -29
  8. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_events/event_bus.py +4 -1
  9. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_events/event_reporter.py +8 -3
  10. langwatch_scenario-0.7.10/scenario/_events/utils.py +113 -0
  11. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_utils/__init__.py +2 -2
  12. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_utils/ids.py +12 -12
  13. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/config/scenario.py +8 -0
  14. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/judge_agent.py +4 -3
  15. langwatch_scenario-0.7.10/scenario/py.typed +0 -0
  16. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/pytest_plugin.py +5 -0
  17. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/scenario_executor.py +118 -60
  18. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/scenario_state.py +2 -1
  19. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/types.py +54 -2
  20. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/user_simulator_agent.py +3 -2
  21. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/tests/test_scenario.py +8 -0
  22. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/tests/test_scenario_agent.py +3 -4
  23. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/tests/test_scenario_executor.py +24 -1
  24. langwatch_scenario-0.7.8/scenario/_events/utils.py +0 -97
  25. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/langwatch_scenario.egg-info/dependency_links.txt +0 -0
  26. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/langwatch_scenario.egg-info/entry_points.txt +0 -0
  27. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/langwatch_scenario.egg-info/top_level.txt +0 -0
  28. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/__init__.py +0 -0
  29. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_error_messages.py +0 -0
  30. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_events/__init__.py +0 -0
  31. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_events/events.py +0 -0
  32. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_events/messages.py +0 -0
  33. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/README.md +0 -0
  34. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/__init__.py +0 -0
  35. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/__init__.py +0 -0
  36. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/__init__.py +0 -0
  37. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/delete_api_annotations_id.py +0 -0
  38. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/delete_api_prompts_by_id.py +0 -0
  39. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/delete_api_scenario_events.py +0 -0
  40. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_annotations.py +0 -0
  41. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_annotations_id.py +0 -0
  42. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_annotations_trace_id.py +0 -0
  43. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_dataset_by_slug_or_id.py +0 -0
  44. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_prompts.py +0 -0
  45. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_prompts_by_id.py +0 -0
  46. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_prompts_by_id_versions.py +0 -0
  47. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_trace_id.py +0 -0
  48. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/patch_api_annotations_id.py +0 -0
  49. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_annotations_trace_id.py +0 -0
  50. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_dataset_by_slug_entries.py +0 -0
  51. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_prompts.py +0 -0
  52. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_prompts_by_id_versions.py +0 -0
  53. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_scenario_events.py +0 -0
  54. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_trace_id_share.py +0 -0
  55. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_trace_id_unshare.py +0 -0
  56. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/put_api_prompts_by_id.py +0 -0
  57. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/traces/__init__.py +0 -0
  58. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/api/traces/post_api_trace_search.py +0 -0
  59. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/client.py +0 -0
  60. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/errors.py +0 -0
  61. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/__init__.py +0 -0
  62. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/annotation.py +0 -0
  63. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/dataset_post_entries.py +0 -0
  64. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/dataset_post_entries_entries_item.py +0 -0
  65. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_annotations_id_response_200.py +0 -0
  66. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_200.py +0 -0
  67. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_400.py +0 -0
  68. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_400_error.py +0 -0
  69. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_401.py +0 -0
  70. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_401_error.py +0 -0
  71. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_404.py +0 -0
  72. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_500.py +0 -0
  73. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_scenario_events_response_200.py +0 -0
  74. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_scenario_events_response_400.py +0 -0
  75. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_scenario_events_response_401.py +0 -0
  76. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_scenario_events_response_500.py +0 -0
  77. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/error.py +0 -0
  78. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/evaluation.py +0 -0
  79. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/evaluation_timestamps.py +0 -0
  80. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_200.py +0 -0
  81. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_200_data_item.py +0 -0
  82. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_200_data_item_entry.py +0 -0
  83. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_400.py +0 -0
  84. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_401.py +0 -0
  85. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_404.py +0 -0
  86. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_422.py +0 -0
  87. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_500.py +0 -0
  88. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200.py +0 -0
  89. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_messages_item.py +0 -0
  90. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_messages_item_role.py +0 -0
  91. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_response_format_type_0.py +0 -0
  92. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_response_format_type_0_json_schema.py +0 -0
  93. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_response_format_type_0_json_schema_schema.py +0 -0
  94. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_response_format_type_0_type.py +0 -0
  95. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_400.py +0 -0
  96. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_400_error.py +0 -0
  97. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_401.py +0 -0
  98. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_401_error.py +0 -0
  99. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_404.py +0 -0
  100. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_500.py +0 -0
  101. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200.py +0 -0
  102. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data.py +0 -0
  103. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_demonstrations.py +0 -0
  104. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_demonstrations_columns_item.py +0 -0
  105. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_demonstrations_columns_item_type.py +0 -0
  106. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_demonstrations_rows_item.py +0 -0
  107. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_inputs_item.py +0 -0
  108. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_inputs_item_type.py +0 -0
  109. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_messages_item.py +0 -0
  110. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_messages_item_role.py +0 -0
  111. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_outputs_item.py +0 -0
  112. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_outputs_item_json_schema.py +0 -0
  113. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_outputs_item_type.py +0 -0
  114. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_prompting_technique.py +0 -0
  115. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_400.py +0 -0
  116. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_400_error.py +0 -0
  117. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_401.py +0 -0
  118. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_401_error.py +0 -0
  119. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_404.py +0 -0
  120. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_500.py +0 -0
  121. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item.py +0 -0
  122. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_messages_item.py +0 -0
  123. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_messages_item_role.py +0 -0
  124. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_response_format_type_0.py +0 -0
  125. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_response_format_type_0_json_schema.py +0 -0
  126. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_response_format_type_0_json_schema_schema.py +0 -0
  127. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_response_format_type_0_type.py +0 -0
  128. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_400.py +0 -0
  129. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_400_error.py +0 -0
  130. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_401.py +0 -0
  131. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_401_error.py +0 -0
  132. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_500.py +0 -0
  133. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200.py +0 -0
  134. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_error_type_0.py +0 -0
  135. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_evaluations_item.py +0 -0
  136. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_evaluations_item_error.py +0 -0
  137. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_evaluations_item_timestamps.py +0 -0
  138. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_input.py +0 -0
  139. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_metadata.py +0 -0
  140. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_metrics.py +0 -0
  141. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_output.py +0 -0
  142. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item.py +0 -0
  143. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_error_type_0.py +0 -0
  144. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_input.py +0 -0
  145. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_input_value_item.py +0 -0
  146. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_metrics.py +0 -0
  147. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_output.py +0 -0
  148. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_output_value_item.py +0 -0
  149. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_params.py +0 -0
  150. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_timestamps.py +0 -0
  151. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_timestamps.py +0 -0
  152. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/input_.py +0 -0
  153. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/metadata.py +0 -0
  154. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/metrics.py +0 -0
  155. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/output.py +0 -0
  156. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/pagination.py +0 -0
  157. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/patch_api_annotations_id_body.py +0 -0
  158. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/patch_api_annotations_id_response_200.py +0 -0
  159. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_annotations_trace_id_body.py +0 -0
  160. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_body.py +0 -0
  161. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body.py +0 -0
  162. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data.py +0 -0
  163. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_demonstrations.py +0 -0
  164. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_demonstrations_columns_item.py +0 -0
  165. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_demonstrations_columns_item_type.py +0 -0
  166. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_demonstrations_rows_item.py +0 -0
  167. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_inputs_item.py +0 -0
  168. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_inputs_item_type.py +0 -0
  169. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_messages_item.py +0 -0
  170. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_messages_item_role.py +0 -0
  171. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_outputs_item.py +0 -0
  172. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_outputs_item_json_schema.py +0 -0
  173. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_outputs_item_type.py +0 -0
  174. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_prompting_technique.py +0 -0
  175. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200.py +0 -0
  176. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data.py +0 -0
  177. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_demonstrations.py +0 -0
  178. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_demonstrations_columns_item.py +0 -0
  179. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_demonstrations_columns_item_type.py +0 -0
  180. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_demonstrations_rows_item.py +0 -0
  181. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_inputs_item.py +0 -0
  182. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_inputs_item_type.py +0 -0
  183. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_messages_item.py +0 -0
  184. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_messages_item_role.py +0 -0
  185. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_outputs_item.py +0 -0
  186. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_outputs_item_json_schema.py +0 -0
  187. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_outputs_item_type.py +0 -0
  188. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_prompting_technique.py +0 -0
  189. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_400.py +0 -0
  190. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_400_error.py +0 -0
  191. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_401.py +0 -0
  192. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_401_error.py +0 -0
  193. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_404.py +0 -0
  194. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_500.py +0 -0
  195. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200.py +0 -0
  196. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_messages_item.py +0 -0
  197. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_messages_item_role.py +0 -0
  198. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_response_format_type_0.py +0 -0
  199. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_response_format_type_0_json_schema.py +0 -0
  200. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_response_format_type_0_json_schema_schema.py +0 -0
  201. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_response_format_type_0_type.py +0 -0
  202. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_400.py +0 -0
  203. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_400_error.py +0 -0
  204. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_401.py +0 -0
  205. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_401_error.py +0 -0
  206. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_500.py +0 -0
  207. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_0.py +0 -0
  208. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_0_metadata.py +0 -0
  209. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_1.py +0 -0
  210. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_1_results_type_0.py +0 -0
  211. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_1_results_type_0_verdict.py +0 -0
  212. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_1_status.py +0 -0
  213. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2.py +0 -0
  214. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_0.py +0 -0
  215. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_1.py +0 -0
  216. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_2.py +0 -0
  217. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_2_tool_calls_item.py +0 -0
  218. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_2_tool_calls_item_function.py +0 -0
  219. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_3.py +0 -0
  220. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_4.py +0 -0
  221. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_response_201.py +0 -0
  222. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_response_400.py +0 -0
  223. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_response_401.py +0 -0
  224. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_response_500.py +0 -0
  225. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_trace_id_share_response_200.py +0 -0
  226. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_trace_id_unshare_response_200.py +0 -0
  227. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_body.py +0 -0
  228. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_200.py +0 -0
  229. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_400.py +0 -0
  230. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_400_error.py +0 -0
  231. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_401.py +0 -0
  232. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_401_error.py +0 -0
  233. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_404.py +0 -0
  234. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_500.py +0 -0
  235. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/search_request.py +0 -0
  236. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/search_request_filters.py +0 -0
  237. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/search_response.py +0 -0
  238. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/timestamps.py +0 -0
  239. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/models/trace.py +0 -0
  240. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/py.typed +0 -0
  241. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/lang_watch_api_client/types.py +0 -0
  242. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_generated/langwatch_api_client/pyproject.toml +0 -0
  243. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_utils/message_conversion.py +0 -0
  244. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/_utils/utils.py +0 -0
  245. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/agent_adapter.py +0 -0
  246. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/cache.py +0 -0
  247. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/config/__init__.py +0 -0
  248. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/config/langwatch.py +0 -0
  249. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/config/model.py +0 -0
  250. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/scenario/script.py +0 -0
  251. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/setup.cfg +0 -0
  252. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/setup.py +0 -0
  253. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/tests/test_event_reporter.py +0 -0
  254. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/tests/test_model_config.py +0 -0
  255. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/tests/test_scenario_event_bus.py +0 -0
  256. {langwatch_scenario-0.7.8 → langwatch_scenario-0.7.10}/tests/test_scenario_executor_events.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langwatch-scenario
3
- Version: 0.7.8
3
+ Version: 0.7.10
4
4
  Summary: The end-to-end agent testing library
5
5
  Author-email: LangWatch Team <support@langwatch.ai>
6
6
  License: MIT
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.8
14
14
  Classifier: Programming Language :: Python :: 3.9
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
- Requires-Python: >=3.9
17
+ Requires-Python: >=3.10
18
18
  Description-Content-Type: text/markdown
19
19
  Requires-Dist: pytest>=8.1.1
20
20
  Requires-Dist: litellm>=1.49.0
@@ -31,6 +31,7 @@ Requires-Dist: httpx>=0.27.0
31
31
  Requires-Dist: rx>=3.2.0
32
32
  Requires-Dist: python-dateutil>=2.9.0.post0
33
33
  Requires-Dist: pydantic-settings>=2.9.1
34
+ Requires-Dist: langwatch>=0.2.19
34
35
  Provides-Extra: dev
35
36
  Requires-Dist: black; extra == "dev"
36
37
  Requires-Dist: isort; extra == "dev"
@@ -457,7 +458,7 @@ This will cache any function call you decorate when running the tests and make t
457
458
  While optional, we strongly recommend setting stable identifiers for your scenarios, sets, and batches for better organization and tracking in LangWatch.
458
459
 
459
460
  - **set_id**: Groups related scenarios into a test suite. This corresponds to the "Simulation Set" in the UI.
460
- - **batch_run_id**: Groups all scenarios that were run together in a single execution (e.g., a single CI job). This is automatically generated but can be overridden.
461
+ - **SCENARIO_BATCH_RUN_ID**: Env variable that groups all scenarios that were run together in a single execution (e.g., a single CI job). This is automatically generated but can be overridden.
461
462
 
462
463
  ```python
463
464
  import os
@@ -413,7 +413,7 @@ This will cache any function call you decorate when running the tests and make t
413
413
  While optional, we strongly recommend setting stable identifiers for your scenarios, sets, and batches for better organization and tracking in LangWatch.
414
414
 
415
415
  - **set_id**: Groups related scenarios into a test suite. This corresponds to the "Simulation Set" in the UI.
416
- - **batch_run_id**: Groups all scenarios that were run together in a single execution (e.g., a single CI job). This is automatically generated but can be overridden.
416
+ - **SCENARIO_BATCH_RUN_ID**: Env variable that groups all scenarios that were run together in a single execution (e.g., a single CI job). This is automatically generated but can be overridden.
417
417
 
418
418
  ```python
419
419
  import os
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langwatch-scenario
3
- Version: 0.7.8
3
+ Version: 0.7.10
4
4
  Summary: The end-to-end agent testing library
5
5
  Author-email: LangWatch Team <support@langwatch.ai>
6
6
  License: MIT
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.8
14
14
  Classifier: Programming Language :: Python :: 3.9
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
- Requires-Python: >=3.9
17
+ Requires-Python: >=3.10
18
18
  Description-Content-Type: text/markdown
19
19
  Requires-Dist: pytest>=8.1.1
20
20
  Requires-Dist: litellm>=1.49.0
@@ -31,6 +31,7 @@ Requires-Dist: httpx>=0.27.0
31
31
  Requires-Dist: rx>=3.2.0
32
32
  Requires-Dist: python-dateutil>=2.9.0.post0
33
33
  Requires-Dist: pydantic-settings>=2.9.1
34
+ Requires-Dist: langwatch>=0.2.19
34
35
  Provides-Extra: dev
35
36
  Requires-Dist: black; extra == "dev"
36
37
  Requires-Dist: isort; extra == "dev"
@@ -457,7 +458,7 @@ This will cache any function call you decorate when running the tests and make t
457
458
  While optional, we strongly recommend setting stable identifiers for your scenarios, sets, and batches for better organization and tracking in LangWatch.
458
459
 
459
460
  - **set_id**: Groups related scenarios into a test suite. This corresponds to the "Simulation Set" in the UI.
460
- - **batch_run_id**: Groups all scenarios that were run together in a single execution (e.g., a single CI job). This is automatically generated but can be overridden.
461
+ - **SCENARIO_BATCH_RUN_ID**: Env variable that groups all scenarios that were run together in a single execution (e.g., a single CI job). This is automatically generated but can be overridden.
461
462
 
462
463
  ```python
463
464
  import os
@@ -12,6 +12,7 @@ scenario/_error_messages.py
12
12
  scenario/agent_adapter.py
13
13
  scenario/cache.py
14
14
  scenario/judge_agent.py
15
+ scenario/py.typed
15
16
  scenario/pytest_plugin.py
16
17
  scenario/scenario_executor.py
17
18
  scenario/scenario_state.py
@@ -13,6 +13,7 @@ httpx>=0.27.0
13
13
  rx>=3.2.0
14
14
  python-dateutil>=2.9.0.post0
15
15
  pydantic-settings>=2.9.1
16
+ langwatch>=0.2.19
16
17
 
17
18
  [dev]
18
19
  black
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "langwatch-scenario"
7
- version = "0.7.8"
7
+ version = "0.7.10"
8
8
  description = "The end-to-end agent testing library"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "LangWatch Team", email = "support@langwatch.ai" }]
11
11
  license = { text = "MIT" }
12
- requires-python = ">=3.9"
12
+ requires-python = ">=3.10"
13
13
  classifiers = [
14
14
  "Development Status :: 4 - Beta",
15
15
  "Intended Audience :: Developers",
@@ -36,6 +36,7 @@ dependencies = [
36
36
  "rx>=3.2.0",
37
37
  "python-dateutil>=2.9.0.post0",
38
38
  "pydantic-settings>=2.9.1",
39
+ "langwatch>=0.2.19",
39
40
  ]
40
41
 
41
42
  [project.optional-dependencies]
@@ -67,14 +68,11 @@ markers = ["agent_test: marks tests as agent scenario tests"]
67
68
 
68
69
  [dependency-groups]
69
70
  dev = [
70
-
71
71
  "function-schema>=0.4.5",
72
72
  "pre-commit>=4.2.0",
73
73
  "pydantic-ai>=0.0.52",
74
- "pyright>=1.1.401",
74
+ "pyright>=1.1.405",
75
75
  "pytest-asyncio-concurrent>=0.4.1",
76
76
  "pdoc3>=0.11.6",
77
77
  "respx>=0.22.0",
78
78
  ]
79
-
80
-
@@ -1,5 +1,8 @@
1
1
  import os
2
+ import webbrowser
2
3
  from typing import Set
4
+
5
+ from ..config.scenario import ScenarioConfig
3
6
  from .._utils.ids import get_batch_run_id
4
7
 
5
8
 
@@ -12,6 +15,7 @@ class EventAlertMessageLogger:
12
15
  """
13
16
 
14
17
  _shown_batch_ids: Set[str] = set()
18
+ _shown_watch_urls: Set[str] = set()
15
19
 
16
20
  def handle_greeting(self) -> None:
17
21
  """
@@ -37,6 +41,10 @@ class EventAlertMessageLogger:
37
41
  if self._is_greeting_disabled():
38
42
  return
39
43
 
44
+ if set_url in EventAlertMessageLogger._shown_watch_urls:
45
+ return
46
+
47
+ EventAlertMessageLogger._shown_watch_urls.add(set_url)
40
48
  self._display_watch_message(set_url)
41
49
 
42
50
  def _is_greeting_disabled(self) -> bool:
@@ -49,35 +57,13 @@ class EventAlertMessageLogger:
49
57
 
50
58
  if not os.getenv("LANGWATCH_API_KEY"):
51
59
  print(f"\n{separator}")
52
- print("🚀 LangWatch Simulation Reporting")
60
+ print("🎭 Running Scenario Tests")
53
61
  print(f"{separator}")
54
- print("➡️ API key not configured")
62
+ print("➡️ LangWatch API key not configured")
55
63
  print(" Simulations will only output final results")
56
64
  print("")
57
65
  print("💡 To visualize conversations in real time:")
58
66
  print(" • Set LANGWATCH_API_KEY environment variable")
59
- print(" • Or configure apiKey in scenario.config.js")
60
- print("")
61
- print(f"📦 Batch Run ID: {batch_run_id}")
62
- print("")
63
- print("🔇 To disable these messages:")
64
- print(" • Set SCENARIO_DISABLE_SIMULATION_REPORT_INFO=true")
65
- print(f"{separator}\n")
66
- else:
67
- endpoint = os.getenv("LANGWATCH_ENDPOINT", "https://app.langwatch.ai")
68
- api_key = os.getenv("LANGWATCH_API_KEY", "")
69
-
70
- print(f"\n{separator}")
71
- print("🚀 LangWatch Simulation Reporting")
72
- print(f"{separator}")
73
- print("✅ Simulation reporting enabled")
74
- print(f" Endpoint: {endpoint}")
75
- print(f" API Key: {'Configured' if api_key else 'Not configured'}")
76
- print("")
77
- print(f"📦 Batch Run ID: {batch_run_id}")
78
- print("")
79
- print("🔇 To disable these messages:")
80
- print(" • Set SCENARIO_DISABLE_SIMULATION_REPORT_INFO=true")
81
67
  print(f"{separator}\n")
82
68
 
83
69
  def _display_watch_message(self, set_url: str) -> None:
@@ -86,10 +72,15 @@ class EventAlertMessageLogger:
86
72
  batch_url = f"{set_url}/{get_batch_run_id()}"
87
73
 
88
74
  print(f"\n{separator}")
89
- print("👀 Watch Your Simulation Live")
75
+ print("🎭 Running Scenario Tests")
90
76
  print(f"{separator}")
91
- print("🌐 Open in your browser:")
92
- print(f" Scenario Set: {set_url}")
93
- print(f" Batch Run: {batch_url}")
94
- print("")
77
+ print(f"Follow it live: {batch_url}")
95
78
  print(f"{separator}\n")
79
+
80
+ config = ScenarioConfig.default_config
81
+ if config and not config.headless:
82
+ # Open the URL in the default browser (cross-platform)
83
+ try:
84
+ webbrowser.open(batch_url)
85
+ except Exception:
86
+ pass
@@ -3,6 +3,7 @@ from typing import Optional, Any, Dict
3
3
  from .events import ScenarioEvent
4
4
  from .event_reporter import EventReporter
5
5
  from .event_alert_message_logger import EventAlertMessageLogger
6
+ from ..config.scenario import ScenarioConfig
6
7
 
7
8
  import asyncio
8
9
  import queue
@@ -35,7 +36,9 @@ class ScenarioEventBus:
35
36
  """
36
37
 
37
38
  def __init__(
38
- self, event_reporter: Optional[EventReporter] = None, max_retries: int = 3
39
+ self,
40
+ event_reporter: Optional[EventReporter] = None,
41
+ max_retries: int = 3,
39
42
  ):
40
43
  """
41
44
  Initialize the event bus with optional event reporter and retry configuration.
@@ -3,7 +3,7 @@ import httpx
3
3
  from typing import Optional, Dict, Any
4
4
  from .events import ScenarioEvent
5
5
  from .event_alert_message_logger import EventAlertMessageLogger
6
- from scenario.config import LangWatchSettings
6
+ from scenario.config import LangWatchSettings, ScenarioConfig
7
7
 
8
8
 
9
9
  class EventReporter:
@@ -26,7 +26,11 @@ class EventReporter:
26
26
  reporter = EventReporter(api_key="your-api-key")
27
27
  """
28
28
 
29
- def __init__(self, endpoint: Optional[str] = None, api_key: Optional[str] = None):
29
+ def __init__(
30
+ self,
31
+ endpoint: Optional[str] = None,
32
+ api_key: Optional[str] = None,
33
+ ):
30
34
  # Load settings from environment variables
31
35
  langwatch_settings = LangWatchSettings()
32
36
 
@@ -69,6 +73,7 @@ class EventReporter:
69
73
  "Content-Type": "application/json",
70
74
  "X-Auth-Token": self.api_key,
71
75
  },
76
+ timeout=httpx.Timeout(30.0),
72
77
  )
73
78
  self.logger.info(
74
79
  f"[{event_type}] POST response status: {response.status_code} ({event.scenario_run_id})"
@@ -92,7 +97,7 @@ class EventReporter:
92
97
  )
93
98
  except Exception as error:
94
99
  self.logger.error(
95
- f"[{event_type}] Event POST error: {error}, event={event}, endpoint={self.endpoint}"
100
+ f"[{event_type}] Event POST error: {repr(error)}, event={event}, endpoint={self.endpoint}"
96
101
  )
97
102
 
98
103
  return result
@@ -0,0 +1,113 @@
1
+ import warnings
2
+
3
+ from ..types import ChatCompletionMessageParamWithTrace
4
+ from .events import MessageType
5
+ from .messages import (
6
+ SystemMessage,
7
+ AssistantMessage,
8
+ UserMessage,
9
+ ToolMessage,
10
+ ToolCall,
11
+ FunctionCall,
12
+ )
13
+ from typing import List
14
+ from pksuid import PKSUID
15
+
16
+
17
+ def convert_messages_to_api_client_messages(
18
+ messages: list[ChatCompletionMessageParamWithTrace],
19
+ ) -> list[MessageType]:
20
+ """
21
+ Converts OpenAI ChatCompletionMessageParam messages to API client Message format.
22
+
23
+ This function transforms messages from OpenAI's format to the API client format
24
+ that matches the expected schema for ScenarioMessageSnapshotEvent.
25
+
26
+ Args:
27
+ messages: List of OpenAI ChatCompletionMessageParam messages
28
+
29
+ Returns:
30
+ List of API client Message objects
31
+
32
+ Raises:
33
+ ValueError: If message role is not supported or message format is invalid
34
+ """
35
+
36
+ converted_messages: list[MessageType] = []
37
+
38
+ for i, message in enumerate(messages):
39
+ # Generate unique ID for each message
40
+ message_id = message.get("id") or str(PKSUID("scenariomsg"))
41
+
42
+ role = message.get("role")
43
+ content = message.get("content")
44
+
45
+ if role == "user":
46
+ if not content:
47
+ raise ValueError(f"User message at index {i} missing required content")
48
+ message_ = UserMessage(
49
+ id=message_id,
50
+ role="user",
51
+ content=str(content),
52
+ )
53
+ message_.additional_properties = {"trace_id": message.get("trace_id")}
54
+ converted_messages.append(message_)
55
+ elif role == "assistant":
56
+ # Handle tool calls if present
57
+ tool_calls = message.get("tool_calls")
58
+ api_tool_calls: List[ToolCall] = []
59
+
60
+ if tool_calls:
61
+ for tool_call in tool_calls:
62
+ api_tool_calls.append(
63
+ ToolCall(
64
+ id=tool_call.get("id", str(PKSUID("scenariotoolcall"))),
65
+ type_="function",
66
+ function=FunctionCall(
67
+ name=tool_call["function"].get("name", "unknown"),
68
+ arguments=tool_call["function"].get("arguments", "{}"),
69
+ ),
70
+ )
71
+ )
72
+
73
+ message_ = AssistantMessage(
74
+ id=message_id,
75
+ role="assistant",
76
+ content=str(content),
77
+ tool_calls=api_tool_calls,
78
+ )
79
+ message_.additional_properties = {"trace_id": message.get("trace_id")}
80
+ converted_messages.append(message_)
81
+ elif role == "system":
82
+ if not content:
83
+ raise ValueError(
84
+ f"System message at index {i} missing required content"
85
+ )
86
+ message_ = SystemMessage(id=message_id, role="system", content=str(content))
87
+ message_.additional_properties = {"trace_id": message.get("trace_id")}
88
+ converted_messages.append(message_)
89
+ elif role == "tool":
90
+ tool_call_id = message.get("tool_call_id")
91
+ if not tool_call_id:
92
+ warnings.warn(
93
+ f"Tool message at index {i} missing required tool_call_id, skipping tool message"
94
+ )
95
+ continue
96
+ if not content:
97
+ warnings.warn(
98
+ f"Tool message at index {i} missing required content, skipping tool message"
99
+ )
100
+ continue
101
+
102
+ message_ = ToolMessage(
103
+ id=message_id,
104
+ role="tool",
105
+ content=str(content),
106
+ tool_call_id=tool_call_id,
107
+ )
108
+ message_.additional_properties = {"trace_id": message.get("trace_id")}
109
+ converted_messages.append(message_)
110
+ else:
111
+ raise ValueError(f"Unsupported message role '{role}' at index {i}")
112
+
113
+ return converted_messages
@@ -14,7 +14,7 @@ from .ids import (
14
14
  generate_scenario_id,
15
15
  generate_thread_id,
16
16
  generate_message_id,
17
- safe_parse_uuid,
17
+ safe_parse_ksuid,
18
18
  )
19
19
  from .utils import (
20
20
  SerializableAndPydanticEncoder,
@@ -34,7 +34,7 @@ __all__ = [
34
34
  "generate_scenario_id",
35
35
  "generate_thread_id",
36
36
  "generate_message_id",
37
- "safe_parse_uuid",
37
+ "safe_parse_ksuid",
38
38
  "SerializableAndPydanticEncoder",
39
39
  "SerializableWithStringFallback",
40
40
  "print_openai_messages",
@@ -7,7 +7,7 @@ and scenario tracking.
7
7
  """
8
8
 
9
9
  import os
10
- import uuid
10
+ from pksuid import PKSUID
11
11
 
12
12
 
13
13
  def generate_thread_id() -> str:
@@ -17,7 +17,7 @@ def generate_thread_id() -> str:
17
17
  Returns:
18
18
  str: A new thread ID.
19
19
  """
20
- return f"thread_{uuid.uuid4()}"
20
+ return f"{PKSUID('scenariothread')}"
21
21
 
22
22
 
23
23
  def generate_scenario_run_id() -> str:
@@ -27,7 +27,7 @@ def generate_scenario_run_id() -> str:
27
27
  Returns:
28
28
  str: A new scenario run ID.
29
29
  """
30
- return f"scenariorun_{uuid.uuid4()}"
30
+ return f"{PKSUID('scenariorun')}"
31
31
 
32
32
 
33
33
  def generate_scenario_id() -> str:
@@ -37,7 +37,7 @@ def generate_scenario_id() -> str:
37
37
  Returns:
38
38
  str: A new scenario ID.
39
39
  """
40
- return f"scenario_{uuid.uuid4()}"
40
+ return f"{PKSUID('scenario')}"
41
41
 
42
42
 
43
43
  def get_batch_run_id() -> str:
@@ -52,7 +52,7 @@ def get_batch_run_id() -> str:
52
52
  batch_run_id = os.environ.get("SCENARIO_BATCH_RUN_ID")
53
53
  if not batch_run_id:
54
54
  # Generate new batch ID if not set
55
- batch_run_id = f"scenariobatchrun_{uuid.uuid4()}"
55
+ batch_run_id = f"{PKSUID('scenariobatch')}"
56
56
  os.environ["SCENARIO_BATCH_RUN_ID"] = batch_run_id
57
57
 
58
58
  return batch_run_id
@@ -65,23 +65,23 @@ def generate_message_id() -> str:
65
65
  Returns:
66
66
  str: A new message ID.
67
67
  """
68
- return f"scenariomsg_{uuid.uuid4()}"
68
+ return f"{PKSUID('scenariomsg')}"
69
69
 
70
70
 
71
- def safe_parse_uuid(id_str: str) -> bool:
71
+ def safe_parse_ksuid(id_str: str) -> bool:
72
72
  """
73
- Safely parses a UUID string.
73
+ Safely parses a Ksuid string.
74
74
 
75
75
  Args:
76
- id_str: The UUID string to parse.
76
+ id_str: The Ksuid string to parse.
77
77
 
78
78
  Returns:
79
- bool: True if the UUID string is valid, false otherwise.
79
+ bool: True if the Ksuid string is valid, false otherwise.
80
80
  """
81
81
  try:
82
- uuid.UUID(id_str)
82
+ PKSUID.parse(id_str)
83
83
  return True
84
- except (ValueError, TypeError):
84
+ except Exception:
85
85
  return False
86
86
 
87
87
 
@@ -5,6 +5,7 @@ This module provides the main configuration class for customizing the behavior
5
5
  of the Scenario testing framework, including execution parameters and debugging options.
6
6
  """
7
7
 
8
+ import os
8
9
  from typing import Optional, Union, ClassVar
9
10
  from pydantic import BaseModel
10
11
 
@@ -53,6 +54,11 @@ class ScenarioConfig(BaseModel):
53
54
  verbose: Optional[Union[bool, int]] = True
54
55
  cache_key: Optional[str] = None
55
56
  debug: Optional[bool] = False
57
+ headless: Optional[bool] = os.getenv("SCENARIO_HEADLESS", "false").lower() not in [
58
+ "false",
59
+ "0",
60
+ "",
61
+ ]
56
62
 
57
63
  default_config: ClassVar[Optional["ScenarioConfig"]] = None
58
64
 
@@ -64,6 +70,7 @@ class ScenarioConfig(BaseModel):
64
70
  verbose: Optional[Union[bool, int]] = None,
65
71
  cache_key: Optional[str] = None,
66
72
  debug: Optional[bool] = None,
73
+ headless: Optional[bool] = None,
67
74
  ) -> None:
68
75
  """
69
76
  Set global configuration settings for all scenario executions.
@@ -107,6 +114,7 @@ class ScenarioConfig(BaseModel):
107
114
  verbose=verbose,
108
115
  cache_key=cache_key,
109
116
  debug=debug,
117
+ headless=headless,
110
118
  )
111
119
  )
112
120
 
@@ -12,7 +12,8 @@ import logging
12
12
  import re
13
13
  from typing import List, Optional, cast
14
14
 
15
- from litellm import Choices, completion
15
+ import litellm
16
+ from litellm import Choices
16
17
  from litellm.files.main import ModelResponse
17
18
 
18
19
  from scenario.cache import scenario_cache
@@ -356,7 +357,7 @@ if you don't have enough information to make a verdict, say inconclusive with ma
356
357
 
357
358
  response = cast(
358
359
  ModelResponse,
359
- completion(
360
+ litellm.completion(
360
361
  model=self.model,
361
362
  messages=messages,
362
363
  temperature=self.temperature,
@@ -398,7 +399,7 @@ if you don't have enough information to make a verdict, say inconclusive with ma
398
399
  failed_criteria = [
399
400
  self.criteria[idx]
400
401
  for idx, criterion in enumerate(criteria.values())
401
- if criterion == False
402
+ if criterion == False or criterion == "inconclusive"
402
403
  ]
403
404
 
404
405
  # Return the appropriate ScenarioResult based on the verdict
File without changes
@@ -199,6 +199,8 @@ class ScenarioReporter:
199
199
  # Store the original run method
200
200
  original_run = ScenarioExecutor.run
201
201
 
202
+ def pytest_addoption(parser):
203
+ parser.addoption("--headless", action="store_true")
202
204
 
203
205
  @pytest.hookimpl(trylast=True)
204
206
  def pytest_configure(config):
@@ -240,6 +242,9 @@ def pytest_configure(config):
240
242
  print(colored("\nScenario debug mode enabled (--debug).", "yellow"))
241
243
  ScenarioConfig.configure(verbose=True, debug=True)
242
244
 
245
+ if config.getoption("--headless"):
246
+ ScenarioConfig.configure(headless=True)
247
+
243
248
  # Create a global reporter instance
244
249
  config._scenario_reporter = ScenarioReporter()
245
250