dh-cli 0.17.1__tar.gz → 0.17.2__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 (137) hide show
  1. {dh_cli-0.17.1 → dh_cli-0.17.2}/PKG-INFO +1 -1
  2. {dh_cli-0.17.1 → dh_cli-0.17.2}/pyproject.toml +1 -1
  3. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/bedrock/cost_report.py +2 -0
  4. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/bedrock/pricing.yaml +12 -0
  5. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_resolve_base_model.py +12 -0
  6. {dh_cli-0.17.1 → dh_cli-0.17.2}/.gitignore +0 -0
  7. {dh_cli-0.17.1 → dh_cli-0.17.2}/LICENSE +0 -0
  8. {dh_cli-0.17.1 → dh_cli-0.17.2}/README.md +0 -0
  9. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/__init__.py +0 -0
  10. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/_identity.py +0 -0
  11. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/__init__.py +0 -0
  12. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/aws_batch.py +0 -0
  13. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/__init__.py +0 -0
  14. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/boltz.py +0 -0
  15. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/cancel.py +0 -0
  16. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/clean.py +0 -0
  17. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/cost.py +0 -0
  18. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/disco.py +0 -0
  19. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/embed_esmc.py +0 -0
  20. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/embed_t5.py +0 -0
  21. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/equilibrator.py +0 -0
  22. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/esmfold2.py +0 -0
  23. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/finalize.py +0 -0
  24. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/list_jobs.py +0 -0
  25. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/local.py +0 -0
  26. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/logs.py +0 -0
  27. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/orca.py +0 -0
  28. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/protmpnn.py +0 -0
  29. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/protmpnn_to_boltz.py +0 -0
  30. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/retry.py +0 -0
  31. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/rfd3.py +0 -0
  32. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/status.py +0 -0
  33. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/submit.py +0 -0
  34. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/commands/wait_for.py +0 -0
  35. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/cost_report.py +0 -0
  36. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/fasta_utils.py +0 -0
  37. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/h5_utils.py +0 -0
  38. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/job_id.py +0 -0
  39. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/manifest.py +0 -0
  40. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/batch/s3_transport.py +0 -0
  41. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/bedrock/__init__.py +0 -0
  42. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/bedrock/commands.py +0 -0
  43. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/cloud_commands.py +0 -0
  44. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/codeartifact.py +0 -0
  45. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/engines_studios/__init__.py +0 -0
  46. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/engines_studios/api_client.py +0 -0
  47. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/engines_studios/auth.py +0 -0
  48. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/engines_studios/engine_commands.py +0 -0
  49. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/engines_studios/progress.py +0 -0
  50. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/engines_studios/retry.py +0 -0
  51. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/engines_studios/ssh_config.py +0 -0
  52. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/engines_studios/studio_commands.py +0 -0
  53. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/engines_studios/studio_resolve.py +0 -0
  54. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/github_commands.py +0 -0
  55. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/hz/__init__.py +0 -0
  56. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/hz/auth.py +0 -0
  57. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/hz/deploy.py +0 -0
  58. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/hz/local.py +0 -0
  59. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/hz/mcp_server.py +0 -0
  60. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/hz/test.py +0 -0
  61. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/hz/tf.py +0 -0
  62. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/hz/users.py +0 -0
  63. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/main.py +0 -0
  64. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/sweep.py +0 -0
  65. {dh_cli-0.17.1 → dh_cli-0.17.2}/src/dh_cli/warehouse.py +0 -0
  66. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/__init__.py +0 -0
  67. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/cur_fixtures.py +0 -0
  68. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_aws_batch_resources.py +0 -0
  69. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_batch_cost_command.py +0 -0
  70. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_batch_cost_filters.py +0 -0
  71. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_batch_cost_reader.py +0 -0
  72. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_batch_cost_reconcile.py +0 -0
  73. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_batch_cost_report.py +0 -0
  74. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_image_override.py +0 -0
  75. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_import_without_pandas.py +0 -0
  76. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_no_train_command.py +0 -0
  77. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_submit_cpu_only.py +0 -0
  78. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_submit_image_validation.py +0 -0
  79. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_submit_job_tags.py +0 -0
  80. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_submit_merge.py +0 -0
  81. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/batch/test_submit_mlflow_env.py +0 -0
  82. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/conftest.py +0 -0
  83. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/fixtures/A_cache_write.json +0 -0
  84. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/fixtures/B_cache_read.json +0 -0
  85. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/fixtures/C_plain.json +0 -0
  86. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/fixtures/D_cursor_user.json +0 -0
  87. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/fixtures/E_service_role.json +0 -0
  88. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/fixtures/F_legacy_shared.json +0 -0
  89. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/fixtures/G_unknown_model.json +0 -0
  90. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_build_report.py +0 -0
  91. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_classify_arn.py +0 -0
  92. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_cli_exit_codes.py +0 -0
  93. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_cost_calc.py +0 -0
  94. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_cost_command.py +0 -0
  95. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_cur_reconciliation.py +0 -0
  96. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_key_command.py +0 -0
  97. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_render_formats.py +0 -0
  98. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_rotate.py +0 -0
  99. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/bedrock/test_s3_walker.py +0 -0
  100. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/engines_studios/__init__.py +0 -0
  101. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/engines_studios/test_engine_retry_commands.py +0 -0
  102. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/engines_studios/test_retry.py +0 -0
  103. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/engines_studios/test_ssh_config.py +0 -0
  104. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/engines_studios/test_studio_resolution_commands.py +0 -0
  105. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/engines_studios/test_studio_resolve.py +0 -0
  106. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/__init__.py +0 -0
  107. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/conftest.py +0 -0
  108. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/test_engine_role_cannot_read_github_pat.py +0 -0
  109. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/test_identity.py +0 -0
  110. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/test_login.py +0 -0
  111. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/test_login_error_paths.py +0 -0
  112. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/test_login_security.py +0 -0
  113. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/test_logout.py +0 -0
  114. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/test_rotate.py +0 -0
  115. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/github/test_status.py +0 -0
  116. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/hz/live_smoke.py +0 -0
  117. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/hz/test_auth.py +0 -0
  118. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/hz/test_init.py +0 -0
  119. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/hz/test_mcp_server.py +0 -0
  120. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/hz/test_suites.py +0 -0
  121. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/hz/test_users.py +0 -0
  122. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_aws_status.py +0 -0
  123. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_cloud_gcp.py +0 -0
  124. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_disco_command.py +0 -0
  125. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_disco_jobdef.py +0 -0
  126. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_embed_esmc_cli.py +0 -0
  127. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_equilibrator_command.py +0 -0
  128. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_esmfold2_cli.py +0 -0
  129. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_finalize_boltz_tar.py +0 -0
  130. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_finalize_disco.py +0 -0
  131. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_finalize_disco_dispatch.py +0 -0
  132. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_finalize_equilibrator.py +0 -0
  133. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_finalize_esmfold2.py +0 -0
  134. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_finalize_protmpnn.py +0 -0
  135. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_finalize_rfd3.py +0 -0
  136. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_rfd3_command.py +0 -0
  137. {dh_cli-0.17.1 → dh_cli-0.17.2}/tests/test_sweep.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: dh-cli
3
- Version: 0.17.1
3
+ Version: 0.17.2
4
4
  Summary: Dayhoff Labs developer CLI
5
5
  Author-email: Dayhoff Labs <dev@dayhofflabs.com>
6
6
  License: # PolyForm Noncommercial License 1.0.0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dh-cli"
7
- version = "0.17.1"
7
+ version = "0.17.2"
8
8
  description = "Dayhoff Labs developer CLI"
9
9
  requires-python = ">=3.11"
10
10
  readme = "README.md"
@@ -118,6 +118,8 @@ _BASE_MODELS = (
118
118
  "fable-5",
119
119
  "fable-5-1",
120
120
  "gpt-6-astra",
121
+ "gpt-6-sol",
122
+ "gpt-6-luna",
121
123
  "gpt-5.6-sol",
122
124
  "gpt-5.6-terra",
123
125
  "gpt-5.6-luna",
@@ -65,6 +65,18 @@ models:
65
65
  output_per_1m: 50.00
66
66
  cache_write_per_1m: 12.50
67
67
  cache_read_per_1m: 1.00
68
+ # GPT-6 Sol/Luna: Marketplace rate card `*_global_standard`, 2026-09-25;
69
+ # cache write is the 30-minute tier.
70
+ gpt-6-sol:
71
+ input_per_1m: 2.00
72
+ output_per_1m: 10.00
73
+ cache_write_per_1m: 2.50
74
+ cache_read_per_1m: 0.20
75
+ gpt-6-luna:
76
+ input_per_1m: 0.10
77
+ output_per_1m: 0.50
78
+ cache_write_per_1m: 0.125
79
+ cache_read_per_1m: 0.01
68
80
  gpt-5.6-sol:
69
81
  input_per_1m: 4.00
70
82
  output_per_1m: 20.00
@@ -67,6 +67,14 @@ import pytest
67
67
  "arn:aws:bedrock:us-east-1:074735440724:inference-profile/global.openai.gpt-6-astra",
68
68
  "gpt-6-astra",
69
69
  ),
70
+ ("global.openai.gpt-6-sol", "gpt-6-sol"),
71
+ ("us.openai.gpt-6-sol", "gpt-6-sol"),
72
+ ("openai.gpt-6-sol", "gpt-6-sol"),
73
+ ("global.openai.gpt-6-luna", "gpt-6-luna"),
74
+ (
75
+ "arn:aws:bedrock:us-east-1:074735440724:inference-profile/global.openai.gpt-6-luna",
76
+ "gpt-6-luna",
77
+ ),
70
78
  ],
71
79
  )
72
80
  def test_resolve_base_model_known(model_id: str, expected_base: str):
@@ -139,6 +147,10 @@ def test_opus_55_is_priced_below_opus_5():
139
147
  # (`USE1-MP:USE1_*_global_standard` unit cost). Sol's regional rate
140
148
  # fell from $5.50/$33 in Aug to $4.40/$22 in Sep; Sep is current.
141
149
  ("gpt-6-astra", (10.00, 50.00, 12.50, 1.00)),
150
+ # GPT-6 Sol/Luna: Marketplace rate card, `*_global_standard`,
151
+ # 2026-09-25 (cache write is the 30-minute tier).
152
+ ("gpt-6-sol", (2.00, 10.00, 2.50, 0.20)),
153
+ ("gpt-6-luna", (0.10, 0.50, 0.125, 0.01)),
142
154
  ("gpt-5.6-sol", (4.00, 20.00, 5.00, 0.40)),
143
155
  ("gpt-5.6-terra", (2.00, 12.00, 2.50, 0.20)),
144
156
  ("gpt-5.6-luna", (0.20, 1.20, 0.25, 0.02)),
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes