eval-protocol 0.3.30__tar.gz → 0.3.32__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 (482) hide show
  1. {eval_protocol-0.3.30/eval_protocol.egg-info → eval_protocol-0.3.32}/PKG-INFO +1 -1
  2. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/_version.py +3 -3
  3. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/fireworks_tracing.py +35 -39
  4. eval_protocol-0.3.32/eval_protocol/adapters/lp_deserializer.py +41 -0
  5. eval_protocol-0.3.32/eval_protocol/adapters/r3_deserializer.py +41 -0
  6. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/integrations/fireworks_v1_completions_client.py +37 -22
  7. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/tracing_utils.py +2 -0
  8. eval_protocol-0.3.32/eval_protocol/tracing/__init__.py +31 -0
  9. eval_protocol-0.3.30/eval_protocol/adapters/lp_deserializer.py → eval_protocol-0.3.32/eval_protocol/tracing/logprobs.py +17 -0
  10. eval_protocol-0.3.32/eval_protocol/tracing/prompt_token_ids.py +34 -0
  11. eval_protocol-0.3.32/eval_protocol/tracing/registry.py +88 -0
  12. eval_protocol-0.3.30/eval_protocol/adapters/r3_deserializer.py → eval_protocol-0.3.32/eval_protocol/tracing/router_replay.py +15 -0
  13. eval_protocol-0.3.32/eval_protocol/tracing/types.py +41 -0
  14. {eval_protocol-0.3.30 → eval_protocol-0.3.32/eval_protocol.egg-info}/PKG-INFO +1 -1
  15. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol.egg-info/SOURCES.txt +6 -0
  16. eval_protocol-0.3.32/tests/test_fireworks_v1_completions_client.py +309 -0
  17. eval_protocol-0.3.30/tests/test_fireworks_v1_completions_client.py +0 -146
  18. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/LICENSE +0 -0
  19. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/README.md +0 -0
  20. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/development/__init__.py +0 -0
  21. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/development/normalize_sandbox_fusion.py +0 -0
  22. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/development/utils/__init__.py +0 -0
  23. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/development/utils/generate_api_key.py +0 -0
  24. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/development/utils/subprocess_manager.py +0 -0
  25. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/__init__.py +0 -0
  26. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/__main__.py +0 -0
  27. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/__init__.py +0 -0
  28. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/base.py +0 -0
  29. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/bigquery.py +0 -0
  30. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/braintrust.py +0 -0
  31. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/dataframe.py +0 -0
  32. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/huggingface.py +0 -0
  33. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/langchain.py +0 -0
  34. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/langfuse.py +0 -0
  35. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/langsmith.py +0 -0
  36. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/openai_responses.py +0 -0
  37. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/trl.py +0 -0
  38. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/utils.py +0 -0
  39. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/adapters/weave.py +0 -0
  40. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/__init__.py +0 -0
  41. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/models.py +0 -0
  42. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/orchestrator.py +0 -0
  43. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resource_abc.py +0 -0
  44. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resource_pool.py +0 -0
  45. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/__init__.py +0 -0
  46. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/__init__.py +0 -0
  47. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/gorilla_file_system.py +0 -0
  48. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/math_api.py +0 -0
  49. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/posting_api.py +0 -0
  50. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_sim_api_resource.py +0 -0
  51. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/docker_resource.py +0 -0
  52. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/filesystem_resource.py +0 -0
  53. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/python_state_resource.py +0 -0
  54. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/resources/sql_resource.py +0 -0
  55. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/task_manager.py +0 -0
  56. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/agent/tool_registry.py +0 -0
  57. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/auth.py +0 -0
  58. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/__init__.py +0 -0
  59. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/data/airline_dataset.jsonl +0 -0
  60. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/data/retail_dataset.jsonl +0 -0
  61. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_aime25.py +0 -0
  62. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_frozen_lake.py +0 -0
  63. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_glm_streaming_compliance.py +0 -0
  64. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_gpqa.py +0 -0
  65. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_livebench_data_analysis.py +0 -0
  66. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_tau_bench_airline.py +0 -0
  67. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_tau_bench_retail.py +0 -0
  68. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli.py +0 -0
  69. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/__init__.py +0 -0
  70. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/agent_eval_cmd.py +0 -0
  71. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/common.py +0 -0
  72. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/create_rft.py +0 -0
  73. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/export_docs.py +0 -0
  74. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/local_test.py +0 -0
  75. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/logs.py +0 -0
  76. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/run_eval_cmd.py +0 -0
  77. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/upload.py +0 -0
  78. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/cli_commands/utils.py +0 -0
  79. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/common_utils.py +0 -0
  80. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/config.py +0 -0
  81. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/data_loader/__init__.py +0 -0
  82. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/data_loader/dynamic_data_loader.py +0 -0
  83. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/data_loader/factory_data_loader.py +0 -0
  84. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/data_loader/inline_data_loader.py +0 -0
  85. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/data_loader/jsonl_data_loader.py +0 -0
  86. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/data_loader/models.py +0 -0
  87. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/__init__.py +0 -0
  88. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/dataset_logger.py +0 -0
  89. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/local_fs_dataset_logger_adapter.py +0 -0
  90. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/sqlite_dataset_logger_adapter.py +0 -0
  91. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/sqlite_evaluation_row_store.py +0 -0
  92. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/datasets/__init__.py +0 -0
  93. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/datasets/loader.py +0 -0
  94. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/directory_utils.py +0 -0
  95. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/evaluation.py +0 -0
  96. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/event_bus/__init__.py +0 -0
  97. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/event_bus/event_bus.py +0 -0
  98. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/event_bus/logger.py +0 -0
  99. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/event_bus/sqlite_event_bus.py +0 -0
  100. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/event_bus/sqlite_event_bus_database.py +0 -0
  101. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/exceptions.py +0 -0
  102. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/execution/__init__.py +0 -0
  103. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/execution/pipeline.py +0 -0
  104. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/fireworks_rft.py +0 -0
  105. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/gcp_tools.py +0 -0
  106. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/generation/cache.py +0 -0
  107. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/generation/clients/base.py +0 -0
  108. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/generation/clients.py +0 -0
  109. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/generic_server.py +0 -0
  110. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/get_pep440_version.py +0 -0
  111. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/human_id/__init__.py +0 -0
  112. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/human_id/dictionary.py +0 -0
  113. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/integrations/__init__.py +0 -0
  114. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/integrations/deepeval.py +0 -0
  115. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/integrations/openai_rft.py +0 -0
  116. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/integrations/openeval.py +0 -0
  117. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/integrations/tinker_cookbook.py +0 -0
  118. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/integrations/tinker_rollout_processor.py +0 -0
  119. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/integrations/trl.py +0 -0
  120. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/log_utils/__init__.py +0 -0
  121. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/log_utils/elasticsearch_client.py +0 -0
  122. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/log_utils/elasticsearch_direct_http_handler.py +0 -0
  123. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/log_utils/elasticsearch_index_manager.py +0 -0
  124. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/log_utils/fireworks_tracing_http_handler.py +0 -0
  125. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/log_utils/init.py +0 -0
  126. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/log_utils/rollout_context.py +0 -0
  127. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/log_utils/rollout_id_filter.py +0 -0
  128. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/log_utils/util.py +0 -0
  129. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/logging_utils.py +0 -0
  130. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/__init__.py +0 -0
  131. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/adapter.py +0 -0
  132. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/client/__init__.py +0 -0
  133. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/client/connection.py +0 -0
  134. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/clients.py +0 -0
  135. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/__init__.py +0 -0
  136. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/base_policy.py +0 -0
  137. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/manager.py +0 -0
  138. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/policy.py +0 -0
  139. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/vllm_policy.py +0 -0
  140. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/grid_renderer.py +0 -0
  141. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/mcp_multi_client.py +0 -0
  142. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/mcpgym.py +0 -0
  143. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/process_manager.py +0 -0
  144. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/session/__init__.py +0 -0
  145. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/session/manager.py +0 -0
  146. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/simple_process_manager.py +0 -0
  147. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp/simulation_server.py +0 -0
  148. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/__init__.py +0 -0
  149. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/config.py +0 -0
  150. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/main.py +0 -0
  151. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/orchestration/__init__.py +0 -0
  152. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/orchestration/base_client.py +0 -0
  153. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/orchestration/local_docker_client.py +0 -0
  154. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/orchestration/stdio_mcp_client_helper.py +0 -0
  155. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_env.py +0 -0
  156. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/__init__.py +0 -0
  157. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/frozen_lake/frozen_lake_adapter.py +0 -0
  158. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/frozen_lake/frozen_lake_mcp.py +0 -0
  159. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/frozen_lake/server.py +0 -0
  160. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/README.md +0 -0
  161. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/__init__.py +0 -0
  162. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/airplane_environment/airline_environment.py +0 -0
  163. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/mock_environment/mock_environment.py +0 -0
  164. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/retail_environment/retail_environment.py +0 -0
  165. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/server.py +0 -0
  166. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tau2_mcp.py +0 -0
  167. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tests/system_prompts/airline_agent_system_prompt.md +0 -0
  168. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tests/system_prompts/mock_agent_system_prompt.md +0 -0
  169. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tests/system_prompts/retail_agent_system_prompt.md +0 -0
  170. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tests/test_tau2_e2e.py +0 -0
  171. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/models.py +0 -0
  172. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/packaging.py +0 -0
  173. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/platform_api.py +0 -0
  174. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/playback_policy.py +0 -0
  175. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/proxy/__init__.py +0 -0
  176. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/__init__.py +0 -0
  177. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/app.py +0 -0
  178. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/auth.py +0 -0
  179. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/langfuse.py +0 -0
  180. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/litellm.py +0 -0
  181. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/main.py +0 -0
  182. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/models.py +0 -0
  183. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/redis_utils.py +0 -0
  184. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/__init__.py +0 -0
  185. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/buffer.py +0 -0
  186. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/default_agent_rollout_processor.py +0 -0
  187. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/default_dataset_adapter.py +0 -0
  188. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/default_klavis_sandbox_rollout_processor.py +0 -0
  189. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/default_langchain_rollout_processor.py +0 -0
  190. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/default_mcp_gym_rollout_processor.py +0 -0
  191. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/default_no_op_rollout_processor.py +0 -0
  192. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/default_pydantic_ai_rollout_processor.py +0 -0
  193. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/default_single_turn_rollout_process.py +0 -0
  194. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/dual_mode_wrapper.py +0 -0
  195. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/elasticsearch_setup.py +0 -0
  196. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/evaluation_test.py +0 -0
  197. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/evaluation_test_postprocess.py +0 -0
  198. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/evaluation_test_utils.py +0 -0
  199. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/exception_config.py +0 -0
  200. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/execution.py +0 -0
  201. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/generate_parameter_combinations.py +0 -0
  202. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/github_action_rollout_processor.py +0 -0
  203. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/handle_persist_flow.py +0 -0
  204. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/integrations/openenv_trl_vllm.py +0 -0
  205. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/openenv_rollout_processor.py +0 -0
  206. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/parameterize.py +0 -0
  207. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/plugin.py +0 -0
  208. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/priority_scheduler.py +0 -0
  209. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/remote_rollout_processor.py +0 -0
  210. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/rollout_processor.py +0 -0
  211. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/rollout_result_post_processor.py +0 -0
  212. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/store_experiment_link.py +0 -0
  213. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/store_results_url.py +0 -0
  214. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/types.py +0 -0
  215. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/utils.py +0 -0
  216. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/pytest/validate_signature.py +0 -0
  217. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/__init__.py +0 -0
  218. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/__init__.py +0 -0
  219. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge.py +0 -0
  220. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge_braintrust.py +0 -0
  221. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge_langfuse.py +0 -0
  222. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge_langsmith.py +0 -0
  223. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge_openai_responses.py +0 -0
  224. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/utils.py +0 -0
  225. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/llm_judge.py +0 -0
  226. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/llm_judge_braintrust.py +0 -0
  227. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/svg_agent/evaluator/test_svgagent.py +0 -0
  228. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/svg_agent/evaluator/utils.py +0 -0
  229. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/svg_agent/vercel_svg_server/api/init.py +0 -0
  230. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/quickstart/utils.py +0 -0
  231. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/resources.py +0 -0
  232. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/reward_function.py +0 -0
  233. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/__init__.py +0 -0
  234. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/accuracy.py +0 -0
  235. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/accuracy_length.py +0 -0
  236. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/apps_coding_reward.py +0 -0
  237. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/apps_execution_utils.py +0 -0
  238. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/apps_testing_util.py +0 -0
  239. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/bfcl_reward.py +0 -0
  240. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/code_execution.py +0 -0
  241. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/code_execution_utils.py +0 -0
  242. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/cpp_code.py +0 -0
  243. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/deepcoder_reward.py +0 -0
  244. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/format.py +0 -0
  245. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/function_calling.py +0 -0
  246. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/json_schema.py +0 -0
  247. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/language_consistency.py +0 -0
  248. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/lean_prover.py +0 -0
  249. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/length.py +0 -0
  250. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/list_comparison_math_reward.py +0 -0
  251. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/math.py +0 -0
  252. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/multiple_choice_math_reward.py +0 -0
  253. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/reasoning_steps.py +0 -0
  254. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/repetition.py +0 -0
  255. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rewards/tag_count.py +0 -0
  256. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/rl_processing.py +0 -0
  257. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/server.py +0 -0
  258. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/stats/__init__.py +0 -0
  259. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/stats/confidence_intervals.py +0 -0
  260. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/training/__init__.py +0 -0
  261. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/training/gepa_trainer.py +0 -0
  262. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/training/gepa_utils.py +0 -0
  263. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/training/trainer.py +0 -0
  264. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/training/utils.py +0 -0
  265. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/typed_interface.py +0 -0
  266. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/types/__init__.py +0 -0
  267. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/types/errors.py +0 -0
  268. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/types/remote_rollout_processor.py +0 -0
  269. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/types/types.py +0 -0
  270. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/__init__.py +0 -0
  271. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/batch_evaluation.py +0 -0
  272. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/batch_transformation.py +0 -0
  273. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/browser_utils.py +0 -0
  274. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/check_server_status.py +0 -0
  275. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/dataset_helpers.py +0 -0
  276. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/evaluation_row_utils.py +0 -0
  277. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/logs_models.py +0 -0
  278. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/logs_server.py +0 -0
  279. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/module_loader.py +0 -0
  280. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/packaging_utils.py +0 -0
  281. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/show_results_url.py +0 -0
  282. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/static_policy.py +0 -0
  283. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/subprocess_utils.py +0 -0
  284. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol/utils/vite_server.py +0 -0
  285. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol.egg-info/dependency_links.txt +0 -0
  286. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol.egg-info/entry_points.txt +0 -0
  287. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol.egg-info/requires.txt +0 -0
  288. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/eval_protocol.egg-info/top_level.txt +0 -0
  289. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/pyproject.toml +0 -0
  290. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/setup.cfg +0 -0
  291. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/setup.py +0 -0
  292. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_accuracy.py +0 -0
  293. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_accuracy_length.py +0 -0
  294. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_adapters_e2e.py +0 -0
  295. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_agent_orchestrator.py +0 -0
  296. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_agent_resources.py +0 -0
  297. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_auth.py +0 -0
  298. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_batch_evaluation.py +0 -0
  299. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_cli_agent.py +0 -0
  300. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_cli_args.py +0 -0
  301. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_cli_create_rft.py +0 -0
  302. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_cli_local_test.py +0 -0
  303. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_cli_startup_benchmark.py +0 -0
  304. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_code_execution.py +0 -0
  305. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_config.py +0 -0
  306. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_control_plane_separation.py +0 -0
  307. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_cpp_code.py +0 -0
  308. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_data_driven_task_manager.py +0 -0
  309. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_deepcoder_reward.py +0 -0
  310. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_deepeval_integration.py +0 -0
  311. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_directory_utils.py +0 -0
  312. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_e2b_integration.py +0 -0
  313. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_e2b_js_integration.py +0 -0
  314. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_edge_cases.py +0 -0
  315. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_ep_upload_e2e.py +0 -0
  316. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_eval_protocol_import.py +0 -0
  317. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_evaluation.py +0 -0
  318. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_evaluation_postprocess.py +0 -0
  319. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_event_bus.py +0 -0
  320. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_event_bus_helper.py +0 -0
  321. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_examples_end_to_end.py +0 -0
  322. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_exception_config.py +0 -0
  323. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_exceptions.py +0 -0
  324. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_fireworks_api.py +0 -0
  325. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_format.py +0 -0
  326. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_fractional_code.py +0 -0
  327. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_function_calling.py +0 -0
  328. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_gcp_tools.py +0 -0
  329. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_generic_server.py +0 -0
  330. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_human_id.py +0 -0
  331. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_integration.py +0 -0
  332. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_json_schema.py +0 -0
  333. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_kwargs_validation.py +0 -0
  334. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_language_consistency.py +0 -0
  335. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_lean_prover.py +0 -0
  336. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_lean_prover_runner.py +0 -0
  337. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_length.py +0 -0
  338. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_list_comparison_math_reward.py +0 -0
  339. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_litellm_policy_provider_fields.py +0 -0
  340. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_logs_server.py +0 -0
  341. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_logs_server_simple.py +0 -0
  342. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_math.py +0 -0
  343. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_message_field_filtering.py +0 -0
  344. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_minimal.py +0 -0
  345. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_models.py +0 -0
  346. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_models_rl.py +0 -0
  347. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_multiple_choice_math_reward.py +0 -0
  348. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_n_variant_batch_integration.py +0 -0
  349. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_n_variant_integration.py +0 -0
  350. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_no_implicit_dotenv.py +0 -0
  351. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_openai_compatibility.py +0 -0
  352. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_openai_rft_integration.py +0 -0
  353. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_openeval_integration.py +0 -0
  354. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_packaging.py +0 -0
  355. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_parallel_rollouts.py +0 -0
  356. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_platform_api.py +0 -0
  357. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_priority_scheduler.py +0 -0
  358. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_quickstart_utils.py +0 -0
  359. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_readiness.py +0 -0
  360. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_reasoning_steps.py +0 -0
  361. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_repetition.py +0 -0
  362. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_repetition_debug.py +0 -0
  363. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_retry_mechanism.py +0 -0
  364. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_reward_function.py +0 -0
  365. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_reward_protocol_import.py +0 -0
  366. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_rl_processing.py +0 -0
  367. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_rollout_control_plane_integration.py +0 -0
  368. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_rollout_logprobs.py +0 -0
  369. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_server.py +0 -0
  370. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_show_results_url.py +0 -0
  371. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_sqlite_hardening.py +0 -0
  372. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_status_migration_changes.py +0 -0
  373. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_status_migration_integration.py +0 -0
  374. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_status_model.py +0 -0
  375. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_tag_count.py +0 -0
  376. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_tau_bench_airline_smoke.py +0 -0
  377. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_training_utils.py +0 -0
  378. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_typed_interface.py +0 -0
  379. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_typed_interface_rl.py +0 -0
  380. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_upload_entrypoint.py +0 -0
  381. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_url_handling.py +0 -0
  382. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/tests/test_vite_server.py +0 -0
  383. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/__init__.py +0 -0
  384. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/agent/__init__.py +0 -0
  385. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/agent/base.py +0 -0
  386. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/agent/llm_agent.py +0 -0
  387. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/api_service/__init__.py +0 -0
  388. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/api_service/api_config.py +0 -0
  389. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/api_service/data_model.py +0 -0
  390. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/api_service/simulation_service.py +0 -0
  391. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/cli.py +0 -0
  392. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/config.py +0 -0
  393. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/domains/airline/policy.md +0 -0
  394. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/domains/mock/policy.md +0 -0
  395. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/domains/mock/policy_solo.md +0 -0
  396. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/domains/retail/policy.md +0 -0
  397. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/main_policy.md +0 -0
  398. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/main_policy_solo.md +0 -0
  399. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/tech_support_manual.md +0 -0
  400. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/tech_support_workflow.md +0 -0
  401. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/tech_support_workflow_solo.md +0 -0
  402. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/user_simulator/simulation_guidelines.md +0 -0
  403. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data/user_simulator/simulation_guidelines_tools.md +0 -0
  404. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data_model/__init__.py +0 -0
  405. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data_model/message.py +0 -0
  406. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data_model/simulation.py +0 -0
  407. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/data_model/tasks.py +0 -0
  408. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/__init__.py +0 -0
  409. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/__init__.py +0 -0
  410. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/data_model.py +0 -0
  411. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/environment.py +0 -0
  412. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/tools.py +0 -0
  413. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/utils.py +0 -0
  414. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/__init__.py +0 -0
  415. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/data_model.py +0 -0
  416. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/environment.py +0 -0
  417. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/tools.py +0 -0
  418. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/utils.py +0 -0
  419. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/__init__.py +0 -0
  420. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/data_model.py +0 -0
  421. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/environment.py +0 -0
  422. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/tools.py +0 -0
  423. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/utils.py +0 -0
  424. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/__init__.py +0 -0
  425. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/data_model.py +0 -0
  426. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/environment.py +0 -0
  427. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/__init__.py +0 -0
  428. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/const.py +0 -0
  429. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/create_tasks.py +0 -0
  430. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/manager.py +0 -0
  431. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/mms_issues.py +0 -0
  432. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/mobile_data_issues.py +0 -0
  433. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/service_issues.py +0 -0
  434. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/utils.py +0 -0
  435. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tools.py +0 -0
  436. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/user_data_model.py +0 -0
  437. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/user_tools.py +0 -0
  438. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/utils.py +0 -0
  439. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/environment/__init__.py +0 -0
  440. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/environment/db.py +0 -0
  441. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/environment/environment.py +0 -0
  442. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/environment/server.py +0 -0
  443. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/environment/tool.py +0 -0
  444. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/environment/toolkit.py +0 -0
  445. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/environment/utils/interface_agent.py +0 -0
  446. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/evaluator/__init__.py +0 -0
  447. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator.py +0 -0
  448. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_action.py +0 -0
  449. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_base.py +0 -0
  450. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_communicate.py +0 -0
  451. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_env.py +0 -0
  452. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_nl_assertions.py +0 -0
  453. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/metrics/__init__.py +0 -0
  454. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/metrics/agent_metrics.py +0 -0
  455. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/metrics/break_down_metrics.py +0 -0
  456. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/orchestrator/__init__.py +0 -0
  457. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/orchestrator/environment_manager.py +0 -0
  458. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/orchestrator/orchestrator.py +0 -0
  459. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/orchestrator/utils.py +0 -0
  460. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/registry.py +0 -0
  461. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/run.py +0 -0
  462. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/scripts/__init__.py +0 -0
  463. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/scripts/check_data.py +0 -0
  464. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/scripts/show_domain_doc.py +0 -0
  465. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/scripts/start_servers.py +0 -0
  466. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/scripts/view_simulations.py +0 -0
  467. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/user/__init__.py +0 -0
  468. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/user/base.py +0 -0
  469. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/user/user_simulator.py +0 -0
  470. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/utils/__init__.py +0 -0
  471. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/utils/display.py +0 -0
  472. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/utils/io_utils.py +0 -0
  473. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/utils/llm_utils.py +0 -0
  474. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/utils/pydantic_utils.py +0 -0
  475. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vendor/tau2/utils/utils.py +0 -0
  476. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/versioneer.py +0 -0
  477. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vite-app/dist/assets/favicon-BkAAWQga.png +0 -0
  478. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vite-app/dist/assets/index-DFeF7AG_.js +0 -0
  479. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vite-app/dist/assets/index-DFeF7AG_.js.map +0 -0
  480. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vite-app/dist/assets/index-DvKW7FQL.css +0 -0
  481. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vite-app/dist/assets/logo-light-BprIBJQW.png +0 -0
  482. {eval_protocol-0.3.30 → eval_protocol-0.3.32}/vite-app/dist/index.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eval-protocol
3
- Version: 0.3.30
3
+ Version: 0.3.32
4
4
  Summary: The official Python SDK for Eval Protocol (EP.) EP is an open protocol that standardizes how developers author evals for large language model (LLM) applications.
5
5
  Author-email: Fireworks AI <info@fireworks.ai>
6
6
  License-Expression: MIT
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-05-29T16:09:24-0700",
11
+ "date": "2026-07-06T12:57:04-0700",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "1bd5447a3afbca3b71e0f0d205ed7cff6c3afe5d",
15
- "version": "0.3.30"
14
+ "full-revisionid": "2c0867156a720cf218a101dd37e51f4d4861ae00",
15
+ "version": "0.3.32"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -15,9 +15,8 @@ from typing import Any, Dict, List, Optional, Protocol
15
15
  import os
16
16
 
17
17
  from eval_protocol.models import EvaluationRow, InputMetadata, ExecutionMetadata, Message
18
+ from eval_protocol.tracing import PayloadType, decode_payloads
18
19
  from .base import BaseAdapter
19
- from .lp_deserializer import decompress_and_parse_lp
20
- from .r3_deserializer import decompress_and_parse_r3
21
20
  from .utils import extract_messages_from_data
22
21
  from ..common_utils import get_user_agent
23
22
 
@@ -102,45 +101,42 @@ def convert_trace_dict_to_evaluation_row(
102
101
  ):
