toolbench 0.2.0__tar.gz → 0.2.1__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 (150) hide show
  1. {toolbench-0.2.0 → toolbench-0.2.1}/PKG-INFO +1 -1
  2. {toolbench-0.2.0 → toolbench-0.2.1}/pyproject.toml +1 -1
  3. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/__init__.py +1 -1
  4. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/runtime.py +13 -6
  5. {toolbench-0.2.0 → toolbench-0.2.1}/.gitignore +0 -0
  6. {toolbench-0.2.0 → toolbench-0.2.1}/LICENSE +0 -0
  7. {toolbench-0.2.0 → toolbench-0.2.1}/README.md +0 -0
  8. {toolbench-0.2.0 → toolbench-0.2.1}/examples/calculator/requirements.txt +0 -0
  9. {toolbench-0.2.0 → toolbench-0.2.1}/examples/calculator/toolkit.yaml +0 -0
  10. {toolbench-0.2.0 → toolbench-0.2.1}/examples/calculator/tools/__init__.py +0 -0
  11. {toolbench-0.2.0 → toolbench-0.2.1}/examples/calculator/tools/basic.py +0 -0
  12. {toolbench-0.2.0 → toolbench-0.2.1}/examples/calculator/tools/scientific.py +0 -0
  13. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/benchmark.yaml +0 -0
  14. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/ground_truth/answer.json +0 -0
  15. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/harnesses/orchestral/anthropic.yaml +0 -0
  16. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/harnesses/orchestral/groq.yaml +0 -0
  17. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/harnesses/orchestral/litellm.yaml +0 -0
  18. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/harnesses/orchestral/openai.yaml +0 -0
  19. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/loadouts/additive_only.yaml +0 -0
  20. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/loadouts/all_metrics.yaml +0 -0
  21. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/loadouts/calc_toolbase.yaml +0 -0
  22. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/loadouts/core_only.yaml +0 -0
  23. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/loadouts/full_local.yaml +0 -0
  24. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/loadouts/full_mixed.yaml +0 -0
  25. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/loadouts/full_toolbase.yaml +0 -0
  26. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/loadouts/guided.yaml +0 -0
  27. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/loadouts/primitives_only.yaml +0 -0
  28. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/skills/distance_recipe.md +0 -0
  29. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/tools/chebyshev.py +0 -0
  30. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/tools/dunderkit.py +0 -0
  31. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/tools/euclid.py +0 -0
  32. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/tools/extras.py +0 -0
  33. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/tools/taxicab.py +0 -0
  34. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/derived/prompts/system.md +0 -0
  35. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/derived/prompts/user.md +0 -0
  36. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/derived/variant.yaml +0 -0
  37. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/direct/prompts/system.md +0 -0
  38. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/direct/prompts/user.md +0 -0
  39. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/direct/sandbox/template/points.json +0 -0
  40. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/direct/variant.yaml +0 -0
  41. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/polar/prompts/system.md +0 -0
  42. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/polar/prompts/user.md +0 -0
  43. {toolbench-0.2.0 → toolbench-0.2.1}/examples/geometry/variants/polar/variant.yaml +0 -0
  44. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/README.md +0 -0
  45. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/claude-code/README.md +0 -0
  46. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/claude-code/default.yaml +0 -0
  47. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/codex/README.md +0 -0
  48. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/codex/default.yaml +0 -0
  49. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/orchestral/README.md +0 -0
  50. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/orchestral/anthropic.yaml +0 -0
  51. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/orchestral/google.yaml +0 -0
  52. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/orchestral/groq.yaml +0 -0
  53. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/orchestral/litellm.yaml +0 -0
  54. {toolbench-0.2.0 → toolbench-0.2.1}/harness_templates/orchestral/openai.yaml +0 -0
  55. {toolbench-0.2.0 → toolbench-0.2.1}/mkdocs.yml +0 -0
  56. {toolbench-0.2.0 → toolbench-0.2.1}/tests/__init__.py +0 -0
  57. {toolbench-0.2.0 → toolbench-0.2.1}/tests/helpers.py +0 -0
  58. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_artifact_cleanup.py +0 -0
  59. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_artifact_policy.py +0 -0
  60. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_benchmark_extends.py +0 -0
  61. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_checks.py +0 -0
  62. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_cli_runtime_stderr_drain.py +0 -0
  63. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_codex_runtime.py +0 -0
  64. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_content_checks.py +0 -0
  65. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_cost_extraction.py +0 -0
  66. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_crash_classifier.py +0 -0
  67. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_geometry.py +0 -0
  68. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_integrity.py +0 -0
  69. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_json_repair.py +0 -0
  70. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_judge_score.py +0 -0
  71. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_judge_select.py +0 -0
  72. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_mcp_source.py +0 -0
  73. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_metrics.py +0 -0
  74. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_numeric_checks.py +0 -0
  75. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_paired_deltas.py +0 -0
  76. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_resume.py +0 -0
  77. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_rubric_loader.py +0 -0
  78. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_runner_llm_judge.py +0 -0
  79. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_runner_rate_limit.py +0 -0
  80. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_runner_request_params.py +0 -0
  81. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_runner_retry.py +0 -0
  82. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_runner_transient.py +0 -0
  83. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_runtime_registry.py +0 -0
  84. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_runtime_version_label.py +0 -0
  85. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_schema.py +0 -0
  86. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_skills.py +0 -0
  87. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_summary_text_cost.py +0 -0
  88. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_tool_error_visibility.py +0 -0
  89. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_tool_resolver.py +0 -0
  90. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_toolbase_sandbox_scoping.py +0 -0
  91. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_toolbase_select_provenance.py +0 -0
  92. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_trial_loop.py +0 -0
  93. {toolbench-0.2.0 → toolbench-0.2.1}/tests/test_variant.py +0 -0
  94. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/cli.py +0 -0
  95. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/__init__.py +0 -0
  96. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/artifact_policy.py +0 -0
  97. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/benchmark.py +0 -0
  98. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/budget.py +0 -0
  99. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/checks.py +0 -0
  100. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/content_checks.py +0 -0
  101. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/crash_classifier.py +0 -0
  102. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/failure_modes.py +0 -0
  103. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/harness.py +0 -0
  104. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/integrity.py +0 -0
  105. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/json_repair.py +0 -0
  106. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/judge.py +0 -0
  107. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/judge_select.py +0 -0
  108. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/litellm_pricing.py +0 -0
  109. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/llm_factory.py +0 -0
  110. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/loadout.py +0 -0
  111. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/metrics.py +0 -0
  112. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/numeric_checks.py +0 -0
  113. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/runner.py +0 -0
  114. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/skills.py +0 -0
  115. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/store.py +0 -0
  116. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/task.py +0 -0
  117. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/tool_policy.py +0 -0
  118. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/tool_resolver.py +0 -0
  119. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/trajectory.py +0 -0
  120. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/core/variant.py +0 -0
  121. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/__init__.py +0 -0
  122. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/_output.py +0 -0
  123. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/_shared.py +0 -0
  124. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/audit_log.py +0 -0
  125. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/k_sweep.py +0 -0
  126. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/parallel_coords.py +0 -0
  127. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/per_stage_k.py +0 -0
  128. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/plot_overview.py +0 -0
  129. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/summary_text.py +0 -0
  130. {toolbench-0.2.0 → toolbench-0.2.1}/toolbench/reporting/transcript.py +0 -0
  131. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/authoring/custom-tools.md +0 -0
  132. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/authoring/define-a-benchmark.md +0 -0
  133. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/authoring/overview.md +0 -0
  134. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/authoring/rubrics-and-checks.md +0 -0
  135. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/explanation.md +0 -0
  136. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/guides/harnesses.md +0 -0
  137. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/guides/install-and-quickstart.md +0 -0
  138. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/guides/loadouts.md +0 -0
  139. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/guides/reading-results.md +0 -0
  140. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/guides/running-a-benchmark.md +0 -0
  141. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/guides/toolbase.md +0 -0
  142. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/guides/variants.md +0 -0
  143. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/index.md +0 -0
  144. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/reference/commands.md +0 -0
  145. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/reference/files-and-layout.md +0 -0
  146. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/reference/metrics.md +0 -0
  147. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/reference/schemas.md +0 -0
  148. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/reference/vocabulary.md +0 -0
  149. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/stylesheets/extra.css +0 -0
  150. {toolbench-0.2.0 → toolbench-0.2.1}/userdocs/troubleshooting.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: toolbench
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: A platform and CLI for building benchmarks for agentic tools and harnesses.
5
5
  Project-URL: Homepage, https://github.com/tonymenzo/toolbench
6
6
  Project-URL: Repository, https://github.com/tonymenzo/toolbench
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "toolbench"
7
- version = "0.2.0"
7
+ version = "0.2.1"
8
8
  description = "A platform and CLI for building benchmarks for agentic tools and harnesses."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -2,7 +2,7 @@
2
2
 
3
3
  from pathlib import Path
4
4
 
5
- __version__ = "0.2.0"
5
+ __version__ = "0.2.1"
6
6
 
7
7
  # Repository root (the directory that contains this `toolbench/` package in an
8
8
  # editable install). The CLI reads `REPO_ROOT/.env` for provider keys + tool
@@ -601,18 +601,25 @@ def _apply_harness_env(env: dict, overrides) -> None:
601
601
 
602
602
 
603
603
  def _claude_code_factory(*, system_prompt, sandbox_dir=None, harness=None,
604
- loadout=None, tool_hooks=None, protected_paths=None,
605
- **_):
606
- # `**_` absorbs the orchestral-shaped kwargs (llm, tools, display_hook)
607
- # this runtime doesn't use. We DO use tool_hooks: the runner's
608
- # TrajectoryHook is in there, and firing it per streamed tool call gives
609
- # us the same console.log + transcript as orchestral.
604
+ loadout=None, tool_hooks=None, llm=None,
605
+ protected_paths=None, **_):
606
+ # `**_` absorbs the orchestral-shaped kwargs (tools, display_hook) this
607
+ # runtime doesn't use. We DO use tool_hooks (the runner's TrajectoryHook,
608
+ # for console.log + transcript parity with orchestral) and llm (it carries
609
+ # the run matrix's --models value; see below).
610
610
  if not sandbox_dir:
611
611
  raise ValueError(
612
612
  "claude_code runtime requires sandbox_dir (the runner passes it)."
613
613
  )
614
614
  model, call_timeout_s, profile, project_root, traj_hook, env_overrides = \
615
615
  _cli_runtime_common(harness, loadout, tool_hooks)
616
+ # The run matrix's --models value is carried by SubscriptionLLM and MUST
617
+ # override the harness's provider.model default; otherwise every cell runs
618
+ # the harness default model regardless of its --models label (mirrors the
619
+ # codex factory).
620
+ requested_model = getattr(llm, "model", None)
621
+ if requested_model:
622
+ model = requested_model
616
623
  return ClaudeCodeAgent(
617
624
  system_prompt=system_prompt, sandbox_dir=sandbox_dir, model=model,
618
625
  profile=profile, project_root=project_root,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes