mca-sdk 0.9.2__tar.gz → 0.9.4.dev1__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 (700) hide show
  1. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/CHANGELOG.md +72 -0
  2. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/MANIFEST.in +2 -0
  3. {mca_sdk-0.9.2/mca_sdk.egg-info → mca_sdk-0.9.4.dev1}/PKG-INFO +25 -2
  4. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/README.md +20 -1
  5. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/FOR_AI_ASSISTANTS.md +126 -14
  6. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/_version.py +3 -3
  7. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/__init__.py +149 -0
  8. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/cli_install.py +158 -0
  9. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/jupyter.py +162 -0
  10. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/templates/claude-code/mca-instrument.md +48 -0
  11. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/templates/copilot/copilot-instructions.md +37 -0
  12. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/templates/cursor/mca-instrument.mdc +42 -0
  13. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/templates/gemini/GEMINI.md +35 -0
  14. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/templates/notebook/mca_starter.ipynb +60 -0
  15. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/templates/prompts/variant_a.md +13 -0
  16. mca_sdk-0.9.4.dev1/mca_sdk/ai_assist/templates/prompts/variant_b.md +16 -0
  17. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/buffering/exporters.py +23 -9
  18. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/cli/init.py +13 -0
  19. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/exporters/gcp_logging.py +37 -9
  20. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1/mca_sdk.egg-info}/PKG-INFO +25 -2
  21. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk.egg-info/SOURCES.txt +14 -0
  22. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk.egg-info/requires.txt +5 -0
  23. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk.egg-info/scm_file_list.json +14 -0
  24. mca_sdk-0.9.4.dev1/mca_sdk.egg-info/scm_version.json +8 -0
  25. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/pyproject.toml +5 -0
  26. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/setup.py +14 -1
  27. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/test-requirements.txt +4 -0
  28. mca_sdk-0.9.4.dev1/tests/integration/test_wheel_contents.py +78 -0
  29. mca_sdk-0.9.4.dev1/tests/unit/test_ai_assist_jupyter.py +164 -0
  30. mca_sdk-0.9.4.dev1/tests/unit/test_ai_assist_package.py +120 -0
  31. mca_sdk-0.9.4.dev1/tests/unit/test_cli_init_ai_assist.py +119 -0
  32. mca_sdk-0.9.2/mca_sdk.egg-info/scm_version.json +0 -8
  33. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/.coveragerc +0 -0
  34. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/.dockerignore +0 -0
  35. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/.env.gcp-dev.example +0 -0
  36. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/.gitignore +0 -0
  37. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/.pip-audit-allowlist.txt +0 -0
  38. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/.pypirc +0 -0
  39. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/44.0.0 +0 -0
  40. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/=0.24.0 +0 -0
  41. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/=0.6.0 +0 -0
  42. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/=1.11.0 +0 -0
  43. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/=1.4.0 +0 -0
  44. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/=2.2.0 +0 -0
  45. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/=3.5.0 +0 -0
  46. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/LICENSE +0 -0
  47. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/PUBLISH_INSTRUCTIONS.md +0 -0
  48. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/RELEASE_NOTES_v0.8.10.md +0 -0
  49. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/RELEASE_NOTES_v0.8.21.md +0 -0
  50. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/RELEASE_NOTES_v0.8.22.md +0 -0
  51. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/RELEASE_NOTES_v0.8.30.md +0 -0
  52. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/bandit-report.json +0 -0
  53. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/baseline_report.txt +0 -0
  54. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/config/docs/collector-metrics-guide.md +0 -0
  55. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/config/examples/README.md +0 -0
  56. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/config/examples/test-health-check.py +0 -0
  57. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/config/otel-collector-config.yaml +0 -0
  58. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/config/otel-collector-mock.yml +0 -0
  59. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/docker-compose.gcp-dev.yml +0 -0
  60. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/docker-compose.mock.yml +0 -0
  61. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/docker-compose.yml +0 -0
  62. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/fix.py +0 -0
  63. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/fix_agentic_tests.py +0 -0
  64. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/fix_agentic_tests2.py +0 -0
  65. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/fix_test_basic.py +0 -0
  66. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca/Dockerfile +0 -0
  67. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/EXAMPLES.md +0 -0
  68. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/KNOWN_ISSUES.md +0 -0
  69. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/README.md +0 -0
  70. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/TESTING_WORKBENCH.md +0 -0
  71. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/client.go +0 -0
  72. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/client_test.go +0 -0
  73. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/config/config.go +0 -0
  74. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/config/config_test.go +0 -0
  75. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/genai.go +0 -0
  76. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/genai_test.go +0 -0
  77. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/go.mod +0 -0
  78. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/go.sum +0 -0
  79. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/internal/telemetry/providers.go +0 -0
  80. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/prediction.go +0 -0
  81. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/quickstart.sh +0 -0
  82. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/registry.go +0 -0
  83. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/sanitization.go +0 -0
  84. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/sanitization_test.go +0 -0
  85. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/scripts/gen-godoc.sh +0 -0
  86. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/utils.go +0 -0
  87. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/utils_test.go +0 -0
  88. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-go/version.go +0 -0
  89. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/.gitignore +0 -0
  90. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/CHANGELOG.md +0 -0
  91. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/LICENSE +0 -0
  92. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/README.md +0 -0
  93. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/TESTING_WORKBENCH.md +0 -0
  94. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/VALIDATION_GUIDE.md +0 -0
  95. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/examples/AdvancedInstrumentationExample.java +0 -0
  96. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/examples/GCPExporterExample.java +0 -0
  97. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/examples/InternalModelExample.java +0 -0
  98. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/pom.xml +0 -0
  99. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/scripts/publish.sh +0 -0
  100. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/scripts/test-dependency.sh +0 -0
  101. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/scripts/verify-package.sh +0 -0
  102. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/MCAClient.java +0 -0
  103. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/RecordPredictionRequest.java +0 -0
  104. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/config/ConfigLoader.java +0 -0
  105. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/config/ConfigSource.java +0 -0
  106. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/config/MCAConfig.java +0 -0
  107. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/config/YamlConfigParser.java +0 -0
  108. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/BufferingException.java +0 -0
  109. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/ConfigNotFoundException.java +0 -0
  110. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/ConfigurationException.java +0 -0
  111. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/MCAException.java +0 -0
  112. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/NonRetryableException.java +0 -0
  113. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/RegistryAuthException.java +0 -0
  114. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/RegistryConfigNotFoundException.java +0 -0
  115. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/RegistryConnectionException.java +0 -0
  116. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/RegistryException.java +0 -0
  117. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exceptions/ValidationException.java +0 -0
  118. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exporters/GCPLoggingExporterFactory.java +0 -0
  119. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exporters/GCPLoggingExporterImpl.java +0 -0
  120. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exporters/GCPTraceExporterFactory.java +0 -0
  121. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/exporters/GCPTraceExporterImpl.java +0 -0
  122. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/gcp/GCPAuthFactory.java +0 -0
  123. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/gcp/GCPAuthImpl.java +0 -0
  124. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/instrumentation/MetricRouter.java +0 -0
  125. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/instrumentation/SpanManager.java +0 -0
  126. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/integrations/AgenticTracking.java +0 -0
  127. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/integrations/GenAIIntegration.java +0 -0
  128. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/integrations/TelemetryAttributeUtil.java +0 -0
  129. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/providers/TelemetryProviders.java +0 -0
  130. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/registry/RegistryClient.java +0 -0
  131. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/registry/RegistryTelemetry.java +0 -0
  132. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/registry/RetryPolicy.java +0 -0
  133. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/registry/models/CacheEntry.java +0 -0
  134. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/registry/models/DeploymentConfig.java +0 -0
  135. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/registry/models/ModelConfig.java +0 -0
  136. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/resilience/CircuitBreaker.java +0 -0
  137. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/resilience/DeadLetterQueue.java +0 -0
  138. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/resilience/ResilienceException.java +0 -0
  139. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/resilience/RetryPolicy.java +0 -0
  140. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/resilience/TelemetryQueue.java +0 -0
  141. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/CertificateException.java +0 -0
  142. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/CertificateExpiredException.java +0 -0
  143. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/CertificateLoadException.java +0 -0
  144. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/CertificateManager.java +0 -0
  145. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/CertificateValidationException.java +0 -0
  146. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/CredentialMasking.java +0 -0
  147. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/EncryptionManager.java +0 -0
  148. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/GcpSecretProvider.java +0 -0
  149. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/QueueEncryption.java +0 -0
  150. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/SecretManager.java +0 -0
  151. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/security/SecurityException.java +0 -0
  152. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/util/Serialization.java +0 -0
  153. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/util/StringUtils.java +0 -0
  154. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/util/VersionCheck.java +0 -0
  155. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/validation/AttributeValidator.java +0 -0
  156. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/validation/MetricNamingValidator.java +0 -0
  157. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/validation/TelemetryAttributeValidator.java +0 -0
  158. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/validation/ValidationResult.java +0 -0
  159. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/com/bhsf/mca/sdk/validation/ValidationRules.java +0 -0
  160. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/main/java/examples/InternalModelExample.java +0 -0
  161. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/MCAClientInstrumentationTest.java +0 -0
  162. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/MCAClientTest.java +0 -0
  163. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/RecordPredictionTest.java +0 -0
  164. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/config/ConfigLoaderTest.java +0 -0
  165. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/exceptions/BufferingExceptionTest.java +0 -0
  166. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/exceptions/ConfigNotFoundExceptionTest.java +0 -0
  167. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/exceptions/ExceptionHierarchyTest.java +0 -0
  168. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/exceptions/MCAExceptionTest.java +0 -0
  169. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/exporters/GCPExportersTest.java +0 -0
  170. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/gcp/GCPAuthTest.java +0 -0
  171. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/instrumentation/MetricRouterTest.java +0 -0
  172. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/instrumentation/SpanManagerTest.java +0 -0
  173. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/integrations/AdversarialReviewFixesTest.java +0 -0
  174. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/integrations/AgenticTrackingTest.java +0 -0
  175. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/integrations/GenAIIntegrationTest.java +0 -0
  176. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/integrations/IntegrationTest.java +0 -0
  177. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/integrations/TelemetryAttributeUtilTest.java +0 -0
  178. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/registry/RegistryClientTest.java +0 -0
  179. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/registry/RetryPolicyTest.java +0 -0
  180. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/registry/models/CacheEntryTest.java +0 -0
  181. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/registry/models/ModelConfigTest.java +0 -0
  182. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/resilience/CircuitBreakerTest.java +0 -0
  183. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/resilience/DeadLetterQueueTest.java +0 -0
  184. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/resilience/RetryPolicyTest.java +0 -0
  185. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/resilience/TelemetryQueueTest.java +0 -0
  186. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/security/CertificateExceptionsTest.java +0 -0
  187. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/security/CertificateManagerTest.java +0 -0
  188. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/security/CredentialMaskingTest.java +0 -0
  189. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/security/EncryptionManagerTest.java +0 -0
  190. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/security/GcpSecretProviderTest.java +0 -0
  191. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/security/QueueEncryptionTest.java +0 -0
  192. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/security/SecretManagerTest.java +0 -0
  193. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/util/SerializationTest.java +0 -0
  194. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/util/StringUtilsTest.java +0 -0
  195. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/util/VersionCheckTest.java +0 -0
  196. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/validation/AttributeValidatorTest.java +0 -0
  197. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/validation/MetricNamingValidatorTest.java +0 -0
  198. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/validation/TelemetryAttributeValidatorTest.java +0 -0
  199. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/validation/ValidationResultTest.java +0 -0
  200. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-java/src/test/java/com/bhsf/mca/sdk/validation/ValidationRulesTest.java +0 -0
  201. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/.eslintrc.js +0 -0
  202. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/.gitignore +0 -0
  203. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/.npmignore +0 -0
  204. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/.prettierrc +0 -0
  205. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/CHANGELOG.md +0 -0
  206. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/LICENSE +0 -0
  207. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/README.md +0 -0
  208. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/examples/simple-example.ts +0 -0
  209. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/jest.config.js +0 -0
  210. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/package-lock.json +0 -0
  211. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/package.json +0 -0
  212. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/config/settings.ts +0 -0
  213. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/core/client.ts +0 -0
  214. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/core/providers.ts +0 -0
  215. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/index.ts +0 -0
  216. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/registry/client.ts +0 -0
  217. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/registry/models.ts +0 -0
  218. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/types/index.ts +0 -0
  219. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/utils/context.ts +0 -0
  220. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/utils/exceptions.ts +0 -0
  221. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/utils/logger.ts +0 -0
  222. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/src/utils/serialization.ts +0 -0
  223. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/test-integration-v0.4.ts +0 -0
  224. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/test-integration.ts +0 -0
  225. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/test-performance.ts +0 -0
  226. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/test-registry-integration.ts +0 -0
  227. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/tests/integration/agentic-advanced.test.ts +0 -0
  228. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/tests/unit/client.test.ts +0 -0
  229. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/tests/unit/config.test.ts +0 -0
  230. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/tests/unit/context.test.ts +0 -0
  231. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/tests/unit/registry.test.ts +0 -0
  232. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/tests/unit/serialization.test.ts +0 -0
  233. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/tsconfig.eslint.json +0 -0
  234. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/tsconfig.json +0 -0
  235. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca-sdk-nodejs/typedoc.json +0 -0
  236. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/.gitlab-ci.yml +0 -0
  237. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/__init__.py +0 -0
  238. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/__main__.py +0 -0
  239. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/async_io/__init__.py +0 -0
  240. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/async_io/py.typed +0 -0
  241. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/audit/__init__.py +0 -0
  242. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/audit/py.typed +0 -0
  243. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/ci/__init__.py +0 -0
  244. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/ci/lockfile_cadence_gate.py +0 -0
  245. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/ci/lockfile_diff_gate.py +0 -0
  246. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/ci/lockfile_hash_gate.py +0 -0
  247. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/ci/py.typed +0 -0
  248. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/ci/sdk_version_invariant_gate.py +0 -0
  249. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/ci/vuln_scan_sla_gate.py +0 -0
  250. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/cli.py +0 -0
  251. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/config/__init__.py +0 -0
  252. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/config/py.typed +0 -0
  253. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/observability/__init__.py +0 -0
  254. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/observability/py.typed +0 -0
  255. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/py.typed +0 -0
  256. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/pyproject.toml +0 -0
  257. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/runtime/__init__.py +0 -0
  258. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/runtime/py.typed +0 -0
  259. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/runtime/run_state.py +0 -0
  260. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/schemas/__init__.py +0 -0
  261. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/schemas/error_codes.py +0 -0
  262. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/schemas/py.typed +0 -0
  263. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/tools/__init__.py +0 -0
  264. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/tools/py.typed +0 -0
  265. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_instrumentation_agent/uv.lock +0 -0
  266. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/__init__.py +0 -0
  267. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/autolog/__init__.py +0 -0
  268. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/autolog/_anthropic.py +0 -0
  269. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/autolog/_base.py +0 -0
  270. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/autolog/_lightgbm.py +0 -0
  271. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/autolog/_openai.py +0 -0
  272. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/autolog/_sklearn.py +0 -0
  273. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/autolog/_xgboost.py +0 -0
  274. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/buffering/__init__.py +0 -0
  275. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/buffering/queue.py +0 -0
  276. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/buffering/queued_item.py +0 -0
  277. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/buffering/retry.py +0 -0
  278. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/cli/__init__.py +0 -0
  279. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/cli/_bootstrap.py +0 -0
  280. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/cli/instrument.py +0 -0
  281. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/cli/run.py +0 -0
  282. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/config/__init__.py +0 -0
  283. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/config/settings.py +0 -0
  284. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/core/__init__.py +0 -0
  285. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/core/client.py +0 -0
  286. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/core/gcp_auth.py +0 -0
  287. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/core/providers.py +0 -0
  288. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/exporters/__init__.py +0 -0
  289. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/exporters/gcp_trace_exporter.py +0 -0
  290. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/integrations/__init__.py +0 -0
  291. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/integrations/_genai_attrs.py +0 -0
  292. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/integrations/bridge.py +0 -0
  293. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/integrations/decorators.py +0 -0
  294. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/integrations/genai.py +0 -0
  295. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/integrations/langchain_callback.py +0 -0
  296. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/integrations/litellm_callback.py +0 -0
  297. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/integrations/llamaindex_callback.py +0 -0
  298. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/integrations/state.py +0 -0
  299. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/py.typed +0 -0
  300. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/registry/__init__.py +0 -0
  301. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/registry/client.py +0 -0
  302. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/registry/models.py +0 -0
  303. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/registry/telemetry.py +0 -0
  304. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/resilience/__init__.py +0 -0
  305. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/resilience/circuit_breaker.py +0 -0
  306. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/resilience/dead_letter_queue.py +0 -0
  307. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/security/__init__.py +0 -0
  308. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/security/_testing.py +0 -0
  309. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/security/certificate.py +0 -0
  310. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/security/certificates.py +0 -0
  311. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/security/encryption.py +0 -0
  312. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/security/migration.py +0 -0
  313. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/security/phi_filter.py +0 -0
  314. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/security/secret_filter.py +0 -0
  315. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/utils/__init__.py +0 -0
  316. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/utils/environment.py +0 -0
  317. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/utils/exceptions.py +0 -0
  318. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/utils/gcp_validators.py +0 -0
  319. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/utils/phi_safe_capture.py +0 -0
  320. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/utils/phi_utils.py +0 -0
  321. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/utils/routing.py +0 -0
  322. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/utils/serialization.py +0 -0
  323. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/utils/version_check.py +0 -0
  324. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/validation/__init__.py +0 -0
  325. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/validation/attributes.py +0 -0
  326. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/validation/naming_conventions.py +0 -0
  327. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/validation/result.py +0 -0
  328. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/validation/rules.py +0 -0
  329. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/validation/schema.py +0 -0
  330. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/validation/telemetry_attributes.py +0 -0
  331. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/validation/validator.py +0 -0
  332. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk/version.py +0 -0
  333. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk.egg-info/dependency_links.txt +0 -0
  334. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk.egg-info/entry_points.txt +0 -0
  335. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mca_sdk.egg-info/top_level.txt +0 -0
  336. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/mypy.ini +0 -0
  337. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/notebooks/README.md +0 -0
  338. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/notebooks/end-to-end-demo.ipynb +0 -0
  339. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/pip-audit-report.json +0 -0
  340. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/pip-audit-results.txt +0 -0
  341. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/profile_output.txt +0 -0
  342. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/pylint-report.json +0 -0
  343. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/pytest.ini +0 -0
  344. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/requirements-security.txt +0 -0
  345. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/requirements.txt +0 -0
  346. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/README.md +0 -0
  347. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/autolog-demo/README.md +0 -0
  348. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/autolog-demo/requirements.txt +0 -0
  349. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/autolog-demo/sklearn_autolog_example.py +0 -0
  350. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/direct-llm/README.md +0 -0
  351. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/direct-llm/instrumented_anthropic.py +0 -0
  352. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/direct-llm/instrumented_langchain.py +0 -0
  353. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/direct-llm/instrumented_llamaindex.py +0 -0
  354. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/direct-llm/instrumented_openai.py +0 -0
  355. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/direct-llm/requirements.txt +0 -0
  356. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-agentic/Dockerfile +0 -0
  357. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-agentic/README.md +0 -0
  358. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-agentic/agent_instrumented.py +0 -0
  359. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-agentic/agent_non_instrumented.py +0 -0
  360. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-agentic/requirements.txt +0 -0
  361. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-agentic/tools.py +0 -0
  362. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-genai/Dockerfile +0 -0
  363. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-genai/README.md +0 -0
  364. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-genai/litellm_instrumented.py +0 -0
  365. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-genai/litellm_non_instrumented.py +0 -0
  366. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-genai/requirements.txt +0 -0
  367. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model/Dockerfile +0 -0
  368. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model/README.md +0 -0
  369. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model/instrumented_model.py +0 -0
  370. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model/model_non_instrumented.py +0 -0
  371. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model/raw_model.py +0 -0
  372. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model/requirements.txt +0 -0
  373. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model/train_model.py +0 -0
  374. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model-go/README.md +0 -0
  375. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model-go/go.mod +0 -0
  376. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/internal-model-go/main.go +0 -0
  377. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/rest-api-various-vendors.py +0 -0
  378. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/rest-api-wrapper-example.py +0 -0
  379. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/shared/__init__.py +0 -0
  380. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/shared/config.py +0 -0
  381. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/shared/gcp_helpers.py +0 -0
  382. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/shared/verification.py +0 -0
  383. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/vendor-bridge/Dockerfile +0 -0
  384. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/vendor-bridge/README.md +0 -0
  385. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/vendor-bridge/api_to_otlp_bridge.py +0 -0
  386. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/vendor-bridge/mock_vendor_api.py +0 -0
  387. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/vendor-bridge/performance_validation.py +0 -0
  388. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/vendor-bridge/requirements-base.txt +0 -0
  389. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk-examples/vendor-bridge/requirements.txt +0 -0
  390. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/sdk_profile.stats +0 -0
  391. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/setup.cfg +0 -0
  392. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/test_bootstrap_log.py +0 -0
  393. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/test_import.py +0 -0
  394. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/README.md +0 -0
  395. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/__init__.py +0 -0
  396. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/ci/__init__.py +0 -0
  397. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/ci/test_security_notifications.py +0 -0
  398. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/ci/test_security_scanning.py +0 -0
  399. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/conftest.py +0 -0
  400. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/README.md +0 -0
  401. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/RUN_IN_GCP_WORKBENCH.md +0 -0
  402. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/__init__.py +0 -0
  403. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/conftest.py +0 -0
  404. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/run_e2e_tests.sh +0 -0
  405. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/test_error_scenarios_e2e.py +0 -0
  406. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/test_logs_e2e.py +0 -0
  407. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/test_metrics_e2e.py +0 -0
  408. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/test_multi_model_e2e.py +0 -0
  409. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/e2e/test_traces_e2e.py +0 -0
  410. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/__init__.py +0 -0
  411. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/advisories/p0_25h.json +0 -0
  412. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/lockfiles/all_pinned.lock +0 -0
  413. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/lockfiles/diff_drift_new.lock +0 -0
  414. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/lockfiles/diff_drift_old.lock +0 -0
  415. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/lockfiles/mca_sdk_carveout.lock +0 -0
  416. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/lockfiles/missing_hash.lock +0 -0
  417. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/lockfiles/no_hash_line.lock +0 -0
  418. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/lockfiles/partial_wheel_hash.lock +0 -0
  419. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/agent/lockfiles/version_range.lock +0 -0
  420. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/fixtures/mock_collector.py +0 -0
  421. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/__init__.py +0 -0
  422. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/agent/__init__.py +0 -0
  423. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/agent/test_ci_gates_e2e.py +0 -0
  424. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/conftest.py +0 -0
  425. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/junit.xml +0 -0
  426. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/run_k8s_tests.sh +0 -0
  427. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_agentic_example.py +0 -0
  428. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_attributes_processor.py +0 -0
  429. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_autolog_integration.py +0 -0
  430. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_autolog_llm_integration.py.patch +0 -0
  431. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_batch_processor.py +0 -0
  432. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_buffering_integration.py +0 -0
  433. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_circuit_breaker_integration.py +0 -0
  434. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_collector_self_monitoring.py +0 -0
  435. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_collector_telemetry_flow.py +0 -0
  436. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_debug_exporter.py +0 -0
  437. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_decorator_integration.py +0 -0
  438. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_docker_build.py +0 -0
  439. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_docker_compose.py +0 -0
  440. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_docker_images.py +0 -0
  441. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_e2e_flow.py +0 -0
  442. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_exception_integration.py +0 -0
  443. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_gcp_logging_integration.py +0 -0
  444. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_gcp_trace_integration.py +0 -0
  445. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_ha_deployment.py +0 -0
  446. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_ha_features.py +0 -0
  447. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_health_check.py +0 -0
  448. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_health_check_integration.py +0 -0
  449. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_healthcheck.py +0 -0
  450. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_internal_model_example.py +0 -0
  451. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_k8s_deployment.py +0 -0
  452. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_langchain_integration.py +0 -0
  453. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_multi_pipeline.py +0 -0
  454. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_package_metadata.py +0 -0
  455. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_phi_safe_integration.py +0 -0
  456. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_prometheus_integration.py +0 -0
  457. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_pypi_package.py +0 -0
  458. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_queue_recovery.py +0 -0
  459. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_rollback_failure_scenarios.py +0 -0
  460. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_sdk_integration.py +0 -0
  461. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_sdk_version_in_telemetry_payload.py +0 -0
  462. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_state_persistence.py +0 -0
  463. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_story_3_14_schema_validation.py +0 -0
  464. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/integration/test_validation_e2e.py +0 -0
  465. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/README.md +0 -0
  466. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/__init__.py +0 -0
  467. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/_load_test_pacing.py +0 -0
  468. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/assoc_kwargs.py +0 -0
  469. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/baseline_profile_report.md +0 -0
  470. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/benchmark_sdk.py +0 -0
  471. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/collector_monitor.py +0 -0
  472. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/compare_against_history.py +0 -0
  473. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/conftest.py +0 -0
  474. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/generate_overhead_report.py +0 -0
  475. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/load_test_2000rps.py +0 -0
  476. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/load_test_2000rps_report.py +0 -0
  477. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/load_test_report.py +0 -0
  478. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/load_test_scenarios.py +0 -0
  479. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/load_test_sustained.py +0 -0
  480. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/memory_leak_check.py +0 -0
  481. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/memory_leak_test.py +0 -0
  482. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/optimization_results.md +0 -0
  483. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/performance_helpers.py +0 -0
  484. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/performance_test.py +0 -0
  485. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/profile_distribution.py +0 -0
  486. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/profile_overhead.py +0 -0
  487. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/profile_sdk.py +0 -0
  488. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/results/overhead_profile.txt +0 -0
  489. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/run_2000rps_load_test.sh +0 -0
  490. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/run_load_tests.sh +0 -0
  491. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/telemetry_completeness.py +0 -0
  492. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/test_autolog_performance.py +0 -0
  493. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/test_backpressure.py +0 -0
  494. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/test_compare_against_history.py +0 -0
  495. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/test_concurrency.py +0 -0
  496. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/test_load_harness_remediation.py +0 -0
  497. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/test_load_testing.py +0 -0
  498. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/test_negative_cases.py +0 -0
  499. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/test_performance.py +0 -0
  500. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/test_performance_slo.py +0 -0
  501. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/performance/utils.py +0 -0
  502. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/security/__init__.py +0 -0
  503. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/security/test_attribute_phi_leakage.py +0 -0
  504. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/security/test_sast.py +0 -0
  505. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/security/test_secret_masking.py +0 -0
  506. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/security/test_security_requirements.py +0 -0
  507. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/support/__init__.py +0 -0
  508. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/support/logging_overhead.py +0 -0
  509. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/test_agentic.py +0 -0
  510. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/test_basic_export.py +0 -0
  511. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/test_gcp_registry_auth.py +0 -0
  512. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/test_registry_integration.py +0 -0
  513. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/__init__.py +0 -0
  514. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/__init__.py +0 -0
  515. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_ci_gates_help.py +0 -0
  516. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_cli.py +0 -0
  517. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_layout.py +0 -0
  518. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_lockfile_cadence_gate.py +0 -0
  519. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_lockfile_diff_gate.py +0 -0
  520. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_lockfile_hash_gate.py +0 -0
  521. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_lockfile_hash_gate_mca_sdk_carveout.py +0 -0
  522. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_pyproject.py +0 -0
  523. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_sdk_version_invariant_gate.py +0 -0
  524. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_vuln_scan_sla_gate.py +0 -0
  525. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_wheel_contents.py +0 -0
  526. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/agent/test_wheel_metadata.py +0 -0
  527. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_absolute_final_85.py +0 -0
  528. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_additional_coverage.py +0 -0
  529. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_agentic_tracking.py +0 -0
  530. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_async_compatibility.py +0 -0
  531. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_attribute_validation_extra.py +0 -0
  532. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_attribute_validator.py +0 -0
  533. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_audit_log_async.py +0 -0
  534. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autoinstrument.py +0 -0
  535. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autoinstrument_coverage.py +0 -0
  536. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autolog_anthropic.py +0 -0
  537. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autolog_base_extra.py +0 -0
  538. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autolog_lightgbm.py +0 -0
  539. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autolog_openai.py +0 -0
  540. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autolog_openai_additional.py +0 -0
  541. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autolog_openai_coverage.py +0 -0
  542. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autolog_sklearn.py +0 -0
  543. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autolog_validation.py +0 -0
  544. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_autolog_xgboost.py +0 -0
  545. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_bridge_extra.py +0 -0
  546. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_buffering_exporters.py +0 -0
  547. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_buffering_queue.py +0 -0
  548. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_buffering_queue_helpers.py +0 -0
  549. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_buffering_security.py +0 -0
  550. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_certificate_rotation.py +0 -0
  551. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_circuit_breaker.py +0 -0
  552. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_cli_bootstrap.py +0 -0
  553. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_cli_instrument.py +0 -0
  554. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_cli_instrument_helpers.py +0 -0
  555. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_cli_run.py +0 -0
  556. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_cli_run_helpers.py +0 -0
  557. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_client_attribute_validation.py +0 -0
  558. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_client_core.py +0 -0
  559. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_client_helpers.py +0 -0
  560. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_code_review_fixes.py +0 -0
  561. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_config_edge_cases.py +0 -0
  562. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_config_hardening.py +0 -0
  563. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_config_persistence.py +0 -0
  564. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_config_precedence.py +0 -0
  565. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_config_security.py +0 -0
  566. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_config_settings.py +0 -0
  567. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_config_settings_validators.py +0 -0
  568. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_coverage_boost.py +0 -0
  569. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_coverage_final_push.py +0 -0
  570. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_credential_sanitization_integration.py +0 -0
  571. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_critical_findings.py +0 -0
  572. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_dead_letter_queue.py +0 -0
  573. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_debug_mode.py +0 -0
  574. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_decorators.py +0 -0
  575. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_decorators_extra.py +0 -0
  576. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_disk_persistence.py +0 -0
  577. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_dlq_encryption.py +0 -0
  578. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_dlq_fixes_review.py +0 -0
  579. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_dlq_persistence.py +0 -0
  580. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_dlq_persistence_errors.py +0 -0
  581. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_dlq_production_gating.py +0 -0
  582. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_eighth_round_fixes.py +0 -0
  583. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_eleventh_round_fixes.py +0 -0
  584. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_encryption_fixes.py +0 -0
  585. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_environment_profiles.py +0 -0
  586. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_environment_utility.py +0 -0
  587. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_exceptions.py +0 -0
  588. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_exceptions_extra.py +0 -0
  589. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_fifth_round_fixes.py +0 -0
  590. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_final_85_coverage.py +0 -0
  591. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_final_coverage_85.py +0 -0
  592. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_final_coverage_push.py +0 -0
  593. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_final_coverage_topup.py +0 -0
  594. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_fork_safety.py +0 -0
  595. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_fourth_round_fixes.py +0 -0
  596. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_gcp_auth.py +0 -0
  597. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_gcp_auth_integration.py +0 -0
  598. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_gcp_logging_config.py +0 -0
  599. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_gcp_logging_exporter.py +0 -0
  600. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_gcp_logging_extra.py +0 -0
  601. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_gcp_registry_integration.py +0 -0
  602. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_gcp_trace_exporter.py +0 -0
  603. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_gcp_trace_extra.py +0 -0
  604. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_genai_attrs.py +0 -0
  605. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_genai_helpers.py +0 -0
  606. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_genai_metric_naming.py +0 -0
  607. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_goal_context_token_fix.py +0 -0
  608. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_health_check.py +0 -0
  609. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_histogram_bucket_views.py +0 -0
  610. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_https_enforcement.py +0 -0
  611. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_integrations_decorators.py +0 -0
  612. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_langchain_callback.py +0 -0
  613. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_litellm_callback.py +0 -0
  614. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_litellm_model_id_parity.py +0 -0
  615. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_llamaindex_callback.py +0 -0
  616. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_llm_generation.py +0 -0
  617. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_log_injection.py +0 -0
  618. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_logging_overhead_filter.py +0 -0
  619. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_mca_client.py +0 -0
  620. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_metric_naming.py +0 -0
  621. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_mtls_config.py +0 -0
  622. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_naming_conventions.py +0 -0
  623. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_naming_conventions_extra.py +0 -0
  624. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_negative_validation.py +0 -0
  625. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_ninth_round_fixes.py +0 -0
  626. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_otel_protocol_switching.py +0 -0
  627. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_otlp_output_contracts.py +0 -0
  628. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_persist_production_gating.py +0 -0
  629. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_phi_filter.py +0 -0
  630. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_phi_safe_capture.py +0 -0
  631. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_phi_utils_dummy.py +0 -0
  632. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_predict_decorator_backwards_compat.py +0 -0
  633. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_production_detection.py +0 -0
  634. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_prometheus_exporter.py +0 -0
  635. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_providers.py +0 -0
  636. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_providers_extra.py +0 -0
  637. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_providers_prometheus.py +0 -0
  638. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_providers_unregister.py +0 -0
  639. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_public_api_surface.py +0 -0
  640. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_queue_encryption.py +0 -0
  641. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_rag_contract.py +0 -0
  642. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_record_retrieval.py +0 -0
  643. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_client.py +0 -0
  644. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_client_extra.py +0 -0
  645. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_client_small_surface.py +0 -0
  646. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_hydration.py +0 -0
  647. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_models_extra.py +0 -0
  648. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_refresh.py +0 -0
  649. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_stale_cap.py +0 -0
  650. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_telemetry_and_trace.py +0 -0
  651. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_thread_safety.py +0 -0
  652. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_token_refresh.py +0 -0
  653. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_registry_update +0 -0
  654. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_retry_integration.py +0 -0
  655. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_retry_policy.py +0 -0
  656. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_retry_with_dlq.py +0 -0
  657. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_rollback.py +0 -0
  658. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_round_12_fixes.py +0 -0
  659. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_round_13_fixes.py +0 -0
  660. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_round_14_fixes.py +0 -0
  661. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_routing.py +0 -0
  662. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_routing_extra.py +0 -0
  663. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_schema_injection_validation.py +0 -0
  664. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_schema_injection_validators.py +0 -0
  665. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_schema_naming_convention_per_prefix.py +0 -0
  666. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_schema_validation.py +0 -0
  667. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_secure_token_handling.py +0 -0
  668. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_security_certificate_mtls.py +0 -0
  669. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_security_encryption_manager.py +0 -0
  670. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_security_migration.py +0 -0
  671. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_serialization.py +0 -0
  672. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_serialization_extra.py +0 -0
  673. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_serialization_fallbacks.py +0 -0
  674. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_serialization_poisoning.py +0 -0
  675. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_signal_handling.py +0 -0
  676. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_sixth_round_fixes.py +0 -0
  677. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_small_modules_coverage.py +0 -0
  678. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_state_manager.py +0 -0
  679. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_state_managers.py +0 -0
  680. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_story_8_7_metric_filtering.py +0 -0
  681. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_story_8_9_review_regressions.py +0 -0
  682. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_taxonomy.py +0 -0
  683. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_telemetry_attribute_validation.py +0 -0
  684. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_telemetry_attributes_internals.py +0 -0
  685. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_temporality_e2e.py +0 -0
  686. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_temporality_resolver.py +0 -0
  687. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_tenth_round_fixes.py +0 -0
  688. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_ultimate_final_85.py +0 -0
  689. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_validation_attributes.py +0 -0
  690. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_validation_attributes_low_level.py +0 -0
  691. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_validation_init.py +0 -0
  692. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_validation_result_extra.py +0 -0
  693. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_validation_rules_extra.py +0 -0
  694. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_vendor_bridge.py +0 -0
  695. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_vendor_bridge_ac.py +0 -0
  696. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_vendor_bridge_internals.py +0 -0
  697. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_vendor_bridge_state.py +0 -0
  698. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tests/unit/test_version_check.py +0 -0
  699. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/tox.ini +0 -0
  700. {mca_sdk-0.9.2 → mca_sdk-0.9.4.dev1}/updated-versions.txt +0 -0
@@ -4,6 +4,78 @@ All notable changes to the MCA SDK will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.9.3] - 2026-07-08
8
+
9
+ ### Added
10
+ - **`mca_sdk.ai_assist` subpackage** — public API for end-user data
11
+ scientists to program against the AI-assistant surface. Exposes
12
+ `get_guide_path()`, `read_guide()`, `render_prompt(variant, **fields)`,
13
+ `list_assistants()`, and `install(assistant, dest, force=False)`.
14
+ - **`%mca_instrument` / `%mca_prompt` IPython magics** —
15
+ `%load_ext mca_sdk.ai_assist.jupyter` registers a notebook-native
16
+ onboarding path. `%mca_instrument` reuses the same `_auto_init` /
17
+ `_shutdown_with_timeout` bootstrap as `mca-instrument` / `mca-run`, so
18
+ env-var semantics are identical across surfaces. IPython is optional
19
+ (`pip install "mca-sdk[jupyter]"`); the module raises a clear error if
20
+ IPython is missing.
21
+ - **`mca-init ai-assist` subcommand** — scaffolds per-assistant config
22
+ files into the caller's repo at each assistant's canonical location:
23
+ Claude Code (`.claude/skills/mca-instrument.md`), Cursor
24
+ (`.cursor/rules/mca-instrument.mdc`), Copilot
25
+ (`.github/copilot-instructions.md`), Gemini CLI (`GEMINI.md`). Also
26
+ supports `mca-init ai-assist prompt --model-id ... --type ...` to
27
+ render a fully-filled Variant A/B paste-in prompt to stdout. Every
28
+ template LINKS to `FOR_AI_ASSISTANTS.md` inside the wheel — none
29
+ duplicate pattern content.
30
+ - Notebook starter template shipped in the wheel at
31
+ `mca_sdk/ai_assist/templates/notebook/mca_starter.ipynb`.
32
+
33
+ ### Changed
34
+ - **`FOR_AI_ASSISTANTS.md`** received three rounds of post-0.9.2
35
+ corrections from live instrumentation observations: six additional
36
+ pattern gaps closed (association-id join keys, batch-vs-per-instance
37
+ `record_*` rules, and related edge cases); `model_types` values
38
+ corrected to the canonical set; and a new section covering MLOps
39
+ pipeline usage and dependency-installation guidance.
40
+
41
+ ### Fixed
42
+ - **OTel SDK 1.35–1.38 import compatibility** — `mca_sdk` no longer
43
+ raises `ImportError: cannot import name 'ReadableLogRecord' from
44
+ 'opentelemetry.sdk._logs'` when installed against `opentelemetry-sdk`
45
+ releases in the 1.35 through 1.38 window (where the symbol did not
46
+ exist). `mca_sdk/exporters/gcp_logging.py` and
47
+ `mca_sdk/buffering/exporters.py` now use try/except fallback chains
48
+ to import `LogRecord`, `LogRecordExporter`, and
49
+ `LogRecordExportResult` from whichever module path the installed
50
+ OTel version exposes them at (`_logs`, `_logs._internal`, or the
51
+ older `LogExporter` / `LogExportResult` aliases). Verified against
52
+ OTel 1.35.0, 1.36.0, and 1.43.0. Type annotations changed from
53
+ `Sequence[ReadableLogRecord]` to `Sequence[LogRecord]`; runtime
54
+ behavior is unchanged.
55
+ - **MANIFEST.in** now includes `FOR_AI_ASSISTANTS.md` and all
56
+ `ai_assist/templates/*` files in sdists. The guide previously shipped
57
+ only in wheels via `setup.py package_data`; sdist consumers
58
+ (`pip install --no-binary`) lost it.
59
+ - Lint and mypy strict-mode errors resolved across
60
+ `mca_sdk/ai_assist/cli_install.py`, `mca_sdk/ai_assist/jupyter.py`,
61
+ `mca_sdk/buffering/exporters.py`, and
62
+ `mca_sdk/exporters/gcp_logging.py`. No behavior change.
63
+ - **Sphinx docs build** — `IPython` is now mocked in `docs/conf.py`
64
+ so the `mca_sdk.ai_assist.jupyter` autosummary page builds cleanly
65
+ in docs environments without IPython installed.
66
+
67
+ ### Security
68
+ - **cryptography** upgraded to 48.0.1. Expired CVE-2026-4539 entry
69
+ removed from `.pip-audit-allowlist.txt`.
70
+
71
+ ### Notes
72
+ - The `mca-init <project_dir>` invocation is unchanged. The new
73
+ `ai-assist` action is pre-dispatched in `main()` before argparse sees
74
+ the positional arg, so no argparse restructure was needed.
75
+ - **PHI is still the application's responsibility.** Every template
76
+ body carries the "warn, do not auto-mask" language from
77
+ FOR_AI_ASSISTANTS.md §6.
78
+
7
79
  ## [0.9.2] - 2026-06-30
8
80
 
9
81
  ### Changed
@@ -3,3 +3,5 @@ include LICENSE
3
3
  include CHANGELOG.md
4
4
  recursive-include mca_sdk *.py
5
5
  recursive-include mca_sdk py.typed
6
+ recursive-include mca_sdk *.md
7
+ recursive-include mca_sdk/ai_assist/templates *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mca-sdk
3
- Version: 0.9.2
3
+ Version: 0.9.4.dev1
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
@@ -50,12 +50,15 @@ Requires-Dist: numpy>=1.24.0; extra == "autolog"
50
50
  Provides-Extra: instrument
51
51
  Requires-Dist: opentelemetry-instrumentation>=0.48b0; extra == "instrument"
52
52
  Requires-Dist: opentelemetry-distro>=0.48b0; extra == "instrument"
53
+ Provides-Extra: jupyter
54
+ Requires-Dist: ipython>=7.0; extra == "jupyter"
53
55
  Provides-Extra: test
54
56
  Requires-Dist: pytest>=7.4.0; extra == "test"
55
57
  Requires-Dist: pytest-cov>=4.1.0; extra == "test"
56
58
  Requires-Dist: pytest-mock>=3.12.0; extra == "test"
57
59
  Requires-Dist: pytest-asyncio>=0.23.0; extra == "test"
