algorithm-nexus 0.3.0__tar.gz → 1.0.0__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 (174) hide show
  1. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.pre-commit-config.yaml +5 -5
  2. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.secrets.baseline +3 -14
  3. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/CHANGELOG.md +8 -0
  4. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/PKG-INFO +4 -4
  5. algorithm_nexus-1.0.0/docs/contributing/benchmarks/add_benchmark_binding.md +210 -0
  6. algorithm_nexus-1.0.0/docs/contributing/benchmarks/add_benchmark_experiment.md +149 -0
  7. algorithm_nexus-1.0.0/docs/contributing/benchmarks/add_benchmark_problem.md +250 -0
  8. algorithm_nexus-1.0.0/docs/contributing/benchmarks/add_benchmark_submission.md +209 -0
  9. algorithm_nexus-1.0.0/docs/contributing/benchmarks/index.md +59 -0
  10. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/contributing/index.md +3 -3
  11. algorithm_nexus-0.3.0/docs/design/benchmark_system.md → algorithm_nexus-1.0.0/docs/design/benchmarking/benchmark_execution.md +61 -80
  12. algorithm_nexus-1.0.0/docs/design/benchmarking/benchmark_experiments_and_submissions.md +287 -0
  13. algorithm_nexus-1.0.0/docs/design/benchmarking/index.md +64 -0
  14. algorithm_nexus-1.0.0/docs/design/benchmarking/logical_benchmarks_and_instances.md +678 -0
  15. algorithm_nexus-1.0.0/docs/design/index.md +20 -0
  16. algorithm_nexus-1.0.0/docs/design/nexus_package.md +155 -0
  17. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/getting-started/cli-reference.md +48 -53
  18. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/index.md +2 -1
  19. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/requirements/benchmark.md +99 -84
  20. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/requirements/index.md +1 -1
  21. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/pyproject.toml +3 -3
  22. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/requirements-candidate.txt +1648 -1697
  23. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/requirements-ecosystem.txt +1274 -1352
  24. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/requirements-product.txt +1344 -1440
  25. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/cli.py +2 -7
  26. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/commands/ado_validator.py +16 -14
  27. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/commands/benchmark_manager.py +453 -311
  28. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/commands/utils.py +4 -17
  29. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/commands/validate.py +267 -124
  30. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/commands/venv_manager.py +43 -16
  31. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/models.py +217 -49
  32. algorithm_nexus-1.0.0/templates/logical-benchmark/benchmark.yaml +39 -0
  33. algorithm_nexus-1.0.0/templates/logical-benchmark/instances/instance-name/instance.yaml +16 -0
  34. algorithm_nexus-1.0.0/templates/nexus-package-template/nexus.yaml +5 -0
  35. algorithm_nexus-1.0.0/tests/fixtures/experiments/vllm-performance/experiment_package.yaml +5 -0
  36. algorithm_nexus-1.0.0/tests/fixtures/experiments/vllm-performance/submissions/granite-guidellm/space.yaml +45 -0
  37. algorithm_nexus-1.0.0/tests/fixtures/experiments/vllm-performance/submissions/granite-vllm/space.yaml +44 -0
  38. algorithm_nexus-1.0.0/tests/fixtures/experiments-invalid/missing-config/README.md +11 -0
  39. algorithm_nexus-1.0.0/tests/fixtures/experiments-invalid/missing-config/submissions/run1/space.yaml +8 -0
  40. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/invalid_binding_unknown_metric.yaml +11 -0
  41. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/invalid_binding_unknown_property.yaml +9 -0
  42. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/invalid_instance_unknown_property.yaml +9 -0
  43. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/logical_benchmarks/invalid_missing_required_field.yaml +2 -2
  44. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/invalid_ranking_unknown_metric.yaml +16 -0
  45. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/invalid_static_filters_overlap_with_instance_mapping.yaml +9 -0
  46. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/invalid_static_filters_unknown_benchmark_property.yaml +9 -0
  47. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/valid_full.yaml +21 -0
  48. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/valid_instance_field.yaml +14 -0
  49. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/valid_metric_mapping_no_metrics_defined.yaml +11 -0
  50. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/logical_benchmarks/valid_no_bindings.yaml +1 -3
  51. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/valid_ranking_desc.yaml +16 -0
  52. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/valid_ranking_field.yaml +17 -0
  53. algorithm_nexus-1.0.0/tests/fixtures/logical_benchmarks/valid_static_filters_both_directions.yaml +10 -0
  54. algorithm_nexus-1.0.0/tests/fixtures/packages/invalid-package-benchmarks/models/bad-model/benchmark_submissions/missing-space-yaml/.gitkeep +0 -0
  55. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/test_cli_run.py +51 -91
  56. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/test_models.py +158 -0
  57. algorithm_nexus-1.0.0/tests/test_validate_benchmarks.py +469 -0
  58. algorithm_nexus-1.0.0/tests/test_validate_logical_benchmarks.py +490 -0
  59. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/uv.lock +2291 -3239
  60. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/zensical.toml +14 -7
  61. algorithm_nexus-0.3.0/docs/contributing/add_benchmark.md +0 -428
  62. algorithm_nexus-0.3.0/docs/design/benchmark_integration_design.md +0 -363
  63. algorithm_nexus-0.3.0/docs/design/benchmark_metadata_convention.md +0 -477
  64. algorithm_nexus-0.3.0/docs/design/index.md +0 -14
  65. algorithm_nexus-0.3.0/docs/design/nexus_package.md +0 -197
  66. algorithm_nexus-0.3.0/templates/nexus-package-template/benchmark_instances/example-benchmark/space.yaml +0 -18
  67. algorithm_nexus-0.3.0/templates/nexus-package-template/models/your-model-name/benchmark_instances/example-benchmark/space.yaml +0 -18
  68. algorithm_nexus-0.3.0/templates/packages/package-name/benchmark_instances/example-benchmark/space.yaml +0 -18
  69. algorithm_nexus-0.3.0/templates/packages/package-name/models/model-name/benchmark_instances/example-benchmark/space.yaml +0 -18
  70. algorithm_nexus-0.3.0/templates/packages/package-name/nexus.yaml +0 -20
  71. algorithm_nexus-0.3.0/tests/fixtures/logical_benchmarks/invalid_binding_id_mismatch.yaml +0 -19
  72. algorithm_nexus-0.3.0/tests/fixtures/logical_benchmarks/invalid_binding_unknown_metric.yaml +0 -26
  73. algorithm_nexus-0.3.0/tests/fixtures/logical_benchmarks/invalid_binding_unknown_property.yaml +0 -24
  74. algorithm_nexus-0.3.0/tests/fixtures/logical_benchmarks/valid_full.yaml +0 -50
  75. algorithm_nexus-0.3.0/tests/test_validate_benchmarks.py +0 -271
  76. algorithm_nexus-0.3.0/tests/test_validate_logical_benchmarks.py +0 -113
  77. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.agents/skills/add-nexus-package/SKILL.md +0 -0
  78. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.agents/skills/update-lock-file/SKILL.md +0 -0
  79. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.copywrite.hcl +0 -0
  80. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  81. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  82. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.github/PULL_REQUEST_TEMPLATE/new_nexus_package.md +0 -0
  83. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.github/dco.yml +0 -0
  84. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.gitignore +0 -0
  85. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.markdownlint-cli2.yaml +0 -0
  86. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.prettierrc.toml +0 -0
  87. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.python-version +0 -0
  88. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/.yamlfmt +0 -0
  89. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/CONTRIBUTING.md +0 -0
  90. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/LICENSE +0 -0
  91. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/MAINTAINERS.md +0 -0
  92. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/README.md +0 -0
  93. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/benchmarks/.gitkeep +0 -0
  94. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/assets/images/favicon.ico +0 -0
  95. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/assets/images/logo-ibm-dark.png +0 -0
  96. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/assets/images/logo-ibm.png +0 -0
  97. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/contributing/add_new_nexus_package.md +0 -0
  98. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/contributing/guidelines.md +0 -0
  99. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/contributing/owner_responsibilities.md +0 -0
  100. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/design/dependency-resolution.md +0 -0
  101. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/design/project_release.md +0 -0
  102. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/getting-started/index.md +0 -0
  103. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/getting-started/installation.md +0 -0
  104. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/requirements/model_vllm.md +0 -0
  105. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/requirements/models_testing.md +0 -0
  106. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/requirements/nexus_package.md +0 -0
  107. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/requirements/packaging_and_dependency_reqs.md +0 -0
  108. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/stylesheets/extra.css +0 -0
  109. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/theme/favicon.ico +0 -0
  110. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/theme/logo-ibm-dark.png +0 -0
  111. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/docs/theme/logo-ibm.png +0 -0
  112. {algorithm_nexus-0.3.0/packages → algorithm_nexus-1.0.0/experiments}/.gitkeep +0 -0
  113. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/mendUnifiedAgent.config +0 -0
  114. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/package.json +0 -0
  115. {algorithm_nexus-0.3.0/tests/fixtures/packages/invalid-package-benchmarks/models/bad-model/benchmark_instances/missing-space-yaml → algorithm_nexus-1.0.0/packages}/.gitkeep +0 -0
  116. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/biomed-multi-alignment/models/biomed.omics.bl.sm.ma-ted-458m/model.yaml +0 -0
  117. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/biomed-multi-alignment/nexus.yaml +0 -0
  118. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/bmfm-targets/models/biomed.rna.llama.32m.mlm.multitask.v1.vllm/model.yaml +0 -0
  119. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/bmfm-targets/models/biomed.rna.llama.32m.mlm.multitask.v1.vllm/usage.md +0 -0
  120. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/bmfm-targets/models/biomed.rna.llama.47m.wced.multitask.v1.vllm/model.yaml +0 -0
  121. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/bmfm-targets/models/biomed.rna.llama.47m.wced.multitask.v1.vllm/usage.md +0 -0
  122. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/bmfm-targets/nexus.yaml +0 -0
  123. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/gridfm-graphkit/nexus.yaml +0 -0
  124. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/terrakit/nexus.yaml +0 -0
  125. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/terratorch/models/prithvi/model.yaml +0 -0
  126. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/terratorch/models/prithvi/usage.md +0 -0
  127. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/terratorch/models/terramind_base_fire/model.yaml +0 -0
  128. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/terratorch/models/terramind_base_fire/usage.md +0 -0
  129. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/terratorch/models/terramind_base_flood/model.yaml +0 -0
  130. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/terratorch/models/terramind_base_flood/usage.md +0 -0
  131. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/terratorch/nexus.yaml +0 -0
  132. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/tokamind/models/tokamind-base-v2/model.yaml +0 -0
  133. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/packages/tokamind/nexus.yaml +0 -0
  134. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/renovate.json +0 -0
  135. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/ruff.toml +0 -0
  136. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/__init__.py +0 -0
  137. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/commands/__init__.py +0 -0
  138. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/commands/get.py +0 -0
  139. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/commands/list.py +0 -0
  140. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/src/algorithm_nexus/commands/run.py +0 -0
  141. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/templates/nexus-package-template/README.md +0 -0
  142. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/templates/nexus-package-template/models/your-model-name/model.yaml +0 -0
  143. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/templates/packages/package-name/README.md +0 -0
  144. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/templates/packages/package-name/models/model-name/model.yaml +0 -0
  145. {algorithm_nexus-0.3.0/templates/nexus-package-template → algorithm_nexus-1.0.0/templates/packages/package-name}/nexus.yaml +0 -0
  146. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/__init__.py +0 -0
  147. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/.gitignore +0 -0
  148. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/invalid-package/models/broken-model/model.yaml +0 -0
  149. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/invalid-package/models/undeclared-model/model.yaml +0 -0
  150. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/invalid-package/nexus.yaml +0 -0
  151. {algorithm_nexus-0.3.0/tests/fixtures/packages/invalid-package-benchmarks/models/bad-model/benchmark_instances → algorithm_nexus-1.0.0/tests/fixtures/packages/invalid-package-benchmarks/models/bad-model/benchmark_submissions}/unregistered-experiment-test/space.yaml +0 -0
  152. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/invalid-package-benchmarks/models/bad-model/model.yaml +0 -0
  153. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/invalid-package-benchmarks/nexus.yaml +0 -0
  154. {algorithm_nexus-0.3.0/tests/fixtures/packages/terratorch/benchmark_instances → algorithm_nexus-1.0.0/tests/fixtures/packages/terratorch/benchmark_submissions}/base-test/space.yaml +0 -0
  155. {algorithm_nexus-0.3.0/tests/fixtures/packages/terratorch/models/prithvi/benchmark_instances → algorithm_nexus-1.0.0/tests/fixtures/packages/terratorch/models/prithvi/benchmark_submissions}/fire-test/space.yaml +0 -0
  156. {algorithm_nexus-0.3.0/tests/fixtures/packages/terratorch/models/prithvi/benchmark_instances → algorithm_nexus-1.0.0/tests/fixtures/packages/terratorch/models/prithvi/benchmark_submissions}/flood-test/config.json +0 -0
  157. {algorithm_nexus-0.3.0/tests/fixtures/packages/terratorch/models/prithvi/benchmark_instances → algorithm_nexus-1.0.0/tests/fixtures/packages/terratorch/models/prithvi/benchmark_submissions}/flood-test/space.yaml +0 -0
  158. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/terratorch/models/prithvi/model.yaml +0 -0
  159. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/terratorch/nexus.yaml +0 -0
  160. {algorithm_nexus-0.3.0/tests/fixtures/packages/tokamind/benchmark_instances → algorithm_nexus-1.0.0/tests/fixtures/packages/tokamind/benchmark_submissions}/base-test/space.yaml +0 -0
  161. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/tokamind/nexus.yaml +0 -0
  162. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/valid-package/AGENTS.md +0 -0
  163. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/valid-package/models/example-model/model.yaml +0 -0
  164. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/valid-package/models/example-model/usage.md +0 -0
  165. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/valid-package/models/minimal-model/model.yaml +0 -0
  166. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/valid-package/nexus.yaml +0 -0
  167. {algorithm_nexus-0.3.0/tests/fixtures/packages/valid-package-with-benchmarks/models/test-model/benchmark_instances → algorithm_nexus-1.0.0/tests/fixtures/packages/valid-package-with-benchmarks/models/test-model/benchmark_submissions}/flood-segmentation-test/space.yaml +0 -0
  168. {algorithm_nexus-0.3.0/tests/fixtures/packages/valid-package-with-benchmarks/models/test-model/benchmark_instances → algorithm_nexus-1.0.0/tests/fixtures/packages/valid-package-with-benchmarks/models/test-model/benchmark_submissions}/performance-baseline/space.yaml +0 -0
  169. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/valid-package-with-benchmarks/models/test-model/model.yaml +0 -0
  170. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/fixtures/packages/valid-package-with-benchmarks/nexus.yaml +0 -0
  171. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/test_cli_list_get.py +0 -0
  172. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/test_cli_validation.py +0 -0
  173. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tests/test_utils.py +0 -0
  174. {algorithm_nexus-0.3.0 → algorithm_nexus-1.0.0}/tombi.toml +0 -0
@@ -17,7 +17,7 @@ repos:
17
17
 
18
18
  # Ruff - Python linter and formatter
19
19
  - repo: https://github.com/astral-sh/ruff-pre-commit
20
- rev: v0.15.20
20
+ rev: v0.16.8
21
21
  hooks:
22
22
  - id: ruff
23
23
  args: [--fix]
@@ -35,7 +35,7 @@ repos:
35
35
 
36
36
  # Codespell - Check for common misspellings
37
37
  - repo: https://github.com/codespell-project/codespell
38
- rev: v2.4.2
38
+ rev: v2.4.3
39
39
  hooks:
40
40
  - id: codespell
41
41
  additional_dependencies: ["tomli"]
@@ -43,7 +43,7 @@ repos:
43
43
 
44
44
  # UV lock check
45
45
  - repo: https://github.com/astral-sh/uv-pre-commit
46
- rev: 0.11.26
46
+ rev: 0.12.17
47
47
  hooks:
48
48
  - id: uv-lock
49
49
  - id: uv-export
@@ -64,7 +64,7 @@ repos:
64
64
 
65
65
  # Markdownlint - Markdown linting
66
66
  - repo: https://github.com/DavidAnson/markdownlint-cli2
67
- rev: v0.23.0
67
+ rev: v0.23.3
68
68
  hooks:
