verifiers 0.1.15.dev164__tar.gz → 0.1.15.dev165__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 (324) hide show
  1. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/PKG-INFO +1 -1
  2. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_composable_env.py +7 -12
  3. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/__init__.py +4 -2
  4. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +54 -15
  5. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/opencode.py +4 -21
  6. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/.gitignore +0 -0
  7. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/LICENSE +0 -0
  8. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/README.md +0 -0
  9. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/pyproject.toml +0 -0
  10. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/AGENTS.md +0 -0
  11. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/README.md +0 -0
  12. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/__init__.py +0 -0
  13. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/conftest.py +0 -0
  14. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_browser_env.py +0 -0
  15. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_build_script.py +0 -0
  16. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_cli_agent_env.py +0 -0
  17. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_client_auth_errors.py +0 -0
  18. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_client_config.py +0 -0
  19. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_client_multimodal_types.py +0 -0
  20. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_context_token_metrics.py +0 -0
  21. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_decorator_ranks.py +0 -0
  22. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_endpoint_registry.py +0 -0
  23. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_env_group.py +0 -0
  24. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_env_server.py +0 -0
  25. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_environment.py +0 -0
  26. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_environment_extra.py +0 -0
  27. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_envs.py +0 -0
  28. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_error_chain.py +0 -0
  29. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_eval_cli.py +0 -0
  30. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_eval_display.py +0 -0
  31. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_eval_utils.py +0 -0
  32. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_gepa_cli.py +0 -0
  33. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_gepa_utils.py +0 -0
  34. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_gym_env.py +0 -0
  35. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_harbor_env_mcp.py +0 -0
  36. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_imports.py +0 -0
  37. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_init_script.py +0 -0
  38. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_install_utils.py +0 -0
  39. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_interception_utils.py +0 -0
  40. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_langchain_deep_agents_wikispeedia.py +0 -0
  41. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_lean_task.py +0 -0
  42. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_logging.py +0 -0
  43. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_math_rubric.py +0 -0
  44. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_maybe_think_parser.py +0 -0
  45. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_mcp_search_env.py +0 -0
  46. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_message_utils.py +0 -0
  47. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_message_utils_multimodal.py +0 -0
  48. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_multiturn_env.py +0 -0
  49. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_nemorl_client.py +0 -0
  50. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_openai_chat_completions_token_client.py +0 -0
  51. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_openai_responses_client.py +0 -0
  52. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_opencode_harbor.py +0 -0
  53. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_opencode_rlm_env.py +0 -0
  54. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_openenv_client.py +0 -0
  55. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_parser.py +0 -0
  56. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_path_utils.py +0 -0
  57. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_per_turn_timing.py +0 -0
  58. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_pricing_utils.py +0 -0
  59. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_prime_plugin.py +0 -0
  60. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_renderer_client.py +0 -0
  61. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_renderer_e2e.py +0 -0
  62. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_rlm_composable_env.py +0 -0
  63. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_rubric.py +0 -0
  64. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_rubric_group.py +0 -0
  65. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_sandbox_env.py +0 -0
  66. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_sandbox_mixin.py +0 -0
  67. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_save_utils.py +0 -0
  68. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_setup_script.py +0 -0
  69. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_singleturn_env.py +0 -0
  70. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_stateful_tool_env.py +0 -0
  71. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_think_parser.py +0 -0
  72. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_tool_env.py +0 -0
  73. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_tool_utils.py +0 -0
  74. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_trajectory_processing.py +0 -0
  75. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_tui_info_formatting.py +0 -0
  76. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_types.py +0 -0
  77. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_bfcl.py +0 -0
  78. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_config_extension.py +0 -0
  79. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_empty_completions.py +0 -0
  80. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_endpoint_protocols.py +0 -0
  81. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_example_counts.py +0 -0
  82. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_group_reward_env.py +0 -0
  83. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_harbor_cli.py +0 -0
  84. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_mini_swe_agent.py +0 -0
  85. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_nemo_gym_harness.py +0 -0
  86. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_openenv_taskset.py +0 -0
  87. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_openreward_taskset.py +0 -0
  88. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_replay_harness.py +0 -0
  89. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_rlm_swe.py +0 -0
  90. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_runtime_lifecycle.py +0 -0
  91. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_scoring_functions.py +0 -0
  92. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_taskset_bindings.py +0 -0
  93. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_taskset_utils.py +0 -0
  94. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_v1_textarena_taskset.py +0 -0
  95. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_wiki_search_v1.py +0 -0
  96. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_wordle_env.py +0 -0
  97. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_wordle_v1_env.py +0 -0
  98. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/tests/test_xml_parser.py +0 -0
  99. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/AGENTS.md +0 -0
  100. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/__init__.py +0 -0
  101. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/__init__.py +0 -0
  102. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/commands/__init__.py +0 -0
  103. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/commands/build.py +0 -0
  104. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/commands/eval.py +0 -0
  105. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/commands/gepa.py +0 -0
  106. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/commands/init.py +0 -0
  107. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/commands/install.py +0 -0
  108. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/commands/setup.py +0 -0
  109. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/plugins/__init__.py +0 -0
  110. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/plugins/prime.py +0 -0
  111. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/cli/tui.py +0 -0
  112. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/clients/__init__.py +0 -0
  113. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/clients/anthropic_messages_client.py +0 -0
  114. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/clients/client.py +0 -0
  115. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
  116. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/clients/openai_chat_completions_client.py +0 -0
  117. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
  118. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/clients/openai_completions_client.py +0 -0
  119. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/clients/openai_responses_client.py +0 -0
  120. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/clients/renderer_client.py +0 -0
  121. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/decorators.py +0 -0
  122. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/AGENTS.md +0 -0
  123. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/__init__.py +0 -0
  124. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/env_group.py +0 -0
  125. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/environment.py +0 -0
  126. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/README.md +0 -0
  127. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/__init__.py +0 -0
  128. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/cli_agent_env.py +0 -0
  129. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/README.md +0 -0
  130. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/__init__.py +0 -0
  131. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/_filter.py +0 -0
  132. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/composable_env.py +0 -0
  133. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harness.py +0 -0
  134. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
  135. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
  136. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
  137. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/task.py +0 -0
  138. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
  139. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
  140. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
  141. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
  142. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
  143. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
  144. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/lean/__init__.py +0 -0
  145. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/lean/lean_task.py +0 -0
  146. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
  147. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
  148. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
  149. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
  150. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
  151. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
  152. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
  153. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
  154. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
  155. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
  156. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
  157. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
  158. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
  159. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
  160. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
  161. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
  162. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
  163. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
  164. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
  165. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
  166. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
  167. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
  168. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
  169. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
  170. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
  171. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
  172. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/gym_env.py +0 -0
  173. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
  174. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/harbor_env/env.py +0 -0
  175. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
  176. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/mcp_env.py +0 -0
  177. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/opencode_env.py +0 -0
  178. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
  179. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
  180. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
  181. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/utils/__init__.py +0 -0
  182. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/utils/file_locks.py +0 -0
  183. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
  184. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/README.md +0 -0
  185. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/__init__.py +0 -0
  186. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/README.md +0 -0
  187. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
  188. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
  189. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
  190. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
  191. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
  192. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
  193. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/openenv_env.py +0 -0
  194. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
  195. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/textarena_env.py +0 -0
  196. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/multiturn_env.py +0 -0
  197. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/python_env.py +0 -0
  198. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/sandbox_env.py +0 -0
  199. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/singleturn_env.py +0 -0
  200. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/stateful_tool_env.py +0 -0
  201. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/envs/tool_env.py +0 -0
  202. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/errors.py +0 -0
  203. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/gepa/__init__.py +0 -0
  204. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/gepa/adapter.py +0 -0
  205. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/gepa/config.py +0 -0
  206. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/gepa/display.py +0 -0
  207. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/gepa/gepa_utils.py +0 -0
  208. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/parsers/__init__.py +0 -0
  209. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/parsers/maybe_think_parser.py +0 -0
  210. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/parsers/parser.py +0 -0
  211. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/parsers/think_parser.py +0 -0
  212. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/parsers/xml_parser.py +0 -0
  213. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/README.md +0 -0
  214. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/__init__.py +0 -0
  215. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/inference/__init__.py +0 -0
  216. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/inference/client.py +0 -0
  217. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/inference/server.py +0 -0
  218. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/__init__.py +0 -0
  219. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/config.py +0 -0
  220. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/orchestrator.py +0 -0
  221. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/trainer.py +0 -0
  222. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/utils.py +0 -0
  223. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rubrics/__init__.py +0 -0
  224. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
  225. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rubrics/judge_rubric.py +0 -0
  226. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rubrics/math_rubric.py +0 -0
  227. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rubrics/rubric.py +0 -0
  228. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/rubrics/rubric_group.py +0 -0
  229. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/__init__.py +0 -0
  230. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/build.py +0 -0
  231. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/eval.py +0 -0
  232. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/gepa.py +0 -0
  233. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/init.py +0 -0
  234. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/install.py +0 -0
  235. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/rl.py +0 -0
  236. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/setup.py +0 -0
  237. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/train.py +0 -0
  238. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/tui.py +0 -0
  239. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/scripts/vllm.py +0 -0
  240. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/serve/__init__.py +0 -0
  241. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/serve/client/env_client.py +0 -0
  242. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/serve/client/zmq_env_client.py +0 -0
  243. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/serve/server/__init__.py +0 -0
  244. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/serve/server/env_router.py +0 -0
  245. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/serve/server/env_server.py +0 -0
  246. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/serve/server/env_worker.py +0 -0
  247. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/serve/server/zmq_env_server.py +0 -0
  248. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/serve/types.py +0 -0
  249. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/types.py +0 -0
  250. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/__init__.py +0 -0
  251. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/async_utils.py +0 -0
  252. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/client_utils.py +0 -0
  253. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/config_utils.py +0 -0
  254. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/data_utils.py +0 -0
  255. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/display_utils.py +0 -0
  256. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/env_config_utils.py +0 -0
  257. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/env_utils.py +0 -0
  258. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/error_utils.py +0 -0
  259. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/eval_display.py +0 -0
  260. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/eval_utils.py +0 -0
  261. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/heartbeat.py +0 -0
  262. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/import_utils.py +0 -0
  263. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/install_utils.py +0 -0
  264. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/interception_utils.py +0 -0
  265. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/logging_utils.py +0 -0
  266. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/message_utils.py +0 -0
  267. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/metric_utils.py +0 -0
  268. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/path_utils.py +0 -0
  269. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/pricing_utils.py +0 -0
  270. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/process_utils.py +0 -0
  271. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/response_utils.py +0 -0
  272. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/save_utils.py +0 -0
  273. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/serve_utils.py +0 -0
  274. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/thread_utils.py +0 -0
  275. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/threaded_sandbox_client.py +0 -0
  276. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/tool_utils.py +0 -0
  277. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/usage_utils.py +0 -0
  278. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/utils/version_utils.py +0 -0
  279. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/ENVIRONMENT_BEST_PRACTICES.md +0 -0
  280. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/README.md +0 -0
  281. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/RE_MIGRATION.md +0 -0
  282. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/__init__.py +0 -0
  283. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/artifact.py +0 -0
  284. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/config.py +0 -0
  285. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/env.py +0 -0
  286. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/harness.py +0 -0
  287. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/model.py +0 -0
  288. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/program.py +0 -0
  289. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/runtime.py +0 -0
  290. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/runtime_handles.py +0 -0
  291. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/sandbox.py +0 -0
  292. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/state.py +0 -0
  293. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/task.py +0 -0
  294. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/taskset.py +0 -0
  295. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/toolset.py +0 -0
  296. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/types.py +0 -0
  297. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/user.py +0 -0
  298. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/__init__.py +0 -0
  299. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/binding_utils.py +0 -0
  300. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/config_callable_utils.py +0 -0
  301. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/config_utils.py +0 -0
  302. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/endpoint_utils.py +0 -0
  303. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/json_utils.py +0 -0
  304. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/judge_utils.py +0 -0
  305. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/lifecycle_utils.py +0 -0
  306. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/logging_utils.py +0 -0
  307. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/mcp_proxy_utils.py +0 -0
  308. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/mcp_utils.py +0 -0
  309. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/object_utils.py +0 -0
  310. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/program_utils.py +0 -0
  311. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/prompt_utils.py +0 -0
  312. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/runtime_owner_utils.py +0 -0
  313. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/runtime_registry.py +0 -0
  314. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/sandbox_program_utils.py +0 -0
  315. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/sandbox_python_utils.py +0 -0
  316. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/sandbox_utils.py +0 -0
  317. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/scoring_utils.py +0 -0
  318. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/serialization_utils.py +0 -0
  319. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/task_freeze_utils.py +0 -0
  320. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/taskset_utils.py +0 -0
  321. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/tool_utils.py +0 -0
  322. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/toolset_utils.py +0 -0
  323. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/trajectory_utils.py +0 -0
  324. {verifiers-0.1.15.dev164 → verifiers-0.1.15.dev165}/verifiers/v1/utils/usage_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: verifiers
3
- Version: 0.1.15.dev164
3
+ Version: 0.1.15.dev165
4
4
  Summary: Verifiers: Environments for LLM Reinforcement Learning
5
5
  Project-URL: Homepage, https://github.com/primeintellect-ai/verifiers
6
6
  Project-URL: Documentation, https://github.com/primeintellect-ai/verifiers
@@ -193,25 +193,20 @@ def test_taskset_repr():
193
193
  assert "3" in repr(ts)
194
194
 
195
195
 
196
- def test_composable_mini_swe_agent_unversioned_package_uses_unpinned_requirement():
197
- setup = build_mini_swe_agent_install_script(package=" mini-swe-agent ")
196
+ def test_composable_mini_swe_agent_install_script_uses_pip_requirement():
197
+ setup = build_mini_swe_agent_install_script()
198
198
 
199
- assert (
200
- "vf_python_install --target /opt/mini-swe-agent/prefix/site-packages mini-swe-agent"
201
- in setup
202
- )
203
- assert "mini-swe-agent==mini-swe-agent" not in setup
199
+ assert "mini-swe-agent==2.2.8" in setup
200
+ assert "files.pythonhosted.org" not in setup
204
201
 
205
202
 
206
- def test_composable_opencode_unversioned_release_uses_latest_download_url():
203
+ def test_composable_opencode_install_script_owns_release_download():
207
204
  setup = build_opencode_install_script(
208
- release=" PrimeIntellect-ai/opencode ",
209
205
  install_ripgrep=False,
210
206
  )
211
207
 
212
- assert "OPENCODE_RELEASE_REPO=PrimeIntellect-ai/opencode" in setup
213
- assert "OPENCODE_RELEASE_PATH=releases/latest/download" in setup
214
- assert "releases/download/vPrimeIntellect-ai/opencode" not in setup
208
+ assert "PrimeIntellect-ai/opencode/releases/download/v1.1.63-rl2" in setup
209
+ assert "tar -xzf /tmp/opencode.tar.gz" in setup
215
210
 
216
211
 
217
212
  @pytest.mark.asyncio
@@ -9,7 +9,8 @@ from verifiers.envs.experimental.composable.harnesses.rlm import (
9
9
  )
10
10
  from verifiers.envs.experimental.composable.harnesses.opencode import (
11
11
  DEFAULT_DISABLED_TOOLS,
12
- DEFAULT_RELEASE,
12
+ DEFAULT_RELEASE_REPO,
13
+ DEFAULT_RELEASE_VERSION,
13
14
  DEFAULT_SYSTEM_PROMPT,
14
15
  OPENCODE_INSTALL_SCRIPT,
15
16
  build_install_script as build_opencode_install_script,
@@ -39,7 +40,8 @@ __all__ = [
39
40
  "build_opencode_run_command",
40
41
  "OPENCODE_INSTALL_SCRIPT",
41
42
  "DEFAULT_DISABLED_TOOLS",
42
- "DEFAULT_RELEASE",
43
+ "DEFAULT_RELEASE_REPO",
44
+ "DEFAULT_RELEASE_VERSION",
43
45
  "DEFAULT_SYSTEM_PROMPT",
44
46
  "mini_swe_agent_harness",
45
47
  "build_mini_swe_agent_install_script",
@@ -3,18 +3,15 @@
3
3
  from pathlib import PurePosixPath
4
4
  import shlex
5
5
 
6
- from harnesses.mini_swe_agent import (
7
- MINI_SWE_AGENT_DEFAULT_PACKAGE,
8
- build_mini_swe_agent_install_script as build_packaged_mini_swe_agent_install_script,
9
- )
10
-
11
6
  DEFAULT_INSTALL_DIR = "/opt/mini-swe-agent"
12
7
  DEFAULT_PREFIX_DIR = f"{DEFAULT_INSTALL_DIR}/prefix"
13
8
  DEFAULT_SITE_PACKAGES_DIR = f"{DEFAULT_PREFIX_DIR}/site-packages"
9
+ DEFAULT_UV_SITE_PACKAGES_DIR = f"{DEFAULT_INSTALL_DIR}/uv-site-packages"
14
10
  DEFAULT_MINI_BINARY = f"{DEFAULT_PREFIX_DIR}/bin/mini"
15
11
  MINI_SWE_AGENT_CLI_PACKAGE = "mini-swe-agent"
16
12
  MINI_SWE_AGENT_CLI_VERSION = "2.2.8"
17
- DEFAULT_PACKAGE = MINI_SWE_AGENT_DEFAULT_PACKAGE
13
+ MINI_SWE_AGENT_PYTHON_VERSION = "3.11"
14
+ UV_PACKAGE_VERSION = "0.11.7"
18
15
  DEFAULT_INSTRUCTION_PATH = "/mini-swe-agent/prompt.txt"
19
16
  DEFAULT_SYSTEM_PROMPT_PATH = "/mini-swe-agent/system.txt"
20
17
  DEFAULT_LOG_DIR = "/logs/agent"
@@ -27,14 +24,59 @@ DEFAULT_ENVIRONMENT_TIMEOUT = 120
27
24
 
28
25
 
29
26
  def build_mini_swe_agent_install_script(
30
- package: str = DEFAULT_PACKAGE,
31
27
  prefix_dir: str = DEFAULT_PREFIX_DIR,
28
+ install_python: bool = True,
32
29
  ) -> str:
33
30
  """Build the shell script that installs mini-SWE-agent."""
34
- return build_packaged_mini_swe_agent_install_script(
35
- package=package,
36
- prefix_dir=prefix_dir,
37
- )
31
+ install_tools = ""
32
+ if install_python:
33
+ # Acquire::Retries=3 mitigates transient archive.ubuntu.com CDN sync
34
+ # mismatches that fail fresh-sandbox apt-get update mid-rollout.
35
+ install_tools = """\
36
+ export DEBIAN_FRONTEND=noninteractive
37
+ if ! command -v python3 >/dev/null 2>&1 || ! python3 -m pip --version >/dev/null 2>&1; then
38
+ apt-get -o Acquire::Retries=3 update -qq
39
+ apt-get -o Acquire::Retries=3 install -y -qq python3 python3-pip ca-certificates
40
+ fi
41
+ """
42
+
43
+ quoted_prefix_dir = shlex.quote(prefix_dir)
44
+ site_packages_dir = f"{prefix_dir}/site-packages"
45
+ package_requirement = f"{MINI_SWE_AGENT_CLI_PACKAGE}=={MINI_SWE_AGENT_CLI_VERSION}"
46
+ quoted_site_packages_dir = shlex.quote(site_packages_dir)
47
+ quoted_install_dir = shlex.quote(DEFAULT_INSTALL_DIR)
48
+ quoted_uv_site_packages_dir = shlex.quote(DEFAULT_UV_SITE_PACKAGES_DIR)
49
+ quoted_package_requirement = shlex.quote(package_requirement)
50
+ return f"""\
51
+ set -e
52
+ {install_tools}
53
+ rm -rf {quoted_prefix_dir}
54
+ mkdir -p {quoted_install_dir} {quoted_prefix_dir}/bin {quoted_site_packages_dir} {quoted_uv_site_packages_dir} {shlex.quote(DEFAULT_LOG_DIR)} /mini-swe-agent
55
+ export PIP_CONFIG_FILE=/dev/null
56
+ export PIP_INDEX_URL=https://pypi.org/simple
57
+ export PIP_BREAK_SYSTEM_PACKAGES=1
58
+ unset PIP_EXTRA_INDEX_URL
59
+ PYTHON_BIN="$(command -v python3)"
60
+ MINI_SWE_AGENT_PYTHON="$PYTHON_BIN"
61
+ if ! "$PYTHON_BIN" -c 'import sys; raise SystemExit(sys.version_info < (3, 10))'; then
62
+ "$PYTHON_BIN" -m pip install --quiet --target {quoted_uv_site_packages_dir} uv=={UV_PACKAGE_VERSION}
63
+ env PYTHONPATH={quoted_uv_site_packages_dir} "$PYTHON_BIN" -m uv python install {MINI_SWE_AGENT_PYTHON_VERSION}
64
+ MINI_SWE_AGENT_PYTHON="$(env PYTHONPATH={quoted_uv_site_packages_dir} "$PYTHON_BIN" -m uv python find {MINI_SWE_AGENT_PYTHON_VERSION})"
65
+ fi
66
+ if [ "$MINI_SWE_AGENT_PYTHON" = "$PYTHON_BIN" ]; then
67
+ "$PYTHON_BIN" -m pip install --quiet --target {quoted_site_packages_dir} {quoted_package_requirement}
68
+ else
69
+ env PYTHONPATH={quoted_uv_site_packages_dir} "$PYTHON_BIN" -m uv pip install --python "$MINI_SWE_AGENT_PYTHON" --target {quoted_site_packages_dir} {quoted_package_requirement}
70
+ fi
71
+ echo "$MINI_SWE_AGENT_PYTHON" > {quoted_prefix_dir}/python
72
+ cat > {quoted_prefix_dir}/bin/mini <<'EOF'
73
+ #!/usr/bin/env sh
74
+ export PYTHONPATH={shlex.quote(site_packages_dir)}:${{PYTHONPATH:-}}
75
+ exec "$(cat {quoted_prefix_dir}/python)" -m minisweagent.run.mini "$@"
76
+ EOF
77
+ chmod +x {quoted_prefix_dir}/bin/mini
78
+ test -x {quoted_prefix_dir}/bin/mini
79
+ """
38
80
 
39
81
 
40
82
  def build_mini_swe_agent_run_command(
@@ -133,7 +175,6 @@ def mini_swe_agent_harness(
133
175
  system_prompt_path: str = DEFAULT_SYSTEM_PROMPT_PATH,
134
176
  log_path: str = DEFAULT_LOG_PATH,
135
177
  trajectory_path: str = DEFAULT_TRAJECTORY_PATH,
136
- package: str = DEFAULT_PACKAGE,
137
178
  config_spec: str = DEFAULT_CONFIG_SPEC,
138
179
  model_class: str = DEFAULT_MODEL_CLASS,
139
180
  environment_timeout: int = DEFAULT_ENVIRONMENT_TIMEOUT,
@@ -152,9 +193,7 @@ def mini_swe_agent_harness(
152
193
  # The system prompt is passed through ComposableEnv as a file and injected
153
194
  # into mini's agent.system_template at runtime.
154
195
  return Harness(
155
- install_script=build_mini_swe_agent_install_script(
156
- package=package,
157
- ),
196
+ install_script=build_mini_swe_agent_install_script(),
158
197
  run_command=build_mini_swe_agent_run_command(
159
198
  agent_workdir=agent_workdir,
160
199
  instruction_path=instruction_path,
@@ -13,11 +13,10 @@ import json
13
13
  import shlex
14
14
  from pathlib import Path, PurePosixPath
15
15
 
16
- from harnesses.utils import split_versioned_agent_spec
17
-
18
16
  # ── Defaults ─────────────────────────────────────────────────────────────
19
17
 
20
- DEFAULT_RELEASE = "PrimeIntellect-ai/opencode@1.1.63-rl2"
18
+ DEFAULT_RELEASE_REPO = "PrimeIntellect-ai/opencode"
19
+ DEFAULT_RELEASE_VERSION = "1.1.63-rl2"
21
20
  DEFAULT_SYSTEM_PROMPT = (Path(__file__).parent / "prompt.txt").read_text()
22
21
 
23
22
  DEFAULT_DISABLED_TOOLS = [
@@ -47,7 +46,6 @@ DEFAULT_DISABLED_TOOLS = [
47
46
 
48
47
 
49
48
  def build_install_script(
50
- release: str = DEFAULT_RELEASE,
51
49
  install_ripgrep: bool = True,
52
50
  ) -> str:
53
51
  """Build the shell script that installs OpenCode in a sandbox."""
@@ -56,15 +54,6 @@ def build_install_script(
56
54
  if install_ripgrep
57
55
  else ""
58
56
  )
59
- release_repo, release_version = split_versioned_agent_spec(release)
60
- release_path = "releases/latest/download"
61
- if release_version and release_version != "latest":
62
- release_tag = (
63
- release_version
64
- if release_version.startswith("v")
65
- else f"v{release_version}"
66
- )
67
- release_path = f"releases/download/{release_tag}"
68
57
  # Acquire::Retries=3 mitigates transient archive.ubuntu.com CDN sync mismatches
69
58
  # (e.g. "File has unexpected size ... Mirror sync in progress?"). See launchpad
70
59
  # bug #1876035. apt's default retries is 0, so one bad fetch fails the rollout.
@@ -73,9 +62,6 @@ set -e
73
62
  apt-get -o Acquire::Retries=3 update -qq && apt-get -o Acquire::Retries=3 install -y -qq curl tar > /dev/null 2>&1
74
63
  {rg_install}
75
64
 
76
- OPENCODE_RELEASE_REPO={shlex.quote(release_repo)}
77
- OPENCODE_RELEASE_PATH={shlex.quote(release_path)}
78
-
79
65
  case "$(uname -m)" in
80
66
  x86_64) OPENCODE_ARCH=x64 ;;
81
67
  aarch64|arm64) OPENCODE_ARCH=arm64 ;;
@@ -83,7 +69,7 @@ case "$(uname -m)" in
83
69
  esac
84
70
 
85
71
  OPENCODE_ASSET="opencode-linux-$OPENCODE_ARCH.tar.gz"
86
- OPENCODE_RELEASE_URL="https://github.com/$OPENCODE_RELEASE_REPO/$OPENCODE_RELEASE_PATH/$OPENCODE_ASSET"
72
+ OPENCODE_RELEASE_URL="https://github.com/{DEFAULT_RELEASE_REPO}/releases/download/v{DEFAULT_RELEASE_VERSION}/$OPENCODE_ASSET"
87
73
 
88
74
  mkdir -p "$HOME/.opencode/bin"
89
75
  if [ -x "$HOME/.opencode/bin/opencode" ]; then
@@ -248,7 +234,6 @@ def opencode_harness(
248
234
  agent_workdir: str = "/app",
249
235
  allow_git: bool = False,
250
236
  disable_compaction: bool = True,
251
- release: str = DEFAULT_RELEASE,
252
237
  instruction_path: str = "/opencode/prompt.txt",
253
238
  system_prompt_path: str = "/opencode/system.txt",
254
239
  log_path: str = "/opencode/logs.txt",
@@ -275,9 +260,7 @@ def opencode_harness(
275
260
  system_prompt = task_system_prompt
276
261
 
277
262
  return Harness(
278
- install_script=build_install_script(
279
- release=release,
280
- ),
263
+ install_script=build_install_script(),
281
264
  run_command=build_opencode_run_command(
282
265
  agent_workdir=agent_workdir,
283
266
  prompt_path=instruction_path,