2525 Terminus2Config ,
2626 Terminus2ProgramConfig ,
2727)
28- from harnesses .pi import PI_DEFAULT_INSTALL_SPEC
28+ from harnesses .pi import PI_DEFAULT_VERSION
2929from harnesses .terminus_2 import (
3030 TERMINUS_2_DEFAULT_API_BASE_URL ,
31- TERMINUS_2_DEFAULT_HARBOR_INSTALL_SPEC ,
31+ TERMINUS_2_DEFAULT_VERSION ,
3232 TERMINUS_2_DEFAULT_MODEL_NAME ,
3333 Terminus2 ,
3434)
@@ -287,18 +287,18 @@ def test_opencode_config_owns_opencode_harness_fields() -> None:
287287
288288
289289@pytest .mark .parametrize (
290- "install_spec " ,
290+ "version " ,
291291 ["PrimeIntellect-ai/opencode@latest" , " PrimeIntellect-ai/opencode " ],
292292)
293- def test_opencode_latest_install_spec_uses_latest_download_url (
294- install_spec : str ,
293+ def test_opencode_latest_version_uses_latest_download_url (
294+ version : str ,
295295) -> None :
296296 harness = OpenCode (
297297 config = OpenCodeConfig (
298+ version = version ,
298299 program = OpenCodeProgramConfig (
299- install_spec = install_spec ,
300300 install_ripgrep = False ,
301- )
301+ ),
302302 )
303303 )
304304 program = cast (dict [str , object ], harness .config .program .data ())
@@ -308,12 +308,10 @@ def test_opencode_latest_install_spec_uses_latest_download_url(
308308 assert "OPENCODE_RELEASE_PATH=releases/latest/download" in setup
309309
310310
311- def test_opencode_custom_install_spec_uses_versioned_release () -> None :
311+ def test_opencode_custom_version_uses_versioned_release () -> None :
312312 harness = OpenCode (
313313 config = OpenCodeConfig (
314- program = OpenCodeProgramConfig (
315- install_spec = "Example/open-code@v2.0.0" ,
316- )
314+ version = "Example/open-code@v2.0.0" ,
317315 )
318316 )
319317 program = cast (dict [str , object ], harness .config .program .data ())
@@ -395,9 +393,9 @@ def test_pi_harness_writes_intercepted_model_and_mcp_config() -> None:
395393
396394 assert "apt-get -o Acquire::Retries=3 update" in setup
397395 assert "apt-get -o Acquire::Retries=3 install" in setup
398- assert harness .config .program . install_spec == PI_DEFAULT_INSTALL_SPEC
399- assert PI_DEFAULT_INSTALL_SPEC == "@earendil-works/pi-coding-agent@latest"
400- assert f"npm install -g --ignore-scripts { PI_DEFAULT_INSTALL_SPEC } " in setup
396+ assert harness .config .version == PI_DEFAULT_VERSION
397+ assert PI_DEFAULT_VERSION == "@earendil-works/pi-coding-agent@latest"
398+ assert f"npm install -g --ignore-scripts { PI_DEFAULT_VERSION } " in setup
401399 assert "mariozechner" not in setup
402400 assert '"baseUrl": "${OPENAI_BASE_URL}"' in mcp_setup
403401 assert '"api": "openai-completions"' in mcp_setup
@@ -407,12 +405,8 @@ def test_pi_harness_writes_intercepted_model_and_mcp_config() -> None:
407405 assert f'"command": "{ SANDBOX_PYTHON } "' in mcp_setup
408406
409407
410- def test_pi_harness_preserves_scoped_npm_install_specs () -> None :
411- harness = Pi (
412- config = PiConfig (
413- program = PiProgramConfig (install_spec = "@anthropic-ai/claude-code@1.2.3" )
414- )
415- )
408+ def test_pi_harness_preserves_scoped_npm_versions () -> None :
409+ harness = Pi (config = PiConfig (version = "@anthropic-ai/claude-code@1.2.3" ))
416410 program = cast (dict [str , object ], harness .config .program .data ())
417411 setup = cast (str , program ["setup" ])
418412
@@ -448,7 +442,7 @@ def test_terminus_2_harness_builds_sandbox_program() -> None:
448442
449443 run_script = cast (str , command [2 ])
450444 assert "TERMINUS_2_WORKDIR=/workspace" in run_script
451- assert f"--with { TERMINUS_2_DEFAULT_HARBOR_INSTALL_SPEC } " in run_script
445+ assert f"--with { TERMINUS_2_DEFAULT_VERSION } " in run_script
452446 assert "git+https://github.com" not in run_script
453447 assert "max_turns=7" in run_script
454448
0 commit comments