verifiers 0.4.1.dev35__tar.gz → 0.4.1.dev36__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 (271) hide show
  1. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/PKG-INFO +1 -1
  2. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_multi_turn_tool.py +5 -1
  3. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/prime_agent/harness.py +60 -60
  4. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/.gitignore +0 -0
  5. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/LICENSE +0 -0
  6. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/README.md +0 -0
  7. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/pyproject.toml +0 -0
  8. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/conftest.py +0 -0
  9. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/agent_user_harness_v1.py +0 -0
  10. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/agent_user_v1.py +0 -0
  11. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/counter_tool_v1.py +0 -0
  12. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/duet_v1.py +0 -0
  13. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/echo_acp_resume_v1.py +0 -0
  14. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/echo_agentic_v1.py +0 -0
  15. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/echo_tool_compose/docker-compose.yaml +0 -0
  16. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/echo_tool_v1.py +0 -0
  17. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/echo_user_sim_v1.py +0 -0
  18. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/echo_v1.py +0 -0
  19. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/network_policy_v1.py +0 -0
  20. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/pyproject.toml +0 -0
  21. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/skill_codeword_v1.py +0 -0
  22. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/skills/project-codeword/SKILL.md +0 -0
  23. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/fixtures/tool_response_image_v1.py +0 -0
  24. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/grid.py +0 -0
  25. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_agent_user.py +0 -0
  26. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_agentic_judge.py +0 -0
  27. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_compose_scoring.py +0 -0
  28. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_examples.py +0 -0
  29. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_limits.py +0 -0
  30. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_multi_agent.py +0 -0
  31. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_multi_turn.py +0 -0
  32. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_multimodal_tool.py +0 -0
  33. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_network_policy.py +0 -0
  34. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_resume_tool.py +0 -0
  35. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_rubric_judge.py +0 -0
  36. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_sampling.py +0 -0
  37. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_shared_tool.py +0 -0
  38. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_single_turn.py +0 -0
  39. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_skills.py +0 -0
  40. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_stateful_tool.py +0 -0
  41. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_user_echo.py +0 -0
  42. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/integration/test_user_sim.py +0 -0
  43. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/cli/test_replay.py +0 -0
  44. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/conftest.py +0 -0
  45. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/harnesses/test_core.py +0 -0
  46. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/harnesses/test_rlm.py +0 -0
  47. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/interception/test_tunnel.py +0 -0
  48. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/judges/conftest.py +0 -0
  49. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/judges/test_judge.py +0 -0
  50. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/judges/test_reference.py +0 -0
  51. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/judges/test_rubric.py +0 -0
  52. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/runtimes/test_e2b.py +0 -0
  53. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/serve/test_client.py +0 -0
  54. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/serve/test_delta.py +0 -0
  55. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/serve/test_pool.py +0 -0
  56. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/test_agent.py +0 -0
  57. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/test_dialects.py +0 -0
  58. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/test_graph.py +0 -0
  59. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/test_semantic.py +0 -0
  60. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/test_task.py +0 -0
  61. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/test_taskset.py +0 -0
  62. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/test_trace.py +0 -0
  63. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/utils/test_compile.py +0 -0
  64. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/utils/test_loaders.py +0 -0
  65. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/utils/test_platform.py +0 -0
  66. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/tests/unit/utils/test_score.py +0 -0
  67. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/__init__.py +0 -0
  68. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/__init__.py +0 -0
  69. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/acp/__init__.py +0 -0
  70. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/acp/runner.py +0 -0
  71. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/agent.py +0 -0
  72. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/__init__.py +0 -0
  73. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  74. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/dashboard/base.py +0 -0
  75. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/dashboard/eval.py +0 -0
  76. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/dashboard/replay.py +0 -0
  77. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/dashboard/validate.py +0 -0
  78. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/debug.py +0 -0
  79. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/eval/__init__.py +0 -0
  80. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/eval/hint.py +0 -0
  81. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/eval/main.py +0 -0
  82. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/eval/resume.py +0 -0
  83. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/eval/runner.py +0 -0
  84. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/gepa.py +0 -0
  85. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/output.py +0 -0
  86. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/replay.py +0 -0
  87. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/resolve.py +0 -0
  88. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/resume.py +0 -0
  89. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/cli/validate.py +0 -0
  90. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/clients/__init__.py +0 -0
  91. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/clients/base.py +0 -0
  92. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/clients/client.py +0 -0
  93. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/clients/eval.py +0 -0
  94. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/clients/train.py +0 -0
  95. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/__init__.py +0 -0
  96. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/agent.py +0 -0
  97. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/cli/__init__.py +0 -0
  98. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/cli/debug.py +0 -0
  99. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/cli/env.py +0 -0
  100. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/cli/eval.py +0 -0
  101. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/cli/replay.py +0 -0
  102. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/cli/validate.py +0 -0
  103. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/client.py +0 -0
  104. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/env.py +0 -0
  105. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/harness.py +0 -0
  106. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/judge.py +0 -0
  107. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/retries.py +0 -0
  108. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/runtime.py +0 -0
  109. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/scoring.py +0 -0
  110. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/select.py +0 -0
  111. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/serve.py +0 -0
  112. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/task.py +0 -0
  113. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/configs/taskset.py +0 -0
  114. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/dialects/__init__.py +0 -0
  115. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/dialects/anthropic.py +0 -0
  116. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/dialects/base.py +0 -0
  117. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/dialects/chat.py +0 -0
  118. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/dialects/responses.py +0 -0
  119. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/env.py +0 -0
  120. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/envs/__init__.py +0 -0
  121. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  122. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  123. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  124. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/envs/best_of_n/env.py +0 -0
  125. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  126. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/envs/single_agent/env.py +0 -0
  127. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  128. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/envs/user_sim/env.py +0 -0
  129. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/episode.py +0 -0
  130. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/errors.py +0 -0
  131. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/gepa/__init__.py +0 -0
  132. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/gepa/adapter.py +0 -0
  133. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/gepa/config.py +0 -0
  134. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/gepa/dataset.py +0 -0
  135. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/gepa/reflection.py +0 -0
  136. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/gepa/runner.py +0 -0
  137. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/grading.py +0 -0
  138. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/graph.py +0 -0
  139. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harness.py +0 -0
  140. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/__init__.py +0 -0
  141. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  142. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/bash/harness.py +0 -0
  143. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  144. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  145. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  146. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  147. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  148. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  149. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  150. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/codex/harness.py +0 -0
  151. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/deepseek/__init__.py +0 -0
  152. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/deepseek/gate.mjs +0 -0
  153. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/deepseek/harness.py +0 -0
  154. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/deepseek/usage.mjs +0 -0
  155. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  156. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  157. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  158. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  159. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  160. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  161. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  162. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  163. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/node.py +0 -0
  164. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/null/__init__.py +0 -0
  165. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/null/harness.py +0 -0
  166. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  167. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  168. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/opencode/__init__.py +0 -0
  169. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/opencode/harness.py +0 -0
  170. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/opencode/mcp-ready.js +0 -0
  171. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  172. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  173. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/pi/harness.py +0 -0
  174. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  175. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  176. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  177. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  178. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  179. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  180. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  181. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  182. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/utils/core.py +0 -0
  183. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/utils/install.py +0 -0
  184. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/utils/launch.py +0 -0
  185. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  186. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/harnesses/utils/replay.py +0 -0
  187. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/interception/__init__.py +0 -0
  188. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/interception/base.py +0 -0
  189. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/interception/pool.py +0 -0
  190. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/interception/server.py +0 -0
  191. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  192. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/interception/tunnel/base.py +0 -0
  193. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/interception/tunnel/custom.py +0 -0
  194. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/interception/tunnel/prime.py +0 -0
  195. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/judge.py +0 -0
  196. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/judges/__init__.py +0 -0
  197. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/judges/decision.py +0 -0
  198. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/judges/reference.py +0 -0
  199. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/judges/reference.txt +0 -0
  200. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/judges/rubric.py +0 -0
  201. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/judges/rubric.txt +0 -0
  202. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/mcp/__init__.py +0 -0
  203. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/mcp/launch.py +0 -0
  204. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/mcp/server.py +0 -0
  205. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/mcp/toolset.py +0 -0
  206. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/rollout.py +0 -0
  207. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/__init__.py +0 -0
  208. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/apptainer.py +0 -0
  209. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/base.py +0 -0
  210. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/compose.py +0 -0
  211. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/container.py +0 -0
  212. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/deployment.py +0 -0
  213. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  214. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/docker/egress.py +0 -0
  215. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/e2b.py +0 -0
  216. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/limiters.py +0 -0
  217. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/modal.py +0 -0
  218. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/prime.py +0 -0
  219. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/runtime.py +0 -0
  220. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/strategies.py +0 -0
  221. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/runtimes/subprocess.py +0 -0
  222. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/semantic.py +0 -0
  223. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/serve/__init__.py +0 -0
  224. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/serve/client.py +0 -0
  225. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/serve/delta.py +0 -0
  226. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/serve/encoding.py +0 -0
  227. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/serve/pool.py +0 -0
  228. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/serve/server.py +0 -0
  229. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/serve/types.py +0 -0
  230. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/session.py +0 -0
  231. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/state.py +0 -0
  232. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/task.py +0 -0
  233. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/taskset.py +0 -0
  234. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/__init__.py +0 -0
  235. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  236. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  237. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  238. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  239. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  240. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  241. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  242. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  243. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  244. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  245. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  246. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  247. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/trace.py +0 -0
  248. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/types.py +0 -0
  249. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/__init__.py +0 -0
  250. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/aio.py +0 -0
  251. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/artifacts.py +0 -0
  252. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/compile.py +0 -0
  253. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/decorators.py +0 -0
  254. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/env.py +0 -0
  255. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/eval.py +0 -0
  256. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/format.py +0 -0
  257. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/generic.py +0 -0
  258. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/git.py +0 -0
  259. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/image.py +0 -0
  260. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/interrupt.py +0 -0
  261. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/loaders.py +0 -0
  262. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/logging.py +0 -0
  263. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/memory.py +0 -0
  264. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/paths.py +0 -0
  265. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/platform.py +0 -0
  266. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/prime.py +0 -0
  267. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/retries.py +0 -0
  268. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/scope.py +0 -0
  269. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/score.py +0 -0
  270. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/trace_store.py +0 -0
  271. {verifiers-0.4.1.dev35 → verifiers-0.4.1.dev36}/verifiers/v1/utils/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: verifiers
3
- Version: 0.4.1.dev35
3
+ Version: 0.4.1.dev36
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
@@ -28,7 +28,11 @@ async def test_tool(run, harness, harness_runtime):
28
28
  # Reward 1.0 is the proof the tool ran. How a program surfaces an MCP tool to the
29
29
  # model is its own business (rlm calls it from code; chat loops advertise it), so
30
30
  # the advertised schema is checked on the chat loop in `test_tool_placement`.
31
- assert trace.reward == 1.0
31
+ assert trace.reward == 1.0, "\n".join(
32
+ message.model_dump_json(exclude_none=True)
33
+ for message in trace.messages
34
+ if message.role in {"assistant", "tool"}
35
+ )
32
36
 
33
37
 
34
38
  @pytest.mark.parametrize(
@@ -8,10 +8,10 @@ from typing import Literal
8
8
  from verifiers.v1.acp import ACPConfig, ACPHarness, ACPTurn
9
9
  from verifiers.v1.clients import ModelContext
10
10
  from verifiers.v1.configs.harness import HarnessConfig, skill_destination
11
- from verifiers.v1.harnesses.node import NODE_BIN_DIR, ensure_node
12
11
  from verifiers.v1.harnesses.utils.install import ensure_installed, remove_dir
13
12
  from verifiers.v1.harnesses.utils.replay import drop_blank_text
14
13
  from verifiers.v1.runtimes import Runtime
14
+ from verifiers.v1.runtimes.base import _ENSURE_UV
15
15
  from verifiers.v1.task import TaskData
16
16
  from verifiers.v1.trace import Trace
17
17
  from verifiers.v1.types import Message
@@ -21,10 +21,10 @@ logger = logging.getLogger(__name__)
21
21
  GITHUB_RELEASE_URL = (
22
22
  "https://github.com/PrimeIntellect-ai/prime-agent/releases/download"
23
23
  )
24
- PRIME_AGENT_COMMIT: Literal["a7d791bc1be09793ed5f3ec05bf4cccbc60679ea"] = (
25
- "a7d791bc1be09793ed5f3ec05bf4cccbc60679ea"
24
+ PRIME_AGENT_COMMIT: Literal["763094e1b6a7c17450ee8399b06cda1853847ca5"] = (
25
+ "763094e1b6a7c17450ee8399b06cda1853847ca5"
26
26
  )
27
- PRIME_AGENT_VERSION = "0.9.5"
27
+ PRIME_AGENT_VERSION = "0.10.0"
28
28
  PRIME_AGENT_DIR = "/var/tmp/vf-prime-agent"
29
29
  STATE_ROOT = "/tmp/vf-prime-agent-runs"
30
30
  PROVIDER = "intercept"
@@ -33,63 +33,51 @@ KEY_VAR = "PRIME_AGENT_INTERCEPT_KEY"
33
33
  ENV_AGENT_DIR = "PRIME_AGENT_CODING_AGENT_DIR"
34
34
 
35
35
 
36
- INSTALL = r"""
37
- set -e
38
- export PATH="/var/tmp/vf-node/bin:$PATH"
36
+ INSTALL = (
37
+ "set -e\n"
38
+ + _ENSURE_UV
39
+ + r"""
39
40
  prefix="$VF_PRIME_AGENT_DIR/$PRIME_AGENT_COMMIT"
40
- [ -x "$prefix/bin/prime-agent" ] && [ -f "$PRIME_AGENT_KERNEL_VENV/.bootstrap-version" ] && exit 0
41
- export NPM_CONFIG_PREFIX="$prefix"
42
- export PRIME_AGENT_BOOTSTRAP_KERNEL_ON_INSTALL=1
43
- release_url="$VF_PRIME_AGENT_GITHUB_RELEASE_URL/v$PRIME_AGENT_RELEASE_VERSION"
44
- agent_tarball="prime-agent-$PRIME_AGENT_RELEASE_VERSION.tgz"
45
- ai_tarball="prime-agent-ai-$PRIME_AGENT_RELEASE_VERSION.tgz"
46
- core_tarball="prime-agent-core-$PRIME_AGENT_RELEASE_VERSION.tgz"
47
- tui_tarball="prime-agent-tui-$PRIME_AGENT_RELEASE_VERSION.tgz"
48
- download_dir="$(mktemp -d "$VF_PRIME_AGENT_DIR/install.XXXXXX")"
49
- trap 'rm -rf "$download_dir"' EXIT
50
- for tarball in "$agent_tarball" "$ai_tarball" "$core_tarball" "$tui_tarball"; do
51
- curl -fsSL --retry 5 --retry-all-errors \
52
- "$release_url/$tarball" -o "$download_dir/$tarball"
41
+ if [ ! -x "$prefix/bin/prime-agent" ]; then
42
+ case "$(uname -s)-$(uname -m)" in
43
+ Linux-x86_64) platform=linux-x64; sha=c16bd2af5e77b53f49b914a44742c4cf6a67c5ed5000041430b78dbd4c3bcbec ;;
44
+ Linux-aarch64|Linux-arm64) platform=linux-arm64; sha=f3cab3530a4d7ca43dbef8321bf13f260d1ba05d8b5dde057165a20bd4f675c4 ;;
45
+ Darwin-x86_64) platform=darwin-x64; sha=af4866b5ba82f3419b964290e3f023ddb9b99958a89e16ee856962b901ec0fc6 ;;
46
+ Darwin-arm64) platform=darwin-arm64; sha=e418bdf62fcb0002777bf3ac43bcc136512b26763f2ab5c500792f26e37294e5 ;;
47
+ *) echo "unsupported prime-agent platform: $(uname -s)-$(uname -m)" >&2; exit 1 ;;
48
+ esac
49
+ command -v curl >/dev/null || { apt-get update -qq && apt-get install -y -qq curl ca-certificates; } || apk add --no-cache curl ca-certificates
50
+ release_url="$VF_PRIME_AGENT_GITHUB_RELEASE_URL/v$PRIME_AGENT_RELEASE_VERSION"
51
+ tarball="prime-agent-$PRIME_AGENT_RELEASE_VERSION-$platform.tar.gz"
52
+ download_dir="$(mktemp -d "$VF_PRIME_AGENT_DIR/install.XXXXXX")"
53
+ trap 'rm -rf "$download_dir"' EXIT
54
+ curl -fsSL --retry 5 --retry-all-errors "$release_url/$tarball" -o "$download_dir/$tarball"
55
+ printf '%s %s\n' "$sha" "$tarball" > "$download_dir/SHA256SUMS"
56
+ if command -v sha256sum >/dev/null; then
57
+ (cd "$download_dir" && sha256sum -c SHA256SUMS)
58
+ else
59
+ (cd "$download_dir" && shasum -a 256 -c SHA256SUMS)
60
+ fi
61
+ mkdir "$download_dir/bin"
62
+ tar -xzf "$download_dir/$tarball" -C "$download_dir/bin"
63
+ [ "$("$download_dir/bin/prime-agent" --version)" = "$PRIME_AGENT_RELEASE_VERSION" ]
64
+ mkdir -p "$prefix"
65
+ mv "$download_dir/bin" "$prefix/bin"
66
+ fi
67
+ # Let the released binary validate the kernel cache and prepare its Python runtime.
68
+ "$prefix/bin/prime-agent" --prime-agent-bootstrap
69
+ # Bootstrap installs only the runtime; sessions also import the bundled Python skills.
70
+ set --
71
+ for pyproject in "$prefix/bin/skills/"*/pyproject.toml; do
72
+ set -- "$@" --editable "${pyproject%/pyproject.toml}"
53
73
  done
54
- printf '%s %s\n' \
55
- '349f1682c7909550842f1b04a71ba95814341b136474ade736df93f8ec006876' "$agent_tarball" \
56
- '9ad0184b7b5f3d5c3b1677c0663335de32c092cbdb72697aeaf997f17910bb92' "$ai_tarball" \
57
- '59aafeffb4b64eb997399d56a03f529b2f6604b228e5674372195277db52f04a' "$core_tarball" \
58
- 'e49f41170edfd1d0e72418729d2c117969ccf8df784dc55fe8c1a9d91778e103' "$tui_tarball" \
59
- > "$download_dir/SHA256SUMS"
60
- (cd "$download_dir" && sha256sum -c SHA256SUMS)
61
- mkdir "$download_dir/package-root"
62
- tar -xzf "$download_dir/$agent_tarball" -C "$download_dir/package-root"
63
- node - \
64
- "$download_dir/package-root/package/package.json" \
65
- "$download_dir" \
66
- "$ai_tarball" \
67
- "$core_tarball" \
68
- "$tui_tarball" <<'NODE'
69
- const fs = require("node:fs");
70
- const [manifestPath, downloadDir, ai, core, tui] = process.argv.slice(2);
71
- const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
72
- for (const [name, file] of [
73
- ["@earendil-works/pi-ai", ai],
74
- ["@earendil-works/pi-agent-core", core],
75
- ["@earendil-works/pi-tui", tui],
76
- ]) {
77
- manifest.dependencies[name] = `file:${downloadDir}/${file}`;
78
- }
79
- fs.writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
80
- NODE
81
- mkdir "$download_dir/repacked"
82
- repacked="$(npm pack "$download_dir/package-root/package" \
83
- --pack-destination "$download_dir/repacked" --silent)"
84
- PRIME_AGENT_BOOTSTRAP_TOOLS_ON_INSTALL=1 npm install -g \
85
- --no-fund --no-audit --loglevel=error --progress=false \
86
- "$download_dir/repacked/$repacked"
87
- [ -f "$PRIME_AGENT_KERNEL_VENV/.bootstrap-version" ]
74
+ uv pip install --python "$PRIME_AGENT_KERNEL_VENV/bin/python" "$@"
88
75
  """
76
+ )
89
77
 
90
78
 
91
79
  class PrimeAgentHarnessConfig(HarnessConfig):
92
- commit: Literal["a7d791bc1be09793ed5f3ec05bf4cccbc60679ea"] = PRIME_AGENT_COMMIT
80
+ commit: Literal["763094e1b6a7c17450ee8399b06cda1853847ca5"] = PRIME_AGENT_COMMIT
93
81
  """Prime Agent release commit to install."""
94
82
 
95
83
  autonomous: bool = False
@@ -101,8 +89,8 @@ class PrimeAgentHarness(ACPHarness[PrimeAgentHarnessConfig]):
101
89
  SUPPORTS_MCP = True
102
90
  SUPPORTS_SKILLS = True
103
91
 
104
- # Its pi-ai fork drops whitespace-only assistant text on replay. Recheck on bumps:
105
- # https://github.com/PrimeIntellect-ai/prime-agent/blob/v0.9.5/packages/ai/src/providers/openai-completions.ts#L895
92
+ # Its chat-completions provider drops whitespace-only assistant text on replay. Recheck on bumps:
93
+ # https://github.com/PrimeIntellect-ai/prime-agent/blob/v0.10.0/crates/pa-ai/src/providers/openai_completions/convert.rs#L106
106
94
  def replay_view(self, message: Message) -> Message:
107
95
  return drop_blank_text(message)
108
96
 
@@ -161,7 +149,6 @@ class PrimeAgentHarness(ACPHarness[PrimeAgentHarnessConfig]):
161
149
  statuses.append(status)
162
150
 
163
151
  async def setup(self, runtime: Runtime) -> None:
164
- await ensure_node(runtime)
165
152
  logger.info("prime-agent: ensuring commit %s is installed", self.config.commit)
166
153
  await ensure_installed(
167
154
  runtime,
@@ -262,6 +249,18 @@ class PrimeAgentHarness(ACPHarness[PrimeAgentHarnessConfig]):
262
249
  args += ["--skill", skill_destination(skill, skills_dir)]
263
250
  if system_prompt:
264
251
  args += ["--append-system-prompt", system_prompt]
252
+ if mcp_urls:
253
+ # ACP servers need discovery guidance; importing the SDK shadows the REPL helper.
254
+ args += [
255
+ "--append-system-prompt",
256
+ (
257
+ f"Connected MCP servers: {json.dumps(list(mcp_urls))}. "
258
+ "Use the pre-imported `mcp` helper in `ipython`, or `from rlm import mcp`. "
259
+ "Do not `import mcp`: that loads the unrelated SDK and overwrites the helper. "
260
+ "Discover tools with `print(await mcp.list_tools(server))`, then call them "
261
+ "with `print(await mcp.call_tool(server, tool, arguments))`."
262
+ ),
263
+ ]
265
264
 
266
265
  return ACPConfig(
267
266
  env=self._env(trace, secret),
@@ -270,7 +269,7 @@ class PrimeAgentHarness(ACPHarness[PrimeAgentHarnessConfig]):
270
269
  "/bin/sh",
271
270
  "-eu",
272
271
  "-c",
273
- f'export PATH="{NODE_BIN_DIR}:$HOME/.local/bin:$PATH"; exec "$@"',
272
+ 'export PATH="$HOME/.local/bin:$PATH"; exec "$@"',
274
273
  "prime-agent",
275
274
  *args,
276
275
  ],
@@ -301,6 +300,7 @@ class PrimeAgentHarness(ACPHarness[PrimeAgentHarnessConfig]):
301
300
  KEY_VAR: secret,
302
301
  ENV_AGENT_DIR: f"{root}/agent",
303
302
  "TMPDIR": f"{root}/tmp",
304
- "PRIME_AGENT_KERNEL_VENV": self._kernel_venv(),
303
+ # Sessions use the installed interpreter without writing to the shared venv.
304
+ "PRIME_AGENT_KERNEL_PYTHON": f"{self._kernel_venv()}/bin/python",
305
305
  "PRIME_AGENT_TELEMETRY": "0",
306
306
  }
File without changes