eval-protocol 0.3.31__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.
- {eval_protocol-0.3.31/eval_protocol.egg-info → eval_protocol-0.3.32}/PKG-INFO +1 -1
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/_version.py +3 -3
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/integrations/fireworks_v1_completions_client.py +37 -22
- {eval_protocol-0.3.31 → eval_protocol-0.3.32/eval_protocol.egg-info}/PKG-INFO +1 -1
- eval_protocol-0.3.32/tests/test_fireworks_v1_completions_client.py +309 -0
- eval_protocol-0.3.31/tests/test_fireworks_v1_completions_client.py +0 -146
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/LICENSE +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/README.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/development/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/development/normalize_sandbox_fusion.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/development/utils/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/development/utils/generate_api_key.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/development/utils/subprocess_manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/__main__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/base.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/bigquery.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/braintrust.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/dataframe.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/fireworks_tracing.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/huggingface.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/langchain.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/langfuse.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/langsmith.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/lp_deserializer.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/openai_responses.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/r3_deserializer.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/trl.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/adapters/weave.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/models.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/orchestrator.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resource_abc.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resource_pool.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/gorilla_file_system.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/math_api.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/posting_api.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_sim_api_resource.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/docker_resource.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/filesystem_resource.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/python_state_resource.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/sql_resource.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/task_manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/tool_registry.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/auth.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/data/airline_dataset.jsonl +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/data/retail_dataset.jsonl +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_aime25.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_frozen_lake.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_glm_streaming_compliance.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_gpqa.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_livebench_data_analysis.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_tau_bench_airline.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/benchmarks/test_tau_bench_retail.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/agent_eval_cmd.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/common.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/create_rft.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/export_docs.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/local_test.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/logs.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/run_eval_cmd.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/upload.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/cli_commands/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/common_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/config.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/data_loader/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/data_loader/dynamic_data_loader.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/data_loader/factory_data_loader.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/data_loader/inline_data_loader.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/data_loader/jsonl_data_loader.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/data_loader/models.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/dataset_logger.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/local_fs_dataset_logger_adapter.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/sqlite_dataset_logger_adapter.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/dataset_logger/sqlite_evaluation_row_store.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/datasets/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/datasets/loader.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/directory_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/evaluation.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/event_bus/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/event_bus/event_bus.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/event_bus/logger.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/event_bus/sqlite_event_bus.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/event_bus/sqlite_event_bus_database.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/exceptions.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/execution/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/execution/pipeline.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/fireworks_rft.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/gcp_tools.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/generation/cache.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/generation/clients/base.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/generation/clients.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/generic_server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/get_pep440_version.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/human_id/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/human_id/dictionary.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/integrations/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/integrations/deepeval.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/integrations/openai_rft.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/integrations/openeval.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/integrations/tinker_cookbook.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/integrations/tinker_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/integrations/trl.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/log_utils/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/log_utils/elasticsearch_client.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/log_utils/elasticsearch_direct_http_handler.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/log_utils/elasticsearch_index_manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/log_utils/fireworks_tracing_http_handler.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/log_utils/init.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/log_utils/rollout_context.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/log_utils/rollout_id_filter.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/log_utils/util.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/logging_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/adapter.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/client/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/client/connection.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/clients.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/base_policy.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/policy.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/execution/vllm_policy.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/grid_renderer.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/mcp_multi_client.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/mcpgym.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/process_manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/session/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/session/manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/simple_process_manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp/simulation_server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/config.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/main.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/orchestration/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/orchestration/base_client.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/orchestration/local_docker_client.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_agent/orchestration/stdio_mcp_client_helper.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_env.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/frozen_lake/frozen_lake_adapter.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/frozen_lake/frozen_lake_mcp.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/frozen_lake/server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/README.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/airplane_environment/airline_environment.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/mock_environment/mock_environment.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/retail_environment/retail_environment.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tau2_mcp.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tests/system_prompts/airline_agent_system_prompt.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tests/system_prompts/mock_agent_system_prompt.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tests/system_prompts/retail_agent_system_prompt.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/mcp_servers/tau2/tests/test_tau2_e2e.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/models.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/packaging.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/platform_api.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/playback_policy.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/proxy/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/app.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/auth.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/langfuse.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/litellm.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/main.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/models.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/proxy/proxy_core/redis_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/buffer.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/default_agent_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/default_dataset_adapter.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/default_klavis_sandbox_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/default_langchain_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/default_mcp_gym_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/default_no_op_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/default_pydantic_ai_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/default_single_turn_rollout_process.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/dual_mode_wrapper.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/elasticsearch_setup.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/evaluation_test.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/evaluation_test_postprocess.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/evaluation_test_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/exception_config.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/execution.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/generate_parameter_combinations.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/github_action_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/handle_persist_flow.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/integrations/openenv_trl_vllm.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/openenv_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/parameterize.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/plugin.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/priority_scheduler.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/remote_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/rollout_result_post_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/store_experiment_link.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/store_results_url.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/tracing_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/types.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/pytest/validate_signature.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge_braintrust.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge_langfuse.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge_langsmith.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/llm_judge_openai_responses.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/aha_judge/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/llm_judge.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/llm_judge_braintrust.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/svg_agent/evaluator/test_svgagent.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/svg_agent/evaluator/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/svg_agent/vercel_svg_server/api/init.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/quickstart/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/resources.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/reward_function.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/accuracy.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/accuracy_length.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/apps_coding_reward.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/apps_execution_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/apps_testing_util.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/bfcl_reward.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/code_execution.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/code_execution_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/cpp_code.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/deepcoder_reward.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/format.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/function_calling.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/json_schema.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/language_consistency.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/lean_prover.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/length.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/list_comparison_math_reward.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/math.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/multiple_choice_math_reward.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/reasoning_steps.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/repetition.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rewards/tag_count.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/rl_processing.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/stats/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/stats/confidence_intervals.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/tracing/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/tracing/logprobs.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/tracing/prompt_token_ids.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/tracing/registry.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/tracing/router_replay.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/tracing/types.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/training/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/training/gepa_trainer.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/training/gepa_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/training/trainer.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/training/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/typed_interface.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/types/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/types/errors.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/types/remote_rollout_processor.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/types/types.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/batch_evaluation.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/batch_transformation.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/browser_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/check_server_status.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/dataset_helpers.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/evaluation_row_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/logs_models.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/logs_server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/module_loader.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/packaging_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/show_results_url.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/static_policy.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/subprocess_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/utils/vite_server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol.egg-info/SOURCES.txt +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol.egg-info/dependency_links.txt +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol.egg-info/entry_points.txt +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol.egg-info/requires.txt +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol.egg-info/top_level.txt +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/pyproject.toml +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/setup.cfg +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/setup.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_accuracy.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_accuracy_length.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_adapters_e2e.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_agent_orchestrator.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_agent_resources.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_auth.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_batch_evaluation.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_cli_agent.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_cli_args.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_cli_create_rft.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_cli_local_test.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_cli_startup_benchmark.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_code_execution.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_config.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_control_plane_separation.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_cpp_code.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_data_driven_task_manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_deepcoder_reward.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_deepeval_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_directory_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_e2b_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_e2b_js_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_edge_cases.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_ep_upload_e2e.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_eval_protocol_import.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_evaluation.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_evaluation_postprocess.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_event_bus.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_event_bus_helper.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_examples_end_to_end.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_exception_config.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_exceptions.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_fireworks_api.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_format.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_fractional_code.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_function_calling.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_gcp_tools.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_generic_server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_human_id.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_json_schema.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_kwargs_validation.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_language_consistency.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_lean_prover.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_lean_prover_runner.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_length.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_list_comparison_math_reward.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_litellm_policy_provider_fields.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_logs_server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_logs_server_simple.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_math.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_message_field_filtering.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_minimal.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_models.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_models_rl.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_multiple_choice_math_reward.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_n_variant_batch_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_n_variant_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_no_implicit_dotenv.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_openai_compatibility.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_openai_rft_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_openeval_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_packaging.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_parallel_rollouts.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_platform_api.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_priority_scheduler.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_quickstart_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_readiness.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_reasoning_steps.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_repetition.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_repetition_debug.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_retry_mechanism.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_reward_function.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_reward_protocol_import.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_rl_processing.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_rollout_control_plane_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_rollout_logprobs.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_show_results_url.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_sqlite_hardening.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_status_migration_changes.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_status_migration_integration.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_status_model.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_tag_count.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_tau_bench_airline_smoke.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_training_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_typed_interface.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_typed_interface_rl.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_upload_entrypoint.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_url_handling.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/tests/test_vite_server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/agent/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/agent/base.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/agent/llm_agent.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/api_service/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/api_service/api_config.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/api_service/data_model.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/api_service/simulation_service.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/cli.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/config.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/domains/airline/policy.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/domains/mock/policy.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/domains/mock/policy_solo.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/domains/retail/policy.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/main_policy.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/main_policy_solo.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/tech_support_manual.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/tech_support_workflow.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/domains/telecom/tech_support_workflow_solo.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/user_simulator/simulation_guidelines.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data/user_simulator/simulation_guidelines_tools.md +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data_model/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data_model/message.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data_model/simulation.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/data_model/tasks.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/data_model.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/environment.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/tools.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/airline/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/data_model.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/environment.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/tools.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/mock/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/data_model.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/environment.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/tools.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/retail/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/data_model.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/environment.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/const.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/create_tasks.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/mms_issues.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/mobile_data_issues.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/service_issues.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tasks/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/tools.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/user_data_model.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/user_tools.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/domains/telecom/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/environment/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/environment/db.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/environment/environment.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/environment/server.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/environment/tool.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/environment/toolkit.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/environment/utils/interface_agent.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/evaluator/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_action.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_base.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_communicate.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_env.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/evaluator/evaluator_nl_assertions.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/metrics/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/metrics/agent_metrics.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/metrics/break_down_metrics.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/orchestrator/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/orchestrator/environment_manager.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/orchestrator/orchestrator.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/orchestrator/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/registry.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/run.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/scripts/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/scripts/check_data.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/scripts/show_domain_doc.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/scripts/start_servers.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/scripts/view_simulations.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/user/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/user/base.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/user/user_simulator.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/utils/__init__.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/utils/display.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/utils/io_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/utils/llm_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/utils/pydantic_utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vendor/tau2/utils/utils.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/versioneer.py +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vite-app/dist/assets/favicon-BkAAWQga.png +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vite-app/dist/assets/index-DFeF7AG_.js +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vite-app/dist/assets/index-DFeF7AG_.js.map +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vite-app/dist/assets/index-DvKW7FQL.css +0 -0
- {eval_protocol-0.3.31 → eval_protocol-0.3.32}/vite-app/dist/assets/logo-light-BprIBJQW.png +0 -0
- {eval_protocol-0.3.31 → 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.
|
|
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-
|
|
11
|
+
"date": "2026-07-06T12:57:04-0700",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "0.3.
|
|
14
|
+
"full-revisionid": "2c0867156a720cf218a101dd37e51f4d4861ae00",
|
|
15
|
+
"version": "0.3.32"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -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:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: eval-protocol
|
|
3
|
-
Version: 0.3.
|
|
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
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
from typing import Any, Dict, List, Optional
|
|
3
|
+
|
|
4
|
+
import pytest
|
|
5
|
+
|
|
6
|
+
from eval_protocol.integrations.fireworks_v1_completions_client import (
|
|
7
|
+
FireworksV1CompletionsClient,
|
|
8
|
+
ParsedToolCall,
|
|
9
|
+
to_openai_tool_calls,
|
|
10
|
+
strip_chat_special_tokens,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def test_parsed_tool_call_to_openai_format():
|
|
15
|
+
tc = ParsedToolCall(tool_call_id="call_1", name="lake_move", arguments={"action": "RIGHT"})
|
|
16
|
+
payload = to_openai_tool_calls(tc)
|
|
17
|
+
assert len(payload) == 1
|
|
18
|
+
assert payload[0]["function"]["name"] == "lake_move"
|
|
19
|
+
assert '"action":"RIGHT"' in payload[0]["function"]["arguments"]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def test_strip_chat_special_tokens():
|
|
23
|
+
assert strip_chat_special_tokens("<|im_start|>assistant\nhello<|im_end|>") == "assistant\nhello"
|
|
24
|
+
assert strip_chat_special_tokens("") == ""
|
|
25
|
+
assert strip_chat_special_tokens(None) == ""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def test_tool_call_parser_is_invoked():
|
|
29
|
+
"""When a tool_call_parser is provided, create_completion_from_prompt_ids uses it."""
|
|
30
|
+
|
|
31
|
+
def fake_parser(
|
|
32
|
+
text: str, ids: List[int], tools: Optional[List[Dict[str, Any]]]
|
|
33
|
+
) -> Dict[str, Any]:
|
|
34
|
+
return {
|
|
35
|
+
"parsed_tool_call": ParsedToolCall(
|
|
36
|
+
tool_call_id="call_0", name="test_tool", arguments={"x": 1}
|
|
37
|
+
),
|
|
38
|
+
"assistant_content": "thought",
|
|
39
|
+
"parser": "fake",
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
client = FireworksV1CompletionsClient(
|
|
43
|
+
model_id="test-model",
|
|
44
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
45
|
+
tool_call_parser=fake_parser,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
result = fake_parser("some text", [1, 2], None)
|
|
49
|
+
assert result["parsed_tool_call"].name == "test_tool"
|
|
50
|
+
assert result["assistant_content"] == "thought"
|
|
51
|
+
asyncio.run(client.close())
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def test_no_parser_returns_raw_content():
|
|
55
|
+
"""When no tool_call_parser is provided, message contains raw content."""
|
|
56
|
+
client = FireworksV1CompletionsClient(
|
|
57
|
+
model_id="test-model",
|
|
58
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
59
|
+
)
|
|
60
|
+
assert client.tool_call_parser is None
|
|
61
|
+
asyncio.run(client.close())
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def test_default_tools_not_used_when_tools_is_empty_list():
|
|
65
|
+
"""Passing tools=[] should not fall back to default_tools."""
|
|
66
|
+
client = FireworksV1CompletionsClient(
|
|
67
|
+
model_id="test-model",
|
|
68
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
69
|
+
default_tools=[{"type": "function", "function": {"name": "my_tool"}}],
|
|
70
|
+
)
|
|
71
|
+
assert client.default_tools == [{"type": "function", "function": {"name": "my_tool"}}]
|
|
72
|
+
asyncio.run(client.close())
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def test_build_prompt_token_ids_retries_without_tools(monkeypatch):
|
|
76
|
+
client = FireworksV1CompletionsClient(
|
|
77
|
+
model_id="accounts/fireworks/models/qwen3-0p6b",
|
|
78
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
class FakeTokenizer:
|
|
82
|
+
def __init__(self):
|
|
83
|
+
self.calls = []
|
|
84
|
+
|
|
85
|
+
def apply_chat_template(self, messages, **kwargs):
|
|
86
|
+
self.calls.append(kwargs)
|
|
87
|
+
if "tools" in kwargs:
|
|
88
|
+
raise RuntimeError("tools unsupported")
|
|
89
|
+
return [11, 22, 33]
|
|
90
|
+
|
|
91
|
+
def encode(self, text, add_special_tokens=False):
|
|
92
|
+
return [99]
|
|
93
|
+
|
|
94
|
+
fake_tokenizer = FakeTokenizer()
|
|
95
|
+
monkeypatch.setattr(client, "_get_tokenizer", lambda: fake_tokenizer)
|
|
96
|
+
token_ids = client._build_prompt_token_ids(
|
|
97
|
+
messages=[{"role": "user", "content": "hello"}],
|
|
98
|
+
tools=[{"type": "function", "function": {"name": "lake_move"}}],
|
|
99
|
+
)
|
|
100
|
+
assert token_ids == [11, 22, 33]
|
|
101
|
+
assert len(fake_tokenizer.calls) == 2
|
|
102
|
+
asyncio.run(client.close())
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def test_build_prompt_token_ids_handles_dict_input_ids(monkeypatch):
|
|
106
|
+
client = FireworksV1CompletionsClient(
|
|
107
|
+
model_id="accounts/fireworks/models/qwen3-0p6b",
|
|
108
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
class FakeTokenizer:
|
|
112
|
+
def apply_chat_template(self, messages, **kwargs):
|
|
113
|
+
return {"input_ids": [[101, 102, 103]]}
|
|
114
|
+
|
|
115
|
+
def encode(self, text, add_special_tokens=False):
|
|
116
|
+
return [99]
|
|
117
|
+
|
|
118
|
+
monkeypatch.setattr(client, "_get_tokenizer", lambda: FakeTokenizer())
|
|
119
|
+
token_ids = client._build_prompt_token_ids(
|
|
120
|
+
messages=[{"role": "user", "content": "hello"}],
|
|
121
|
+
tools=None,
|
|
122
|
+
)
|
|
123
|
+
assert token_ids == [101, 102, 103]
|
|
124
|
+
asyncio.run(client.close())
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class _FakeResponse:
|
|
128
|
+
def __init__(self, payload: Dict[str, Any]):
|
|
129
|
+
self._payload = payload
|
|
130
|
+
|
|
131
|
+
def model_dump(self) -> Dict[str, Any]:
|
|
132
|
+
return self._payload
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def _install_fake_completion(client, monkeypatch, payload):
|
|
136
|
+
captured: Dict[str, Any] = {}
|
|
137
|
+
|
|
138
|
+
async def fake_create(**kwargs):
|
|
139
|
+
captured.update(kwargs)
|
|
140
|
+
return _FakeResponse(payload)
|
|
141
|
+
|
|
142
|
+
class _FakeCompletions:
|
|
143
|
+
create = staticmethod(fake_create)
|
|
144
|
+
|
|
145
|
+
class _FakeClient:
|
|
146
|
+
completions = _FakeCompletions()
|
|
147
|
+
|
|
148
|
+
async def close(self):
|
|
149
|
+
return None
|
|
150
|
+
|
|
151
|
+
monkeypatch.setattr(client, "_client", _FakeClient())
|
|
152
|
+
return captured
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def test_reads_ids_and_sampling_logprobs_from_content(monkeypatch):
|
|
156
|
+
client = FireworksV1CompletionsClient(
|
|
157
|
+
model_id="test-model",
|
|
158
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
159
|
+
)
|
|
160
|
+
monkeypatch.setattr(client, "decode_token_ids", lambda token_ids: "text")
|
|
161
|
+
|
|
162
|
+
def _fail_tokenizer():
|
|
163
|
+
raise AssertionError("tokenizer must not be used to re-encode completion text")
|
|
164
|
+
|
|
165
|
+
monkeypatch.setattr(client, "_get_tokenizer", lambda: _fail_tokenizer())
|
|
166
|
+
captured = _install_fake_completion(
|
|
167
|
+
client,
|
|
168
|
+
monkeypatch,
|
|
169
|
+
{
|
|
170
|
+
"choices": [
|
|
171
|
+
{
|
|
172
|
+
"finish_reason": "stop",
|
|
173
|
+
"logprobs": {
|
|
174
|
+
"content": [
|
|
175
|
+
{"token_id": 271, "sampling_logprob": -0.05483185, "logprob": -0.0548313},
|
|
176
|
+
{"token_id": 248068, "sampling_logprob": -0.0014, "logprob": -0.0014},
|
|
177
|
+
{"token_id": 26108, "sampling_logprob": -1.0, "logprob": -0.99},
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
)
|
|
184
|
+
result = asyncio.run(client.create_completion_from_prompt_ids(prompt_token_ids=[1, 2]))
|
|
185
|
+
assert "return_token_ids" not in captured
|
|
186
|
+
assert result["completion_ids"] == [271, 248068, 26108]
|
|
187
|
+
assert result["completion_logprobs"] == pytest.approx([-0.05483185, -0.0014, -1.0])
|
|
188
|
+
assert len(result["completion_ids"]) == len(result["completion_logprobs"])
|
|
189
|
+
asyncio.run(client.close())
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
def test_raises_when_content_entry_missing_sampling_logprob(monkeypatch):
|
|
193
|
+
client = FireworksV1CompletionsClient(
|
|
194
|
+
model_id="test-model",
|
|
195
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
196
|
+
)
|
|
197
|
+
monkeypatch.setattr(client, "decode_token_ids", lambda token_ids: "text")
|
|
198
|
+
_install_fake_completion(
|
|
199
|
+
client,
|
|
200
|
+
monkeypatch,
|
|
201
|
+
{
|
|
202
|
+
"choices": [
|
|
203
|
+
{
|
|
204
|
+
"finish_reason": "stop",
|
|
205
|
+
"logprobs": {
|
|
206
|
+
"content": [
|
|
207
|
+
{"token_id": 1, "sampling_logprob": -0.1},
|
|
208
|
+
{"token_id": 2, "logprob": -0.2},
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
},
|
|
214
|
+
)
|
|
215
|
+
with pytest.raises(RuntimeError, match="missing .*sampling_logprob"):
|
|
216
|
+
asyncio.run(client.create_completion_from_prompt_ids(prompt_token_ids=[1]))
|
|
217
|
+
asyncio.run(client.close())
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
def test_raises_when_no_content_logprobs(monkeypatch):
|
|
221
|
+
client = FireworksV1CompletionsClient(
|
|
222
|
+
model_id="test-model",
|
|
223
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
224
|
+
)
|
|
225
|
+
_install_fake_completion(
|
|
226
|
+
client,
|
|
227
|
+
monkeypatch,
|
|
228
|
+
{"choices": [{"text": "hello world", "finish_reason": "stop"}]},
|
|
229
|
+
)
|
|
230
|
+
with pytest.raises(RuntimeError, match="no content\\[\\] logprobs entries"):
|
|
231
|
+
asyncio.run(client.create_completion_from_prompt_ids(prompt_token_ids=[1, 2]))
|
|
232
|
+
asyncio.run(client.close())
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def test_ignores_legacy_token_logprobs_shape(monkeypatch):
|
|
236
|
+
"""The legacy token_logprobs shape has no content[]; the client must not use it."""
|
|
237
|
+
client = FireworksV1CompletionsClient(
|
|
238
|
+
model_id="test-model",
|
|
239
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
240
|
+
)
|
|
241
|
+
_install_fake_completion(
|
|
242
|
+
client,
|
|
243
|
+
monkeypatch,
|
|
244
|
+
{
|
|
245
|
+
"choices": [
|
|
246
|
+
{
|
|
247
|
+
"finish_reason": "stop",
|
|
248
|
+
"token_ids": [1, 2, 3],
|
|
249
|
+
"logprobs": {
|
|
250
|
+
"token_ids": [1, 2, 3],
|
|
251
|
+
"token_logprobs": [-0.1, -0.2, -0.3],
|
|
252
|
+
},
|
|
253
|
+
}
|
|
254
|
+
],
|
|
255
|
+
},
|
|
256
|
+
)
|
|
257
|
+
with pytest.raises(RuntimeError, match="no content\\[\\] logprobs entries"):
|
|
258
|
+
asyncio.run(client.create_completion_from_prompt_ids(prompt_token_ids=[1]))
|
|
259
|
+
asyncio.run(client.close())
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
def test_raises_when_content_entry_missing_token_id(monkeypatch):
|
|
263
|
+
client = FireworksV1CompletionsClient(
|
|
264
|
+
model_id="test-model",
|
|
265
|
+
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
266
|
+
)
|
|
267
|
+
monkeypatch.setattr(client, "decode_token_ids", lambda token_ids: "text")
|
|
268
|
+
_install_fake_completion(
|
|
269
|
+
client,
|
|
270
|
+
monkeypatch,
|
|
271
|
+
{
|
|
272
|
+
"choices": [
|
|
273
|
+
{
|
|
274
|
+
"finish_reason": "stop",
|
|
275
|
+
"logprobs": {
|
|
276
|
+
"content": [
|
|
277
|
+
{"token_id": 1, "sampling_logprob": -0.1},
|
|
278
|
+
{"sampling_logprob": -0.2},
|
|
279
|
+
]
|
|
280
|
+
},
|
|
281
|
+
}
|
|
282
|
+
],
|
|
283
|
+
},
|
|
284
|
+
)
|
|
285
|
+
with pytest.raises(RuntimeError, match="missing token_id"):
|
|
286
|
+
asyncio.run(client.create_completion_from_prompt_ids(prompt_token_ids=[1]))
|
|
287
|
+
asyncio.run(client.close())
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
def test_thinking_kwargs_respects_enable_thinking():
|
|
291
|
+
client_none = FireworksV1CompletionsClient(
|
|
292
|
+
model_id="test", tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
293
|
+
)
|
|
294
|
+
assert client_none._thinking_kwargs() == {}
|
|
295
|
+
|
|
296
|
+
client_false = FireworksV1CompletionsClient(
|
|
297
|
+
model_id="test", tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
298
|
+
enable_thinking=False,
|
|
299
|
+
)
|
|
300
|
+
assert client_false._thinking_kwargs() == {"enable_thinking": False}
|
|
301
|
+
|
|
302
|
+
client_true = FireworksV1CompletionsClient(
|
|
303
|
+
model_id="test", tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
304
|
+
enable_thinking=True,
|
|
305
|
+
)
|
|
306
|
+
assert client_true._thinking_kwargs() == {"enable_thinking": True}
|
|
307
|
+
asyncio.run(client_none.close())
|
|
308
|
+
asyncio.run(client_false.close())
|
|
309
|
+
asyncio.run(client_true.close())
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
from typing import Any, Dict, List, Optional
|
|
3
|
-
|
|
4
|
-
import pytest
|
|
5
|
-
|
|
6
|
-
from eval_protocol.integrations.fireworks_v1_completions_client import (
|
|
7
|
-
FireworksV1CompletionsClient,
|
|
8
|
-
ParsedToolCall,
|
|
9
|
-
to_openai_tool_calls,
|
|
10
|
-
strip_chat_special_tokens,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def test_parsed_tool_call_to_openai_format():
|
|
15
|
-
tc = ParsedToolCall(tool_call_id="call_1", name="lake_move", arguments={"action": "RIGHT"})
|
|
16
|
-
payload = to_openai_tool_calls(tc)
|
|
17
|
-
assert len(payload) == 1
|
|
18
|
-
assert payload[0]["function"]["name"] == "lake_move"
|
|
19
|
-
assert '"action":"RIGHT"' in payload[0]["function"]["arguments"]
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def test_strip_chat_special_tokens():
|
|
23
|
-
assert strip_chat_special_tokens("<|im_start|>assistant\nhello<|im_end|>") == "assistant\nhello"
|
|
24
|
-
assert strip_chat_special_tokens("") == ""
|
|
25
|
-
assert strip_chat_special_tokens(None) == ""
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
def test_tool_call_parser_is_invoked():
|
|
29
|
-
"""When a tool_call_parser is provided, create_completion_from_prompt_ids uses it."""
|
|
30
|
-
|
|
31
|
-
def fake_parser(
|
|
32
|
-
text: str, ids: List[int], tools: Optional[List[Dict[str, Any]]]
|
|
33
|
-
) -> Dict[str, Any]:
|
|
34
|
-
return {
|
|
35
|
-
"parsed_tool_call": ParsedToolCall(
|
|
36
|
-
tool_call_id="call_0", name="test_tool", arguments={"x": 1}
|
|
37
|
-
),
|
|
38
|
-
"assistant_content": "thought",
|
|
39
|
-
"parser": "fake",
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
client = FireworksV1CompletionsClient(
|
|
43
|
-
model_id="test-model",
|
|
44
|
-
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
45
|
-
tool_call_parser=fake_parser,
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
result = fake_parser("some text", [1, 2], None)
|
|
49
|
-
assert result["parsed_tool_call"].name == "test_tool"
|
|
50
|
-
assert result["assistant_content"] == "thought"
|
|
51
|
-
asyncio.run(client.close())
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
def test_no_parser_returns_raw_content():
|
|
55
|
-
"""When no tool_call_parser is provided, message contains raw content."""
|
|
56
|
-
client = FireworksV1CompletionsClient(
|
|
57
|
-
model_id="test-model",
|
|
58
|
-
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
59
|
-
)
|
|
60
|
-
assert client.tool_call_parser is None
|
|
61
|
-
asyncio.run(client.close())
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def test_default_tools_not_used_when_tools_is_empty_list():
|
|
65
|
-
"""Passing tools=[] should not fall back to default_tools."""
|
|
66
|
-
client = FireworksV1CompletionsClient(
|
|
67
|
-
model_id="test-model",
|
|
68
|
-
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
69
|
-
default_tools=[{"type": "function", "function": {"name": "my_tool"}}],
|
|
70
|
-
)
|
|
71
|
-
assert client.default_tools == [{"type": "function", "function": {"name": "my_tool"}}]
|
|
72
|
-
asyncio.run(client.close())
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def test_build_prompt_token_ids_retries_without_tools(monkeypatch):
|
|
76
|
-
client = FireworksV1CompletionsClient(
|
|
77
|
-
model_id="accounts/fireworks/models/qwen3-0p6b",
|
|
78
|
-
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
79
|
-
)
|
|
80
|
-
|
|
81
|
-
class FakeTokenizer:
|
|
82
|
-
def __init__(self):
|
|
83
|
-
self.calls = []
|
|
84
|
-
|
|
85
|
-
def apply_chat_template(self, messages, **kwargs):
|
|
86
|
-
self.calls.append(kwargs)
|
|
87
|
-
if "tools" in kwargs:
|
|
88
|
-
raise RuntimeError("tools unsupported")
|
|
89
|
-
return [11, 22, 33]
|
|
90
|
-
|
|
91
|
-
def encode(self, text, add_special_tokens=False):
|
|
92
|
-
return [99]
|
|
93
|
-
|
|
94
|
-
fake_tokenizer = FakeTokenizer()
|
|
95
|
-
monkeypatch.setattr(client, "_get_tokenizer", lambda: fake_tokenizer)
|
|
96
|
-
token_ids = client._build_prompt_token_ids(
|
|
97
|
-
messages=[{"role": "user", "content": "hello"}],
|
|
98
|
-
tools=[{"type": "function", "function": {"name": "lake_move"}}],
|
|
99
|
-
)
|
|
100
|
-
assert token_ids == [11, 22, 33]
|
|
101
|
-
assert len(fake_tokenizer.calls) == 2
|
|
102
|
-
asyncio.run(client.close())
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
def test_build_prompt_token_ids_handles_dict_input_ids(monkeypatch):
|
|
106
|
-
client = FireworksV1CompletionsClient(
|
|
107
|
-
model_id="accounts/fireworks/models/qwen3-0p6b",
|
|
108
|
-
tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
109
|
-
)
|
|
110
|
-
|
|
111
|
-
class FakeTokenizer:
|
|
112
|
-
def apply_chat_template(self, messages, **kwargs):
|
|
113
|
-
return {"input_ids": [[101, 102, 103]]}
|
|
114
|
-
|
|
115
|
-
def encode(self, text, add_special_tokens=False):
|
|
116
|
-
return [99]
|
|
117
|
-
|
|
118
|
-
monkeypatch.setattr(client, "_get_tokenizer", lambda: FakeTokenizer())
|
|
119
|
-
token_ids = client._build_prompt_token_ids(
|
|
120
|
-
messages=[{"role": "user", "content": "hello"}],
|
|
121
|
-
tools=None,
|
|
122
|
-
)
|
|
123
|
-
assert token_ids == [101, 102, 103]
|
|
124
|
-
asyncio.run(client.close())
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
def test_thinking_kwargs_respects_enable_thinking():
|
|
128
|
-
client_none = FireworksV1CompletionsClient(
|
|
129
|
-
model_id="test", tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
130
|
-
)
|
|
131
|
-
assert client_none._thinking_kwargs() == {}
|
|
132
|
-
|
|
133
|
-
client_false = FireworksV1CompletionsClient(
|
|
134
|
-
model_id="test", tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
135
|
-
enable_thinking=False,
|
|
136
|
-
)
|
|
137
|
-
assert client_false._thinking_kwargs() == {"enable_thinking": False}
|
|
138
|
-
|
|
139
|
-
client_true = FireworksV1CompletionsClient(
|
|
140
|
-
model_id="test", tokenizer_name_or_path="Qwen/Qwen3-0.6B",
|
|
141
|
-
enable_thinking=True,
|
|
142
|
-
)
|
|
143
|
-
assert client_true._thinking_kwargs() == {"enable_thinking": True}
|
|
144
|
-
asyncio.run(client_none.close())
|
|
145
|
-
asyncio.run(client_false.close())
|
|
146
|
-
asyncio.run(client_true.close())
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/math_api.py
RENAMED
|
File without changes
|
{eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_envs/posting_api.py
RENAMED
|
File without changes
|
{eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/bfcl_sim_api_resource.py
RENAMED
|
File without changes
|
{eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/docker_resource.py
RENAMED
|
File without changes
|
{eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/filesystem_resource.py
RENAMED
|
File without changes
|
{eval_protocol-0.3.31 → eval_protocol-0.3.32}/eval_protocol/agent/resources/python_state_resource.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|