roark-analytics 5.2.0__tar.gz → 5.3.0__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 (294) hide show
  1. roark_analytics-5.3.0/.release-please-manifest.json +3 -0
  2. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/CHANGELOG.md +12 -0
  3. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/PKG-INFO +1 -1
  4. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/api.md +2 -1
  5. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/pyproject.toml +1 -1
  6. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_version.py +1 -1
  7. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/simulation.py +158 -1
  8. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/__init__.py +2 -0
  9. roark_analytics-5.3.0/src/roark_analytics/types/simulation_mock_tool_params.py +34 -0
  10. roark_analytics-5.3.0/src/roark_analytics/types/simulation_mock_tool_response.py +41 -0
  11. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_simulation.py +94 -1
  12. roark_analytics-5.2.0/.release-please-manifest.json +0 -3
  13. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/.gitignore +0 -0
  14. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/CONTRIBUTING.md +0 -0
  15. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/LICENSE +0 -0
  16. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/README.md +0 -0
  17. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/SECURITY.md +0 -0
  18. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/bin/check-release-environment +0 -0
  19. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/bin/publish-pypi +0 -0
  20. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/examples/.keep +0 -0
  21. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/noxfile.py +0 -0
  22. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/release-please-config.json +0 -0
  23. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/requirements-dev.lock +0 -0
  24. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/requirements.lock +0 -0
  25. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/__init__.py +0 -0
  26. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_base_client.py +0 -0
  27. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_client.py +0 -0
  28. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_compat.py +0 -0
  29. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_constants.py +0 -0
  30. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_exceptions.py +0 -0
  31. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_files.py +0 -0
  32. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_models.py +0 -0
  33. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_qs.py +0 -0
  34. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_resource.py +0 -0
  35. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_response.py +0 -0
  36. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_streaming.py +0 -0
  37. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_types.py +0 -0
  38. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/__init__.py +0 -0
  39. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_compat.py +0 -0
  40. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_datetime_parse.py +0 -0
  41. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_json.py +0 -0
  42. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_logs.py +0 -0
  43. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_proxy.py +0 -0
  44. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_reflection.py +0 -0
  45. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_resources_proxy.py +0 -0
  46. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_streams.py +0 -0
  47. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_sync.py +0 -0
  48. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_transform.py +0 -0
  49. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_typing.py +0 -0
  50. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/_utils/_utils.py +0 -0
  51. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/lib/.keep +0 -0
  52. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/py.typed +0 -0
  53. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/__init__.py +0 -0
  54. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/agent.py +0 -0
  55. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/agent_config.py +0 -0
  56. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/agent_endpoint.py +0 -0
  57. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/agent_prompt.py +0 -0
  58. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/autoimprove_job.py +0 -0
  59. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/benchmark.py +0 -0
  60. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/call.py +0 -0
  61. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/config.py +0 -0
  62. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/customer_flow.py +0 -0
  63. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/customer_flow_edge_case.py +0 -0
  64. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/health.py +0 -0
  65. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/http_request_definition.py +0 -0
  66. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/metric.py +0 -0
  67. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/metric_collection_job.py +0 -0
  68. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/metric_policy.py +0 -0
  69. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/metric_variant.py +0 -0
  70. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/simulation_environment.py +0 -0
  71. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/simulation_job.py +0 -0
  72. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/simulation_persona.py +0 -0
  73. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/simulation_run_plan.py +0 -0
  74. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/simulation_run_plan_job.py +0 -0
  75. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/simulation_template.py +0 -0
  76. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/resources/webhook.py +0 -0
  77. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_build_params.py +0 -0
  78. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_build_response.py +0 -0
  79. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_config_delete_staging_response.py +0 -0
  80. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_config_get_by_id_response.py +0 -0
  81. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_config_list_response.py +0 -0
  82. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_config_promote_response.py +0 -0
  83. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_config_resolve_params.py +0 -0
  84. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_config_resolve_response.py +0 -0
  85. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_config_update_params.py +0 -0
  86. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_config_update_response.py +0 -0
  87. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_create_params.py +0 -0
  88. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_create_response.py +0 -0
  89. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_endpoint_create_params.py +0 -0
  90. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_endpoint_create_response.py +0 -0
  91. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_endpoint_get_by_id_response.py +0 -0
  92. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_endpoint_list_params.py +0 -0
  93. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_endpoint_list_response.py +0 -0
  94. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_endpoint_update_params.py +0 -0
  95. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_endpoint_update_response.py +0 -0
  96. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_get_by_id_response.py +0 -0
  97. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_list_params.py +0 -0
  98. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_list_response.py +0 -0
  99. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_prompt_list_response.py +0 -0
  100. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_prompt_list_versions_params.py +0 -0
  101. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_prompt_list_versions_response.py +0 -0
  102. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_prompt_update_params.py +0 -0
  103. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_prompt_update_response.py +0 -0
  104. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_update_params.py +0 -0
  105. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/agent_update_response.py +0 -0
  106. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_answer_question_params.py +0 -0
  107. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_answer_question_response.py +0 -0
  108. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_cancel_response.py +0 -0
  109. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_create_params.py +0 -0
  110. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_create_response.py +0 -0
  111. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_dismiss_response.py +0 -0
  112. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_get_by_id_response.py +0 -0
  113. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_list_response.py +0 -0
  114. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_promote_response.py +0 -0
  115. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_send_guidance_params.py +0 -0
  116. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_job_send_guidance_response.py +0 -0
  117. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_log_entry.py +0 -0
  118. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/autoimprove_log_entry_param.py +0 -0
  119. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_get_leaderboard_params.py +0 -0
  120. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_get_leaderboard_response.py +0 -0
  121. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_get_target_params.py +0 -0
  122. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_get_target_response.py +0 -0
  123. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_list_metrics_params.py +0 -0
  124. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_list_metrics_response.py +0 -0
  125. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_list_suites_response.py +0 -0
  126. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_list_target_history_params.py +0 -0
  127. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_list_target_history_response.py +0 -0
  128. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_list_target_score_samples_params.py +0 -0
  129. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/benchmark_list_target_score_samples_response.py +0 -0
  130. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/bundle.py +0 -0
  131. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/bundle_param.py +0 -0
  132. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_append_tool_invocations_params.py +0 -0
  133. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_append_tool_invocations_response.py +0 -0
  134. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_create_params.py +0 -0
  135. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_create_response.py +0 -0
  136. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_get_by_id_response.py +0 -0
  137. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_get_transcript_params.py +0 -0
  138. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_get_transcript_response.py +0 -0
  139. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_list_metrics_params.py +0 -0
  140. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_list_metrics_response.py +0 -0
  141. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_list_params.py +0 -0
  142. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_list_response.py +0 -0
  143. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/call_list_sentiment_runs_response.py +0 -0
  144. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/config_apply_params.py +0 -0
  145. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/config_apply_response.py +0 -0
  146. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/config_diff_params.py +0 -0
  147. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/config_diff_response.py +0 -0
  148. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/config_flow_step.py +0 -0
  149. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/config_flow_step_param.py +0 -0
  150. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_create_params.py +0 -0
  151. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_create_response.py +0 -0
  152. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_delete_response.py +0 -0
  153. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_duplicate_params.py +0 -0
  154. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_duplicate_response.py +0 -0
  155. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_edge_case_add_params.py +0 -0
  156. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_edge_case_add_response.py +0 -0
  157. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_edge_case_promote_params.py +0 -0
  158. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_edge_case_promote_response.py +0 -0
  159. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_edge_case_remove_params.py +0 -0
  160. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_edge_case_remove_response.py +0 -0
  161. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_edge_case_update_params.py +0 -0
  162. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_edge_case_update_response.py +0 -0
  163. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_get_by_id_response.py +0 -0
  164. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_list_params.py +0 -0
  165. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_list_response.py +0 -0
  166. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_replace_graph_params.py +0 -0
  167. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_replace_graph_response.py +0 -0
  168. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_update_happy_path_params.py +0 -0
  169. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_update_happy_path_response.py +0 -0
  170. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_update_params.py +0 -0
  171. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/customer_flow_update_response.py +0 -0
  172. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/flow_step.py +0 -0
  173. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/flow_step_param.py +0 -0
  174. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/health_get_response.py +0 -0
  175. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/http_request_definition_create_params.py +0 -0
  176. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/http_request_definition_create_response.py +0 -0
  177. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/http_request_definition_get_by_id_response.py +0 -0
  178. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/http_request_definition_list_params.py +0 -0
  179. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/http_request_definition_list_response.py +0 -0
  180. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/http_request_definition_update_params.py +0 -0
  181. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/http_request_definition_update_response.py +0 -0
  182. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/managed_agent_config_revision.py +0 -0
  183. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/managed_agent_config_revision_param.py +0 -0
  184. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_collection_job_create_params.py +0 -0
  185. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_collection_job_create_response.py +0 -0
  186. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_collection_job_get_by_id_response.py +0 -0
  187. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_collection_job_list_params.py +0 -0
  188. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_collection_job_list_response.py +0 -0
  189. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_create_definition_params.py +0 -0
  190. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_create_definition_response.py +0 -0
  191. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_list_definitions_params.py +0 -0
  192. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_list_definitions_response.py +0 -0
  193. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_policy_create_params.py +0 -0
  194. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_policy_create_response.py +0 -0
  195. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_policy_delete_response.py +0 -0
  196. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_policy_get_by_id_response.py +0 -0
  197. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_policy_list_params.py +0 -0
  198. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_policy_list_response.py +0 -0
  199. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_policy_update_params.py +0 -0
  200. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_policy_update_response.py +0 -0
  201. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_update_definition_params.py +0 -0
  202. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_update_definition_response.py +0 -0
  203. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_variant_create_params.py +0 -0
  204. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_variant_create_response.py +0 -0
  205. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_variant_delete_params.py +0 -0
  206. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_variant_delete_response.py +0 -0
  207. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_variant_get_by_id_params.py +0 -0
  208. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_variant_get_by_id_response.py +0 -0
  209. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_variant_list_response.py +0 -0
  210. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_variant_update_params.py +0 -0
  211. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/metric_variant_update_response.py +0 -0
  212. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_environment_create_params.py +0 -0
  213. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_environment_create_response.py +0 -0
  214. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_environment_delete_response.py +0 -0
  215. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_environment_get_by_id_response.py +0 -0
  216. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_environment_list_params.py +0 -0
  217. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_environment_list_response.py +0 -0
  218. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_environment_update_params.py +0 -0
  219. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_environment_update_response.py +0 -0
  220. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_job_get_by_id_response.py +0 -0
  221. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_job_lookup_params.py +0 -0
  222. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_job_lookup_response.py +0 -0
  223. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_persona_create_params.py +0 -0
  224. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_persona_create_response.py +0 -0
  225. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_persona_get_by_id_response.py +0 -0
  226. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_persona_list_params.py +0 -0
  227. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_persona_list_response.py +0 -0
  228. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_persona_update_params.py +0 -0
  229. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_persona_update_response.py +0 -0
  230. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_params.py +0 -0
  231. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_create_params.py +0 -0
  232. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_create_response.py +0 -0
  233. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_delete_response.py +0 -0
  234. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_get_by_id_response.py +0 -0
  235. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_job_cancel_response.py +0 -0
  236. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_job_get_by_id_response.py +0 -0
  237. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_job_list_params.py +0 -0
  238. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_job_list_response.py +0 -0
  239. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_job_start_params.py +0 -0
  240. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_job_start_response.py +0 -0
  241. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_list_params.py +0 -0
  242. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_list_response.py +0 -0
  243. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_update_params.py +0 -0
  244. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_plan_update_response.py +0 -0
  245. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_run_response.py +0 -0
  246. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/simulation_template_list_response.py +0 -0
  247. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/webhook_create_params.py +0 -0
  248. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/webhook_create_response.py +0 -0
  249. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/webhook_delete_response.py +0 -0
  250. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/webhook_get_by_id_response.py +0 -0
  251. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/webhook_list_params.py +0 -0
  252. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/src/roark_analytics/types/webhook_list_response.py +0 -0
  253. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/__init__.py +0 -0
  254. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/__init__.py +0 -0
  255. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_agent.py +0 -0
  256. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_agent_config.py +0 -0
  257. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_agent_endpoint.py +0 -0
  258. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_agent_prompt.py +0 -0
  259. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_autoimprove_job.py +0 -0
  260. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_benchmark.py +0 -0
  261. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_call.py +0 -0
  262. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_config.py +0 -0
  263. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_customer_flow.py +0 -0
  264. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_customer_flow_edge_case.py +0 -0
  265. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_health.py +0 -0
  266. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_http_request_definition.py +0 -0
  267. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_metric.py +0 -0
  268. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_metric_collection_job.py +0 -0
  269. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_metric_policy.py +0 -0
  270. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_metric_variant.py +0 -0
  271. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_simulation_environment.py +0 -0
  272. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_simulation_job.py +0 -0
  273. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_simulation_persona.py +0 -0
  274. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_simulation_run_plan.py +0 -0
  275. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_simulation_run_plan_job.py +0 -0
  276. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_simulation_template.py +0 -0
  277. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/api_resources/test_webhook.py +0 -0
  278. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/conftest.py +0 -0
  279. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/sample_file.txt +0 -0
  280. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_client.py +0 -0
  281. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_deepcopy.py +0 -0
  282. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_extract_files.py +0 -0
  283. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_files.py +0 -0
  284. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_models.py +0 -0
  285. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_qs.py +0 -0
  286. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_required_args.py +0 -0
  287. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_response.py +0 -0
  288. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_streaming.py +0 -0
  289. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_transform.py +0 -0
  290. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_utils/test_datetime_parse.py +0 -0
  291. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_utils/test_json.py +0 -0
  292. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_utils/test_proxy.py +0 -0
  293. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/test_utils/test_typing.py +0 -0
  294. {roark_analytics-5.2.0 → roark_analytics-5.3.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "5.3.0"
3
+ }
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.3.0](https://github.com/roarkhq/sdk-roark-analytics-python/compare/v5.2.0...v5.3.0) (2026-09-23)
4
+
5
+
6
+ ### Features
7
+
8
+ * **api:** api update ([#584](https://github.com/roarkhq/sdk-roark-analytics-python/issues/584)) ([cee63db](https://github.com/roarkhq/sdk-roark-analytics-python/commit/cee63db9b32260aca49bb546d679c827d92f3f08))
9
+
10
+
11
+ ### Chores
12
+
13
+ * fold next into main ([b9e8037](https://github.com/roarkhq/sdk-roark-analytics-python/commit/b9e8037016700697f50dd87c97ce06f16f866a1e))
14
+
3
15
  ## [5.2.0](https://github.com/roarkhq/sdk-roark-analytics-python/compare/v5.1.0...v5.2.0) (2026-09-23)
4
16
 
5
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: roark_analytics
3
- Version: 5.2.0
3
+ Version: 5.3.0
4
4
  Summary: The official Python library for the roark API
5
5
  Project-URL: Homepage, https://github.com/roarkhq/sdk-roark-analytics-python
6
6
  Project-URL: Repository, https://github.com/roarkhq/sdk-roark-analytics-python
@@ -121,11 +121,12 @@ Methods:
121
121
  Types:
122
122
 
123
123
  ```python
124
- from roark_analytics.types import SimulationRunResponse
124
+ from roark_analytics.types import SimulationMockToolResponse, SimulationRunResponse
125
125
  ```
126
126
 
127
127
  Methods:
128
128
 
129
+ - <code title="post /v1/simulation/tool-mock">client.simulation.<a href="./src/roark_analytics/resources/simulation.py">mock_tool</a>(\*\*<a href="src/roark_analytics/types/simulation_mock_tool_params.py">params</a>) -> <a href="./src/roark_analytics/types/simulation_mock_tool_response.py">SimulationMockToolResponse</a></code>
129
130
  - <code title="post /v1/simulation/run">client.simulation.<a href="./src/roark_analytics/resources/simulation.py">run</a>(\*\*<a href="src/roark_analytics/types/simulation_run_params.py">params</a>) -> <a href="./src/roark_analytics/types/simulation_run_response.py">SimulationRunResponse</a></code>
130
131
 
131
132
  # SimulationJob
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "roark_analytics"
3
- version = "5.2.0"
3
+ version = "5.3.0"
4
4
  description = "The official Python library for the roark API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "roark_analytics"
4
- __version__ = "5.2.0" # x-release-please-version
4
+ __version__ = "5.3.0" # x-release-please-version
@@ -7,7 +7,7 @@ from typing_extensions import Literal
7
7
 
8
8
  import httpx
9
9
 
10
- from ..types import simulation_run_params
10
+ from ..types import simulation_run_params, simulation_mock_tool_params
11
11
  from .._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
12
12
  from .._utils import required_args, maybe_transform, async_maybe_transform
13
13
  from .._compat import cached_property
@@ -20,6 +20,7 @@ from .._response import (
20
20
  )
21
21
  from .._base_client import make_request_options
22
22
  from ..types.simulation_run_response import SimulationRunResponse
23
+ from ..types.simulation_mock_tool_response import SimulationMockToolResponse
23
24
 
24
25
  __all__ = ["SimulationResource", "AsyncSimulationResource"]
25
26
 
@@ -44,6 +45,78 @@ class SimulationResource(SyncAPIResource):
44
45
  """
45
46
  return SimulationResourceWithStreamingResponse(self)
46
47
 
48
+ def mock_tool(
49
+ self,
50
+ *,
51
+ simulation_job_id: str,
52
+ tool_name: str,
53
+ arguments: Dict[str, object] | Omit = omit,
54
+ session_id: str | Omit = omit,
55
+ tool_description: str | Omit = omit,
56
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
57
+ # The extra values given here take precedence over values defined on the client or passed to this method.
58
+ extra_headers: Headers | None = None,
59
+ extra_query: Query | None = None,
60
+ extra_body: Body | None = None,
61
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
62
+ ) -> SimulationMockToolResponse:
63
+ """The server half of the tool guard for code-first agents.
64
+
65
+ When a guarded tool
66
+ fires during a Roark test call, send the invocation here instead of executing
67
+ it: Roark answers with a simulated backend response that is valid JSON, shaped
68
+ by the tool contract you pass, consistent with the test scenario, and consistent
69
+ with earlier mocked responses in the same call. Real callers are never affected:
70
+ the guard only diverts when the agent-config resolve response identified the
71
+ session as a Roark simulation, and this endpoint independently re-validates the
72
+ simulation before answering. Failure contract for your wrapper: `404` means the
73
+ simulation id is unknown to this project (treat the session as real). `409`
74
+ means the simulation has already ended (stale session state: do NOT execute the
75
+ real tool; return your static fallback). `5xx` means generation failed (return
76
+ your static fallback). Identical retries (same tool, same arguments) within a
77
+ few minutes return the stored response, so double-fired handlers stay
78
+ consistent.
79
+
80
+ Args:
81
+ simulation_job_id: The simulation this session belongs to, from the agent-config resolve response
82
+ (`simulationJobId`). Roark re-validates it against the live simulation before
83
+ answering.
84
+
85
+ tool_name: The tool the agent invoked.
86
+
87
+ arguments: The arguments the agent called the tool with, verbatim.
88
+
89
+ session_id: Your session or room identifier, echoed back in logs for correlation.
90
+
91
+ tool_description: The tool's contract: its description and, ideally, its parameter and return
92
+ shape. The more contract you pass, the more faithful the simulated response.
93
+
94
+ extra_headers: Send extra headers
95
+
96
+ extra_query: Add additional query parameters to the request
97
+
98
+ extra_body: Add additional JSON properties to the request
99
+
100
+ timeout: Override the client-level default timeout for this request, in seconds
101
+ """
102
+ return self._post(
103
+ "/v1/simulation/tool-mock",
104
+ body=maybe_transform(
105
+ {
106
+ "simulation_job_id": simulation_job_id,
107
+ "tool_name": tool_name,
108
+ "arguments": arguments,
109
+ "session_id": session_id,
110
+ "tool_description": tool_description,
111
+ },
112
+ simulation_mock_tool_params.SimulationMockToolParams,
113
+ ),
114
+ options=make_request_options(
115
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
116
+ ),
117
+ cast_to=SimulationMockToolResponse,
118
+ )
119
+
47
120
  @overload
48
121
  def run(
49
122
  self,
@@ -377,6 +450,78 @@ class AsyncSimulationResource(AsyncAPIResource):
377
450
  """
378
451
  return AsyncSimulationResourceWithStreamingResponse(self)
379
452
 
453
+ async def mock_tool(
454
+ self,
455
+ *,
456
+ simulation_job_id: str,
457
+ tool_name: str,
458
+ arguments: Dict[str, object] | Omit = omit,
459
+ session_id: str | Omit = omit,
460
+ tool_description: str | Omit = omit,
461
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
462
+ # The extra values given here take precedence over values defined on the client or passed to this method.
463
+ extra_headers: Headers | None = None,
464
+ extra_query: Query | None = None,
465
+ extra_body: Body | None = None,
466
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
467
+ ) -> SimulationMockToolResponse:
468
+ """The server half of the tool guard for code-first agents.
469
+
470
+ When a guarded tool
471
+ fires during a Roark test call, send the invocation here instead of executing
472
+ it: Roark answers with a simulated backend response that is valid JSON, shaped
473
+ by the tool contract you pass, consistent with the test scenario, and consistent
474
+ with earlier mocked responses in the same call. Real callers are never affected:
475
+ the guard only diverts when the agent-config resolve response identified the
476
+ session as a Roark simulation, and this endpoint independently re-validates the
477
+ simulation before answering. Failure contract for your wrapper: `404` means the
478
+ simulation id is unknown to this project (treat the session as real). `409`
479
+ means the simulation has already ended (stale session state: do NOT execute the
480
+ real tool; return your static fallback). `5xx` means generation failed (return
481
+ your static fallback). Identical retries (same tool, same arguments) within a
482
+ few minutes return the stored response, so double-fired handlers stay
483
+ consistent.
484
+
485
+ Args:
486
+ simulation_job_id: The simulation this session belongs to, from the agent-config resolve response
487
+ (`simulationJobId`). Roark re-validates it against the live simulation before
488
+ answering.
489
+
490
+ tool_name: The tool the agent invoked.
491
+
492
+ arguments: The arguments the agent called the tool with, verbatim.
493
+
494
+ session_id: Your session or room identifier, echoed back in logs for correlation.
495
+
496
+ tool_description: The tool's contract: its description and, ideally, its parameter and return
497
+ shape. The more contract you pass, the more faithful the simulated response.
498
+
499
+ extra_headers: Send extra headers
500
+
501
+ extra_query: Add additional query parameters to the request
502
+
503
+ extra_body: Add additional JSON properties to the request
504
+
505
+ timeout: Override the client-level default timeout for this request, in seconds
506
+ """
507
+ return await self._post(
508
+ "/v1/simulation/tool-mock",
509
+ body=await async_maybe_transform(
510
+ {
511
+ "simulation_job_id": simulation_job_id,
512
+ "tool_name": tool_name,
513
+ "arguments": arguments,
514
+ "session_id": session_id,
515
+ "tool_description": tool_description,
516
+ },
517
+ simulation_mock_tool_params.SimulationMockToolParams,
518
+ ),
519
+ options=make_request_options(
520
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
521
+ ),
522
+ cast_to=SimulationMockToolResponse,
523
+ )
524
+
380
525
  @overload
381
526
  async def run(
382
527
  self,
@@ -694,6 +839,9 @@ class SimulationResourceWithRawResponse:
694
839
  def __init__(self, simulation: SimulationResource) -> None:
695
840
  self._simulation = simulation
696
841
 
842
+ self.mock_tool = to_raw_response_wrapper(
843
+ simulation.mock_tool,
844
+ )
697
845
  self.run = to_raw_response_wrapper(
698
846
  simulation.run,
699
847
  )
@@ -703,6 +851,9 @@ class AsyncSimulationResourceWithRawResponse:
703
851
  def __init__(self, simulation: AsyncSimulationResource) -> None:
704
852
  self._simulation = simulation
705
853
 
854
+ self.mock_tool = async_to_raw_response_wrapper(
855
+ simulation.mock_tool,
856
+ )
706
857
  self.run = async_to_raw_response_wrapper(
707
858
  simulation.run,
708
859
  )
@@ -712,6 +863,9 @@ class SimulationResourceWithStreamingResponse:
712
863
  def __init__(self, simulation: SimulationResource) -> None:
713
864
  self._simulation = simulation
714
865
 
866
+ self.mock_tool = to_streamed_response_wrapper(
867
+ simulation.mock_tool,
868
+ )
715
869
  self.run = to_streamed_response_wrapper(
716
870
  simulation.run,
717
871
  )
@@ -721,6 +875,9 @@ class AsyncSimulationResourceWithStreamingResponse:
721
875
  def __init__(self, simulation: AsyncSimulationResource) -> None:
722
876
  self._simulation = simulation
723
877
 
878
+ self.mock_tool = async_to_streamed_response_wrapper(
879
+ simulation.mock_tool,
880
+ )
724
881
  self.run = async_to_streamed_response_wrapper(
725
882
  simulation.run,
726
883
  )
@@ -55,6 +55,7 @@ from .customer_flow_update_params import CustomerFlowUpdateParams as CustomerFlo
55
55
  from .metric_policy_create_params import MetricPolicyCreateParams as MetricPolicyCreateParams
56
56
  from .metric_policy_list_response import MetricPolicyListResponse as MetricPolicyListResponse
57
57
  from .metric_policy_update_params import MetricPolicyUpdateParams as MetricPolicyUpdateParams
58
+ from .simulation_mock_tool_params import SimulationMockToolParams as SimulationMockToolParams
58
59
  from .agent_config_update_response import AgentConfigUpdateResponse as AgentConfigUpdateResponse
59
60
  from .agent_endpoint_create_params import AgentEndpointCreateParams as AgentEndpointCreateParams
60
61
  from .agent_endpoint_list_response import AgentEndpointListResponse as AgentEndpointListResponse
@@ -79,6 +80,7 @@ from .managed_agent_config_revision import ManagedAgentConfigRevision as Managed
79
80
  from .metric_policy_create_response import MetricPolicyCreateResponse as MetricPolicyCreateResponse
80
81
  from .metric_policy_delete_response import MetricPolicyDeleteResponse as MetricPolicyDeleteResponse
81
82
  from .metric_policy_update_response import MetricPolicyUpdateResponse as MetricPolicyUpdateResponse
83
+ from .simulation_mock_tool_response import SimulationMockToolResponse as SimulationMockToolResponse
82
84
  from .agent_endpoint_create_response import AgentEndpointCreateResponse as AgentEndpointCreateResponse
83
85
  from .agent_endpoint_update_response import AgentEndpointUpdateResponse as AgentEndpointUpdateResponse
84
86
  from .benchmark_list_suites_response import BenchmarkListSuitesResponse as BenchmarkListSuitesResponse
@@ -0,0 +1,34 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from .._utils import PropertyInfo
9
+
10
+ __all__ = ["SimulationMockToolParams"]
11
+
12
+
13
+ class SimulationMockToolParams(TypedDict, total=False):
14
+ simulation_job_id: Required[Annotated[str, PropertyInfo(alias="simulationJobId")]]
15
+ """
16
+ The simulation this session belongs to, from the agent-config resolve response
17
+ (`simulationJobId`). Roark re-validates it against the live simulation before
18
+ answering.
19
+ """
20
+
21
+ tool_name: Required[Annotated[str, PropertyInfo(alias="toolName")]]
22
+ """The tool the agent invoked."""
23
+
24
+ arguments: Dict[str, object]
25
+ """The arguments the agent called the tool with, verbatim."""
26
+
27
+ session_id: Annotated[str, PropertyInfo(alias="sessionId")]
28
+ """Your session or room identifier, echoed back in logs for correlation."""
29
+
30
+ tool_description: Annotated[str, PropertyInfo(alias="toolDescription")]
31
+ """
32
+ The tool's contract: its description and, ideally, its parameter and return
33
+ shape. The more contract you pass, the more faithful the simulated response.
34
+ """
@@ -0,0 +1,41 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["SimulationMockToolResponse", "Data"]
10
+
11
+
12
+ class Data(BaseModel):
13
+ """
14
+ A simulated backend response for a guarded tool during a Roark test call. The
15
+ real tool was not, and must not be, executed.
16
+ """
17
+
18
+ reused: bool
19
+ """
20
+ True when this exact invocation (same tool, same arguments) was answered moments
21
+ ago and the stored response was returned, e.g. on a retry.
22
+ """
23
+
24
+ simulation_job_id: str = FieldInfo(alias="simulationJobId")
25
+
26
+ tool_name: str = FieldInfo(alias="toolName")
27
+
28
+ result: Optional[object] = None
29
+ """
30
+ The simulated tool response: valid JSON, shaped by the tool contract, consistent
31
+ with the test scenario and with earlier mocked responses in the same call.
32
+ Return this from your tool instead of executing it.
33
+ """
34
+
35
+
36
+ class SimulationMockToolResponse(BaseModel):
37
+ data: Data
38
+ """
39
+ A simulated backend response for a guarded tool during a Roark test call. The
40
+ real tool was not, and must not be, executed.
41
+ """
@@ -9,7 +9,10 @@ import pytest
9
9
 
10
10
  from tests.utils import assert_matches_type
11
11
  from roark_analytics import Roark, AsyncRoark
12
- from roark_analytics.types import SimulationRunResponse
12
+ from roark_analytics.types import (
13
+ SimulationRunResponse,
14
+ SimulationMockToolResponse,
15
+ )
13
16
 
14
17
  base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
15
18
 
@@ -17,6 +20,51 @@ base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
17
20
  class TestSimulation:
18
21
  parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
19
22
 
23
+ @parametrize
24
+ def test_method_mock_tool(self, client: Roark) -> None:
25
+ simulation = client.simulation.mock_tool(
26
+ simulation_job_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
27
+ tool_name="book_appointment",
28
+ )
29
+ assert_matches_type(SimulationMockToolResponse, simulation, path=["response"])
30
+
31
+ @parametrize
32
+ def test_method_mock_tool_with_all_params(self, client: Roark) -> None:
33
+ simulation = client.simulation.mock_tool(
34
+ simulation_job_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
35
+ tool_name="book_appointment",
36
+ arguments={"date": "2026-10-01", "time": "15:00"},
37
+ session_id="sessionId",
38
+ tool_description="Books an appointment. Args: date (YYYY-MM-DD), time (HH:MM). Returns {confirmationId, status}.",
39
+ )
40
+ assert_matches_type(SimulationMockToolResponse, simulation, path=["response"])
41
+
42
+ @parametrize
43
+ def test_raw_response_mock_tool(self, client: Roark) -> None:
44
+ response = client.simulation.with_raw_response.mock_tool(
45
+ simulation_job_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
46
+ tool_name="book_appointment",
47
+ )
48
+
49
+ assert response.is_closed is True
50
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
51
+ simulation = response.parse()
52
+ assert_matches_type(SimulationMockToolResponse, simulation, path=["response"])
53
+
54
+ @parametrize
55
+ def test_streaming_response_mock_tool(self, client: Roark) -> None:
56
+ with client.simulation.with_streaming_response.mock_tool(
57
+ simulation_job_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
58
+ tool_name="book_appointment",
59
+ ) as response:
60
+ assert not response.is_closed
61
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
62
+
63
+ simulation = response.parse()
64
+ assert_matches_type(SimulationMockToolResponse, simulation, path=["response"])
65
+
66
+ assert cast(Any, response.is_closed) is True
67
+
20
68
  @parametrize
21
69
  def test_method_run_overload_1(self, client: Roark) -> None:
22
70
  simulation = client.simulation.run(
@@ -228,6 +276,51 @@ class TestAsyncSimulation:
228
276
  "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
229
277
  )
230
278
 
279
+ @parametrize
280
+ async def test_method_mock_tool(self, async_client: AsyncRoark) -> None:
281
+ simulation = await async_client.simulation.mock_tool(
282
+ simulation_job_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
283
+ tool_name="book_appointment",
284
+ )
285
+ assert_matches_type(SimulationMockToolResponse, simulation, path=["response"])
286
+
287
+ @parametrize
288
+ async def test_method_mock_tool_with_all_params(self, async_client: AsyncRoark) -> None:
289
+ simulation = await async_client.simulation.mock_tool(
290
+ simulation_job_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
291
+ tool_name="book_appointment",
292
+ arguments={"date": "2026-10-01", "time": "15:00"},
293
+ session_id="sessionId",
294
+ tool_description="Books an appointment. Args: date (YYYY-MM-DD), time (HH:MM). Returns {confirmationId, status}.",
295
+ )
296
+ assert_matches_type(SimulationMockToolResponse, simulation, path=["response"])
297
+
298
+ @parametrize
299
+ async def test_raw_response_mock_tool(self, async_client: AsyncRoark) -> None:
300
+ response = await async_client.simulation.with_raw_response.mock_tool(
301
+ simulation_job_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
302
+ tool_name="book_appointment",
303
+ )
304
+
305
+ assert response.is_closed is True
306
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
307
+ simulation = await response.parse()
308
+ assert_matches_type(SimulationMockToolResponse, simulation, path=["response"])
309
+
310
+ @parametrize
311
+ async def test_streaming_response_mock_tool(self, async_client: AsyncRoark) -> None:
312
+ async with async_client.simulation.with_streaming_response.mock_tool(
313
+ simulation_job_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
314
+ tool_name="book_appointment",
315
+ ) as response:
316
+ assert not response.is_closed
317
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
318
+
319
+ simulation = await response.parse()
320
+ assert_matches_type(SimulationMockToolResponse, simulation, path=["response"])
321
+
322
+ assert cast(Any, response.is_closed) is True
323
+
231
324
  @parametrize
232
325
  async def test_method_run_overload_1(self, async_client: AsyncRoark) -> None:
233
326
  simulation = await async_client.simulation.run(
@@ -1,3 +0,0 @@
1
- {
2
- ".": "5.2.0"
3
- }
File without changes