cmpnd 0.43.0__tar.gz → 0.43.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 (373) hide show
  1. {cmpnd-0.43.0 → cmpnd-0.43.1}/PKG-INFO +2 -2
  2. {cmpnd-0.43.0 → cmpnd-0.43.1}/pyproject.toml +6 -11
  3. {cmpnd-0.43.0 → cmpnd-0.43.1}/uv.lock +36 -23
  4. {cmpnd-0.43.0 → cmpnd-0.43.1}/.gitignore +0 -0
  5. {cmpnd-0.43.0 → cmpnd-0.43.1}/AGENTS.md +0 -0
  6. {cmpnd-0.43.0 → cmpnd-0.43.1}/CLAUDE.md +0 -0
  7. {cmpnd-0.43.0 → cmpnd-0.43.1}/README.md +0 -0
  8. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/__init__.py +0 -0
  9. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_assessments.py +0 -0
  10. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_authored_import.py +0 -0
  11. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_deployments.py +0 -0
  12. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_exporter_pool.py +0 -0
  13. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_gepa_patch.py +0 -0
  14. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_http.py +0 -0
  15. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_program_patch.py +0 -0
  16. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_rlm_patch.py +0 -0
  17. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_runtime_tools.py +0 -0
  18. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_timespec.py +0 -0
  19. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_traces.py +0 -0
  20. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/_valsets.py +0 -0
  21. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/authored.py +0 -0
  22. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/callback.py +0 -0
  23. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/__init__.py +0 -0
  24. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/api_client.py +0 -0
  25. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/__init__.py +0 -0
  26. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/admin.py +0 -0
  27. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/assessments.py +0 -0
  28. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/auth.py +0 -0
  29. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/datasets.py +0 -0
  30. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/deployments.py +0 -0
  31. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/evals.py +0 -0
  32. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/login.py +0 -0
  33. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/optimizations.py +0 -0
  34. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/org.py +0 -0
  35. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/programs.py +0 -0
  36. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/provider_credentials.py +0 -0
  37. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/signatures.py +0 -0
  38. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/tool_servers.py +0 -0
  39. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/top.py +0 -0
  40. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/traces.py +0 -0
  41. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/commands/valsets.py +0 -0
  42. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/credentials.py +0 -0
  43. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/deprecation.py +0 -0
  44. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/pagination.py +0 -0
  45. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/shell.py +0 -0
  46. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/trace_render.py +0 -0
  47. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/tree_help.py +0 -0
  48. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/cli/verbs.py +0 -0
  49. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/client.py +0 -0
  50. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/configuration.py +0 -0
  51. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/context.py +0 -0
  52. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/dataset_sync.py +0 -0
  53. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/datasets.py +0 -0
  54. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/decorators.py +0 -0
  55. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/deployment.py +0 -0
  56. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/deployment_metadata.py +0 -0
  57. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/deployment_runs.py +0 -0
  58. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/eval_handler.py +0 -0
  59. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/execution.py +0 -0
  60. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/exporter.py +0 -0
  61. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/exporter_http.py +0 -0
  62. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/helpers.py +0 -0
  63. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/identity.py +0 -0
  64. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/imaging.py +0 -0
  65. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/ir/__init__.py +0 -0
  66. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/ir/decode.py +0 -0
  67. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/ir/encode.py +0 -0
  68. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/ir/hash.py +0 -0
  69. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/ir/program.py +0 -0
  70. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/ir/reflection.py +0 -0
  71. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/ir/types.py +0 -0
  72. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/ir/xxh64.py +0 -0
  73. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/lm_configuration.py +0 -0
  74. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/mcp_servers.py +0 -0
  75. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/models.py +0 -0
  76. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/optimization.py +0 -0
  77. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/optimizers/__init__.py +0 -0
  78. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/optimizers/gepa.py +0 -0
  79. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/optimizers/gepa_callback.py +0 -0
  80. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/optimizers/resume.py +0 -0
  81. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/optimizers/tracker.py +0 -0
  82. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/packaging.py +0 -0
  83. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/programs.py +0 -0
  84. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/references.py +0 -0
  85. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/retry.py +0 -0
  86. {cmpnd-0.43.0 → cmpnd-0.43.1}/cmpnd/traces.py +0 -0
  87. {cmpnd-0.43.0 → cmpnd-0.43.1}/docs/2026-04-02-code-review.md +0 -0
  88. {cmpnd-0.43.0 → cmpnd-0.43.1}/docs/cli.md +0 -0
  89. {cmpnd-0.43.0 → cmpnd-0.43.1}/docs/client.md +0 -0
  90. {cmpnd-0.43.0 → cmpnd-0.43.1}/docs/custom-proposer.md +0 -0
  91. {cmpnd-0.43.0 → cmpnd-0.43.1}/docs/plans/2026-04-05-train-val-dataset-capture-design.md +0 -0
  92. {cmpnd-0.43.0 → cmpnd-0.43.1}/docs/plans/2026-04-05-train-val-dataset-capture.md +0 -0
  93. {cmpnd-0.43.0 → cmpnd-0.43.1}/docs/reading-traces.md +0 -0
  94. {cmpnd-0.43.0 → cmpnd-0.43.1}/docs/sdk-instrumentation.md +0 -0
  95. {cmpnd-0.43.0 → cmpnd-0.43.1}/examples/generalizing_proposer.py +0 -0
  96. {cmpnd-0.43.0 → cmpnd-0.43.1}/examples/local_ollama.py +0 -0
  97. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/LINEAGE.md +0 -0
  98. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/README.md +0 -0
  99. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/cmpnd_ingest/__init__.py +0 -0
  100. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/cmpnd_ingest/bodies.py +0 -0
  101. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/cmpnd_ingest/exporter_http.py +0 -0
  102. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/cmpnd_ingest/program_names.py +0 -0
  103. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/cmpnd_ingest/protocols.py +0 -0
  104. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/cmpnd_ingest/py.typed +0 -0
  105. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/cmpnd_ingest/request_log.py +0 -0
  106. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/cmpnd_ingest/retry.py +0 -0
  107. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/cmpnd_ingest/trace_facts.py +0 -0
  108. {cmpnd-0.43.0 → cmpnd-0.43.1}/ingest/pyproject.toml +0 -0
  109. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/audit-sdist.sh +0 -0
  110. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/capture_review_run.py +0 -0
  111. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/check-pip-install.sh +0 -0
  112. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/check_release_artifacts.py +0 -0
  113. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/fixtures/review_run.json.gz +0 -0
  114. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/gepa_resume_bug.py +0 -0
  115. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/release-stress.sh +0 -0
  116. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/require_version_bump.py +0 -0
  117. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/seed_review_run.py +0 -0
  118. {cmpnd-0.43.0 → cmpnd-0.43.1}/scripts/test-in-linux.sh +0 -0
  119. {cmpnd-0.43.0 → cmpnd-0.43.1}/stubs/dspy/__init__.pyi +0 -0
  120. {cmpnd-0.43.0 → cmpnd-0.43.1}/stubs/dspy/primitives/__init__.pyi +0 -0
  121. {cmpnd-0.43.0 → cmpnd-0.43.1}/stubs/dspy/primitives/prediction.pyi +0 -0
  122. {cmpnd-0.43.0 → cmpnd-0.43.1}/stubs/dspy/utils/__init__.pyi +0 -0
  123. {cmpnd-0.43.0 → cmpnd-0.43.1}/stubs/dspy/utils/callback.pyi +0 -0
  124. {cmpnd-0.43.0 → cmpnd-0.43.1}/stubs/dspy/utils/dummies.pyi +0 -0
  125. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/__init__.py +0 -0
  126. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/_deployment_signature_helpers.py +0 -0
  127. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/_exporter_helpers.py +0 -0
  128. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/_fake_clock.py +0 -0
  129. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/_identity_helpers.py +0 -0
  130. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/_resolve_refs.py +0 -0
  131. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/_traced_run.py +0 -0
  132. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/conftest.py +0 -0
  133. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/__init__.py +0 -0
  134. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/committee_task.py +0 -0
  135. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/conftest.py +0 -0
  136. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/data/committee_train.ndjson.gz +0 -0
  137. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/data/committee_val.ndjson.gz +0 -0
  138. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/fake_lm.py +0 -0
  139. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/helpers.py +0 -0
  140. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/target_capabilities.py +0 -0
  141. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_assessments_cli.py +0 -0
  142. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_capture_prompts.py +0 -0
  143. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_composite_module.py +0 -0
  144. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_dataset_auto_creation.py +0 -0
  145. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_deploy_execute.py +0 -0
  146. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_deploy_pandas.py +0 -0
  147. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_deploy_programs.py +0 -0
  148. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_edge_cases.py +0 -0
  149. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_example_hash.py +0 -0
  150. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_gepa_optimization.py +0 -0
  151. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_interpreter_spans.py +0 -0
  152. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_lm_accuracy.py +0 -0
  153. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_module_tracing.py +0 -0
  154. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_optimization_lineage.py +0 -0
  155. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_optimization_metric_identity.py +0 -0
  156. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_optimize_failures.py +0 -0
  157. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_optimize_loop.py +0 -0
  158. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_optimize_review_committee.py +0 -0
  159. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_optimize_server_owned_completion.py +0 -0
  160. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_parallel_export.py +0 -0
  161. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_project_attribution.py +0 -0
  162. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_react_tool_spans.py +0 -0
  163. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_save_load.py +0 -0
  164. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_trace_structure.py +0 -0
  165. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_traces_read.py +0 -0
  166. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_user_attribution.py +0 -0
  167. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/e2e/test_valsets_cli.py +0 -0
  168. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/01_predict_qa.json +0 -0
  169. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/02_predict_renamed_field.json +0 -0
  170. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/03_chain_of_thought_qa.json +0 -0
  171. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/04_predict_richer_types.json +0 -0
  172. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/05_composite_two_predicts.json +0 -0
  173. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/06_multichaincomparison.json +0 -0
  174. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/07_program_of_thought.json +0 -0
  175. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/08_opaque_module.json +0 -0
  176. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/09_predict_pydantic_field.json +0 -0
  177. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/10_react.json +0 -0
  178. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/11_refine.json +0 -0
  179. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/12_retrieve.json +0 -0
  180. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/13_knn.json +0 -0
  181. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/14_parallel.json +0 -0
  182. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/identity_vectors/README.md +0 -0
  183. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/ingest_conformance.py +0 -0
  184. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/__init__.py +0 -0
  185. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/authored_optimize/judge.py +0 -0
  186. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/authored_optimize/optimize_hosted.py +0 -0
  187. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/conftest.py +0 -0
  188. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/hosted_mcp_tool_optimize_probe.py +0 -0
  189. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/hosted_optimize_probe.py +0 -0
  190. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/optimization_run_probe.py +0 -0
  191. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/test_cli_deploy_smoketest.py +0 -0
  192. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/test_logs_renders_traces.py +0 -0
  193. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/test_optimization_run.py +0 -0
  194. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/test_optimizing_progress.py +0 -0
  195. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/integration/test_unhappy_path.py +0 -0
  196. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/__init__.py +0 -0
  197. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/__main__.py +0 -0
  198. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/drain.py +0 -0
  199. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/ingest.py +0 -0
  200. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/latency_transport.py +0 -0
  201. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/rlm_shape.py +0 -0
  202. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/rlm_size_report.py +0 -0
  203. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/sweep.py +0 -0
  204. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/test_rlm_shape.py +0 -0
  205. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/load/test_rlm_size_report.py +0 -0
  206. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/__init__.py +0 -0
  207. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/conftest.py +0 -0
  208. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/seed_parity.py +0 -0
  209. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_auth.py +0 -0
  210. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_datasets.py +0 -0
  211. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_deployments.py +0 -0
  212. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_evals.py +0 -0
  213. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_health.py +0 -0
  214. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_modules.py +0 -0
  215. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_optimizations.py +0 -0
  216. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_programs.py +0 -0
  217. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_signatures.py +0 -0
  218. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_trace_streaming.py +0 -0
  219. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/parity/test_traces.py +0 -0
  220. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/span_reference_fixture.py +0 -0
  221. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/__init__.py +0 -0
  222. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/_provider.py +0 -0
  223. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/_readiness.py +0 -0
  224. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/_reliability.py +0 -0
  225. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/_result.py +0 -0
  226. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/mint_bedrock_token.py +0 -0
  227. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_deploy_programs.py +0 -0
  228. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_multi_client_stress.py +0 -0
  229. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_optimize_client_committee.py +0 -0
  230. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_optimize_loop.py +0 -0
  231. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_optimize_loop_wasm.py +0 -0
  232. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_optimize_stress.py +0 -0
  233. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_provider_roles.py +0 -0
  234. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_readiness.py +0 -0
  235. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_real_provider_twins.py +0 -0
  236. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_reliability.py +0 -0
  237. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_reliability_classify.py +0 -0
  238. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_rlm_wasm.py +0 -0
  239. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/stress/test_trace_search.py +0 -0
  240. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_adapter_reentrancy.py +0 -0
  241. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_assessments_api.py +0 -0
  242. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_authored.py +0 -0
  243. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_authored_bundle_collisions.py +0 -0
  244. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_authored_metric_contract.py +0 -0
  245. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_authored_named_models.py +0 -0
  246. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_authored_optimize.py +0 -0
  247. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_callback.py +0 -0
  248. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_candidate_lineage.py +0 -0
  249. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/__init__.py +0 -0
  250. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/conftest.py +0 -0
  251. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_admin.py +0 -0
  252. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_api_client.py +0 -0
  253. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_assessments.py +0 -0
  254. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_auth.py +0 -0
  255. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_credentials.py +0 -0
  256. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_datasets.py +0 -0
  257. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_deployment_runs.py +0 -0
  258. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_deployments.py +0 -0
  259. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_evals.py +0 -0
  260. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_login.py +0 -0
  261. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_main.py +0 -0
  262. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_optimizations.py +0 -0
  263. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_org.py +0 -0
  264. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_pagination.py +0 -0
  265. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_parity.py +0 -0
  266. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_programs.py +0 -0
  267. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_provider_credentials.py +0 -0
  268. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_schema_sample.py +0 -0
  269. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_shell.py +0 -0
  270. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_signatures.py +0 -0
  271. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_tool_servers.py +0 -0
  272. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_top.py +0 -0
  273. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_traces.py +0 -0
  274. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_traces_search_wire.py +0 -0
  275. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_tree_help.py +0 -0
  276. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cli/test_valsets.py +0 -0
  277. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_client.py +0 -0
  278. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_client_program_names.py +0 -0
  279. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_clustering/__init__.py +0 -0
  280. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_clustering/conftest.py +0 -0
  281. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_clustering/test_edge_cases.py +0 -0
  282. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_clustering/test_hash_consistency.py +0 -0
  283. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_clustering/test_type_conversion.py +0 -0
  284. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_cmp551_grouping_identity.py +0 -0
  285. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_configuration.py +0 -0
  286. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_context.py +0 -0
  287. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_context_propagation.py +0 -0
  288. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_dataset_polling.py +0 -0
  289. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_dataset_sync.py +0 -0
  290. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_datasets.py +0 -0
  291. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_decorators.py +0 -0
  292. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_deploy.py +0 -0
  293. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_deploy_mcp_tool_references.py +0 -0
  294. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_deploy_program_id.py +0 -0
  295. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_deployment_metadata.py +0 -0
  296. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_deployment_runs.py +0 -0
  297. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_deployments_read.py +0 -0
  298. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_eval.py +0 -0
  299. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_eval_example_attribution.py +0 -0
  300. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_eval_start.py +0 -0
  301. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_eval_trace_grouping.py +0 -0
  302. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_exception_paths.py +0 -0
  303. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_execute.py +0 -0
  304. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_execute_run_identity.py +0 -0
  305. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_exporter.py +0 -0
  306. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_exporter_program_names.py +0 -0
  307. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_exporter_queue.py +0 -0
  308. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_exporter_real.py +0 -0
  309. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_fake_lm.py +0 -0
  310. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_gepa_callback.py +0 -0
  311. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_gepa_integration.py +0 -0
  312. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_gepa_output_normalization.py +0 -0
  313. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_gepa_resume.py +0 -0
  314. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_identity.py +0 -0
  315. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_imaging.py +0 -0
  316. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_import_weight.py +0 -0
  317. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_ingest_conformance.py +0 -0
  318. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_ingest_second_producer.py +0 -0
  319. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_integration.py +0 -0
  320. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_interpreter_callback.py +0 -0
  321. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_ir_encoder_properties.py +0 -0
  322. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_ir_golden_vectors.py +0 -0
  323. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_ir_roundtrip.py +0 -0
  324. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_lm15_native_calls.py +0 -0
  325. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_lm_configuration.py +0 -0
  326. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_lm_usage_shapes.py +0 -0
  327. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_mcp_tools.py +0 -0
  328. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_models.py +0 -0
  329. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_multi_client_stress_readiness.py +0 -0
  330. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_optimization_progress.py +0 -0
  331. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_optimization_start.py +0 -0
  332. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_optimize.py +0 -0
  333. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_optimize_budget.py +0 -0
  334. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_optimize_lift.py +0 -0
  335. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_optimize_lms.py +0 -0
  336. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_optimize_proposer.py +0 -0
  337. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_optimize_reflection_lm.py +0 -0
  338. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_optimize_terminal_failure.py +0 -0
  339. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_packaging.py +0 -0
  340. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_packaging_callable_source.py +0 -0
  341. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_packaging_mcp_tools.py +0 -0
  342. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_packaging_program_source.py +0 -0
  343. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_poll_until.py +0 -0
  344. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_program_identity.py +0 -0
  345. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_program_lineage_persist.py +0 -0
  346. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_programs_create.py +0 -0
  347. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_project_payload.py +0 -0
  348. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_real_provider_twins_readiness.py +0 -0
  349. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_reflector_properties.py +0 -0
  350. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_reflector_smoke.py +0 -0
  351. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_release_stress_script.py +0 -0
  352. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_repro_reactv2_bugs.py +0 -0
  353. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_require_version_bump.py +0 -0
  354. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_retry.py +0 -0
  355. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_reversible_failures.py +0 -0
  356. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_rlm_patch.py +0 -0
  357. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_run_attribution_paths.py +0 -0
  358. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_runtime_tools.py +0 -0
  359. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_schemas.py +0 -0
  360. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_seed_review_run.py +0 -0
  361. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_signature_inputs.py +0 -0
  362. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_span_references.py +0 -0
  363. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_span_sent_once.py +0 -0
  364. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_trace_context_concurrency.py +0 -0
  365. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_trace_fact_wire_contract.py +0 -0
  366. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_trace_facts.py +0 -0
  367. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_trace_render.py +0 -0
  368. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_traces_read.py +0 -0
  369. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_tracked_gepa.py +0 -0
  370. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_tracker_enrich.py +0 -0
  371. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_truncation.py +0 -0
  372. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_valsets_api.py +0 -0
  373. {cmpnd-0.43.0 → cmpnd-0.43.1}/tests/test_xxh64.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: cmpnd
3
- Version: 0.43.0
3
+ Version: 0.43.1
4
4
  Summary: DSPy observability and deployment SDK for cmpnd
5
5
  Project-URL: Homepage, https://cmpnd.ai
6
6
  Author-email: cmpnd <hello@cmpnd.ai>
@@ -20,7 +20,6 @@ Requires-Python: >=3.11
20
20
  Requires-Dist: dspy>=3.1.3
21
21
  Requires-Dist: httpx>=0.27.0
22
22
  Requires-Dist: ipython>=8.20
23
- Requires-Dist: openai<2
24
23
  Requires-Dist: pydantic>=2.0
25
24
  Requires-Dist: typing-extensions>=4.1.0
26
25
  Requires-Dist: xxhash>=3.0.0
@@ -31,6 +30,7 @@ Requires-Dist: gepa; extra == 'dev'
31
30
  Requires-Dist: hypothesis>=6.100; extra == 'dev'
32
31
  Requires-Dist: jsonschema>=4.0; extra == 'dev'
33
32
  Requires-Dist: litellm; extra == 'dev'
33
+ Requires-Dist: litellm<1.102; (python_version >= '3.15') and extra == 'dev'
34
34
  Requires-Dist: numpy>=2.3; extra == 'dev'
35
35
  Requires-Dist: pandas>=2.2; extra == 'dev'
36
36
  Requires-Dist: pillow>=10.0; extra == 'dev'
@@ -5,7 +5,7 @@ name = "cmpnd"
5
5
  # it's new) — no git tags. Bump with `uv version --bump {minor,patch}` or by
6
6
  # hand. Runtime `cmpnd.__version__` reads installed metadata, so it tracks
7
7
  # this automatically. See docs/plans/2026-07-02-sdk-pypi-tag-free-publish.md.
8
- version = "0.43.0"
8
+ version = "0.43.1"
9
9
  description = "DSPy observability and deployment SDK for cmpnd"
10
10
  readme = "README.md"
11
11
  requires-python = ">=3.11"
@@ -29,16 +29,6 @@ classifiers = [
29
29
 
30
30
  dependencies = [
31
31
  "dspy>=3.1.3",
32
- # Compatibility cap, not a feature dependency (CMP-814). litellm (pulled in
33
- # transitively by dspy) 1.97.x declares openai>=2 but its `Message` pydantic
34
- # model references a type openai's 2.x major bump moved, so `Message.model_rebuild()`
35
- # raises "not fully defined" on every LM call — including through the fake LM the
36
- # sdk-test suite drives. With no bound, `uv pip install … dspy==3.3.0` (the CI
37
- # matrix's install) resolves that broken pair; consumers hit it the same way. The
38
- # cap forces the last working pair (litellm 1.80.x + openai 1.109.x). No separate
39
- # litellm pin: this transitively selects a compatible litellm within dspy's range.
40
- # Lift it once litellm ships a build whose Message is defined against openai 2.x.
41
- "openai<2",
42
32
  # Reached directly by the SDK (cmpnd/optimization.py's poll, cmpnd/datasets.py)
43
33
  # and by the ingest transport this wheel bundles (ingest/cmpnd_ingest), whose
44
34
  # only non-stdlib import it is.
@@ -99,6 +89,11 @@ dev = [
99
89
  # requires-python <3.15. uv ignores that upper bound, so the 3.15 test leg still
100
90
  # installs them.
101
91
  "litellm",
92
+ # Every litellm release from 1.102.0 imports sre_constants, which Python 3.15
93
+ # removed, so `import litellm` fails there (BerriAI/litellm#46060). This cap
94
+ # applies only to the test install. A plain install on Python 3.15 has no
95
+ # litellm. Delete it once a litellm release imports on Python 3.15.
96
+ "litellm<1.102; python_version >= '3.15'",
102
97
  "gepa",
103
98
  # litellm's bedrock/ provider imports boto3 in-process, so the client-side
104
99
  # Bedrock stress tests (committee twins) need it in the test env.
@@ -1,10 +1,13 @@
1
1
  version = 1
2
- revision = 3
2
+ revision = 5
3
3
  requires-python = ">=3.11"
4
4
  resolution-markers = [
5
- "python_full_version >= '3.14' and sys_platform == 'win32'",
6
- "python_full_version >= '3.14' and sys_platform == 'emscripten'",
7
- "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'",
5
+ "python_full_version >= '3.15' and sys_platform == 'win32'",
6
+ "python_full_version >= '3.15' and sys_platform == 'emscripten'",
7
+ "python_full_version >= '3.15' and sys_platform != 'emscripten' and sys_platform != 'win32'",
8
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
9
+ "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
10
+ "python_full_version == '3.14.*' and sys_platform != 'emscripten' and sys_platform != 'win32'",
8
11
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32'",
9
12
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'emscripten'",
10
13
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'",
@@ -493,13 +496,12 @@ wheels = [
493
496
 
494
497
  [[package]]
495
498
  name = "cmpnd"
496
- version = "0.43.0"
499
+ version = "0.43.1"
497
500
  source = { editable = "." }
498
501
  dependencies = [
499
502
  { name = "dspy" },
500
503
  { name = "httpx" },
501
504
  { name = "ipython" },
502
- { name = "openai" },
503
505
  { name = "pydantic" },
504
506
  { name = "typing-extensions" },
505
507
  { name = "xxhash" },
@@ -547,10 +549,10 @@ requires-dist = [
547
549
  { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.100" },
548
550
  { name = "ipython", specifier = ">=8.20" },
549
551
  { name = "jsonschema", marker = "extra == 'dev'", specifier = ">=4.0" },
552
+ { name = "litellm", marker = "python_full_version >= '3.15' and extra == 'dev'", specifier = "<1.102" },
550
553
  { name = "litellm", marker = "extra == 'dev'" },
551
554
  { name = "mcp", marker = "extra == 'mcp'", specifier = ">=1.9" },
552
555
  { name = "numpy", marker = "extra == 'dev'", specifier = ">=2.3" },
553
- { name = "openai", specifier = "<2" },
554
556
  { name = "pandas", marker = "extra == 'dev'", specifier = ">=2.2" },
555
557
  { name = "pillow", marker = "extra == 'dev'", specifier = ">=10.0" },
556
558
  { name = "pillow", marker = "extra == 'images'", specifier = ">=10.0" },
@@ -1052,14 +1054,14 @@ wheels = [
1052
1054
 
1053
1055
  [[package]]
1054
1056
  name = "importlib-metadata"
1055
- version = "9.0.0"
1057
+ version = "8.9.0"
1056
1058
  source = { registry = "https://pypi.org/simple" }
1057
1059
  dependencies = [
1058
1060
  { name = "zipp" },
1059
1061
  ]
1060
- sdist = { url = "https://files.pythonhosted.org/packages/a9/01/15bb152d77b21318514a96f43af312635eb2500c96b55398d020c93d86ea/importlib_metadata-9.0.0.tar.gz", hash = "sha256:a4f57ab599e6a2e3016d7595cfd72eb4661a5106e787a95bcc90c7105b831efc", size = 56405, upload-time = "2026-03-20T06:42:56.999Z" }
1062
+ sdist = { url = "https://files.pythonhosted.org/packages/e7/72/c600ae4f68c28fc19f9c31b9403053e5dbb8cace2e6842c7b7c3e4d42fe9/importlib_metadata-8.9.0.tar.gz", hash = "sha256:58850626cef4bd2df100378b0f2aea9724a7b92f10770d547725b047078f99ee", size = 56140, upload-time = "2026-03-20T16:56:26.362Z" }
1061
1063
  wheels = [
1062
- { url = "https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl", hash = "sha256:2d21d1cc5a017bd0559e36150c21c830ab1dc304dedd1b7ea85d20f45ef3edd7", size = 27789, upload-time = "2026-03-20T06:42:55.665Z" },
1064
+ { url = "https://files.pythonhosted.org/packages/7d/f9/97f2ca8bb3ec6e4b1d64f983ebe98b9a192faddff67fac3d6303a537e670/importlib_metadata-8.9.0-py3-none-any.whl", hash = "sha256:e0f761b6ea91ced3b0844c14c9d955224d538105921f8e6754c00f6ca79fba7f", size = 27220, upload-time = "2026-03-20T16:56:25.07Z" },
1063
1065
  ]
1064
1066
 
1065
1067
  [[package]]
@@ -1330,10 +1332,11 @@ wheels = [
1330
1332
 
1331
1333
  [[package]]
1332
1334
  name = "litellm"
1333
- version = "1.80.0"
1335
+ version = "1.101.6"
1334
1336
  source = { registry = "https://pypi.org/simple" }
1335
1337
  dependencies = [
1336
1338
  { name = "aiohttp" },
1339
+ { name = "boto3" },
1337
1340
  { name = "click" },
1338
1341
  { name = "fastuuid" },
1339
1342
  { name = "httpx" },
@@ -1342,13 +1345,20 @@ dependencies = [
1342
1345
  { name = "jsonschema" },
1343
1346
  { name = "openai" },
1344
1347
  { name = "pydantic" },
1348
+ { name = "pydantic-settings" },
1345
1349
  { name = "python-dotenv" },
1346
1350
  { name = "tiktoken" },
1347
1351
  { name = "tokenizers" },
1348
1352
  ]
1349
- sdist = { url = "https://files.pythonhosted.org/packages/bd/8c/48d533affdbc6d485b7ad4221cd3b40b8c12f9f5568edfe0be0b11e7b945/litellm-1.80.0.tar.gz", hash = "sha256:eeac733eb6b226f9e5fb020f72fe13a32b3354b001dc62bcf1bc4d9b526d6231", size = 11591976, upload-time = "2025-11-16T00:03:51.812Z" }
1353
+ sdist = { url = "https://files.pythonhosted.org/packages/d5/0b/225e16afe62f588b0bcfbde794e4d2ae8c4a1d43334c33b9175587a5c0c4/litellm-1.101.6.tar.gz", hash = "sha256:07de87d90dffe849a2dabf8cf69d473f4b59289101849f526b5f4ec03468750d", size = 17505113, upload-time = "2026-10-08T07:40:26.037Z" }
1350
1354
  wheels = [
1351
- { url = "https://files.pythonhosted.org/packages/ea/53/aa31e4d057b3746b3c323ca993003d6cf15ef987e7fe7ceb53681695ae87/litellm-1.80.0-py3-none-any.whl", hash = "sha256:fd0009758f4772257048d74bf79bb64318859adb4ea49a8b66fdbc718cd80b6e", size = 10492975, upload-time = "2025-11-16T00:03:49.182Z" },
1355
+ { url = "https://files.pythonhosted.org/packages/9d/6d/cffe106bff0ebd44e46925ee4a9973c29220f2177a93d88aff5bd254b007/litellm-1.101.6-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:1e47d70b85553eb77099403cfc0092dcdc1816659c4b58b56944c0af251ee45a", size = 23840725, upload-time = "2026-10-08T07:39:56.283Z" },
1356
+ { url = "https://files.pythonhosted.org/packages/8c/3f/b17d925560032d35261a07542bf6f0ed70bf942f53e2239c93c429c42244/litellm-1.101.6-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:a010be4f79c1ba0af132deb138d8bcb78929d66306aa99831435c6493ceee575", size = 23498169, upload-time = "2026-10-08T07:40:00.202Z" },
1357
+ { url = "https://files.pythonhosted.org/packages/0c/c2/5b9c97ad83ebc5e9e0c805677cb2f050ece0add82afbe82ae11c61035e75/litellm-1.101.6-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:99043b0bfbc34a0aefb0608d69104b994d2e2451959eee80f993cab3f15e4de6", size = 23631398, upload-time = "2026-10-08T07:40:03.956Z" },
1358
+ { url = "https://files.pythonhosted.org/packages/55/30/5fe651566eedf77286ea73c72f1932b047c237d5fde3a2a208151084b5cc/litellm-1.101.6-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:29f7f778dc787489ec2219df9967b7b1095e392c4225a278cdefe682ab63d221", size = 24008194, upload-time = "2026-10-08T07:40:08.241Z" },
1359
+ { url = "https://files.pythonhosted.org/packages/44/ec/a2a6d2b06b62b7053724960996d419f880aad5b0c430cf29ca3d8d2f57ec/litellm-1.101.6-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d4868b8f35eaefe66251c9629b2b84d5f156568d34093ab0424157b1c629addd", size = 23706731, upload-time = "2026-10-08T07:40:12.445Z" },
1360
+ { url = "https://files.pythonhosted.org/packages/29/9f/294461413c264c14e6b3f6da32a2a15ea64134205cc7f35ac3b474d4ab4d/litellm-1.101.6-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2647a56929198b56b6af9a589c8a99c4ddf1d3b750f1c667eeda3f4c6554dc6b", size = 24106053, upload-time = "2026-10-08T07:40:16.915Z" },
1361
+ { url = "https://files.pythonhosted.org/packages/66/6e/84f0f784b1e4b87ab6692b4c404850b1cf6568459f82ccba7fa7d5103125/litellm-1.101.6-cp310-abi3-win_amd64.whl", hash = "sha256:4e6d8e5a46b406917624e16bfa1eafc1520dae5fb6fd116fdc0a5bc789340bbf", size = 23908401, upload-time = "2026-10-08T07:40:22.399Z" },
1352
1362
  ]
1353
1363
 
1354
1364
  [[package]]
@@ -1748,9 +1758,12 @@ name = "numpy"
1748
1758
  version = "2.5.3"
1749
1759
  source = { registry = "https://pypi.org/simple" }
1750
1760
  resolution-markers = [
1751
- "python_full_version >= '3.14' and sys_platform == 'win32'",
1752
- "python_full_version >= '3.14' and sys_platform == 'emscripten'",
1753
- "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'",
1761
+ "python_full_version >= '3.15' and sys_platform == 'win32'",
1762
+ "python_full_version >= '3.15' and sys_platform == 'emscripten'",
1763
+ "python_full_version >= '3.15' and sys_platform != 'emscripten' and sys_platform != 'win32'",
1764
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
1765
+ "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
1766
+ "python_full_version == '3.14.*' and sys_platform != 'emscripten' and sys_platform != 'win32'",
1754
1767
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32'",
1755
1768
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'emscripten'",
1756
1769
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'",
@@ -1826,7 +1839,7 @@ wheels = [
1826
1839
 
1827
1840
  [[package]]
1828
1841
  name = "openai"
1829
- version = "1.109.1"
1842
+ version = "2.54.0"
1830
1843
  source = { registry = "https://pypi.org/simple" }
1831
1844
  dependencies = [
1832
1845
  { name = "anyio" },
@@ -1838,9 +1851,9 @@ dependencies = [
1838
1851
  { name = "tqdm" },
1839
1852
  { name = "typing-extensions" },
1840
1853
  ]
1841
- sdist = { url = "https://files.pythonhosted.org/packages/c6/a1/a303104dc55fc546a3f6914c842d3da471c64eec92043aef8f652eb6c524/openai-1.109.1.tar.gz", hash = "sha256:d173ed8dbca665892a6db099b4a2dfac624f94d20a93f46eb0b56aae940ed869", size = 564133, upload-time = "2025-09-24T13:00:53.075Z" }
1854
+ sdist = { url = "https://files.pythonhosted.org/packages/50/9a/8c75e8c8a5b407a0586faeb2afac91674ff955c191ecc1d6d3b6669f6788/openai-2.54.0.tar.gz", hash = "sha256:e3e6f8bc1ba30ddf381ace1a14340eed381cb984a1a59bd0f34b5be3b5d49cfa", size = 1100285, upload-time = "2026-08-11T18:46:59.035Z" }
1842
1855
  wheels = [
1843
- { url = "https://files.pythonhosted.org/packages/1d/2a/7dd3d207ec669cacc1f186fd856a0f61dbc255d24f6fdc1a6715d6051b0f/openai-1.109.1-py3-none-any.whl", hash = "sha256:6bcaf57086cf59159b8e27447e4e7dd019db5d29a438072fbd49c290c7e65315", size = 948627, upload-time = "2025-09-24T13:00:50.754Z" },
1856
+ { url = "https://files.pythonhosted.org/packages/64/a8/bb76c7356de8ad57f59d5ff993d434df0607f07f08bcc9c9a5c275e399c0/openai-2.54.0-py3-none-any.whl", hash = "sha256:89089789197ccdb87f173a03145ed1598d00795220c93e96cf712b1cbf5e5f2b", size = 1660351, upload-time = "2026-08-11T18:46:56.684Z" },
1844
1857
  ]
1845
1858
 
1846
1859
  [[package]]
@@ -2933,8 +2946,8 @@ name = "secretstorage"
2933
2946
  version = "3.5.0"
2934
2947
  source = { registry = "https://pypi.org/simple" }
2935
2948
  dependencies = [
2936
- { name = "cryptography", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
2937
- { name = "jeepney", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
2949
+ { name = "cryptography" },
2950
+ { name = "jeepney" },
2938
2951
  ]
2939
2952
  sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" }
2940
2953
  wheels = [
@@ -3207,8 +3220,8 @@ name = "uvicorn"
3207
3220
  version = "0.52.4"
3208
3221
  source = { registry = "https://pypi.org/simple" }
3209
3222
  dependencies = [
3210
- { name = "click", marker = "sys_platform != 'emscripten'" },
3211
- { name = "h11", marker = "sys_platform != 'emscripten'" },
3223
+ { name = "click" },
3224
+ { name = "h11" },
3212
3225
  ]
3213
3226
  sdist = { url = "https://files.pythonhosted.org/packages/f2/0f/3f86e61397dd33bf2ccf28188c40db6a740658aeebbbf6e7dbc101a1f487/uvicorn-0.52.4.tar.gz", hash = "sha256:73acfee47a0b133c5de13d219492d62d8a31e935f4fe6e41a232451a15379f86", size = 100627, upload-time = "2026-08-19T06:27:41.821Z" }
3214
3227
  wheels = [
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
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
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
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