mca-sdk 0.6.6.dev1__tar.gz → 0.6.8.dev7__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.
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/CHANGELOG.md +5 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/PKG-INFO +1 -1
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/_version.py +3 -3
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/core/client.py +71 -1
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/serialization.py +4 -2
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/PKG-INFO +1 -1
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/agent_instrumented.py +4 -2
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-genai/litellm_instrumented.py +2 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-model/instrumented_model.py +24 -9
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/shared/__init__.py +4 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/shared/config.py +2 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_coverage_final_push.py +3 -1
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_final_coverage_85.py +3 -1
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_serialization.py +6 -6
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_ultimate_final_85.py +4 -2
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/.coveragerc +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/.dockerignore +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/.env.gcp-dev.example +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/.gitignore +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/44.0.0 +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=0.24.0 +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=0.6.0 +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=1.11.0 +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=1.4.0 +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=2.2.0 +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=3.5.0 +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/LICENSE +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/MANIFEST.in +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/bandit-report.json +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/baseline_report.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/docs/collector-metrics-guide.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/examples/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/examples/test-health-check.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/o +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/otel-collector-config.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/docker-compose.gcp-dev.yml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/docker-compose.yml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/.helmignore +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/Chart.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/NOTES.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/_helpers.tpl +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/configmap.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/external-service.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/headless-service.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/hpa.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/networkpolicy.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/pdb.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/service.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/serviceaccount.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/statefulset.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/storageclass.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/values-dev.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/values-prod.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/values-staging.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/values.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/DEPLOYMENT.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/configmap.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/external-service.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/headless-service.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/hpa.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/kustomization.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/networkpolicy.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/pdb.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/secret.yaml.example +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/service.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/serviceaccount.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/statefulset.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/storageclass.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/examples/gcp-dev-deployment.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/dev/DEPLOY.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/dev/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/dev/configmap-patch.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/dev/kustomization.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/prod/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/prod/configmap-patch.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/prod/kustomization.yaml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/pubsub/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/pubsub/create-dlq-topic.sh +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/pubsub/dlq-replay-processor.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca/Dockerfile +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/FOR_AI_ASSISTANTS.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/exporters.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/queue.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/queued_item.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/retry.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/config/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/config/settings.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/core/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/core/gcp_auth.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/core/providers.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/exporters/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/exporters/gcp_logging.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/exporters/gcp_trace_exporter.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/bridge.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/decorators.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/genai.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/litellm_callback.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/state.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/py.typed +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/registry/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/registry/client.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/registry/models.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/registry/telemetry.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/resilience/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/resilience/circuit_breaker.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/resilience/dead_letter_queue.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/certificate.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/certificates.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/encryption.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/migration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/exceptions.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/gcp_validators.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/phi_utils.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/routing.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/version_check.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/attributes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/naming_conventions.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/result.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/rules.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/schema.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/telemetry_attributes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/validator.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/SOURCES.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/dependency_links.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/requires.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/top_level.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mypy.ini +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/notebooks/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/notebooks/end-to-end-demo.ipynb +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pip-audit-report.json +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pip-audit-results.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/profile_output.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pylint-report.json +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pyproject.toml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pytest.ini +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/requirements-security.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/requirements.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/Dockerfile +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/requirements.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/tools.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-genai/Dockerfile +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-genai/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-genai/requirements.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-model/Dockerfile +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-model/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-model/requirements.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/shared/gcp_helpers.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/shared/verification.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/Dockerfile +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/api_to_otlp_bridge.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/mock_vendor_api.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/performance_validation.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/requirements-base.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/requirements.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk_profile.stats +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/setup.cfg +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/setup.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/ci/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/ci/test_security_notifications.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/ci/test_security_scanning.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/conftest.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/RUN_IN_GCP_WORKBENCH.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/conftest.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/run_e2e_tests.sh +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_error_scenarios_e2e.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_logs_e2e.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_metrics_e2e.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_multi_model_e2e.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_traces_e2e.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/fixtures/mock_collector.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/conftest.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/junit.xml +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/run_k8s_tests.sh +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_agentic_example.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_attributes_processor.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_batch_processor.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_buffering_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_circuit_breaker_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_collector_self_monitoring.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_collector_telemetry_flow.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_debug_exporter.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_decorator_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_docker_build.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_docker_compose.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_docker_images.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_e2e_flow.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_exception_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_gcp_logging_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_gcp_trace_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_ha_deployment.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_ha_features.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_health_check.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_healthcheck.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_internal_model_example.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_k8s_deployment.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_multi_pipeline.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_package_metadata.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_prometheus_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_pypi_package.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_queue_recovery.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_sdk_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_state_persistence.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_story_3_14_schema_validation.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_validation_e2e.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/README.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/baseline_profile_report.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/benchmark_sdk.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/collector_monitor.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/conftest.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/generate_overhead_report.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/load_test_report.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/load_test_scenarios.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/load_test_sustained.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/memory_leak_check.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/memory_leak_test.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/optimization_results.md +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/performance_helpers.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/performance_test.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/profile_overhead.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/profile_sdk.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/results/overhead_profile.txt +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/run_load_tests.sh +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/telemetry_completeness.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_backpressure.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_concurrency.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_load_testing.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_negative_cases.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_performance.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/utils.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/security/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/security/test_sast.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/security/test_security_requirements.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_agentic.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_basic_export.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_gcp_registry_auth.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_goal_context_token_fix.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_registry_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/__init__.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_absolute_final_85.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_additional_coverage.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_agentic_tracking.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_async_compatibility.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_attribute_validator.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_buffering_exporters.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_buffering_queue.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_buffering_security.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_certificate_rotation.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_circuit_breaker.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_client_attribute_validation.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_client_core.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_code_review_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_hardening.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_persistence.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_precedence.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_security.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_settings.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_credential_sanitization_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_critical_findings.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_dead_letter_queue.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_debug_mode.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_decorators.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_disk_persistence.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_dlq_encryption.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_dlq_fixes_review.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_dlq_persistence.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_eighth_round_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_eleventh_round_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_encryption_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_exceptions.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_fifth_round_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_final_85_coverage.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_final_coverage_push.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_fork_safety.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_fourth_round_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_auth.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_auth_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_logging_config.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_logging_exporter.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_logging_phi.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_registry_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_trace_exporter.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_genai_helpers.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_genai_metric_naming.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_https_enforcement.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_integrations_decorators.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_litellm_callback.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_log_injection.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_mca_client.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_metric_naming.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_mtls_config.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_negative_validation.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_ninth_round_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_otlp_output_contracts.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_phi_masking.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_phi_utils_dummy.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_predict_decorator_backwards_compat.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_production_detection.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_prometheus_exporter.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_providers.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_queue_encryption.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_client.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_hydration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_refresh.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_thread_safety.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_update +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_retry_integration.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_retry_policy.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_retry_with_dlq.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_round_12_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_round_13_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_round_14_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_routing.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_schema_validation.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_secure_token_handling.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_serialization_poisoning.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_signal_handling.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_sixth_round_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_small_modules_coverage.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_state_managers.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_taxonomy.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_telemetry_attribute_validation.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_tenth_round_fixes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_validation_attributes.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_validation_init.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_vendor_bridge.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_vendor_bridge_ac.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_vendor_bridge_state.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_version_check.py +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tox.ini +0 -0
- {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/updated-versions.txt +0 -0
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.6.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 6,
|
|
31
|
+
__version__ = version = '0.6.8.dev7'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 6, 8, 'dev7')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g573997918'
|
|
@@ -571,6 +571,14 @@ class MCAClient:
|
|
|
571
571
|
"team.name": self.config.team_name,
|
|
572
572
|
}
|
|
573
573
|
)
|
|
574
|
+
elif self._metric_prefix == "agentic": # Agentic AI models
|
|
575
|
+
resource_attrs.update(
|
|
576
|
+
{
|
|
577
|
+
"llm.provider": self.config.llm_provider,
|
|
578
|
+
"llm.model": self.config.llm_model,
|
|
579
|
+
"team.name": self.config.team_name,
|
|
580
|
+
}
|
|
581
|
+
)
|
|
574
582
|
elif self._metric_prefix == "vendor": # Vendor models
|
|
575
583
|
resource_attrs.update(
|
|
576
584
|
{
|
|
@@ -792,13 +800,25 @@ class MCAClient:
|
|
|
792
800
|
description="Total number of prediction errors",
|
|
793
801
|
)
|
|
794
802
|
|
|
803
|
+
self._mae_histogram = self._meter.create_histogram(
|
|
804
|
+
f"{self._metric_prefix}.mae",
|
|
805
|
+
description="Mean Absolute Error",
|
|
806
|
+
)
|
|
807
|
+
|
|
808
|
+
self._rmse_histogram = self._meter.create_histogram(
|
|
809
|
+
f"{self._metric_prefix}.rmse",
|
|
810
|
+
description="Root Mean Squared Error",
|
|
811
|
+
)
|
|
812
|
+
|
|
795
813
|
# FIXED (Round 13): State initialization moved to __init__() to guarantee safe state
|
|
796
814
|
# All _max_* variables, locks, and dicts are now initialized before any complex setup
|
|
797
815
|
|
|
798
816
|
if self._debug_mode:
|
|
799
817
|
self._sdk_logger.debug(
|
|
800
818
|
f"Standard metrics created: {self._metric_prefix}.predictions_total (counter), "
|
|
801
|
-
f"{self._metric_prefix}.latency_seconds (histogram)"
|
|
819
|
+
f"{self._metric_prefix}.latency_seconds (histogram), "
|
|
820
|
+
f"{self._metric_prefix}.mae (histogram), "
|
|
821
|
+
f"{self._metric_prefix}.rmse (histogram)"
|
|
802
822
|
)
|
|
803
823
|
|
|
804
824
|
# Initialize metric naming validation
|
|
@@ -1424,6 +1444,56 @@ class MCAClient:
|
|
|
1424
1444
|
f"[{prediction_id}] Prediction recording completed - metrics will be exported via batch processor (interval: {self._metric_export_interval_ms}ms)"
|
|
1425
1445
|
)
|
|
1426
1446
|
|
|
1447
|
+
def record_evaluation(
|
|
1448
|
+
self,
|
|
1449
|
+
mae: Optional[float] = None,
|
|
1450
|
+
rmse: Optional[float] = None,
|
|
1451
|
+
dataset: str = "validation",
|
|
1452
|
+
**attributes,
|
|
1453
|
+
) -> None:
|
|
1454
|
+
"""Record model evaluation metrics (MAE, RMSE).
|
|
1455
|
+
|
|
1456
|
+
Args:
|
|
1457
|
+
mae: Mean Absolute Error value
|
|
1458
|
+
rmse: Root Mean Squared Error value
|
|
1459
|
+
dataset: Dataset evaluated on (default: 'validation')
|
|
1460
|
+
**attributes: Additional attributes to attach
|
|
1461
|
+
"""
|
|
1462
|
+
eval_attributes = {"dataset": dataset}
|
|
1463
|
+
if attributes:
|
|
1464
|
+
eval_attributes.update(attributes)
|
|
1465
|
+
|
|
1466
|
+
safe_attributes = eval_attributes
|
|
1467
|
+
if getattr(self, "_strict_validation", True):
|
|
1468
|
+
try:
|
|
1469
|
+
from ..validation.telemetry_attributes import TelemetryAttributeValidator
|
|
1470
|
+
|
|
1471
|
+
safe_attributes = TelemetryAttributeValidator.validate(
|
|
1472
|
+
eval_attributes,
|
|
1473
|
+
strict=self._strict_validation,
|
|
1474
|
+
max_value_length=self._max_attr_length,
|
|
1475
|
+
max_attribute_count=self._max_attr_count,
|
|
1476
|
+
)
|
|
1477
|
+
except Exception as e:
|
|
1478
|
+
if self._strict_validation:
|
|
1479
|
+
raise
|
|
1480
|
+
self._sdk_logger.warning(f"Attribute validation failed for evaluation metrics: {e}")
|
|
1481
|
+
safe_attributes = {"dataset": dataset} # fallback
|
|
1482
|
+
|
|
1483
|
+
if mae is not None:
|
|
1484
|
+
self._mae_histogram.record(mae, attributes=safe_attributes)
|
|
1485
|
+
if self._debug_mode:
|
|
1486
|
+
self._sdk_logger.debug(
|
|
1487
|
+
f"Metric recorded: {self._metric_prefix}.mae = {mae} on {dataset}"
|
|
1488
|
+
)
|
|
1489
|
+
|
|
1490
|
+
if rmse is not None:
|
|
1491
|
+
self._rmse_histogram.record(rmse, attributes=safe_attributes)
|
|
1492
|
+
if self._debug_mode:
|
|
1493
|
+
self._sdk_logger.debug(
|
|
1494
|
+
f"Metric recorded: {self._metric_prefix}.rmse = {rmse} on {dataset}"
|
|
1495
|
+
)
|
|
1496
|
+
|
|
1427
1497
|
def record_error(
|
|
1428
1498
|
self,
|
|
1429
1499
|
error: Exception,
|
|
@@ -41,8 +41,10 @@ def serialize_for_telemetry(
|
|
|
41
41
|
>>> serialize_for_telemetry("a" * 2000, max_length=100)
|
|
42
42
|
'aaa...aaa...[truncated]'
|
|
43
43
|
"""
|
|
44
|
-
# None, bool, int, float
|
|
45
|
-
|
|
44
|
+
# None, bool, int, float are returned unchanged (OTel-compatible)
|
|
45
|
+
# Note: OTel span attributes DO NOT accept dicts, and only accept homogeneous
|
|
46
|
+
# lists of primitives. To be safe for both logs and spans, we stringify dicts/lists.
|
|
47
|
+
if data is None or isinstance(data, (bool, int, float)):
|
|
46
48
|
return data
|
|
47
49
|
|
|
48
50
|
# Strings are returned as-is but with truncation applied if needed
|
{mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/agent_instrumented.py
RENAMED
|
@@ -9,14 +9,16 @@ import sys
|
|
|
9
9
|
import time
|
|
10
10
|
from typing import List, Dict
|
|
11
11
|
|
|
12
|
+
# Add both sdk-examples (for shared.py) and mca-prototype root (for mca_sdk) to path
|
|
12
13
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
|
14
|
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
|
|
13
15
|
|
|
14
16
|
from shared import (
|
|
15
17
|
print_gcp_auth_status,
|
|
16
18
|
print_collector_status,
|
|
17
19
|
COLLECTOR_HTTP_ENDPOINT,
|
|
18
20
|
REGISTRY_URL,
|
|
19
|
-
|
|
21
|
+
AGENTIC_MODEL_ID
|
|
20
22
|
)
|
|
21
23
|
|
|
22
24
|
from mca_sdk import MCAClient
|
|
@@ -134,7 +136,7 @@ def main():
|
|
|
134
136
|
|
|
135
137
|
# Step 3-5: Registry integration
|
|
136
138
|
print("\n=== Registry Integration ===")
|
|
137
|
-
model_id = os.environ.get("MODEL_ID",
|
|
139
|
+
model_id = os.environ.get("MODEL_ID", AGENTIC_MODEL_ID)
|
|
138
140
|
|
|
139
141
|
registry_client = RegistryClient(url=REGISTRY_URL, use_gcp_auth=True, timeout=10.0)
|
|
140
142
|
|
{mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-genai/litellm_instrumented.py
RENAMED
|
@@ -9,7 +9,9 @@ import sys
|
|
|
9
9
|
import time
|
|
10
10
|
import random
|
|
11
11
|
|
|
12
|
+
# Add both sdk-examples (for shared.py) and mca-prototype root (for mca_sdk) to path
|
|
12
13
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
|
14
|
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
|
|
13
15
|
|
|
14
16
|
from shared import (
|
|
15
17
|
print_gcp_auth_status,
|
|
@@ -9,14 +9,16 @@ import sys
|
|
|
9
9
|
import time
|
|
10
10
|
import random
|
|
11
11
|
|
|
12
|
+
# Add both sdk-examples (for shared.py) and mca-prototype root (for mca_sdk) to path
|
|
12
13
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
|
14
|
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
|
|
13
15
|
|
|
14
16
|
from shared import (
|
|
15
17
|
print_gcp_auth_status,
|
|
16
18
|
print_collector_status,
|
|
17
19
|
COLLECTOR_HTTP_ENDPOINT,
|
|
18
20
|
REGISTRY_URL,
|
|
19
|
-
|
|
21
|
+
INTERNAL_MODEL_ID,
|
|
20
22
|
)
|
|
21
23
|
|
|
22
24
|
from mca_sdk import MCAClient
|
|
@@ -32,7 +34,7 @@ def main():
|
|
|
32
34
|
|
|
33
35
|
# Step 3-5: Registry integration
|
|
34
36
|
print("\n=== Registry Integration ===")
|
|
35
|
-
model_id = os.environ.get("MODEL_ID",
|
|
37
|
+
model_id = os.environ.get("MODEL_ID", INTERNAL_MODEL_ID)
|
|
36
38
|
|
|
37
39
|
registry_client = RegistryClient(url=REGISTRY_URL, use_gcp_auth=True, timeout=10.0)
|
|
38
40
|
|
|
@@ -67,7 +69,7 @@ def main():
|
|
|
67
69
|
return {
|
|
68
70
|
"prediction": "high_risk" if risk_score > 0.7 else "low_risk",
|
|
69
71
|
"risk_score": risk_score,
|
|
70
|
-
"confidence": 0.85
|
|
72
|
+
"confidence": 0.85,
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
result = predict_readmission({"patient_id": "sanitized-001", "age": 72})
|
|
@@ -75,22 +77,24 @@ def main():
|
|
|
75
77
|
|
|
76
78
|
# Step 8: Manual predictions with threshold checking
|
|
77
79
|
print("=== Manual Predictions with Threshold Checking ===")
|
|
78
|
-
latency_threshold_ms = client.thresholds.get(
|
|
80
|
+
latency_threshold_ms = client.thresholds.get("latency_ms", 1000)
|
|
79
81
|
|
|
80
82
|
for i in range(3):
|
|
81
83
|
latency = random.uniform(0.02, 0.15)
|
|
82
84
|
client.record_prediction(
|
|
83
85
|
latency=latency,
|
|
84
|
-
prediction_id=f"pred-{i+1:03d}",
|
|
86
|
+
prediction_id=f"pred-{i + 1:03d}",
|
|
85
87
|
risk_score=random.uniform(0.1, 0.9),
|
|
86
|
-
department="cardiology"
|
|
88
|
+
department="cardiology",
|
|
87
89
|
)
|
|
88
90
|
|
|
89
91
|
# Check threshold
|
|
90
92
|
if latency * 1000 > latency_threshold_ms:
|
|
91
|
-
print(
|
|
93
|
+
print(
|
|
94
|
+
f" ⚠️ pred-{i + 1:03d}: High latency {latency * 1000:.0f}ms (threshold: {latency_threshold_ms}ms)"
|
|
95
|
+
)
|
|
92
96
|
else:
|
|
93
|
-
print(f" ✓ pred-{i+1:03d}: {latency*1000:.0f}ms")
|
|
97
|
+
print(f" ✓ pred-{i + 1:03d}: {latency * 1000:.0f}ms")
|
|
94
98
|
print()
|
|
95
99
|
|
|
96
100
|
# Step 9: Custom operation with trace()
|
|
@@ -108,6 +112,14 @@ def main():
|
|
|
108
112
|
client.record_metric("model.confidence", 0.87, metric_type="histogram")
|
|
109
113
|
print("✓ Recorded custom metrics\n")
|
|
110
114
|
|
|
115
|
+
# Step 10b: Evaluation metrics
|
|
116
|
+
print("=== Evaluation Metrics ===")
|
|
117
|
+
# For a classification model, we use record_metric with valid ratios
|
|
118
|
+
client.record_metric("model.accuracy_ratio", 0.92, dataset="validation", metric_type="gauge")
|
|
119
|
+
client.record_metric("model.precision_ratio", 0.88, dataset="validation", metric_type="gauge")
|
|
120
|
+
client.record_metric("model.recall_ratio", 0.85, dataset="validation", metric_type="gauge")
|
|
121
|
+
print("✓ Recorded classification metrics (accuracy, precision, recall)\n")
|
|
122
|
+
|
|
111
123
|
# Step 11: Error tracking
|
|
112
124
|
print("=== Error Tracking ===")
|
|
113
125
|
try:
|
|
@@ -117,7 +129,10 @@ def main():
|
|
|
117
129
|
error=e,
|
|
118
130
|
error_type="validation_error",
|
|
119
131
|
severity="warning",
|
|
120
|
-
context={
|
|
132
|
+
context={
|
|
133
|
+
"patient_id": "sanitized-001",
|
|
134
|
+
"missing_features": ["prior_admission_count"],
|
|
135
|
+
},
|
|
121
136
|
)
|
|
122
137
|
print(f"✓ Error recorded: {type(e).__name__}\n")
|
|
123
138
|
|
|
@@ -12,6 +12,8 @@ from .config import (
|
|
|
12
12
|
COLLECTOR_GRPC_ENDPOINT,
|
|
13
13
|
REGISTRY_URL,
|
|
14
14
|
DEFAULT_MODEL_ID,
|
|
15
|
+
INTERNAL_MODEL_ID,
|
|
16
|
+
AGENTIC_MODEL_ID,
|
|
15
17
|
)
|
|
16
18
|
|
|
17
19
|
__all__ = [
|
|
@@ -25,4 +27,6 @@ __all__ = [
|
|
|
25
27
|
"COLLECTOR_GRPC_ENDPOINT",
|
|
26
28
|
"REGISTRY_URL",
|
|
27
29
|
"DEFAULT_MODEL_ID",
|
|
30
|
+
"INTERNAL_MODEL_ID",
|
|
31
|
+
"AGENTIC_MODEL_ID",
|
|
28
32
|
]
|
|
@@ -4,3 +4,5 @@ COLLECTOR_HTTP_ENDPOINT = "http://10.164.76.8:4318"
|
|
|
4
4
|
COLLECTOR_GRPC_ENDPOINT = "10.164.76.8:4317"
|
|
5
5
|
REGISTRY_URL = "https://emms-registration-api-dev-rlaptra7zq-ue.a.run.app"
|
|
6
6
|
DEFAULT_MODEL_ID = "256c8edd-1abe-4ec3-9cc6-18a760be5718"
|
|
7
|
+
INTERNAL_MODEL_ID = "7a6fd3b1-3d8c-4768-9100-a8628d1f6237"
|
|
8
|
+
AGENTIC_MODEL_ID = "7a6fd3b1-3d8c-4768-9100-a8628d1f6200"
|
|
@@ -209,7 +209,9 @@ class TestSerializationEdgeCases:
|
|
|
209
209
|
result = serialize_for_telemetry(complex_data)
|
|
210
210
|
|
|
211
211
|
# Dicts are OTel-compatible, returned unchanged
|
|
212
|
-
|
|
212
|
+
import json
|
|
213
|
+
|
|
214
|
+
assert result == json.dumps(complex_data)
|
|
213
215
|
|
|
214
216
|
def test_serialize_for_telemetry_with_non_serializable_object(self):
|
|
215
217
|
"""Test serialize_for_telemetry handles non-serializable objects gracefully."""
|
|
@@ -150,7 +150,9 @@ class TestSerializationEdgeCases:
|
|
|
150
150
|
result = serialize_for_telemetry(data)
|
|
151
151
|
|
|
152
152
|
# Dicts are OTel-compatible, returned unchanged
|
|
153
|
-
|
|
153
|
+
import json
|
|
154
|
+
|
|
155
|
+
assert result == json.dumps(data)
|
|
154
156
|
|
|
155
157
|
def test_serialize_for_telemetry_handles_none(self):
|
|
156
158
|
"""Test serialize_for_telemetry handles None values."""
|
|
@@ -16,13 +16,13 @@ class TestSerializeForTelemetry:
|
|
|
16
16
|
"""Test that simple dicts are returned unchanged (OTel-compatible type)."""
|
|
17
17
|
data = {"key": "value", "number": 42}
|
|
18
18
|
result = serialize_for_telemetry(data)
|
|
19
|
-
assert result == data
|
|
19
|
+
assert result == json.dumps(data)
|
|
20
20
|
|
|
21
21
|
def test_serialize_simple_list(self):
|
|
22
22
|
"""Test that simple lists are returned unchanged (OTel-compatible type)."""
|
|
23
23
|
data = [1, 2, 3, 4, 5]
|
|
24
24
|
result = serialize_for_telemetry(data)
|
|
25
|
-
assert result == data
|
|
25
|
+
assert result == json.dumps(data)
|
|
26
26
|
|
|
27
27
|
def test_serialize_string(self):
|
|
28
28
|
"""Test that strings are returned unchanged (OTel-compatible type)."""
|
|
@@ -51,7 +51,7 @@ class TestSerializeForTelemetry:
|
|
|
51
51
|
"metadata": {"count": 2, "active": True},
|
|
52
52
|
}
|
|
53
53
|
result = serialize_for_telemetry(data)
|
|
54
|
-
assert result == data
|
|
54
|
+
assert result == json.dumps(data)
|
|
55
55
|
|
|
56
56
|
def test_truncate_large_payload(self):
|
|
57
57
|
"""Test truncation of payload exceeding max_length."""
|
|
@@ -104,15 +104,15 @@ class TestSerializeForTelemetry:
|
|
|
104
104
|
"""Test that Unicode characters are preserved in dicts returned unchanged."""
|
|
105
105
|
data = {"message": "Hello 世界 🌍"}
|
|
106
106
|
result = serialize_for_telemetry(data)
|
|
107
|
-
assert result["message"] == "Hello 世界 🌍"
|
|
107
|
+
assert json.loads(result)["message"] == "Hello 世界 🌍"
|
|
108
108
|
|
|
109
109
|
def test_empty_dict(self):
|
|
110
110
|
"""Test that empty dict is returned unchanged."""
|
|
111
|
-
assert serialize_for_telemetry({}) == {}
|
|
111
|
+
assert serialize_for_telemetry({}) == "{}"
|
|
112
112
|
|
|
113
113
|
def test_empty_list(self):
|
|
114
114
|
"""Test that empty list is returned unchanged."""
|
|
115
|
-
assert serialize_for_telemetry([]) == []
|
|
115
|
+
assert serialize_for_telemetry([]) == "[]"
|
|
116
116
|
|
|
117
117
|
|
|
118
118
|
class TestJsonDefault:
|
|
@@ -143,10 +143,12 @@ class TestSimpleImports:
|
|
|
143
143
|
|
|
144
144
|
# Basic OTel-compatible types are returned unchanged
|
|
145
145
|
result1 = serialize_for_telemetry({"key": "value"})
|
|
146
|
-
|
|
146
|
+
import json
|
|
147
|
+
|
|
148
|
+
assert result1 == json.dumps({"key": "value"})
|
|
147
149
|
|
|
148
150
|
result2 = serialize_for_telemetry([1, 2, 3])
|
|
149
|
-
assert result2 == [1, 2, 3]
|
|
151
|
+
assert result2 == json.dumps([1, 2, 3])
|
|
150
152
|
|
|
151
153
|
result3 = serialize_for_telemetry("simple string")
|
|
152
154
|
assert isinstance(result3, str)
|
|
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
|
{mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/external-service.yaml
RENAMED
|
File without changes
|
{mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/headless-service.yaml
RENAMED
|
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
|