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.
Files changed (347) hide show
  1. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/CHANGELOG.md +5 -0
  2. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/PKG-INFO +1 -1
  3. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/_version.py +3 -3
  4. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/core/client.py +71 -1
  5. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/serialization.py +4 -2
  6. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/PKG-INFO +1 -1
  7. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/agent_instrumented.py +4 -2
  8. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-genai/litellm_instrumented.py +2 -0
  9. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-model/instrumented_model.py +24 -9
  10. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/shared/__init__.py +4 -0
  11. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/shared/config.py +2 -0
  12. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_coverage_final_push.py +3 -1
  13. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_final_coverage_85.py +3 -1
  14. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_serialization.py +6 -6
  15. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_ultimate_final_85.py +4 -2
  16. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/.coveragerc +0 -0
  17. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/.dockerignore +0 -0
  18. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/.env.gcp-dev.example +0 -0
  19. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/.gitignore +0 -0
  20. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/44.0.0 +0 -0
  21. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=0.24.0 +0 -0
  22. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=0.6.0 +0 -0
  23. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=1.11.0 +0 -0
  24. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=1.4.0 +0 -0
  25. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=2.2.0 +0 -0
  26. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/=3.5.0 +0 -0
  27. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/LICENSE +0 -0
  28. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/MANIFEST.in +0 -0
  29. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/README.md +0 -0
  30. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/bandit-report.json +0 -0
  31. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/baseline_report.txt +0 -0
  32. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/docs/collector-metrics-guide.md +0 -0
  33. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/examples/README.md +0 -0
  34. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/examples/test-health-check.py +0 -0
  35. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/o +0 -0
  36. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/config/otel-collector-config.yaml +0 -0
  37. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/docker-compose.gcp-dev.yml +0 -0
  38. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/docker-compose.yml +0 -0
  39. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/.helmignore +0 -0
  40. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/Chart.yaml +0 -0
  41. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/README.md +0 -0
  42. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/NOTES.txt +0 -0
  43. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/_helpers.tpl +0 -0
  44. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/configmap.yaml +0 -0
  45. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/external-service.yaml +0 -0
  46. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/headless-service.yaml +0 -0
  47. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/hpa.yaml +0 -0
  48. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/networkpolicy.yaml +0 -0
  49. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/pdb.yaml +0 -0
  50. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/service.yaml +0 -0
  51. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/serviceaccount.yaml +0 -0
  52. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/statefulset.yaml +0 -0
  53. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/templates/storageclass.yaml +0 -0
  54. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/values-dev.yaml +0 -0
  55. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/values-prod.yaml +0 -0
  56. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/values-staging.yaml +0 -0
  57. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/helm/mca-collector/values.yaml +0 -0
  58. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/DEPLOYMENT.md +0 -0
  59. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/README.md +0 -0
  60. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/configmap.yaml +0 -0
  61. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/external-service.yaml +0 -0
  62. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/headless-service.yaml +0 -0
  63. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/hpa.yaml +0 -0
  64. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/kustomization.yaml +0 -0
  65. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/networkpolicy.yaml +0 -0
  66. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/pdb.yaml +0 -0
  67. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/secret.yaml.example +0 -0
  68. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/service.yaml +0 -0
  69. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/serviceaccount.yaml +0 -0
  70. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/statefulset.yaml +0 -0
  71. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/base/storageclass.yaml +0 -0
  72. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/examples/gcp-dev-deployment.yaml +0 -0
  73. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/dev/DEPLOY.md +0 -0
  74. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/dev/README.md +0 -0
  75. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/dev/configmap-patch.yaml +0 -0
  76. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/dev/kustomization.yaml +0 -0
  77. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/prod/README.md +0 -0
  78. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/prod/configmap-patch.yaml +0 -0
  79. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/overlays/prod/kustomization.yaml +0 -0
  80. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/pubsub/README.md +0 -0
  81. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/pubsub/create-dlq-topic.sh +0 -0
  82. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/k8s/pubsub/dlq-replay-processor.py +0 -0
  83. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca/Dockerfile +0 -0
  84. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/FOR_AI_ASSISTANTS.md +0 -0
  85. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/__init__.py +0 -0
  86. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/__init__.py +0 -0
  87. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/exporters.py +0 -0
  88. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/queue.py +0 -0
  89. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/queued_item.py +0 -0
  90. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/buffering/retry.py +0 -0
  91. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/config/__init__.py +0 -0
  92. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/config/settings.py +0 -0
  93. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/core/__init__.py +0 -0
  94. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/core/gcp_auth.py +0 -0
  95. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/core/providers.py +0 -0
  96. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/exporters/__init__.py +0 -0
  97. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/exporters/gcp_logging.py +0 -0
  98. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/exporters/gcp_trace_exporter.py +0 -0
  99. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/__init__.py +0 -0
  100. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/bridge.py +0 -0
  101. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/decorators.py +0 -0
  102. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/genai.py +0 -0
  103. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/litellm_callback.py +0 -0
  104. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/integrations/state.py +0 -0
  105. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/py.typed +0 -0
  106. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/registry/__init__.py +0 -0
  107. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/registry/client.py +0 -0
  108. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/registry/models.py +0 -0
  109. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/registry/telemetry.py +0 -0
  110. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/resilience/__init__.py +0 -0
  111. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/resilience/circuit_breaker.py +0 -0
  112. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/resilience/dead_letter_queue.py +0 -0
  113. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/__init__.py +0 -0
  114. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/certificate.py +0 -0
  115. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/certificates.py +0 -0
  116. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/encryption.py +0 -0
  117. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/security/migration.py +0 -0
  118. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/__init__.py +0 -0
  119. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/exceptions.py +0 -0
  120. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/gcp_validators.py +0 -0
  121. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/phi_utils.py +0 -0
  122. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/routing.py +0 -0
  123. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/utils/version_check.py +0 -0
  124. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/__init__.py +0 -0
  125. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/attributes.py +0 -0
  126. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/naming_conventions.py +0 -0
  127. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/result.py +0 -0
  128. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/rules.py +0 -0
  129. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/schema.py +0 -0
  130. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/telemetry_attributes.py +0 -0
  131. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk/validation/validator.py +0 -0
  132. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/SOURCES.txt +0 -0
  133. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/dependency_links.txt +0 -0
  134. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/requires.txt +0 -0
  135. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mca_sdk.egg-info/top_level.txt +0 -0
  136. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/mypy.ini +0 -0
  137. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/notebooks/README.md +0 -0
  138. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/notebooks/end-to-end-demo.ipynb +0 -0
  139. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pip-audit-report.json +0 -0
  140. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pip-audit-results.txt +0 -0
  141. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/profile_output.txt +0 -0
  142. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pylint-report.json +0 -0
  143. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pyproject.toml +0 -0
  144. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/pytest.ini +0 -0
  145. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/requirements-security.txt +0 -0
  146. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/requirements.txt +0 -0
  147. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/README.md +0 -0
  148. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/Dockerfile +0 -0
  149. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/README.md +0 -0
  150. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/requirements.txt +0 -0
  151. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-agentic/tools.py +0 -0
  152. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-genai/Dockerfile +0 -0
  153. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-genai/README.md +0 -0
  154. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-genai/requirements.txt +0 -0
  155. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-model/Dockerfile +0 -0
  156. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-model/README.md +0 -0
  157. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/internal-model/requirements.txt +0 -0
  158. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/shared/gcp_helpers.py +0 -0
  159. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/shared/verification.py +0 -0
  160. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/Dockerfile +0 -0
  161. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/README.md +0 -0
  162. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/api_to_otlp_bridge.py +0 -0
  163. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/mock_vendor_api.py +0 -0
  164. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/performance_validation.py +0 -0
  165. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/requirements-base.txt +0 -0
  166. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk-examples/vendor-bridge/requirements.txt +0 -0
  167. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/sdk_profile.stats +0 -0
  168. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/setup.cfg +0 -0
  169. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/setup.py +0 -0
  170. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/__init__.py +0 -0
  171. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/ci/__init__.py +0 -0
  172. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/ci/test_security_notifications.py +0 -0
  173. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/ci/test_security_scanning.py +0 -0
  174. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/conftest.py +0 -0
  175. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/README.md +0 -0
  176. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/RUN_IN_GCP_WORKBENCH.md +0 -0
  177. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/__init__.py +0 -0
  178. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/conftest.py +0 -0
  179. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/run_e2e_tests.sh +0 -0
  180. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_error_scenarios_e2e.py +0 -0
  181. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_logs_e2e.py +0 -0
  182. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_metrics_e2e.py +0 -0
  183. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_multi_model_e2e.py +0 -0
  184. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/e2e/test_traces_e2e.py +0 -0
  185. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/fixtures/mock_collector.py +0 -0
  186. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/__init__.py +0 -0
  187. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/conftest.py +0 -0
  188. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/junit.xml +0 -0
  189. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/run_k8s_tests.sh +0 -0
  190. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_agentic_example.py +0 -0
  191. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_attributes_processor.py +0 -0
  192. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_batch_processor.py +0 -0
  193. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_buffering_integration.py +0 -0
  194. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_circuit_breaker_integration.py +0 -0
  195. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_collector_self_monitoring.py +0 -0
  196. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_collector_telemetry_flow.py +0 -0
  197. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_debug_exporter.py +0 -0
  198. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_decorator_integration.py +0 -0
  199. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_docker_build.py +0 -0
  200. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_docker_compose.py +0 -0
  201. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_docker_images.py +0 -0
  202. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_e2e_flow.py +0 -0
  203. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_exception_integration.py +0 -0
  204. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_gcp_logging_integration.py +0 -0
  205. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_gcp_trace_integration.py +0 -0
  206. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_ha_deployment.py +0 -0
  207. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_ha_features.py +0 -0
  208. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_health_check.py +0 -0
  209. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_healthcheck.py +0 -0
  210. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_internal_model_example.py +0 -0
  211. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_k8s_deployment.py +0 -0
  212. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_multi_pipeline.py +0 -0
  213. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_package_metadata.py +0 -0
  214. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_prometheus_integration.py +0 -0
  215. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_pypi_package.py +0 -0
  216. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_queue_recovery.py +0 -0
  217. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_sdk_integration.py +0 -0
  218. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_state_persistence.py +0 -0
  219. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_story_3_14_schema_validation.py +0 -0
  220. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/integration/test_validation_e2e.py +0 -0
  221. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/README.md +0 -0
  222. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/__init__.py +0 -0
  223. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/baseline_profile_report.md +0 -0
  224. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/benchmark_sdk.py +0 -0
  225. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/collector_monitor.py +0 -0
  226. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/conftest.py +0 -0
  227. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/generate_overhead_report.py +0 -0
  228. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/load_test_report.py +0 -0
  229. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/load_test_scenarios.py +0 -0
  230. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/load_test_sustained.py +0 -0
  231. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/memory_leak_check.py +0 -0
  232. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/memory_leak_test.py +0 -0
  233. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/optimization_results.md +0 -0
  234. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/performance_helpers.py +0 -0
  235. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/performance_test.py +0 -0
  236. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/profile_overhead.py +0 -0
  237. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/profile_sdk.py +0 -0
  238. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/results/overhead_profile.txt +0 -0
  239. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/run_load_tests.sh +0 -0
  240. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/telemetry_completeness.py +0 -0
  241. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_backpressure.py +0 -0
  242. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_concurrency.py +0 -0
  243. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_load_testing.py +0 -0
  244. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_negative_cases.py +0 -0
  245. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/test_performance.py +0 -0
  246. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/performance/utils.py +0 -0
  247. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/security/__init__.py +0 -0
  248. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/security/test_sast.py +0 -0
  249. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/security/test_security_requirements.py +0 -0
  250. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_agentic.py +0 -0
  251. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_basic_export.py +0 -0
  252. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_gcp_registry_auth.py +0 -0
  253. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_goal_context_token_fix.py +0 -0
  254. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/test_registry_integration.py +0 -0
  255. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/__init__.py +0 -0
  256. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_absolute_final_85.py +0 -0
  257. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_additional_coverage.py +0 -0
  258. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_agentic_tracking.py +0 -0
  259. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_async_compatibility.py +0 -0
  260. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_attribute_validator.py +0 -0
  261. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_buffering_exporters.py +0 -0
  262. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_buffering_queue.py +0 -0
  263. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_buffering_security.py +0 -0
  264. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_certificate_rotation.py +0 -0
  265. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_circuit_breaker.py +0 -0
  266. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_client_attribute_validation.py +0 -0
  267. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_client_core.py +0 -0
  268. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_code_review_fixes.py +0 -0
  269. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_hardening.py +0 -0
  270. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_persistence.py +0 -0
  271. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_precedence.py +0 -0
  272. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_security.py +0 -0
  273. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_config_settings.py +0 -0
  274. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_credential_sanitization_integration.py +0 -0
  275. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_critical_findings.py +0 -0
  276. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_dead_letter_queue.py +0 -0
  277. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_debug_mode.py +0 -0
  278. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_decorators.py +0 -0
  279. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_disk_persistence.py +0 -0
  280. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_dlq_encryption.py +0 -0
  281. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_dlq_fixes_review.py +0 -0
  282. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_dlq_persistence.py +0 -0
  283. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_eighth_round_fixes.py +0 -0
  284. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_eleventh_round_fixes.py +0 -0
  285. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_encryption_fixes.py +0 -0
  286. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_exceptions.py +0 -0
  287. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_fifth_round_fixes.py +0 -0
  288. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_final_85_coverage.py +0 -0
  289. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_final_coverage_push.py +0 -0
  290. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_fork_safety.py +0 -0
  291. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_fourth_round_fixes.py +0 -0
  292. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_auth.py +0 -0
  293. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_auth_integration.py +0 -0
  294. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_logging_config.py +0 -0
  295. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_logging_exporter.py +0 -0
  296. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_logging_phi.py +0 -0
  297. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_registry_integration.py +0 -0
  298. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_gcp_trace_exporter.py +0 -0
  299. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_genai_helpers.py +0 -0
  300. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_genai_metric_naming.py +0 -0
  301. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_https_enforcement.py +0 -0
  302. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_integrations_decorators.py +0 -0
  303. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_litellm_callback.py +0 -0
  304. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_log_injection.py +0 -0
  305. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_mca_client.py +0 -0
  306. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_metric_naming.py +0 -0
  307. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_mtls_config.py +0 -0
  308. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_negative_validation.py +0 -0
  309. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_ninth_round_fixes.py +0 -0
  310. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_otlp_output_contracts.py +0 -0
  311. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_phi_masking.py +0 -0
  312. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_phi_utils_dummy.py +0 -0
  313. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_predict_decorator_backwards_compat.py +0 -0
  314. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_production_detection.py +0 -0
  315. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_prometheus_exporter.py +0 -0
  316. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_providers.py +0 -0
  317. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_queue_encryption.py +0 -0
  318. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_client.py +0 -0
  319. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_hydration.py +0 -0
  320. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_refresh.py +0 -0
  321. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_thread_safety.py +0 -0
  322. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_registry_update +0 -0
  323. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_retry_integration.py +0 -0
  324. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_retry_policy.py +0 -0
  325. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_retry_with_dlq.py +0 -0
  326. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_round_12_fixes.py +0 -0
  327. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_round_13_fixes.py +0 -0
  328. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_round_14_fixes.py +0 -0
  329. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_routing.py +0 -0
  330. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_schema_validation.py +0 -0
  331. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_secure_token_handling.py +0 -0
  332. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_serialization_poisoning.py +0 -0
  333. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_signal_handling.py +0 -0
  334. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_sixth_round_fixes.py +0 -0
  335. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_small_modules_coverage.py +0 -0
  336. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_state_managers.py +0 -0
  337. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_taxonomy.py +0 -0
  338. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_telemetry_attribute_validation.py +0 -0
  339. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_tenth_round_fixes.py +0 -0
  340. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_validation_attributes.py +0 -0
  341. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_validation_init.py +0 -0
  342. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_vendor_bridge.py +0 -0
  343. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_vendor_bridge_ac.py +0 -0
  344. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_vendor_bridge_state.py +0 -0
  345. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tests/unit/test_version_check.py +0 -0
  346. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/tox.ini +0 -0
  347. {mca_sdk-0.6.6.dev1 → mca_sdk-0.6.8.dev7}/updated-versions.txt +0 -0