69
69
  - id: markdownlint-cli2
70
70
 
@@ -76,7 +76,7 @@ repos:
76
76
 
77
77
  # Tombi - TOML formatting
78
78
  - repo: https://github.com/tombi-toml/tombi-pre-commit
79
- rev: v1.2.0
79
+ rev: v1.5.5
80
80
  hooks:
81
81
  - id: tombi-format
82
82
  args: ["--offline"]
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "exclude": {
3
- "files": "^.secrets$|^.secrets.baseline$",
3
+ "files": "^.secrets$|^.secrets.baseline$|^requirements-candidate.txt$|^requirements-ecosystem.txt$|^requirements-product.txt$",
4
4
  "lines": null
5
5
  },
6
- "generated_at": "2026-08-18T13:37:11Z",
6
+ "generated_at": "2026-09-11T09:26:16Z",
7
7
  "plugins_used": [
8
8
  {
9
9
  "name": "AWSKeyDetector"
@@ -76,18 +76,7 @@
76
76
  "name": "TwilioKeyDetector"
77
77
  }
78
78
  ],
79
- "results": {
80
- "requirements-ecosystem.txt": [
81
- {
82
- "hashed_secret": "52b44e0998fd3bcb1929ac25818191fae050cf1d",
83
- "is_secret": false,
84
- "is_verified": false,
85
- "line_number": 825,
86
- "type": "Secret Keyword",
87
- "verified_result": null
88
- }
89
- ]
90
- },
79
+ "results": {},
91
80
  "version": "0.13.1+ibm.64.dss",
92
81
  "word_list": {
93
82
  "file": null,
@@ -1,3 +1,11 @@
1
+ ## [0.3.0](https://github.com/ibm/algorithm-nexus/compare/f6eeb79b27485ed30089ec3b8e216d8756b1971a..0.3.0) - 2026-08-31
2
+ #### Features
3
+ - (**dependencies**) Updated vllm to 0.28.x and terratorch to 1.2.13 (#218) - ([7bdaea9](https://github.com/ibm/algorithm-nexus/commit/7bdaea9a97534de8376c1826c424b35e65b0bf1b)) - Christian Pinto
4
+ #### Documentation
5
+ - (**changelog**) add release notes for 0.2.3 (#215) - ([f6eeb79](https://github.com/ibm/algorithm-nexus/commit/f6eeb79b27485ed30089ec3b8e216d8756b1971a)) - DRL-NextGen
6
+
7
+ - - -
8
+
1
9
  ## [0.2.3](https://github.com/ibm/algorithm-nexus/compare/36f3d99129ddf64de7f5098e4f1c290b991efa18..0.2.3) - 2026-08-25
2
10
  #### Features
3
11
  - (**dependencies**) Relaxed vllm dependency in product target (#214) - ([5926fdf](https://github.com/ibm/algorithm-nexus/commit/5926fdf6e38d8def91ab5ceed2a2b01b258d24c9)) - Christian Pinto
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: algorithm-nexus
3
- Version: 0.3.0
3
+ Version: 1.0.0
4
4
  Summary: A comprehensive library for AI model delivery, testing, and benchmarking
5
5
  Project-URL: Homepage, https://github.com/IBM/algorithm-nexus
6
6
  Project-URL: Issues, https://github.com/IBM/algorithm-nexus/issues
@@ -14,8 +14,8 @@ Requires-Dist: biomed-multi-alignment[vllm]; extra == 'candidate'
14
14
  Requires-Dist: bmfm-targets[vllm]>=0.20.0; extra == 'candidate'
15
15
  Requires-Dist: opencv-python-headless!=5.0.0.93; extra == 'candidate'
16
16
  Requires-Dist: terrakit==0.2.0; extra == 'candidate'
17
- Requires-Dist: terratorch[vllm]==1.2.10; extra == 'candidate'
18
- Requires-Dist: vllm==0.26.0; extra == 'candidate'
17
+ Requires-Dist: terratorch[vllm]==1.2.13; extra == 'candidate'
18
+ Requires-Dist: vllm<0.31.0,>=0.30.0; extra == 'candidate'
19
19
  Provides-Extra: cli
20
20
  Requires-Dist: ado-core>=2.0; extra == 'cli'
21
21
  Requires-Dist: pydantic>=2.13.3; extra == 'cli'
@@ -33,7 +33,7 @@ Provides-Extra: product
33
33
  Requires-Dist: opencv-python-headless!=5.0.0.93; extra == 'product'
34
34
  Requires-Dist: terrakit==0.2.0; extra == 'product'
35
35
  Requires-Dist: terratorch[vllm]==1.2.13; extra == 'product'
36
- Requires-Dist: vllm<0.29.0,>=0.28.0; extra == 'product'
36
+ Requires-Dist: vllm<0.31.0,>=0.30.0; extra == 'product'
37
37
  Description-Content-Type: text/markdown
38
38
 
39
39
  # Algorithm Nexus
@@ -0,0 +1,210 @@
1
+ <!--
2
+ Copyright IBM Corporation 2026
3
+ SPDX-License-Identifier: Apache-2.0
4
+ -->
5
+
6
+ # How to bind an experiment to a problem
7
+
8
+ This guide shows you how to register a benchmark binding in Algorithm Nexus.
9
+
10
+ A **benchmark binding** maps an experiment's property and metric names onto a
11
+ problem's instance properties and metrics. A submission's `space.yaml` uses the
12
+ experiment's names; the binding is how those names correspond to the instance.
13
+
14
+ The steps below bind `rlx_coloring` to the `graph_coloring` problem. After that
15
+ walk-through, [Alternatives](#alternatives) covers matching names, several
16
+ experiments in one file, categorical mappings, and static filters.
17
+
18
+ ## Prerequisites
19
+
20
+ Work from a local checkout of your Algorithm Nexus fork with the CLI extra
21
+ installed:
22
+
23
+ ```bash
24
+ cd algorithm-nexus
25
+ uv sync --group dev --extra cli
26
+ git checkout -b add-rlx-coloring-binding
27
+ ```
28
+
29
+ The `graph_coloring` problem is already registered. To add it, see
30
+ [How to add a benchmark problem and instance](./add_benchmark_problem.md).
31
+
32
+ The `rlx_coloring` experiment is already registered. To add it, see
33
+ [How to add a benchmark experiment](./add_benchmark_experiment.md).
34
+
35
+ ## 1. Create the binding
36
+
37
+ Create the bindings folder and write a YAML file that names the problem, the
38
+ experiment, and the field mappings.
39
+
40
+ ```bash
41
+ mkdir -p experiments/rlx_coloring/bindings
42
+ ```
43
+
44
+ Create `experiments/rlx_coloring/bindings/graph_coloring_binding.yaml`:
45
+
46
+ ```yaml
47
+ bindings:
48
+ - benchmarkIdentifier: graph_coloring
49
+ experiment:
50
+ actuatorIdentifier: custom_experiments
51
+ experimentIdentifier: rlx_coloring
52
+ experimentVersion: 1.0.0
53
+ targetMapping: rlx # The target (algorithm) of this experiment is always "rlx".
54
+ instanceMapping:
55
+ - benchmark: # benchmarks num_vertices is experiments n_nodes parameter
56
+ identifier: num_vertices
57
+ experiment:
58
+ identifier: n_nodes
59
+ - benchmark:
60
+ identifier: edge_density
61
+ experiment:
62
+ identifier: density
63
+ - benchmark:
64
+ identifier: graph_family
65
+ experiment:
66
+ identifier: graph_type
67
+ metricMapping:
68
+ - benchmark: #the benchmarks num_colors_used output is given by the experiment colors output
69
+ identifier: num_colors_used
70
+ experiment:
71
+ identifier: colors
72
+ - benchmark:
73
+ identifier: elapsed_ms
74
+ experiment:
75
+ identifier: runtime_ms
76
+ ```
77
+
78
+ `instanceMapping` pairs each instance property with the experiment input that
79
+ carries it. `metricMapping` does the same for result columns. `targetMapping`
80
+ names the experiment property that identifies the target.
81
+
82
+ In the above example, the experiment only implements a single "benchmark target".
83
+ Hence, the mapping it static.
84
+ An experiment that allows choosing an algorithms via a parameter, would have a mapping
85
+ here as in the `instanceMapping` and `metricMapping` sections.
86
+
87
+ The full field list is in
88
+ [Logical Benchmarks and Instances](../../design/benchmarking/logical_benchmarks_and_instances.md#3-benchmark-binding).
89
+
90
+ You now have:
91
+
92
+ ```text
93
+ experiments/rlx_coloring/
94
+ ├── experiment_package.yaml
95
+ └── bindings/
96
+ └── graph_coloring_binding.yaml
97
+ ```
98
+
99
+ ## 2. Validate
100
+
101
+ ```bash
102
+ uv run nexus validate experiments --experiment rlx_coloring
103
+ ```
104
+
105
+ A successful run lists the experiment with status `success`. The binding is
106
+ ready to commit.
107
+
108
+ ## 3. Open a pull request
109
+
110
+ ```bash
111
+ git add experiments/rlx_coloring/bindings
112
+ git commit -s -m "feat(benchmark): Bind rlx_coloring to graph_coloring"
113
+ git push origin add-rlx-coloring-binding
114
+ ```
115
+
116
+ Open a pull request from your fork to the Algorithm Nexus main branch.
117
+
118
+ To apply this experiment to an instance, continue with
119
+ [How to add a benchmark submission](./add_benchmark_submission.md).
120
+
121
+ ---
122
+
123
+ ## Alternatives
124
+
125
+ ### Bind when names already match
126
+
127
+ When the experiment already uses the problem's property and metric names, the
128
+ binding names the problem, the experiment, and the target:
129
+
130
+ ```yaml
131
+ bindings:
132
+ - benchmarkIdentifier: sorting
133
+ experiment:
134
+ actuatorIdentifier: custom_experiments
135
+ experimentIdentifier: bubble_sort
136
+ experimentVersion: 1.0.0
137
+ targetMapping: algorithm
138
+ ```
139
+
140
+ ### Bind several experiments in one file
141
+
142
+ To bind more than one experiment from the same package, add an entry per
143
+ experiment under `bindings:`:
144
+
145
+ ```yaml
146
+ bindings:
147
+ - benchmarkIdentifier: sorting
148
+ experiment:
149
+ actuatorIdentifier: custom_experiments
150
+ experimentIdentifier: bubble_sort
151
+ experimentVersion: 1.0.0
152
+ targetMapping: algorithm
153
+ - benchmarkIdentifier: sorting
154
+ experiment:
155
+ actuatorIdentifier: custom_experiments
156
+ experimentIdentifier: merge_sort
157
+ experimentVersion: 1.0.0
158
+ targetMapping: algorithm
159
+ ```
160
+
161
+ ### Map a categorical instance value to experiment predicates
162
+
163
+ To collapse a range of experiment inputs onto one instance category, use a
164
+ categorical value mapping:
165
+
166
+ ```yaml
167
+ instanceMapping:
168
+ - categoricalValue:
169
+ property:
170
+ identifier: workload
171
+ value: steady_state_heavy
172
+ predicate:
173
+ - identifier: request_rate
174
+ propertyDomain:
175
+ values: [-1]
176
+ - identifier: max_concurrency
177
+ propertyDomain:
178
+ domainRange: [200, 500]
179
+ variableType: CONTINUOUS_VARIABLE_TYPE
180
+ ```
181
+
182
+ ### Pin a property that is implicit in the problem or the experiment
183
+
184
+ To assert a constant without reading it from results or the instance, add
185
+ `staticFilters`:
186
+
187
+ ```yaml
188
+ staticFilters:
189
+ experimentFilters:
190
+ - property:
191
+ identifier: dataset
192
+ value: random
193
+ benchmarkFilters:
194
+ - property:
195
+ identifier: graph_family
196
+ value: random_regular
197
+ ```
198
+
199
+ See
200
+ [section 3 of Logical Benchmarks and Instances](../../design/benchmarking/logical_benchmarks_and_instances.md#3-benchmark-binding)
201
+ for the mapping variants.
202
+
203
+ ## See also
204
+
205
+ - [Logical Benchmarks and Instances](../../design/benchmarking/logical_benchmarks_and_instances.md)
206
+ — binding schema and aggregation
207
+ - [How to add a benchmark problem and instance](./add_benchmark_problem.md)
208
+ - [How to add a benchmark experiment](./add_benchmark_experiment.md)
209
+ - [How to add a benchmark submission](./add_benchmark_submission.md)
210
+ - [`nexus validate experiments`](../../getting-started/cli-reference.md#nexus-validate-experiments)
@@ -0,0 +1,149 @@
1
+ <!--
2
+ Copyright IBM Corporation 2026
3
+ SPDX-License-Identifier: Apache-2.0
4
+ -->
5
+
6
+ # How to add a benchmark experiment
7
+
8
+ This guide shows you how to register a benchmark experiment in Algorithm Nexus.
9
+
10
+ A **benchmark experiment** is an `ado` custom experiment, distributed as a Python
11
+ package, that evaluates a target (an algorithm or model) and collects
12
+ measurements. Registering the python package in Algorithm Nexus
13
+ makes all the experiments it contains available to submissions.
14
+
15
+ The steps below register a graph-coloring experiment whose package is already
16
+ on PyPI. After that walk-through, [Alternatives](#alternatives) covers GitHub
17
+ URLs, packages that expose several experiments, and authoring a new package.
18
+
19
+ To register the problem this experiment relates to, see
20
+ [How to add a benchmark problem and instance](./add_benchmark_problem.md).
21
+
22
+ ## Prerequisites
23
+
24
+ Work from a local checkout of your Algorithm Nexus fork with the CLI extra
25
+ installed:
26
+
27
+ ```bash
28
+ cd algorithm-nexus
29
+ uv sync --group dev --extra cli
30
+ git checkout -b add-rlx-coloring-experiment
31
+ ```
32
+
33
+ The following assumes a python package containing the experiment
34
+ is published on PyPI (or GitHub; see
35
+ [Point the specifier at a GitHub URL](#point-the-specifier-at-a-github-url)).
36
+
37
+ ## 1. Create the experiment folder
38
+
39
+ Create the experiment folder and write `experiment_package.yaml`. This file
40
+ names the Python package and the experiment identifiers it exposes.
41
+
42
+ ```bash
43
+ mkdir -p experiments/rlx_coloring
44
+ ```
45
+
46
+ Create `experiments/rlx_coloring/experiment_package.yaml`:
47
+
48
+ ```yaml
49
+ experiment_package:
50
+ requirement_specifier: "rlx-coloring"
51
+ experiments:
52
+ - rlx_coloring
53
+ ```
54
+
55
+ `requirement_specifier` is a PyPI package name (optionally with a version
56
+ constraint) or a GitHub URL. The `experiments` list is the set of experiment
57
+ ids submissions will reference.
58
+
59
+ The full field list is in
60
+ [Benchmark Experiments and Submissions](../../design/benchmarking/benchmark_experiments_and_submissions.md#31-experiment-package-registration-in-experiment_packageyaml).
61
+
62
+ You now have:
63
+
64
+ ```text
65
+ experiments/rlx_coloring/
66
+ └── experiment_package.yaml
67
+ ```
68
+
69
+ ## 2. Validate
70
+
71
+ ```bash
72
+ uv run nexus validate experiments --experiment rlx_coloring
73
+ ```
74
+
75
+ A successful run lists the experiment with status `success`. The registration is
76
+ ready to commit.
77
+
78
+ ## 3. Open a pull request
79
+
80
+ ```bash
81
+ git add experiments/rlx_coloring
82
+ git commit -s -m "feat(benchmark): Add rlx_coloring experiment"
83
+ git push origin add-rlx-coloring-experiment
84
+ ```
85
+
86
+ Open a pull request from your fork to the Algorithm Nexus main branch.
87
+
88
+ To map this experiment onto a problem, continue with
89
+ [How to bind an experiment to a problem](./add_benchmark_binding.md).
90
+ To apply this experiment to a target and instance, continue with
91
+ [How to add a benchmark submission](./add_benchmark_submission.md).
92
+
93
+ ---
94
+
95
+ ## Alternatives
96
+
97
+ ### Point the specifier at a GitHub URL
98
+
99
+ To register a package hosted on GitHub, set `requirement_specifier` to the
100
+ repository URL:
101
+
102
+ ```yaml
103
+ experiment_package:
104
+ requirement_specifier: "https://github.com/<org>/<experiment-package-repo>"
105
+ experiments:
106
+ - rlx_coloring
107
+ ```
108
+
109
+ Then validate as in [step 2](#2-validate).
110
+
111
+ ### Declare several experiment ids from one package
112
+
113
+ To expose more than one experiment from the same package, list each identifier:
114
+
115
+ ```yaml
116
+ experiment_package:
117
+ requirement_specifier: "sorting-benchmarks>=1.0.0"
118
+ experiments:
119
+ - bubble_sort
120
+ - merge_sort
121
+ - quick_sort
122
+ ```
123
+
124
+ Each id in the list is available to submissions under this experiment folder.
125
+
126
+ ### Author a new experiment package
127
+
128
+ To create the Python package itself, follow the
129
+ [ado custom experiment template](https://ibm.github.io/ado/actuators/creating-custom-experiments/),
130
+ publish the package on PyPI or GitHub, then continue from
131
+ [step 1](#1-create-the-experiment-folder).
132
+
133
+ ### List registered experiments
134
+
135
+ To see which experiments Algorithm Nexus already registers:
136
+
137
+ ```bash
138
+ uv run nexus list benchmark-experiments
139
+ ```
140
+
141
+ ## See also
142
+
143
+ - [Benchmark Experiments and Submissions](../../design/benchmarking/benchmark_experiments_and_submissions.md)
144
+ — schema and folder layout
145
+ - [How to bind an experiment to a problem](./add_benchmark_binding.md)
146
+ - [How to add a benchmark submission](./add_benchmark_submission.md)
147
+ - [How to add a benchmark problem and instance](./add_benchmark_problem.md)
148
+ - [`nexus validate experiments`](../../getting-started/cli-reference.md#nexus-validate-experiments)
149
+ - [`nexus list benchmark-experiments`](../../getting-started/cli-reference.md#nexus-list-benchmark-experiments)