roadmodel 0.2.69__tar.gz → 0.2.70__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 (55) hide show
  1. {roadmodel-0.2.69 → roadmodel-0.2.70}/PKG-INFO +1 -1
  2. {roadmodel-0.2.69 → roadmodel-0.2.70}/pyproject.toml +1 -1
  3. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/__init__.py +1 -1
  4. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/scoring.py +6 -2
  5. {roadmodel-0.2.69 → roadmodel-0.2.70}/.gitignore +0 -0
  6. {roadmodel-0.2.69 → roadmodel-0.2.70}/LICENSE +0 -0
  7. {roadmodel-0.2.69 → roadmodel-0.2.70}/NOTICE +0 -0
  8. {roadmodel-0.2.69 → roadmodel-0.2.70}/README.md +0 -0
  9. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/benchmarks.json +0 -0
  10. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/catalog.json +0 -0
  11. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/model-selector.txt +0 -0
  12. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/model-tier-cost-scale.md +0 -0
  13. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/settings-display.md +0 -0
  14. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/templates/phase-roadmap-template.md +0 -0
  15. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/templates/planning-kit-how-to-use.md +0 -0
  16. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/templates/project-roadmap-template.md +0 -0
  17. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/templates/prompt-phase-roadmap.md +0 -0
  18. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/templates/prompt-project-roadmap.md +0 -0
  19. {roadmodel-0.2.69 → roadmodel-0.2.70}/docs/user-context.example.md +0 -0
  20. {roadmodel-0.2.69 → roadmodel-0.2.70}/hatch_build.py +0 -0
  21. {roadmodel-0.2.69 → roadmodel-0.2.70}/infra/README.md +0 -0
  22. {roadmodel-0.2.69 → roadmodel-0.2.70}/infra/gcp-killswitch/README.md +0 -0
  23. {roadmodel-0.2.69 → roadmodel-0.2.70}/infra/supabase/README.md +0 -0
  24. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/benchmarks.json +0 -0
  25. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/catalog.json +0 -0
  26. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/model-selector.txt +0 -0
  27. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/model-tier-cost-scale.md +0 -0
  28. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/phase-roadmap-template.md +0 -0
  29. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/planning-kit-how-to-use.md +0 -0
  30. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/project-roadmap-template.md +0 -0
  31. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/prompt-phase-roadmap.md +0 -0
  32. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/prompt-project-roadmap.md +0 -0
  33. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/settings-display.md +0 -0
  34. {roadmodel-0.2.69 → roadmodel-0.2.70}/roadmodel/data/user-context.example.md +0 -0
  35. {roadmodel-0.2.69 → roadmodel-0.2.70}/scripts/agent_context.py +0 -0
  36. {roadmodel-0.2.69 → roadmodel-0.2.70}/scripts/agent_rules.py +0 -0
  37. {roadmodel-0.2.69 → roadmodel-0.2.70}/scripts/update_projects.py +0 -0
  38. {roadmodel-0.2.69 → roadmodel-0.2.70}/scripts/updater_lock.py +0 -0
  39. {roadmodel-0.2.69 → roadmodel-0.2.70}/scripts/upgrade_fleet.py +0 -0
  40. {roadmodel-0.2.69 → roadmodel-0.2.70}/scripts/worktree_memory.py +0 -0
  41. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/__main__.py +0 -0
  42. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/cli.py +0 -0
  43. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/config.py +0 -0
  44. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/cost.py +0 -0
  45. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/errors.py +0 -0
  46. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/mcp_server.py +0 -0
  47. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/providers/__init__.py +0 -0
  48. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/providers/anthropic.py +0 -0
  49. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/providers/google.py +0 -0
  50. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/providers/openai.py +0 -0
  51. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/providers/openai_compatible.py +0 -0
  52. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/providers/registry.py +0 -0
  53. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/recommend.py +0 -0
  54. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/usage.py +0 -0
  55. {roadmodel-0.2.69 → roadmodel-0.2.70}/src/roadmodel/user_context.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: roadmodel
3
- Version: 0.2.69
3
+ Version: 0.2.70
4
4
  Summary: BYO-key CLI that recommends the right AI model, platform, and settings for a prompt.
5
5
  Project-URL: Homepage, https://roadmodel.ai
6
6
  Project-URL: Repository, https://github.com/nathanramoscfa/roadmodel
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "roadmodel"
7
- version = "0.2.69"
7
+ version = "0.2.70"
8
8
  description = "BYO-key CLI that recommends the right AI model, platform, and settings for a prompt."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,2 +1,2 @@
1
1
  # src/roadmodel/__init__.py
2
- __version__ = "0.2.69"
2
+ __version__ = "0.2.70"
@@ -1218,8 +1218,9 @@ def ladder(
1218
1218
  or local weights); a per-token point takes COST only when no prepaid
1219
1219
  point is adequate. BALANCED is the point strictly between them, stronger
1220
1220
  than COST in the task's category, with the best score at the balanced
1221
- posture; with none, the COST or QUALITY model at the balanced posture's
1222
- effort, whichever differs from both other rungs.
1221
+ posture, a prepaid point ahead of any per-token one; with none, the COST
1222
+ or QUALITY model at the balanced posture's effort, whichever differs
1223
+ from both other rungs.
1223
1224
  - Each rung runs at :func:`effort_for` its posture (cheap / balanced /
1224
1225
  best), set on its platform's own dial (:func:`native_level`) where the
1225
1226
  catalog documents one. A lower rung on the same model and platform as
@@ -1290,6 +1291,9 @@ def ladder(
1290
1291
  # can still trail it in the category the task needs.
1291
1292
  between = span[lo + 1 :] if specialist is not None else span[lo + 1 : -1]
1292
1293
  between = [p for p in between if p.candidate.quality > cost_point.candidate.quality]
1294
+ # Like COST, BALANCED draws on what is already paid for first: a per-token
1295
+ # point stands between only when no prepaid one out-scores COST there.
1296
+ between = [p for p in between if p.candidate.scarcity < 1.0] or between
1293
1297
  if between:
1294
1298
  balanced_rung = rung(
1295
1299
  "balanced", max(between, key=lambda p: (p.candidate.score, -p.price_usd))
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes