cmpnd 0.75.0__tar.gz → 0.76.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.
- {cmpnd-0.75.0 → cmpnd-0.76.0}/PKG-INFO +1 -1
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/evals.py +1 -1
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/programs.py +3 -3
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/top.py +8 -2
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/verbs.py +1 -1
- {cmpnd-0.75.0 → cmpnd-0.76.0}/docs/cli.md +20 -7
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/program_names.py +3 -2
- {cmpnd-0.75.0 → cmpnd-0.76.0}/pyproject.toml +1 -1
- {cmpnd-0.75.0 → cmpnd-0.76.0}/uv.lock +1 -1
- {cmpnd-0.75.0 → cmpnd-0.76.0}/.gitignore +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/AGENTS.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/CLAUDE.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/README.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_assessments.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_authored_import.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_deployments.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_exporter_pool.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_gepa_patch.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_http.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_program_patch.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_rlm_patch.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_runtime_tools.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_timespec.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_traces.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/_valsets.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/authored.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/callback.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/api_client.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/admin.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/assessments.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/auth.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/datasets.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/deployments.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/login.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/optimizations.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/org.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/provider_credentials.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/tool_servers.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/traces.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/commands/valsets.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/credentials.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/deprecation.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/pagination.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/shell.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/trace_render.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/tree_help.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/cli/views.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/client.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/configuration.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/context.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/credentials.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/dataset_sync.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/datasets.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/decorators.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/deployment.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/deployment_metadata.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/deployment_runs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/eval_handler.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/execution.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/exporter.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/exporter_http.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/helpers.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/identity.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/imaging.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/ir/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/ir/decode.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/ir/encode.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/ir/hash.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/ir/program.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/ir/reflection.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/ir/types.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/ir/xxh64.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/lm_configuration.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/mcp_servers.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/models.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/named_programs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/optimization.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/optimizers/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/optimizers/gepa.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/optimizers/gepa_callback.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/optimizers/resume.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/optimizers/tracker.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/packaging.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/program_naming.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/programs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/references.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/retry.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/cmpnd/traces.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/docs/2026-04-02-code-review.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/docs/client.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/docs/custom-proposer.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/docs/plans/2026-04-05-train-val-dataset-capture-design.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/docs/plans/2026-04-05-train-val-dataset-capture.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/docs/reading-traces.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/docs/sdk-instrumentation.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/examples/generalizing_proposer.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/examples/local_ollama.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/LINEAGE.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/README.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/bodies.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/client_floor.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/exporter_http.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/protocols.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/py.typed +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/request_log.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/retry.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/cmpnd_ingest/trace_facts.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/ingest/pyproject.toml +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/audit-sdist.sh +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/capture_review_run.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/check-pip-install.sh +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/check_release_artifacts.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/fixtures/review_run.json.gz +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/gepa_resume_bug.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/install-test-env.sh +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/release-gate.sh +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/release-real-models.sh +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/require_version_bump.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/seed_review_run.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/selfhost_compat.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/scripts/test-in-linux.sh +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/stubs/dspy/__init__.pyi +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/stubs/dspy/primitives/__init__.pyi +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/stubs/dspy/primitives/prediction.pyi +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/stubs/dspy/utils/__init__.pyi +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/stubs/dspy/utils/callback.pyi +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/stubs/dspy/utils/dummies.pyi +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/_credential_route.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/_deployment_signature_helpers.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/_exporter_helpers.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/_fake_clock.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/_identity_helpers.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/_resolve_refs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/_traced_run.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/conftest.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/committee_task.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/conftest.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/continuation_task.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/data/committee_train.ndjson.gz +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/data/committee_val.ndjson.gz +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/fake_lm.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/helpers.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/target_capabilities.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_assessments_cli.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_capture_prompts.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_composite_module.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_dataset_auto_creation.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_deploy_execute.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_deploy_pandas.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_deploy_programs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_edge_cases.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_example_hash.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_gepa_optimization.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_interpreter_spans.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_lm_accuracy.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_module_tracing.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_optimization_lineage.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_optimization_metric_identity.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_optimize_authored_metric.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_optimize_continuation.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_optimize_custom_proposer.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_optimize_failures.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_optimize_loop.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_optimize_review_committee.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_optimize_server_owned_completion.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_parallel_export.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_project_attribution.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_react_tool_spans.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_save_load.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_trace_structure.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_traces_read.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_user_attribution.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/e2e/test_valsets_cli.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/01_predict_qa.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/02_predict_renamed_field.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/03_chain_of_thought_qa.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/04_predict_richer_types.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/05_composite_two_predicts.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/06_multichaincomparison.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/07_program_of_thought.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/08_opaque_module.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/09_predict_pydantic_field.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/10_react.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/11_refine.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/12_retrieve.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/13_knn.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/14_parallel.json +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/identity_vectors/README.md +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/ingest_conformance.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/authored_optimize/judge.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/authored_optimize/optimize_hosted.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/conftest.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/hosted_mcp_tool_optimize_probe.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/hosted_optimize_probe.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/optimization_run_probe.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/test_cli_deploy_smoketest.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/test_logs_renders_traces.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/test_optimization_run.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/test_optimizing_progress.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/integration/test_unhappy_path.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/__main__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/drain.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/ingest.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/latency_transport.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/rlm_shape.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/rlm_size_report.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/sweep.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/test_rlm_shape.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/load/test_rlm_size_report.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/conftest.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/seed_parity.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_auth.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_datasets.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_deployments.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_evals.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_health.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_modules.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_optimizations.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_programs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_signatures.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_trace_streaming.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/parity/test_traces.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/_provider.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/_readiness.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/_reliability.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/_result.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/mint_bedrock_token.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_bedrock_converse.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_deploy_programs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_multi_client_stress.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_optimize_client_committee.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_optimize_continuation.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_optimize_loop.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_optimize_loop_wasm.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_optimize_stress.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_provider_roles.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_readiness.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_real_provider_twins.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_reliability.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_reliability_classify.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_rlm_wasm.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/real_models/test_trace_search.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/span_reference_fixture.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_adapter_reentrancy.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_assessments_api.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_authored.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_authored_binding_credentials.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_authored_bundle_collisions.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_authored_metric_contract.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_authored_named_models.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_authored_optimize.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_callback.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_candidate_lineage.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/conftest.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_admin.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_api_client.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_assessments.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_auth.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_credentials.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_datasets.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_deployment_runs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_deployments.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_evals.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_login.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_main.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_optimizations.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_org.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_pagination.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_parity.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_programs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_provider_credentials.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_schema_sample.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_shell.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_tool_servers.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_top.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_traces.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_traces_program_and_module.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_traces_search_wire.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_tree_help.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cli/test_valsets.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_client.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_client_floor.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_client_program_names.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_clustering/__init__.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_clustering/conftest.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_clustering/test_edge_cases.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_clustering/test_hash_consistency.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_clustering/test_type_conversion.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_cmp551_grouping_identity.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_configuration.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_context.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_context_propagation.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_credential_kwargs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_credential_selection.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_credential_values.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_dataset_polling.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_dataset_sync.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_datasets.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_decision_client_spans.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_decorators.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_deploy.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_deploy_mcp_tool_references.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_deploy_program_id.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_deployment_metadata.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_deployment_runs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_deployments_read.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_eval.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_eval_example_attribution.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_eval_program_id.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_eval_start.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_eval_trace_grouping.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_exception_paths.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_execute.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_execute_run_identity.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_exporter.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_exporter_program_names.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_exporter_queue.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_exporter_real.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_fake_lm.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_gepa_callback.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_gepa_integration.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_gepa_output_normalization.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_gepa_resume.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_identity.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_imaging.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_import_weight.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_ingest_conformance.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_ingest_second_producer.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_integration.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_interpreter_callback.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_ir_encoder_properties.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_ir_golden_vectors.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_ir_roundtrip.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_lm15_native_calls.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_lm_configuration.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_lm_usage_shapes.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_mcp_tools.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_models.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_multi_client_stress_readiness.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_no_signature_hash_on_the_wire.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimization_program_names.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimization_progress.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimization_start.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimize.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimize_budget.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimize_lift.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimize_lms.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimize_proposer.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimize_reflection_lm.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_optimize_terminal_failure.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_packaging.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_packaging_callable_source.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_packaging_mcp_tools.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_packaging_program_source.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_poll_until.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_program_id_deprecation.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_program_identity.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_program_lineage_persist.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_program_names_in_deploy.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_program_naming.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_programs_create.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_project_payload.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_real_provider_twins_readiness.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_reflector_properties.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_reflector_smoke.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_release_gate_script.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_release_real_models_script.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_replaced_names.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_repro_reactv2_bugs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_require_version_bump.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_retry.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_reversible_failures.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_rlm_patch.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_run_attribution_paths.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_runtime_tools.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_schemas.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_seal_lm_credential.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_seed_review_run.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_signature_inputs.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_span_references.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_span_sent_once.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_system_one.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_trace_context_concurrency.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_trace_fact_wire_contract.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_trace_facts.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_trace_render.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_traces_read.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_tracked_gepa.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_tracker_enrich.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_truncation.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_upload_auth_headers.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_valsets_api.py +0 -0
- {cmpnd-0.75.0 → cmpnd-0.76.0}/tests/test_xxh64.py +0 -0
|
@@ -13,7 +13,7 @@ def _add_list_args(p: ArgumentParser) -> None:
|
|
|
13
13
|
"--program",
|
|
14
14
|
dest="program_name",
|
|
15
15
|
metavar="NAME",
|
|
16
|
-
help="Only the runs of the program
|
|
16
|
+
help="Only the runs of the program whose current name is NAME",
|
|
17
17
|
)
|
|
18
18
|
p.add_argument(
|
|
19
19
|
"--module",
|
|
@@ -211,9 +211,9 @@ def register(subparsers: _SubParsersAction[ArgumentParser]) -> None:
|
|
|
211
211
|
"rename",
|
|
212
212
|
help="Name or rename a program",
|
|
213
213
|
description=(
|
|
214
|
-
"Make NAME the current name of PROGRAM
|
|
215
|
-
"
|
|
216
|
-
"
|
|
214
|
+
"Make NAME the current name of PROGRAM, which keeps its id and history. The name it had is free at "
|
|
215
|
+
"once: it no longer resolves, and any program can take it, so code that still declares the old name "
|
|
216
|
+
"reaches a new program. Another program's current name is refused."
|
|
217
217
|
),
|
|
218
218
|
)
|
|
219
219
|
rename.add_argument("program", metavar="PROGRAM", help="Program name or p_ id")
|
|
@@ -1440,7 +1440,10 @@ def register(subparsers: _SubParsersAction[ArgumentParser]) -> None:
|
|
|
1440
1440
|
help="Deploy authored Python source (file or stdin)",
|
|
1441
1441
|
description=(
|
|
1442
1442
|
"Stage authored Python without executing it in this process, check its "
|
|
1443
|
-
"entrypoint in a fresh child, and upload the exact staged bundle
|
|
1443
|
+
"entrypoint in a fresh child, and upload the exact staged bundle.\n\n"
|
|
1444
|
+
"The platform deploys only a program a user named. PROGRAM_NAME is such a name. "
|
|
1445
|
+
"A program with no name, or with a name a client generated, is refused until "
|
|
1446
|
+
"`cmpnd programs rename <p_id> <name>` names it."
|
|
1444
1447
|
),
|
|
1445
1448
|
epilog=(
|
|
1446
1449
|
"Examples:\n"
|
|
@@ -1501,7 +1504,10 @@ def register(subparsers: _SubParsersAction[ArgumentParser]) -> None:
|
|
|
1501
1504
|
"dspy.Prediction(score=, feedback=): gepa writes each new instruction by "
|
|
1502
1505
|
"reading that feedback, so a score-only metric is refused before the run "
|
|
1503
1506
|
"starts. `--reflection-model` is required for the same reason — it names "
|
|
1504
|
-
"the model that does the writing
|
|
1507
|
+
"the model that does the writing.\n\n"
|
|
1508
|
+
"The platform optimizes only a program a user named. A --deployment-id whose "
|
|
1509
|
+
"program has no name, or a name a client generated, such as an optimization's "
|
|
1510
|
+
"result, is refused until `cmpnd programs rename <p_id> <name>` names it."
|
|
1505
1511
|
),
|
|
1506
1512
|
epilog=(
|
|
1507
1513
|
"Examples:\n"
|
|
@@ -167,7 +167,7 @@ DOMAIN_VERBS: dict[str, str] = {
|
|
|
167
167
|
"trash": "moves a program to the Trash, where it stays restorable, and delete would read as the permanent purge",
|
|
168
168
|
"restore": "returns a program from the Trash with its history, which create would not",
|
|
169
169
|
"purge": "deletes a program in the Trash for good, the irreversible step after trash",
|
|
170
|
-
"rename": "gives a program a new current name and
|
|
170
|
+
"rename": "gives a program a new current name and frees the old one for any program, which update would hide",
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
#: Leaves naming a related collection or sub-record rather than an action.
|
|
@@ -28,6 +28,18 @@ already has its program, and a program name with it is refused when the file
|
|
|
28
28
|
binds no program. In the shell, `deploy()` and `optimize()` take the
|
|
29
29
|
program name as `program=`.
|
|
30
30
|
|
|
31
|
+
The platform deploys and optimizes only a program a user named. A program name
|
|
32
|
+
given here, to `cmpnd.Program(name, ...)` or to `cmpnd programs rename` is one.
|
|
33
|
+
A program with no name, or with a name a client generated, such as an
|
|
34
|
+
optimization's result, is refused with `409` and error code `program_unnamed`,
|
|
35
|
+
and the error names the command that fixes it:
|
|
36
|
+
`cmpnd programs rename <p_id> <name>`. It also tells you to declare that name in
|
|
37
|
+
your code with `@cmpnd.program("<name>")` or `cmpnd.Program("<name>", ...)`. The
|
|
38
|
+
rename frees the generated name, so code that declares no name sends its later
|
|
39
|
+
traces to a new program under the generated name. Deployments of such a program that
|
|
40
|
+
already exist keep serving. A rename never clears the name of a program with
|
|
41
|
+
a deployment that can serve.
|
|
42
|
+
|
|
31
43
|
`cmpnd programs create PROGRAM_NAME` makes the program ahead of time and prints
|
|
32
44
|
its id on stdout. It refuses a program name that already has a program. The
|
|
33
45
|
command reports what it created on stderr, and `--json` prints serve's whole
|
|
@@ -108,11 +120,12 @@ PROGRAM name up as the other `cmpnd programs` commands do, and sends
|
|
|
108
120
|
`POST /api/v1/programs/{id}/rename`. The command needs `traces:write` or
|
|
109
121
|
`optimizations:write`.
|
|
110
122
|
|
|
111
|
-
The old name
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
123
|
+
The old name is free at once. It no longer resolves to the program, and any
|
|
124
|
+
program of the organization can take it, so code that still declares the old
|
|
125
|
+
name with `cmpnd.Program(name, ...)` reaches a new program, not this one.
|
|
126
|
+
Update that code to the new name. A program with no name takes its first name
|
|
127
|
+
this way, and code that declares the new name traces to it. Serve refuses
|
|
128
|
+
another live program's current name. A program in the Trash
|
|
116
129
|
is refused until `cmpnd programs restore` returns it. A server from before the
|
|
117
130
|
rename route says so, and the error points at the program's page in the web
|
|
118
131
|
app, which renames it too.
|
|
@@ -460,8 +473,8 @@ optimization result, not a program. Each group's `--help` names the column its
|
|
|
460
473
|
IDs come from.
|
|
461
474
|
|
|
462
475
|
`cmpnd evals list [--program NAME] [--module CLASS] [--metric] [--status]`
|
|
463
|
-
lists eval runs, newest first. `--program` takes the program's
|
|
464
|
-
|
|
476
|
+
lists eval runs, newest first. `--program` takes the program's current
|
|
477
|
+
name, and a name no program holds is an error that names it.
|
|
465
478
|
`--module` takes the evaluated module's class, such as `ReAct`, and matches it
|
|
466
479
|
exactly. The CLI sends them as `program_name` and `module_class`. Each eval
|
|
467
480
|
run in `evals list`, `evals show` and `programs evals` names what it evaluated
|
|
@@ -11,8 +11,9 @@ This module keeps the answers. The transport makes the requests, because they ri
|
|
|
11
11
|
client and its retry budget.
|
|
12
12
|
|
|
13
13
|
An answer is kept for the life of the process. A name that serve later points at
|
|
14
|
-
another program reaches a process only when the process starts again
|
|
15
|
-
|
|
14
|
+
another program reaches a process only when the process starts again. A rename frees
|
|
15
|
+
the old name, so a process that resolved it before the rename keeps sending to the
|
|
16
|
+
renamed program, and a process started after it gets a new program under that name.
|
|
16
17
|
|
|
17
18
|
A name settles in one of two ways. Serve gives an id, or serve refuses the name, as a
|
|
18
19
|
server without program names does with ``405``. A refused name sends its traces without
|
|
@@ -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.
|
|
8
|
+
version = "0.76.0"
|
|
9
9
|
description = "DSPy observability and deployment SDK for cmpnd"
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
requires-python = ">=3.11"
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|