@@ -4,6 +4,11 @@ All notable changes to the MCA SDK will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.6.7] - 2026-03-05
8
+
9
+ ### Fixed
10
+ - Add missing resource attributes for agentic model type
11
+
7
12
  ## [0.6.5] - 2026-03-05
8
13
 
9
14
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mca-sdk
3
- Version: 0.6.6.dev1
3
+ Version: 0.6.8.dev7
4
4
  Summary: Model Collector Agent SDK for OpenTelemetry monitoring
5
5
  Author-email: Baptist Health South Florida <ai-ml@baptisthealth.net>
6
6
  License: Apache-2.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.6.dev1'
32
- __version_tuple__ = version_tuple = (0, 6, 6, 'dev1')
31
+ __version__ = version = '0.6.8.dev7'
32
+ __version_tuple__ = version_tuple = (0, 6, 8, 'dev7')
33
33
 
34
- __commit_id__ = commit_id = 'g1b455cc2f'
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, list, dict are returned unchanged (OTel-compatible)
45
- if data is None or isinstance(data, (bool, int, float, list, dict)):
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mca-sdk
3
- Version: 0.6.6.dev1
3
+ Version: 0.6.8.dev7
4
4
  Summary: Model Collector Agent SDK for OpenTelemetry monitoring
5
5
  Author-email: Baptist Health South Florida <ai-ml@baptisthealth.net>
6
6
  License: Apache-2.0
@@ -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
- DEFAULT_MODEL_ID
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", DEFAULT_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
 
@@ -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
- DEFAULT_MODEL_ID
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", DEFAULT_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('latency_ms', 1000)
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(f" ⚠️ pred-{i+1:03d}: High latency {latency*1000:.0f}ms (threshold: {latency_threshold_ms}ms)")
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={"patient_id": "sanitized-001", "missing_features": ["prior_admission_count"]}
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
- assert result == complex_data
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
- assert result == data
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
- assert result1 == {"key": "value"}
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