========== Coverage for /Users/dondoe/coding/zeroth/src/zeroth/core/ ===========
----------------------------------- Summary ------------------------------------
| Name                                 |   Total |   Miss |   Cover |   Cover% |
|--------------------------------------|---------|--------|---------|----------|
| agent_runtime/errors.py              |       8 |      0 |       8 |     100% |
| agent_runtime/mcp.py                 |       6 |      0 |       6 |     100% |
| agent_runtime/models.py              |      18 |      0 |      18 |     100% |
| agent_runtime/prompt.py              |      12 |      0 |      12 |     100% |
| agent_runtime/provider.py            |      18 |      0 |      18 |     100% |
| agent_runtime/response_format.py     |       3 |      0 |       3 |     100% |
| agent_runtime/retry.py               |       3 |      0 |       3 |     100% |
| agent_runtime/runner.py              |      14 |      0 |      14 |     100% |
| agent_runtime/thread_store.py        |      17 |      0 |      17 |     100% |
| agent_runtime/tools.py               |      26 |      0 |      26 |     100% |
| agent_runtime/validation.py          |       4 |      0 |       4 |     100% |
| approvals/models.py                  |       8 |      0 |       8 |     100% |
| approvals/repository.py              |       7 |      0 |       7 |     100% |
| approvals/service.py                 |      14 |      0 |      14 |     100% |
| approvals/sla_checker.py             |       4 |      0 |       4 |     100% |
| audit/evidence.py                    |       3 |      0 |       3 |     100% |
| audit/models.py                      |      11 |      0 |      11 |     100% |
| audit/repository.py                  |      12 |      1 |      11 |      92% |
| audit/sanitizer.py                   |       5 |      0 |       5 |     100% |
| audit/timeline.py                    |       3 |      0 |       3 |     100% |
| audit/verifier.py                    |       7 |      4 |       3 |      43% |
| conditions/binding.py                |       5 |      0 |       5 |     100% |
| conditions/branch.py                 |      10 |      0 |      10 |     100% |
| conditions/errors.py                 |       3 |      0 |       3 |     100% |
| conditions/evaluator.py              |      11 |      0 |      11 |     100% |
| conditions/models.py                 |       9 |      0 |       9 |     100% |
| conditions/recorder.py               |       4 |      0 |       4 |     100% |
| config/settings.py                   |      16 |      0 |      16 |     100% |
| contracts/errors.py                  |       5 |      0 |       5 |     100% |
| contracts/registry.py                |      22 |      0 |      22 |     100% |
| demos/format_script.py               |       2 |      1 |       1 |      50% |
| demos/qa_models.py                   |       9 |      8 |       1 |      11% |
| deployments/models.py                |       4 |      0 |       4 |     100% |
| deployments/provenance.py            |       8 |      1 |       7 |      88% |
| deployments/repository.py            |       7 |      0 |       7 |     100% |
| deployments/service.py               |      12 |      0 |      12 |     100% |
| dispatch/arq_wakeup.py               |       6 |      1 |       5 |      83% |
| dispatch/lease.py                    |      13 |      2 |      11 |      85% |
| dispatch/worker.py                   |      16 |      3 |      13 |      81% |
| econ/adapter.py                      |       3 |      0 |       3 |     100% |
| econ/budget.py                       |       3 |      0 |       3 |     100% |
| econ/client.py                       |       5 |      0 |       5 |     100% |
| econ/cost.py                         |       3 |      0 |       3 |     100% |
| econ/models.py                       |       3 |      0 |       3 |     100% |
| execution_units/adapters.py          |      13 |      0 |      13 |     100% |
| execution_units/constraints.py       |       4 |      0 |       4 |     100% |
| execution_units/errors.py            |       3 |      0 |       3 |     100% |
| execution_units/integrity.py         |       8 |      3 |       5 |      62% |
| execution_units/io.py                |      22 |      0 |      22 |     100% |
| execution_units/models.py            |      22 |      0 |      22 |     100% |
| execution_units/runner.py            |      31 |      0 |      31 |     100% |
| execution_units/sandbox.py           |      36 |      0 |      36 |     100% |
| execution_units/sidecar_client.py    |       7 |      0 |       7 |     100% |
| execution_units/validator.py         |      18 |      0 |      18 |     100% |
| graph/diff.py                        |      20 |      0 |      20 |     100% |
| graph/errors.py                      |       2 |      0 |       2 |     100% |
| graph/models.py                      |      26 |      1 |      25 |      96% |
| graph/repository.py                  |      20 |      0 |      20 |     100% |
| graph/serialization.py               |       3 |      0 |       3 |     100% |
| graph/storage.py                     |       1 |      0 |       1 |     100% |
| graph/validation.py                  |      22 |      0 |      22 |     100% |
| graph/validation_errors.py           |      11 |      0 |      11 |     100% |
| graph/versioning.py                  |       4 |      0 |       4 |     100% |
| guardrails/config.py                 |       2 |      0 |       2 |     100% |
| guardrails/dead_letter.py            |       3 |      0 |       3 |     100% |
| guardrails/rate_limit.py             |       6 |      1 |       5 |      83% |
| identity/models.py                   |       8 |      2 |       6 |      75% |
| mappings/errors.py                   |       2 |      0 |       2 |     100% |
| mappings/executor.py                 |       6 |      0 |       6 |     100% |
| mappings/models.py                   |       7 |      0 |       7 |     100% |
| mappings/validator.py                |       6 |      0 |       6 |     100% |
| memory/chroma_connector.py           |       9 |      0 |       9 |     100% |
| memory/connectors.py                 |      17 |     13 |       4 |      24% |
| memory/elastic_connector.py          |       8 |      0 |       8 |     100% |
| memory/factory.py                    |       6 |      0 |       6 |     100% |
| memory/models.py                     |       3 |      0 |       3 |     100% |
| memory/pgvector_connector.py         |      10 |      0 |      10 |     100% |
| memory/redis_kv.py                   |       8 |      1 |       7 |      88% |
| memory/redis_thread.py               |       8 |      1 |       7 |      88% |
| memory/registry.py                   |       8 |      0 |       8 |     100% |
| observability/correlation.py         |       4 |      0 |       4 |     100% |
| observability/metrics.py             |       8 |      1 |       7 |      88% |
| observability/queue_gauge.py         |       3 |      0 |       3 |     100% |
| orchestrator/runtime.py              |      33 |      0 |      33 |     100% |
| policy/guard.py                      |      10 |      0 |      10 |     100% |
| policy/models.py                     |       5 |      0 |       5 |     100% |
| policy/registry.py                   |       7 |      0 |       7 |     100% |
| runs/models.py                       |      11 |      0 |      11 |     100% |
| runs/repository.py                   |      70 |      0 |      70 |     100% |
| sandbox_sidecar/app.py               |       5 |      0 |       5 |     100% |
| sandbox_sidecar/executor.py          |       7 |      0 |       7 |     100% |
| sandbox_sidecar/models.py            |       5 |      0 |       5 |     100% |
| secrets/provider.py                  |      11 |      5 |       6 |      55% |
| secrets/redaction.py                 |       3 |      0 |       3 |     100% |
| service/admin_api.py                 |       9 |      4 |       5 |      56% |
| service/app.py                       |       9 |      5 |       4 |      44% |
| service/approval_api.py              |      15 |     10 |       5 |      33% |
| service/audit_api.py                 |      23 |     13 |      10 |      43% |
| service/auth.py                      |      15 |      6 |       9 |      60% |
| service/authorization.py             |       5 |      0 |       5 |     100% |
| service/bootstrap.py                 |       8 |      0 |       8 |     100% |
| service/contracts_api.py             |      15 |      8 |       7 |      47% |
| service/cost_api.py                  |       6 |      0 |       6 |     100% |
| service/entrypoint.py                |       4 |      0 |       4 |     100% |
| service/health.py                    |      12 |      2 |      10 |      83% |
| service/run_api.py                   |      20 |     10 |      10 |      50% |
| service/studio_api.py                |      10 |      0 |      10 |     100% |
| service/studio_schemas.py            |      11 |      0 |      11 |     100% |
| service/webhook_api.py               |      15 |      6 |       9 |      60% |
| storage/async_postgres.py            |      11 |      0 |      11 |     100% |
| storage/async_sqlite.py              |      10 |      0 |      10 |     100% |
| storage/database.py                  |       9 |      6 |       3 |      33% |
| storage/factory.py                   |       2 |      0 |       2 |     100% |
| storage/json.py                      |       5 |      0 |       5 |     100% |
| storage/redis.py                     |      12 |      0 |      12 |     100% |
| storage/sqlite.py                    |      15 |      3 |      12 |      80% |
| webhooks/delivery.py                 |       8 |      1 |       7 |      88% |
| webhooks/models.py                   |      10 |      0 |      10 |     100% |
| webhooks/repository.py               |      20 |      0 |      20 |     100% |
| webhooks/service.py                  |      10 |      0 |      10 |     100% |
| webhooks/signing.py                  |       2 |      0 |       2 |     100% |
|--------------------------------------|---------|--------|---------|----------|
| TOTAL                                |    1245 |    123 |    1122 |    90.1% |
---------------- RESULT: PASSED (minimum: 0.0%, actual: 90.1%) -----------------