103
102
  break # Break early if we've found all the metadata we need
104
103
 
105
- # Extract router replay payloads when present
104
+ # Decoding lives in eval_protocol.tracing; here we only map results onto the row.
106
105
  payloads = trace.get("payloads")
107
106
  if isinstance(payloads, dict):
108
- router_replay = payloads.get("router_replay")
109
- if isinstance(router_replay, dict) and router_replay.get("data"):
110
- try:
111
- matrices, r3_meta = decompress_and_parse_r3(router_replay["data"])
112
- if execution_metadata.extra is None:
113
- execution_metadata.extra = {}
114
- execution_metadata.extra["routing_matrices"] = matrices
115
- execution_metadata.extra["routing_metadata"] = r3_meta
116
- except Exception as e:
117
- logger.warning("Failed to decompress R3 payload for trace %s: %s", trace.get("id"), e)
118
-
119
- logprobs_payload = payloads.get("logprobs")
120
- if isinstance(logprobs_payload, dict) and logprobs_payload.get("data"):
121
- try:
122
- logprobs, token_ids, lp_meta = decompress_and_parse_lp(logprobs_payload["data"])
123
- if execution_metadata.extra is None:
124
- execution_metadata.extra = {}
125
- execution_metadata.extra["completion_logprobs"] = logprobs
126
- if token_ids is not None:
127
- execution_metadata.extra["completion_token_ids"] = token_ids
128
- execution_metadata.extra["logprobs_metadata"] = lp_meta
129
-
130
- for i in range(len(messages) - 1, -1, -1):
131
- if messages[i].role == "assistant":
132
- content_entries = [{"logprob": lp} for lp in logprobs]
133
- if token_ids is not None:
134
- for entry, tid in zip(content_entries, token_ids):
135
- entry["token_id"] = tid
136
- messages[i].logprobs = {"content": content_entries}
137
- break
138
- except Exception as e:
139
- logger.warning(
140
- "Failed to decompress logprobs payload for trace %s: %s",
141
- trace.get("id"),
142
- e,
143
- )
107
+ decoded = decode_payloads(
108
+ payloads,
109
+ on_error=lambda pt, e: logger.warning(
110
+ "Failed to decode %s payload for trace %s: %s", pt.value, trace.get("id"), e
111
+ ),
112
+ )
113
+ if decoded and execution_metadata.extra is None:
114
+ execution_metadata.extra = {}
115
+
116
+ if (dp := decoded.get(PayloadType.ROUTER_REPLAY)) is not None:
117
+ execution_metadata.extra["routing_matrices"] = dp.value
118
+ execution_metadata.extra["routing_metadata"] = dp.metadata
119
+
120
+ if (dp := decoded.get(PayloadType.LOGPROBS)) is not None:
121
+ logprobs = dp.value
122
+ token_ids = dp.token_ids
123
+ execution_metadata.extra["completion_logprobs"] = logprobs
124
+ if token_ids is not None:
125
+ execution_metadata.extra["completion_token_ids"] = token_ids
126
+ execution_metadata.extra["logprobs_metadata"] = dp.metadata
127
+
128
+ for i in range(len(messages) - 1, -1, -1):
129
+ if messages[i].role == "assistant":
130
+ content_entries = [{"logprob": lp} for lp in logprobs]
131
+ if token_ids is not None:
132
+ for entry, tid in zip(content_entries, token_ids):
133
+ entry["token_id"] = tid
134
+ messages[i].logprobs = {"content": content_entries}
135
+ break
136
+
137
+ if (dp := decoded.get(PayloadType.PROMPT_TOKEN_IDS)) is not None:
138
+ execution_metadata.extra["prompt_token_ids"] = dp.value
139
+ execution_metadata.extra["prompt_token_ids_metadata"] = dp.metadata
144
140
 
145
141
  return EvaluationRow(
146
142
  messages=messages,
@@ -0,0 +1,41 @@
1
+ """Deprecated compatibility shim for ``eval_protocol.tracing.logprobs``.
2
+
3
+ Import from ``eval_protocol.tracing.logprobs`` (or ``decode_payloads`` from
4
+ ``eval_protocol.tracing``) instead. This module re-exports the LP/v1 helpers
5
+ that lived here before the tracing package refactor.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import warnings
11
+
12
+ warnings.warn(
13
+ "eval_protocol.adapters.lp_deserializer is deprecated; "
14
+ "import from eval_protocol.tracing.logprobs instead.",
15
+ DeprecationWarning,
16
+ stacklevel=2,
17
+ )
18
+
19
+ from eval_protocol.tracing.logprobs import ( # noqa: E402
20
+ ENTRY_FORMAT,
21
+ ENTRY_SIZE,
22
+ HEADER_FORMAT,
23
+ HEADER_SIZE,
24
+ HEADER_VERSION,
25
+ MAGIC,
26
+ MISSING_TOKEN_ID,
27
+ decompress_and_parse_lp,
28
+ parse_logprobs,
29
+ )
30
+
31
+ __all__ = [
32
+ "ENTRY_FORMAT",
33
+ "ENTRY_SIZE",
34
+ "HEADER_FORMAT",
35
+ "HEADER_SIZE",
36
+ "HEADER_VERSION",
37
+ "MAGIC",
38
+ "MISSING_TOKEN_ID",
39
+ "decompress_and_parse_lp",
40
+ "parse_logprobs",
41
+ ]
@@ -0,0 +1,41 @@
1
+ """Deprecated compatibility shim for ``eval_protocol.tracing.router_replay``.
2
+
3
+ Import from ``eval_protocol.tracing.router_replay`` (or ``decode_payloads`` from
4
+ ``eval_protocol.tracing``) instead. This module re-exports the R3/v1 helpers
5
+ that lived here before the tracing package refactor.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import warnings
11
+
12
+ warnings.warn(
13
+ "eval_protocol.adapters.r3_deserializer is deprecated; "
14
+ "import from eval_protocol.tracing.router_replay instead.",
15
+ DeprecationWarning,
16
+ stacklevel=2,
17
+ )
18
+
19
+ from eval_protocol.tracing.router_replay import ( # noqa: E402
20
+ BITS_PER_BYTE,
21
+ HEADER_FORMAT,
22
+ HEADER_SIZE,
23
+ MAGIC,
24
+ _RoutingDtype,
25
+ _SelectorMode,
26
+ _parse_header,
27
+ _read_bitmap_positions,
28
+ decompress_and_parse_r3,
29
+ )
30
+
31
+ __all__ = [
32
+ "BITS_PER_BYTE",
33
+ "HEADER_FORMAT",
34
+ "HEADER_SIZE",
35
+ "MAGIC",
36
+ "_RoutingDtype",
37
+ "_SelectorMode",
38
+ "_parse_header",
39
+ "_read_bitmap_positions",
40
+ "decompress_and_parse_r3",
41
+ ]
@@ -393,35 +393,50 @@ class FireworksV1CompletionsClient:
393
393
  finish_reason = str(choice.get("finish_reason") or "unknown")
394
394
 
395
395
  raw_output = choice.get("raw_output") if isinstance(choice.get("raw_output"), dict) else {}
396
- completion_token_ids = _normalize_token_id_sequence(
397
- choice.get("token_ids") or raw_output.get("completion_token_ids") or []
398
- )
399
396
  choice_prompt_token_ids = _normalize_token_id_sequence(
400
397
  choice.get("prompt_token_ids") or raw_output.get("prompt_token_ids") or normalized_prompt_token_ids
401
398
  )
402
399
 
400
+ # -- Extract per-token ids and logprobs together --------------------
401
+ # Both come from the same ``content[]`` array entry-by-entry, so they are
402
+ # inherently the same length and aligned. Reading ids from a different
403
+ # source (top-level token_ids) and re-encoding decoded text when it is
404
+ # absent drops the trailing end-of-turn token and misaligns per-token
405
+ # logprobs, corrupting inference KLD — so we never do that.
406
+ choice_logprobs = choice.get("logprobs")
407
+ content_entries = choice_logprobs.get("content") if isinstance(choice_logprobs, dict) else None
408
+ if not content_entries:
409
+ raise RuntimeError(
410
+ "Fireworks /v1/completions returned no content[] logprobs entries. "
411
+ "This client requires the boolean logprobs=True (content) shape to "
412
+ "recover exact per-token ids and sampling logprobs. Refusing to "
413
+ "re-encode decoded text: retokenization drops the end-of-turn token "
414
+ "and misaligns per-token logprobs, corrupting inference KLD. "
415
+ f"choice keys={list(choice.keys())}"
416
+ )
417
+
418
+ completion_token_ids: List[int] = []
419
+ completion_logprobs: List[float] = []
420
+ for index, entry in enumerate(content_entries):
421
+ if not isinstance(entry, dict) or entry.get("token_id") is None:
422
+ raise RuntimeError(
423
+ "Fireworks /v1/completions content[] entry is missing token_id "
424
+ f"at index {index}; cannot align per-token logprobs to token ids "
425
+ "without re-encoding. Refusing to return corrupted data."
426
+ )
427
+ if entry.get("sampling_logprob") is None:
428
+ raise RuntimeError(
429
+ "Fireworks /v1/completions content[] entry is missing "
430
+ f"sampling_logprob at index {index}. The sampling logprob is the "
431
+ "exact value the sampler drew with and is required for correct "
432
+ "inference KLD; refusing to substitute the rounded logprob or 0.0."
433
+ )
434
+ completion_token_ids.append(int(entry["token_id"]))
435
+ completion_logprobs.append(float(entry["sampling_logprob"]))
436
+
403
437
  completion_text = self.decode_token_ids(token_ids=completion_token_ids)
404
438
  if not completion_text:
405
439
  completion_text = str(choice.get("text") or "")
406
- if not completion_token_ids and completion_text:
407
- tokenizer = self._get_tokenizer()
408
- completion_token_ids = list(tokenizer.encode(completion_text, add_special_tokens=False))
409
-
410
- # -- Extract logprobs -----------------------------------------------
411
- completion_logprobs: List[float] = []
412
- choice_logprobs = choice.get("logprobs")
413
- if isinstance(choice_logprobs, dict):
414
- token_logprobs = choice_logprobs.get("token_logprobs") or []
415
- if token_logprobs:
416
- completion_logprobs = [float(lp) if lp is not None else 0.0 for lp in token_logprobs]
417
- else:
418
- content_logprobs = choice_logprobs.get("content") or []
419
- completion_logprobs = [
420
- float(entry.get("logprob", 0.0)) if isinstance(entry, dict) else 0.0
421
- for entry in content_logprobs
422
- ]
423
- elif isinstance(choice_logprobs, list):
424
- completion_logprobs = [float(lp) if lp is not None else 0.0 for lp in choice_logprobs]
425
440
 
426
441
  # -- Build message via parser or raw --------------------------------
427
442
  if self.tool_call_parser is not None:
@@ -63,6 +63,8 @@ def _merge_payloads_into_longest_row(longest_row: EvaluationRow, rows: List[Eval
63
63
  for key in (
64
64
  "completion_logprobs",
65
65
  "completion_token_ids",
66
+ "prompt_token_ids",
67
+ "prompt_token_ids_metadata",
66
68
  "logprobs_metadata",
67
69
  "routing_matrices",
68
70
  "routing_metadata",
@@ -0,0 +1,31 @@
1
+ """Decode Fireworks tracing-gateway payloads.
2
+
3
+ Standalone, dependency-light helpers (stdlib + ``zstandard`` only) for turning
4
+ the binary/JSON ``payloads`` returned by the Fireworks tracing gateway
5
+ (``GET /traces?include_payloads=true``) into Python values. No EvaluationRow or
6
+ rollout machinery required -- usable on its own.
7
+
8
+ Typical use::
9
+
10
+ from eval_protocol.tracing import decode_payloads, PayloadType
11
+
12
+ decoded = decode_payloads(trace["payloads"])
13
+ decoded[PayloadType.PROMPT_TOKEN_IDS].value # List[int]
14
+ decoded[PayloadType.LOGPROBS].value # List[float]
15
+ decoded[PayloadType.ROUTER_REPLAY].value # List[Optional[str]]
16
+
17
+ See ``README.md`` in this package for details.
18
+ """
19
+
20
+ from __future__ import annotations
21
+
22
+ from .registry import decode_payload, decode_payloads, decode_trace
23
+ from .types import DecodedPayload, PayloadType
24
+
25
+ __all__ = [
26
+ "PayloadType",
27
+ "DecodedPayload",
28
+ "decode_payloads",
29
+ "decode_payload",
30
+ "decode_trace",
31
+ ]
@@ -12,6 +12,8 @@ from typing import Any, Dict, List, Optional, Tuple
12
12
 
13
13
  import zstandard as zstd
14
14
 
15
+ from .types import DecodedPayload, PayloadType
16
+
15
17
  MAGIC = b"LP01"
16
18
  HEADER_VERSION = 1
17
19
  MISSING_TOKEN_ID = -1
@@ -107,3 +109,18 @@ def decompress_and_parse_lp(data_b64: str) -> Tuple[List[float], Optional[List[i
107
109
  decompressor = zstd.ZstdDecompressor()
108
110
  raw = decompressor.decompress(compressed)
109
111
  return parse_logprobs(raw)
112
+
113
+
114
+ def decode_logprobs(data_b64: str) -> DecodedPayload:
115
+ """Decode a gateway ``payloads.logprobs.data`` blob into a ``DecodedPayload``.
116
+
117
+ ``value`` is the per-completion-token logprob list; per-token ids (when all
118
+ valid) are available under ``token_ids``.
119
+ """
120
+ logprobs, token_ids, metadata = decompress_and_parse_lp(data_b64)
121
+ return DecodedPayload(
122
+ payload_type=PayloadType.LOGPROBS,
123
+ value=logprobs,
124
+ metadata=metadata,
125
+ token_ids=token_ids,
126
+ )
@@ -0,0 +1,34 @@
1
+ """``pti/v1`` decoder for prompt token ID payloads.
2
+
3
+ Inverse of the tracing gateway's ``serialize_prompt_token_ids``: the gateway
4
+ stores prompt token IDs as ``base64(zstd(json.dumps(token_ids)))`` -- a compact
5
+ JSON int array, no bespoke binary header.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import base64
11
+ import json
12
+ from typing import Any, Dict, List, Tuple
13
+
14
+ import zstandard as zstd
15
+
16
+ from .types import DecodedPayload, PayloadType
17
+
18
+
19
+ def parse_prompt_token_ids(raw: bytes) -> Tuple[List[int], Dict[str, Any]]:
20
+ """Parse uncompressed ``pti/v1`` bytes (a JSON int array) into ids + metadata."""
21
+ token_ids = json.loads(raw)
22
+ metadata: Dict[str, Any] = {"scope": "prompt_only", "token_count": len(token_ids)}
23
+ return token_ids, metadata
24
+
25
+
26
+ def decode_prompt_token_ids(data_b64: str) -> DecodedPayload:
27
+ """Decode a gateway ``payloads.prompt_token_ids.data`` blob."""
28
+ raw = zstd.ZstdDecompressor().decompress(base64.b64decode(data_b64))
29
+ token_ids, metadata = parse_prompt_token_ids(raw)
30
+ return DecodedPayload(
31
+ payload_type=PayloadType.PROMPT_TOKEN_IDS,
32
+ value=token_ids,
33
+ metadata=metadata,
34
+ )
@@ -0,0 +1,88 @@
1
+ """Decoder registry + master decode for tracing-gateway payloads.
2
+
3
+ Adding a new payload type is a single entry in ``PAYLOAD_DECODERS`` (plus its
4
+ decoder module). Callers use the master :func:`decode_payloads` /
5
+ :func:`decode_trace` and never stitch per-type decoders together.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import logging
11
+ from typing import Any, Callable, Dict, Optional
12
+
13
+ from .logprobs import decode_logprobs
14
+ from .prompt_token_ids import decode_prompt_token_ids
15
+ from .router_replay import decode_router_replay
16
+ from .types import DecodedPayload, PayloadType
17
+
18
+ logger = logging.getLogger(__name__)
19
+
20
+ # Callback invoked when a single payload fails to decode: (payload_type, exc).
21
+ OnError = Callable[[PayloadType, Exception], None]
22
+
23
+ PAYLOAD_DECODERS: Dict[PayloadType, Callable[[str], DecodedPayload]] = {
24
+ PayloadType.PROMPT_TOKEN_IDS: decode_prompt_token_ids,
25
+ PayloadType.LOGPROBS: decode_logprobs,
26
+ PayloadType.ROUTER_REPLAY: decode_router_replay,
27
+ }
28
+
29
+
30
+ def decode_payload(payload_type: PayloadType | str, data_b64: str) -> DecodedPayload:
31
+ """Decode a single payload by type.
32
+
33
+ ``payload_type`` accepts a ``PayloadType`` or its string value, so external
34
+ callers can pass either.
35
+ """
36
+ ptype = PayloadType(payload_type)
37
+ decoder = PAYLOAD_DECODERS.get(ptype)
38
+ if decoder is None:
39
+ raise ValueError(f"No decoder registered for payload type: {ptype!r}")
40
+ return decoder(data_b64)
41
+
42
+
43
+ def decode_payloads(
44
+ payloads: Dict[str, Any],
45
+ *,
46
+ on_error: Optional[OnError] = None,
47
+ ) -> Dict[PayloadType, DecodedPayload]:
48
+ """Master decode: run every registered decoder over a gateway ``payloads`` dict.
49
+
50
+ Args:
51
+ payloads: The ``payloads`` object from a gateway trace (i.e.
52
+ ``trace["payloads"]``), mapping payload-type name -> ``{"manifest", "data"}``.
53
+ on_error: Optional callback ``(payload_type, exc)`` invoked when a present
54
+ payload fails to decode. Defaults to logging a warning. A failure in
55
+ one payload never blocks the others.
56
+
57
+ Returns:
58
+ ``{PayloadType: DecodedPayload}`` for every payload that is present and
59
+ decodes successfully. Only known ``PayloadType`` members are considered,
60
+ so unknown payload types from a newer gateway are ignored rather than
61
+ raising.
62
+ """
63
+ if not isinstance(payloads, dict):
64
+ return {}
65
+
66
+ decoded: Dict[PayloadType, DecodedPayload] = {}
67
+ for ptype, decoder in PAYLOAD_DECODERS.items():
68
+ entry = payloads.get(ptype)
69
+ if not isinstance(entry, dict) or not entry.get("data"):
70
+ continue
71
+ try:
72
+ decoded[ptype] = decoder(entry["data"])
73
+ except Exception as exc: # noqa: BLE001 - isolate per-payload failures
74
+ if on_error is not None:
75
+ on_error(ptype, exc)
76
+ else:
77
+ logger.warning("Failed to decode %s payload: %s", ptype.value, exc)
78
+ return decoded
79
+
80
+
81
+ def decode_trace(
82
+ trace: Dict[str, Any],
83
+ *,
84
+ on_error: Optional[OnError] = None,
85
+ ) -> Dict[PayloadType, DecodedPayload]:
86
+ """Convenience wrapper around :func:`decode_payloads` for a raw trace dict."""
87
+ payloads = trace.get("payloads") if isinstance(trace, dict) else None
88
+ return decode_payloads(payloads or {}, on_error=on_error)
@@ -20,6 +20,8 @@ from typing import Any, Dict, List, Optional, Tuple
20
20
 
21
21
  import zstandard as zstd
22
22
 
23
+ from .types import DecodedPayload, PayloadType
24
+
23
25
  MAGIC = b"R3V1"
24
26
  HEADER_FORMAT = "<4sBBBBIIIIQ"
25
27
  HEADER_SIZE = struct.calcsize(HEADER_FORMAT) # 32 bytes
@@ -185,3 +187,16 @@ def decompress_and_parse_r3(
185
187
  matrices[pos] = base64.b64encode(matrix_bytes[start:end]).decode("ascii")
186
188
 
187
189
  return matrices, metadata
190
+
191
+
192
+ def decode_router_replay(data_b64: str) -> DecodedPayload:
193
+ """Decode a gateway ``payloads.router_replay.data`` blob into a ``DecodedPayload``.
194
+
195
+ ``value`` is the per-token ``List[Optional[str]]`` of base64 routing matrices.
196
+ """
197
+ matrices, metadata = decompress_and_parse_r3(data_b64)
198
+ return DecodedPayload(
199
+ payload_type=PayloadType.ROUTER_REPLAY,
200
+ value=matrices,
201
+ metadata=metadata,
202
+ )
@@ -0,0 +1,41 @@
1
+ """Shared types for the Fireworks tracing-gateway payload decoders."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from dataclasses import dataclass
6
+ from enum import Enum
7
+ from typing import Any, Dict, List, Optional
8
+
9
+
10
+ class PayloadType(str, Enum):
11
+ """Known out-of-band trace payload types emitted by the tracing gateway.
12
+
13
+ Canonical source of truth for payload-type names on the EP side. Mirrors the
14
+ gateway's ``rft_tracing.schemas.PayloadType`` but is defined locally so this
15
+ package has no dependency on the gateway/mono codebase. Being a ``str`` enum,
16
+ members compare and hash equal to their string value, so they can be used
17
+ directly against the gateway's string-keyed ``payloads`` JSON.
18
+ """
19
+
20
+ PROMPT_TOKEN_IDS = "prompt_token_ids"
21
+ LOGPROBS = "logprobs"
22
+ ROUTER_REPLAY = "router_replay"
23
+
24
+
25
+ @dataclass(frozen=True)
26
+ class DecodedPayload:
27
+ """A single decoded gateway payload.
28
+
29
+ ``value`` shape depends on ``payload_type``:
30
+ - ``PROMPT_TOKEN_IDS`` -> ``List[int]``
31
+ - ``LOGPROBS`` -> ``List[float]`` (per completion token); the
32
+ optional per-token ids are in ``token_ids``
33
+ - ``ROUTER_REPLAY`` -> ``List[Optional[str]]`` (per-token base64 routing
34
+ matrices, ``None`` where absent)
35
+ """
36
+
37
+ payload_type: PayloadType
38
+ value: Any
39
+ metadata: Dict[str, Any]
40
+ # LOGPROBS only: per-completion-token ids, or None if any were missing.
41
+ token_ids: Optional[List[int]] = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eval-protocol
3
- Version: 0.3.30
3
+ Version: 0.3.32
4
4
  Summary: The official Python SDK for Eval Protocol (EP.) EP is an open protocol that standardizes how developers author evals for large language model (LLM) applications.
5
5
  Author-email: Fireworks AI <info@fireworks.ai>
6
6
  License-Expression: MIT
@@ -263,6 +263,12 @@ eval_protocol/rewards/repetition.py
263
263
  eval_protocol/rewards/tag_count.py
264
264
  eval_protocol/stats/__init__.py
265
265
  eval_protocol/stats/confidence_intervals.py
266
+ eval_protocol/tracing/__init__.py
267
+ eval_protocol/tracing/logprobs.py
268
+ eval_protocol/tracing/prompt_token_ids.py
269
+ eval_protocol/tracing/registry.py
270
+ eval_protocol/tracing/router_replay.py
271
+ eval_protocol/tracing/types.py
266
272
  eval_protocol/training/__init__.py
267
273
  eval_protocol/training/gepa_trainer.py
268
274
  eval_protocol/training/gepa_utils.py