58
60
  Requires-Dist: opentelemetry-exporter-prometheus>=0.48b0; extra == "test"
61
+ Requires-Dist: ipython>=7.0; extra == "test"
59
62
  Provides-Extra: dev
60
63
  Requires-Dist: black>=24.0.0; extra == "dev"
61
64
  Requires-Dist: mypy>=1.8.0; extra == "dev"
@@ -66,6 +69,7 @@ Requires-Dist: pytest-mock>=3.12.0; extra == "dev"
66
69
  Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
67
70
  Requires-Dist: opentelemetry-exporter-prometheus>=0.48b0; extra == "dev"
68
71
  Requires-Dist: pdoc>=14.0.0; extra == "dev"
72
+ Requires-Dist: ipython>=7.0; extra == "dev"
69
73
  Provides-Extra: docs
70
74
  Requires-Dist: pdoc>=14.0.0; extra == "docs"
71
75
  Provides-Extra: all
@@ -296,6 +300,25 @@ If you are using an agentic coding assistant (like Claude Code, Gemini CLI, Curs
296
300
  Simply paste this prompt to your AI assistant:
297
301
  > "Please review my codebase and instrument my models using the MCA SDK. You can find the instructions on how to do this by reading the guide located at `mca_sdk/FOR_AI_ASSISTANTS.md` within the installed package."
298
302
 
303
+ **Drop assistant configs into your repo with one command:**
304
+ ```bash
305
+ mca-init ai-assist install --assistant all # Claude Code + Cursor + Copilot + Gemini CLI
306
+ mca-init ai-assist install --assistant cursor # just Cursor rules
307
+ mca-init ai-assist prompt --model-id mdl-001 --type predictive --shape script # print a ready-to-paste prompt
308
+ ```
309
+
310
+ **In a Jupyter notebook** (see also the `mca_starter.ipynb` template shipped with the SDK):
311
+ ```python
312
+ %load_ext mca_sdk.ai_assist.jupyter
313
+ %mca_instrument --model-id mdl-001 --team clinical-ai
314
+ ```
315
+
316
+ **Programmatic access to the guide:**
317
+ ```python
318
+ from mca_sdk.ai_assist import get_guide_path, read_guide
319
+ print(get_guide_path())
320
+ ```
321
+
299
322
  ### Approach 2: Zero-Code Auto-Instrumentation (Recommended)
300
323
  This approach utilizes the `mca-instrument` CLI wrapper to automatically instrument your application's external calls and supported framework inferences without touching your source code.
301
324
  **Prerequisites**: Install the SDK with instrumentation dependencies: `pip install "mca-sdk[instrument]"` and run `opentelemetry-bootstrap -a install`.
@@ -323,7 +346,7 @@ Provide configuration via environment variables in your deployment manifest. The
323
346
  - **GCP Exporters**: To route telemetry to GCP buckets, you must set `MCA_GCP_LOGGING_ENABLED=true` and `MCA_GCP_TRACE_ENABLED=true` environment variables.
324
347
 
325
348
  ### Approach 3: Manual Instrumentation
326
- If you are not using standard HTTP/DB frameworks, **if you are working in a Jupyter Notebook**, or if you need precise programmatic control, use the SDK's Python API directly in your code.
349
+ If you are not using standard HTTP/DB frameworks, or if you need precise programmatic control, use the SDK's Python API directly in your code. (In a Jupyter notebook, prefer the `%mca_instrument` magic under Approach 1.)
327
350
 
328
351
  ```python
329
352
  from mca_sdk import MCAClient
@@ -209,6 +209,25 @@ If you are using an agentic coding assistant (like Claude Code, Gemini CLI, Curs
209
209
  Simply paste this prompt to your AI assistant:
210
210
  > "Please review my codebase and instrument my models using the MCA SDK. You can find the instructions on how to do this by reading the guide located at `mca_sdk/FOR_AI_ASSISTANTS.md` within the installed package."
211
211
 
212
+ **Drop assistant configs into your repo with one command:**
213
+ ```bash
214
+ mca-init ai-assist install --assistant all # Claude Code + Cursor + Copilot + Gemini CLI
215
+ mca-init ai-assist install --assistant cursor # just Cursor rules
216
+ mca-init ai-assist prompt --model-id mdl-001 --type predictive --shape script # print a ready-to-paste prompt
217
+ ```
218
+
219
+ **In a Jupyter notebook** (see also the `mca_starter.ipynb` template shipped with the SDK):
220
+ ```python
221
+ %load_ext mca_sdk.ai_assist.jupyter
222
+ %mca_instrument --model-id mdl-001 --team clinical-ai
223
+ ```
224
+
225
+ **Programmatic access to the guide:**
226
+ ```python
227
+ from mca_sdk.ai_assist import get_guide_path, read_guide
228
+ print(get_guide_path())
229
+ ```
230
+
212
231
  ### Approach 2: Zero-Code Auto-Instrumentation (Recommended)
213
232
  This approach utilizes the `mca-instrument` CLI wrapper to automatically instrument your application's external calls and supported framework inferences without touching your source code.
214
233
  **Prerequisites**: Install the SDK with instrumentation dependencies: `pip install "mca-sdk[instrument]"` and run `opentelemetry-bootstrap -a install`.
@@ -236,7 +255,7 @@ Provide configuration via environment variables in your deployment manifest. The
236
255
  - **GCP Exporters**: To route telemetry to GCP buckets, you must set `MCA_GCP_LOGGING_ENABLED=true` and `MCA_GCP_TRACE_ENABLED=true` environment variables.
237
256
 
238
257
  ### Approach 3: Manual Instrumentation
239
- If you are not using standard HTTP/DB frameworks, **if you are working in a Jupyter Notebook**, or if you need precise programmatic control, use the SDK's Python API directly in your code.
258
+ If you are not using standard HTTP/DB frameworks, or if you need precise programmatic control, use the SDK's Python API directly in your code. (In a Jupyter notebook, prefer the `%mca_instrument` magic under Approach 1.)
240
259
 
241
260
  ```python
242
261
  from mca_sdk import MCAClient
@@ -20,7 +20,7 @@ prompt at the bottom of this file (or one like it).
20
20
  The data scientist MUST tell you (or have written in the repo, e.g. a
21
21
  README, model card, or `mca.yaml`) two things:
22
22
 
23
- 1. **`model_type`** — one of `predictive`, `generative`, `agentic`.
23
+ 1. **`model_type`** — one of `regression`, `time-series`, `classification`, `generative`, `agentic`.
24
24
  2. **`model_category`** — one of `internal`, `vendor`.
25
25
 
26
26
  You also need to infer (or ask):
@@ -62,6 +62,16 @@ underneath it — both can coexist.
62
62
 
63
63
  ## 1. Universal startup — pick one
64
64
 
65
+ ### 1.0 Internal HTTP collector — set `allow_insecure_collector=True`
66
+
67
+ The fleet collector runs at `http://10.164.76.55:4318` (see
68
+ `example_deployed/shared/config.py`). The SDK enforces HTTPS on non-localhost
69
+ endpoints by default and will refuse to initialize against a bare `http://…`
70
+ URL. Pass `allow_insecure_collector=True` to `MCAClient(...)` whenever
71
+ `collector_endpoint` starts with `http://` and isn't `localhost` — every
72
+ `example_deployed/*` client does this. Omit the flag only when the endpoint
73
+ is `https://…` or `http://localhost:…`.
74
+
65
75
  ### 1.1 Vertex AI / Cloud Run FastAPI container (the production case)
66
76
 
67
77
  Use `lifespan` so startup runs inside the event loop and `asyncio.to_thread`
@@ -114,10 +124,13 @@ wraps any blocking I/O. This is what every container in
114
124
  MCAClient,
115
125
  service_name=service_name,
116
126
  model_id=model_id,
117
- model_type="predictive", # set to the declared type
127
+ model_type="classification", # set to the declared type
118
128
  model_category="internal", # set to the declared category
119
129
  team_name=team_name,
130
+ llm_provider="google", # or "openai" | "anthropic" | "litellm"
131
+ llm_model="gemini-2.0-flash-001", # whatever the model resolves to
120
132
  collector_endpoint=collector_endpoint,
133
+ allow_insecure_collector=True, # required if collector is http://…
121
134
  registry_url=registry_url,
122
135
  use_gcp_auth=True,
123
136
  refresh_interval_secs=300,
@@ -125,6 +138,11 @@ wraps any blocking I/O. This is what every container in
125
138
  capture_output_data=True,
126
139
  )
127
140
 
141
+ `llm_provider` / `llm_model` dimension GenAI metrics on the collector. Set
142
+ them even when your agent talks to the LLM indirectly (LiteLLM proxy,
143
+ LangChain wrapper) — otherwise the dashboard groups everything as
144
+ `unknown/unknown` and per-model latency/cost splits are gone.
145
+
128
146
  yield
129
147
 
130
148
  if mca_client:
@@ -142,7 +160,7 @@ wraps any blocking I/O. This is what every container in
142
160
  client = MCAClient(
143
161
  service_name="readmission-predictor",
144
162
  model_id="mdl-001",
145
- model_type="predictive",
163
+ model_type="classification",
146
164
  model_category="internal",
147
165
  team_name="clinical-ai",
148
166
  )
@@ -257,6 +275,20 @@ not hand-wrap. Call `autolog()` once and let the patchers handle it.
257
275
  from llama_index.core import Settings
258
276
  Settings.callback_manager.add_handler(MCALlamaIndexCallback(mca_client))
259
277
 
278
+ **Build the callback in its own try-block.** `MCALangChainCallback` imports
279
+ `langchain-core` at construction time. If that extra isn't installed, the
280
+ constructor raises — and if you built the client and the callback in the
281
+ same `try`, the exception unwinds the whole init, losing the agentic client
282
+ that would have worked on its own. Split them:
283
+
284
+ client = MCAClient(...) # required
285
+ try:
286
+ from mca_sdk.integrations import MCALangChainCallback
287
+ callbacks = [MCALangChainCallback(client)]
288
+ except Exception:
289
+ callbacks = [] # LLM-call telemetry off;
290
+ # agent traces (§2.6) still flow
291
+
260
292
  ### 2.6 Agentic (multi-step reasoning)
261
293
 
262
294
  One outer trace per user request; one `record_prediction` per agent
@@ -280,6 +312,55 @@ metrics underneath. Pattern is
280
312
  },
281
313
  )
282
314
 
315
+ #### 2.6.1 Agentic on LangGraph (`StateGraph.astream`)
316
+
317
+ When the agent is a LangGraph `StateGraph` (increasingly the default),
318
+ you don't have a hand-rolled `for step in plan` loop — you have
319
+ `app.astream(state, config)` yielding `{node_name: node_state}` events.
320
+ Wrap the streaming loop instead:
321
+
322
+ with mca_client.trace("agent.run", attributes={
323
+ "agent.goal": "deploy_application",
324
+ "agent.request_id": request_id, # also your association_id
325
+ }):
326
+ last_tick = time.perf_counter()
327
+ prev_error_count = 0
328
+ step_idx = 0
329
+ async for event in app.astream(initial_state, config):
330
+ for node_name, node_state in event.items():
331
+ if not isinstance(node_state, dict):
332
+ continue
333
+ now = time.perf_counter()
334
+ err_n = len(node_state.get("errors", []) or [])
335
+ mca_client.record_prediction(
336
+ latency=now - last_tick, # per-step wall time
337
+ prediction_id=f"{request_id}.{step_idx}",
338
+ span_attributes={
339
+ "agent.step.index": step_idx,
340
+ "agent.step.node": node_name,
341
+ "agent.step.success": err_n == prev_error_count,
342
+ },
343
+ )
344
+ prev_error_count = err_n
345
+ last_tick = now
346
+ step_idx += 1
347
+ mca_client.flush(timeout_millis=2000)
348
+
349
+ Notes:
350
+
351
+ - Use the `thread_id` you already pass to LangGraph as your
352
+ `association_id` — it's the natural join key for downstream outcomes,
353
+ don't invent a second one.
354
+ - Measure per-step latency between yields. LangGraph doesn't expose
355
+ per-node start times in the event stream; `now - last_tick` is the
356
+ right approximation.
357
+ - Derive per-step success by comparing `len(errors)` before and after.
358
+ The `add_error()` helpers in most projects append without decrementing,
359
+ so growth ⇒ that node failed.
360
+ - The LangChain callback (§2.5) still attaches to your `ChatLiteLLM` /
361
+ `ChatOpenAI` instances underneath and captures per-LLM-call
362
+ telemetry — the agent trace is one layer up, not a replacement.
363
+
283
364
  ### 2.7 Vendor model (you do not own the inference code)
284
365
 
285
366
  Two sub-cases:
@@ -317,6 +398,16 @@ Use `model_category="vendor"` on the `MCAClient` in both sub-cases.
317
398
  anything to `record_prediction`, `record_llm_generation`, trace
318
399
  attributes, or log `extra` fields. If the owner wants belt-and-braces
319
400
  filtering, set `MCA_ENABLE_PHI_FILTER=1` — it is opt-in.
401
+
402
+ **Free-form user input is a landmine.** If your model's input is a
403
+ natural-language field (chat prompt, ticket description, deploy
404
+ request, search query, free-text note), do **not** set
405
+ `capture_input_data=True` blindly — it ships the raw text into span
406
+ attributes where a downstream viewer with dashboard access will read
407
+ it. Default to `False`; only enable after you've written an
408
+ application-side scrubber, or after confirming the field truly can't
409
+ hold PHI. The same warning applies to `capture_output_data=True` when
410
+ the model returns generated text.
320
411
  2. **`association_id` is the join key** between prediction and outcome.
321
412
  Forward it from the request payload into per-row logs (see §2.1) so
322
413
  ground-truth labels can be joined later. Never use PHI as the
@@ -331,7 +422,22 @@ Use `model_category="vendor"` on the `MCAClient` in both sub-cases.
331
422
 
332
423
  ---
333
424
 
334
- ## 4. Environment variables (canonical names)
425
+ ## 4. MLOps Pipelines & Dependencies
426
+
427
+ To ensure telemetry successfully reaches the collector in production, you MUST instrument the build and deployment environment alongside the Python code. Do not skip this step.
428
+
429
+ ### 4.1 Dependency Management
430
+ Search the project tree for `requirements.txt` or `pyproject.toml` files located within the serving or inference directories (e.g., `serve_image/requirements.txt`).
431
+ Append `mca_sdk` to these files. If the repository has separate training and serving dependencies, ensure it is added to the serving dependencies at a minimum.
432
+
433
+ ### 4.2 Environment Orchestration
434
+ The production container needs the telemetry environment variables injected at deployment time.
435
+ Search the project for Vertex AI pipeline definitions (e.g., `pipeline.py`, `pipeline.json`), deployment shell scripts (e.g., `bootstrap.sh`), or environment configuration files (e.g., `config.env`).
436
+ Ensure that `MCA_OTEL_ENDPOINT`, `MCA_SERVICE_NAME`, `MCA_MODEL_ID`, and `MCA_TEAM_NAME` are explicitly passed into the serving container's configuration (e.g., via `serving_container_environment_variables` in Vertex AI's `ModelDeployOp` or equivalent).
437
+
438
+ ---
439
+
440
+ ## 5. Environment variables (canonical names)
335
441
 
336
442
  | Var | Required? | Default | Notes |
337
443
  |------------------------------------|-----------|--------------------------|-------|
@@ -347,6 +453,9 @@ Use `model_category="vendor"` on the `MCAClient` in both sub-cases.
347
453
  | `MCA_REGISTRY_REFRESH_INTERVAL` | no | `600` | Seconds |
348
454
  | `MCA_ENABLE_PHI_FILTER` | no | `0` | Opt-in PHI scrubbing |
349
455
  | `MCA_DEBUG_MODE` | no | `false` | Verbose logs |
456
+ | `MCA_ENV` | no | `production` | Fleet mock-switch. `dev` / `development` / `mock` / `local` disable real telemetry (init a no-op client); anything else means production. Mirrors `example_deployed/*/main.py`. Also honor `MCA_DISABLED=true` for the same effect. |
457
+ | `MCA_LLM_PROVIDER` | no | — | GenAI metric dimension. Set to `google` / `openai` / `anthropic` / `litellm` etc. Pass into `MCAClient(llm_provider=...)`. |
458
+ | `MCA_LLM_MODEL` | no | — | GenAI metric dimension. Pass into `MCAClient(llm_model=...)`. Without both, dashboards group everything as `unknown/unknown`. |
350
459
 
351
460
  Earlier versions of this guide listed `MCA_COLLECTOR_ENDPOINT` as the
352
461
  primary endpoint variable. That is wrong. Use `MCA_OTEL_ENDPOINT` in new
@@ -355,24 +464,26 @@ manifests.
355
464
 
356
465
  ---
357
466
 
358
- ## 5. Verification
467
+ ## 6. Verification
359
468
 
360
- After instrumenting, do all four:
469
+ After instrumenting, do all six:
361
470
 
362
471
  1. **Import test** — `python -c "from mca_sdk import MCAClient; print('ok')"`.
363
- 2. **Local collector** —
472
+ 2. **Dependencies check** — Confirm `mca_sdk` is added to the serving `requirements.txt` or `pyproject.toml`.
473
+ 3. **Pipeline config check** — Confirm pipeline deployment files (e.g., `pipeline.py`) explicitly inject `MCA_OTEL_ENDPOINT` and registry vars into the serving container.
474
+ 4. **Local collector** —
364
475
  docker-compose up -d otel-collector
365
476
  python <their_entrypoint>.py # or hit the FastAPI endpoint
366
477
  docker logs -f otel-collector # expect "exporting metrics"
367
- 3. **Unit smoke** — call the instrumented function once with a tiny
478
+ 5. **Unit smoke** — call the instrumented function once with a tiny
368
479
  synthetic input, confirm no exception, confirm collector received a
369
480
  span with `service.name`, `model.id`, `model.type`, `model.category`.
370
- 4. **Owner sign-off question** — confirm with the data scientist that the
481
+ 6. **Owner sign-off question** — confirm with the data scientist that the
371
482
  `model_type` and `model_category` you set match what they declared.
372
483
 
373
484
  ---
374
485
 
375
- ## 6. When to refuse / escalate
486
+ ## 7. When to refuse / escalate
376
487
 
377
488
  Stop and ask the owner if any of these are true:
378
489
 
@@ -388,19 +499,20 @@ Stop and ask the owner if any of these are true:
388
499
 
389
500
  ---
390
501
 
391
- ## 7. One-page summary you can paste back to the data scientist
502
+ ## 8. One-page summary you can paste back to the data scientist
392
503
 
393
504
  1. Confirm `model_type`, `model_category`, deployment shape, LLM access path.
394
505
  2. Pick the matching section above (§2.1 – §2.7).
395
506
  3. Copy the universal startup block (§1.1 for Vertex/Cloud Run, §1.2 for scripts).
396
507
  4. Apply the pattern. Strip PHI. Use `association_id` for joins.
397
- 5. Verify with §5.
508
+ 5. Update MLOps configuration (§4) by injecting `MCA_*` environment variables in pipeline scripts and adding `mca_sdk` to `requirements.txt`.
509
+ 6. Verify with §6.
398
510
 
399
511
  That is the entire workflow.
400
512
 
401
513
  ---
402
514
 
403
- ## 8. Prompt templates for data scientists
515
+ ## 9. Prompt templates for data scientists
404
516
 
405
517
  Paste one of the following into your AI coding assistant to start an
406
518
  instrumentation session.
@@ -409,7 +521,7 @@ instrumentation session.
409
521
 
410
522
  > Please instrument my model with the MCA SDK.
411
523
  >
412
- > - **model_type:** `<predictive | generative | agentic>`
524
+ > - **model_type:** `<regression | time-series | classification | generative | agentic>`
413
525
  > - **model_category:** `<internal | vendor>`
414
526
  > - **Deployment shape:** `<vertex-fastapi | cloud-run-fastapi | script | notebook | cli-batch>`
415
527
  > - **LLM access path** (only if generative or agentic):
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.9.2'
22
- __version_tuple__ = version_tuple = (0, 9, 2)
21
+ __version__ = version = '0.9.4.dev1'
22
+ __version_tuple__ = version_tuple = (0, 9, 4, 'dev1')
23
23
 
24
- __commit_id__ = commit_id = 'g76060e153'
24
+ __commit_id__ = commit_id = 'gb4af42fa0'
@@ -0,0 +1,149 @@
1
+ """AI-assistant packaging for MCA SDK end users.
2
+
3
+ Exposes a small public API that lets a data scientist:
4
+ - read the in-wheel FOR_AI_ASSISTANTS.md guide programmatically
5
+ - render the Variant A/B paste-in prompts with model_id/team/etc filled in
6
+ - install per-assistant config files (Cursor / Copilot / Gemini / Claude Code)
7
+ into their own repo via `mca-init ai-assist install ...`
8
+
9
+ The Jupyter magic (`%mca_instrument`, `%mca_prompt`) lives in
10
+ `mca_sdk.ai_assist.jupyter` and is not imported here so IPython stays optional.
11
+
12
+ The guide (FOR_AI_ASSISTANTS.md) remains the single source of truth for
13
+ instrumentation patterns; every template in this subpackage links back to
14
+ it rather than duplicating pattern content.
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ import shutil
20
+ import sys
21
+ from pathlib import Path
22
+ from typing import List
23
+
24
+ if sys.version_info >= (3, 9):
25
+ from importlib.resources import files as _pkg_files
26
+ else: # pragma: no cover - project targets 3.10+
27
+ from importlib_resources import files as _pkg_files # type: ignore[no-redef]
28
+
29
+ __all__ = [
30
+ "get_guide_path",
31
+ "read_guide",
32
+ "render_prompt",
33
+ "list_assistants",
34
+ "install",
35
+ "ASSISTANT_TARGETS",
36
+ ]
37
+
38
+ _KNOWN_ASSISTANTS = ("claude-code", "cursor", "copilot", "gemini")
39
+
40
+ ASSISTANT_TARGETS: dict[str, str] = {
41
+ "claude-code": ".claude/skills/mca-instrument.md",
42
+ "cursor": ".cursor/rules/mca-instrument.mdc",
43
+ "copilot": ".github/copilot-instructions.md",
44
+ "gemini": "GEMINI.md",
45
+ }
46
+
47
+ _PROMPT_FIELDS = (
48
+ "model_type",
49
+ "model_category",
50
+ "deployment_shape",
51
+ "llm_access_path",
52
+ "model_id",
53
+ "service_name",
54
+ "team_name",
55
+ )
56
+
57
+
58
+ def get_guide_path() -> Path:
59
+ """Return the absolute filesystem path to FOR_AI_ASSISTANTS.md."""
60
+ return Path(str(_pkg_files("mca_sdk").joinpath("FOR_AI_ASSISTANTS.md")))
61
+
62
+
63
+ def read_guide() -> str:
64
+ """Return the full text of the in-wheel FOR_AI_ASSISTANTS.md guide."""
65
+ return _pkg_files("mca_sdk").joinpath("FOR_AI_ASSISTANTS.md").read_text(encoding="utf-8")
66
+
67
+
68
+ def list_assistants() -> List[str]:
69
+ """Return the assistant slugs this package can scaffold configs for."""
70
+ return list(_KNOWN_ASSISTANTS)
71
+
72
+
73
+ def render_prompt(variant: str = "a", **fields: str) -> str:
74
+ """Render a Variant A or B prompt from §8 of the guide with fields filled in.
75
+
76
+ Args:
77
+ variant: "a" (owner-stated) or "b" (fallback classification).
78
+ **fields: Any of model_type, model_category, deployment_shape,
79
+ llm_access_path, model_id, service_name, team_name. Missing
80
+ fields are left as `<placeholder>` so the user can fill them.
81
+
82
+ Returns:
83
+ The rendered prompt as a string.
84
+
85
+ Raises:
86
+ ValueError: if variant is not one of {"a", "b"}.
87
+ """
88
+ variant = variant.lower().strip()
89
+ if variant not in {"a", "b"}:
90
+ raise ValueError(f"variant must be 'a' or 'b', got: {variant!r}")
91
+
92
+ template_path = (
93
+ _pkg_files("mca_sdk.ai_assist")
94
+ .joinpath("templates")
95
+ .joinpath("prompts")
96
+ .joinpath(f"variant_{variant}.md")
97
+ )
98
+ template = template_path.read_text(encoding="utf-8")
99
+
100
+ substitutions = {k: fields.get(k, f"<{k}>") for k in _PROMPT_FIELDS}
101
+ for placeholder, value in substitutions.items():
102
+ template = template.replace("{" + placeholder + "}", value)
103
+ return template
104
+
105
+
106
+ def install(assistant: str, dest: Path, force: bool = False) -> List[Path]:
107
+ """Copy a template file for `assistant` into `dest` at its canonical location.
108
+
109
+ Args:
110
+ assistant: One of "claude-code", "cursor", "copilot", "gemini", or "all".
111
+ dest: Repository root to install into. The canonical relative path
112
+ (e.g. `.cursor/rules/mca-instrument.mdc`) is appended.
113
+ force: If True, overwrite existing files. Otherwise skip and log.
114
+
115
+ Returns:
116
+ List of absolute paths that were written.
117
+
118
+ Raises:
119
+ ValueError: if `assistant` is unknown.
120
+ FileExistsError: if the target file exists and `force` is False.
121
+ """
122
+ if assistant == "all":
123
+ written: List[Path] = []
124
+ for slug in _KNOWN_ASSISTANTS:
125
+ written.extend(install(slug, dest, force=force))
126
+ return written
127
+
128
+ if assistant not in ASSISTANT_TARGETS:
129
+ raise ValueError(
130
+ f"Unknown assistant: {assistant!r}. "
131
+ f"Expected one of {list(ASSISTANT_TARGETS)} or 'all'."
132
+ )
133
+
134
+ rel_path = ASSISTANT_TARGETS[assistant]
135
+ target = Path(dest).resolve() / rel_path
136
+ src_resource = (
137
+ _pkg_files("mca_sdk.ai_assist")
138
+ .joinpath("templates")
139
+ .joinpath(assistant)
140
+ .joinpath(Path(rel_path).name)
141
+ )
142
+
143
+ if target.exists() and not force:
144
+ raise FileExistsError(f"{target} already exists (pass force=True to overwrite)")
145
+
146
+ target.parent.mkdir(parents=True, exist_ok=True)
147
+ with src_resource.open("rb") as src, open(target, "wb") as dst:
148
+ shutil.copyfileobj(src, dst)
149
+ return [target]