traigent 0.17.0__tar.gz → 0.18.0.dev0__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 (628) hide show
  1. {traigent-0.17.0 → traigent-0.18.0.dev0}/CHANGELOG.md +0 -25
  2. {traigent-0.17.0/traigent.egg-info → traigent-0.18.0.dev0}/PKG-INFO +1 -1
  3. {traigent-0.17.0 → traigent-0.18.0.dev0}/pyproject.toml +2 -1
  4. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/adapters/execution_adapter.py +16 -2
  5. traigent-0.18.0.dev0/traigent/analytics/render.py +349 -0
  6. traigent-0.18.0.dev0/traigent/analytics_mcp/__init__.py +12 -0
  7. traigent-0.18.0.dev0/traigent/analytics_mcp/server.py +280 -0
  8. traigent-0.18.0.dev0/traigent/analytics_mcp/tools.py +454 -0
  9. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/parameter_ranges.py +12 -0
  10. traigent-0.18.0.dev0/traigent/cloud/analytics_auth.py +73 -0
  11. traigent-0.18.0.dev0/traigent/cloud/analytics_client.py +565 -0
  12. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/auth.py +2 -5
  13. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/backend_client.py +178 -0
  14. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/sync_manager.py +2 -6
  15. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/project.py +6 -0
  16. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/providers.py +21 -12
  17. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/cost_enforcement.py +12 -6
  18. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/mandatory_metrics.py +7 -1
  19. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/orchestrator.py +33 -19
  20. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/result_selection.py +24 -16
  21. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/trial_lifecycle.py +48 -6
  22. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/base.py +102 -1
  23. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/local.py +21 -17
  24. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/metrics.py +4 -1
  25. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/slow_update.py +3 -2
  26. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/splits.py +5 -3
  27. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/framework_override.py +110 -16
  28. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/langchain/handler.py +146 -17
  29. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/base.py +20 -34
  30. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/batch_optimizers.py +39 -18
  31. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/grid.py +52 -9
  32. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/random.py +100 -21
  33. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/input_validation.py +5 -7
  34. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/cost_calculator.py +14 -2
  35. traigent-0.18.0.dev0/traigent/utils/discrete_domains.py +232 -0
  36. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/objectives.py +14 -1
  37. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/optimization_logger.py +6 -1
  38. {traigent-0.17.0 → traigent-0.18.0.dev0/traigent.egg-info}/PKG-INFO +1 -1
  39. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent.egg-info/SOURCES.txt +7 -1
  40. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent.egg-info/entry_points.txt +1 -0
  41. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent_validation/validators.py +67 -9
  42. traigent-0.17.0/traigent/generation/skill_train/_deterministic_indices.py +0 -33
  43. {traigent-0.17.0 → traigent-0.18.0.dev0}/COMMERCIAL-LICENSE.md +0 -0
  44. {traigent-0.17.0 → traigent-0.18.0.dev0}/CONTRIBUTING.md +0 -0
  45. {traigent-0.17.0 → traigent-0.18.0.dev0}/CONTRIBUTOR-LICENSING.md +0 -0
  46. {traigent-0.17.0 → traigent-0.18.0.dev0}/DISCLAIMER.md +0 -0
  47. {traigent-0.17.0 → traigent-0.18.0.dev0}/LICENSE +0 -0
  48. {traigent-0.17.0 → traigent-0.18.0.dev0}/MANIFEST.in +0 -0
  49. {traigent-0.17.0 → traigent-0.18.0.dev0}/NOTICE +0 -0
  50. {traigent-0.17.0 → traigent-0.18.0.dev0}/README.md +0 -0
  51. {traigent-0.17.0 → traigent-0.18.0.dev0}/SECURITY.md +0 -0
  52. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/LOCAL_CI_GATE.md +0 -0
  53. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/README.md +0 -0
  54. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/SYNC_MAP.md +0 -0
  55. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/agent-skill.md +0 -0
  56. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/api-reference/complete-function-specification.md +0 -0
  57. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/api-reference/decorator-reference.md +0 -0
  58. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/api-reference/enterprise-beta-api.md +0 -0
  59. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/api-reference/interactive_optimizer.md +0 -0
  60. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/api-reference/telemetry.md +0 -0
  61. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/api-reference/thread-pool-examples.md +0 -0
  62. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/architecture/ARCHITECTURE.md +0 -0
  63. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/architecture/cost-architecture-validation.md +0 -0
  64. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/architecture/execution_mode_follow_up.md +0 -0
  65. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/architecture/integrations-inventory.md +0 -0
  66. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/architecture/plugin_architecture.md +0 -0
  67. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/architecture/project-structure.md +0 -0
  68. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/architecture/stop_conditions.md +0 -0
  69. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/concepts/composite-knob-ir.md +0 -0
  70. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/concepts/composite-knobs.md +0 -0
  71. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/concepts/guided-generation.md +0 -0
  72. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
  73. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
  74. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/contributing/CONTRIBUTING.md +0 -0
  75. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
  76. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/contributing/README.md +0 -0
  77. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/contributing/SECURITY.md +0 -0
  78. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/contributing/aikido_triage.md +0 -0
  79. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/contributing/code_review_instructions.md +0 -0
  80. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/contributing/test-quality-guide.md +0 -0
  81. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
  82. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/demos/README.md +0 -0
  83. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/examples/API_PATTERNS.md +0 -0
  84. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/examples/LEARNING_ROADMAP.md +0 -0
  85. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/examples/QUICK_REFERENCE.md +0 -0
  86. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/examples/README.md +0 -0
  87. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/examples/START_HERE.md +0 -0
  88. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/examples/TROUBLESHOOTING.md +0 -0
  89. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/fake-completion-tracking.md +0 -0
  90. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/feature_matrices/README.md +0 -0
  91. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/README.md +0 -0
  92. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/authentication.md +0 -0
  93. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/constraint-dsl.md +0 -0
  94. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/dataflow-detection.md +0 -0
  95. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/framework_override_enhanced_features.md +0 -0
  96. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/mcp-server.md +0 -0
  97. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/observability-spans.md +0 -0
  98. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/onboarding.md +0 -0
  99. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/prompt_management.md +0 -0
  100. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/recommendations.md +0 -0
  101. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/safety-gates.md +0 -0
  102. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/seamless_injection.md +0 -0
  103. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/strategy-presets.md +0 -0
  104. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/features/strict_metrics_nulls.md +0 -0
  105. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/getting-started/GETTING_STARTED.md +0 -0
  106. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/getting-started/README.md +0 -0
  107. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/getting-started/installation.md +0 -0
  108. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/getting-started/minimal-integration.md +0 -0
  109. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
  110. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/getting-started/testing.md +0 -0
  111. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
  112. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/guides/evaluation.md +0 -0
  113. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/guides/execution-mode-migration.md +0 -0
  114. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/guides/execution-modes.md +0 -0
  115. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/guides/js-bridge.md +0 -0
  116. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/guides/llm_plugin_migration_guide.md +0 -0
  117. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/guides/parallel-configuration.md +0 -0
  118. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/guides/secrets_management.md +0 -0
  119. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/hybrid-mode-api-contract.md +0 -0
  120. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/hybrid-mode-client-guide.md +0 -0
  121. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/operations/azure_openai.md +0 -0
  122. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/operations/bedrock.md +0 -0
  123. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/operations/google_gemini.md +0 -0
  124. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/security/trust_model.md +0 -0
  125. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
  126. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/traceability/concepts/composite-knob-ir.md +0 -0
  127. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/traceability/concepts/composite-knobs.md +0 -0
  128. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/traceability/concepts/guided-generation.md +0 -0
  129. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/traceability/schema.md +0 -0
  130. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/traceability/tagging_tracking.md +0 -0
  131. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/traceability/taxonomy_reference.md +0 -0
  132. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
  133. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/user-guide/README.md +0 -0
  134. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/user-guide/agent_optimization.md +0 -0
  135. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/user-guide/choosing_optimization_model.md +0 -0
  136. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/user-guide/configuration-spaces.md +0 -0
  137. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/user-guide/evaluation_guide.md +0 -0
  138. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/user-guide/injection_modes.md +0 -0
  139. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/user-guide/interactive_optimization.md +0 -0
  140. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/user-guide/smart_optimization.md +0 -0
  141. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/user-guide/tuned_variables.md +0 -0
  142. {traigent-0.17.0 → traigent-0.18.0.dev0}/docs/walkthrough.md +0 -0
  143. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements-all.txt +0 -0
  144. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements-analytics.txt +0 -0
  145. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements-bayesian.txt +0 -0
  146. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements-chroma.txt +0 -0
  147. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements-dev.txt +0 -0
  148. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements-hybrid.txt +0 -0
  149. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements-integrations.txt +0 -0
  150. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements-security.txt +0 -0
  151. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements-test.txt +0 -0
  152. {traigent-0.17.0 → traigent-0.18.0.dev0}/requirements/requirements.txt +0 -0
  153. {traigent-0.17.0 → traigent-0.18.0.dev0}/setup.cfg +0 -0
  154. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/__init__.py +0 -0
  155. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/_version.py +0 -0
  156. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/admin/__init__.py +0 -0
  157. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/admin/client.py +0 -0
  158. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/admin/config.py +0 -0
  159. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/admin/dtos.py +0 -0
  160. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/agents/__init__.py +0 -0
  161. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/agents/config_mapper.py +0 -0
  162. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/agents/executor.py +0 -0
  163. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/agents/platforms.py +0 -0
  164. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/agents/specification_generator.py +0 -0
  165. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/__init__.py +0 -0
  166. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/anomaly.py +0 -0
  167. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/cost_optimization.py +0 -0
  168. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/example_insights.py +0 -0
  169. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/intelligence.py +0 -0
  170. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/meta_learning.py +0 -0
  171. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/next_steps.py +0 -0
  172. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/optimization_plan.py +0 -0
  173. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/predictive.py +0 -0
  174. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/analytics/scheduling.py +0 -0
  175. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/__init__.py +0 -0
  176. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/agent_inference.py +0 -0
  177. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/config_builder.py +0 -0
  178. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/config_space.py +0 -0
  179. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/constraint_builders.py +0 -0
  180. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/constraints.py +0 -0
  181. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/decorators.py +0 -0
  182. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/functions.py +0 -0
  183. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/parameter_validator.py +0 -0
  184. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/safety.py +0 -0
  185. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/strategy_presets.py +0 -0
  186. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/types.py +0 -0
  187. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/api/validation_protocol.py +0 -0
  188. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/__init__.py +0 -0
  189. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/auth_commands.py +0 -0
  190. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/detect_tvars_command.py +0 -0
  191. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/function_discovery.py +0 -0
  192. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/generate_config_command.py +0 -0
  193. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/hooks_commands.py +0 -0
  194. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/local_commands.py +0 -0
  195. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/main.py +0 -0
  196. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/next_steps_command.py +0 -0
  197. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/onboard_commands.py +0 -0
  198. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/optimization_validator.py +0 -0
  199. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/plan_command.py +0 -0
  200. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/playbook_commands.py +0 -0
  201. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/sync_commands.py +0 -0
  202. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cli/validation_types.py +0 -0
  203. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/__init__.py +0 -0
  204. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/_aiohttp_compat.py +0 -0
  205. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/agent_dtos.py +0 -0
  206. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/api_key_manager.py +0 -0
  207. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/api_operations.py +0 -0
  208. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/async_batch_transport.py +0 -0
  209. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/backend_bridges.py +0 -0
  210. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/backend_components.py +0 -0
  211. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/backend_synchronizer.py +0 -0
  212. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/benchmark_client.py +0 -0
  213. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/billing.py +0 -0
  214. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/client.py +0 -0
  215. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/cloud_operations.py +0 -0
  216. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/credential_manager.py +0 -0
  217. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/credential_resolver.py +0 -0
  218. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/dataset_converter.py +0 -0
  219. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/dtos.py +0 -0
  220. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/governance.py +0 -0
  221. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/integration_manager.py +0 -0
  222. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/models.py +0 -0
  223. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/optimizer_client.py +0 -0
  224. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/password_auth_handler.py +0 -0
  225. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/privacy_operations.py +0 -0
  226. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/production_mcp_client.py +0 -0
  227. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/remote_guidance.py +0 -0
  228. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/resilient_client.py +0 -0
  229. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/service.py +0 -0
  230. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/session_operations.py +0 -0
  231. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/session_types.py +0 -0
  232. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/sessions.py +0 -0
  233. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/subset_selection.py +0 -0
  234. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/token_manager.py +0 -0
  235. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/trial_operations.py +0 -0
  236. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/trial_tracker.py +0 -0
  237. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/url_security.py +0 -0
  238. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/cloud/validators.py +0 -0
  239. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/__init__.py +0 -0
  240. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/api_keys.py +0 -0
  241. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/ast_transformer.py +0 -0
  242. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/backend_config.py +0 -0
  243. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/context.py +0 -0
  244. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/feature_flags.py +0 -0
  245. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/models.yaml +0 -0
  246. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/parallel.py +0 -0
  247. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/runtime_injector.py +0 -0
  248. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/seamless_injection.py +0 -0
  249. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/tenant.py +0 -0
  250. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config/types.py +0 -0
  251. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/__init__.py +0 -0
  252. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/agent_classifier.py +0 -0
  253. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/apply.py +0 -0
  254. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
  255. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
  256. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
  257. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
  258. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/catalog.py +0 -0
  259. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/llm_backend.py +0 -0
  260. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/pipeline.py +0 -0
  261. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/presets/__init__.py +0 -0
  262. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
  263. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
  264. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/presets/constraint_templates.py +0 -0
  265. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/presets/range_presets.py +0 -0
  266. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/recommendations.py +0 -0
  267. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/subsystems/__init__.py +0 -0
  268. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/subsystems/benchmarks.py +0 -0
  269. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/subsystems/objectives.py +0 -0
  270. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
  271. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
  272. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
  273. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
  274. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/config_generator/types.py +0 -0
  275. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/__init__.py +0 -0
  276. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/backend_session_manager.py +0 -0
  277. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/best_config_runtime.py +0 -0
  278. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/cache_policy.py +0 -0
  279. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/ci_approval.py +0 -0
  280. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/config_state_manager.py +0 -0
  281. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/constants.py +0 -0
  282. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/cost_estimator.py +0 -0
  283. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/evaluator_wrapper.py +0 -0
  284. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/exception_handler.py +0 -0
  285. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/execution_policy_runtime.py +0 -0
  286. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/license.py +0 -0
  287. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/logger_facade.py +0 -0
  288. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/meta_types.py +0 -0
  289. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/metadata_helpers.py +0 -0
  290. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/metric_registry.py +0 -0
  291. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/metrics_aggregator.py +0 -0
  292. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/namespace.py +0 -0
  293. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/objectives.py +0 -0
  294. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/optimization_pipeline.py +0 -0
  295. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/optimized_function.py +0 -0
  296. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/orchestrator_helpers.py +0 -0
  297. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/parallel_execution_manager.py +0 -0
  298. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/progress_manager.py +0 -0
  299. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/sample_budget.py +0 -0
  300. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/samplers/__init__.py +0 -0
  301. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/samplers/random_sampler.py +0 -0
  302. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/session_context.py +0 -0
  303. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/session_types.py +0 -0
  304. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/stat_significance.py +0 -0
  305. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/stop_condition_manager.py +0 -0
  306. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/stop_conditions.py +0 -0
  307. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/trace_env.py +0 -0
  308. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/tracing.py +0 -0
  309. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/trial_context.py +0 -0
  310. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/trial_result_factory.py +0 -0
  311. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/types.py +0 -0
  312. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/types_ext.py +0 -0
  313. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/utils.py +0 -0
  314. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core/workflow_trace_manager.py +0 -0
  315. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core_metrics/__init__.py +0 -0
  316. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core_metrics/client.py +0 -0
  317. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core_metrics/config.py +0 -0
  318. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/core_metrics/dtos.py +0 -0
  319. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/effectuation/__init__.py +0 -0
  320. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/effectuation/contracts.py +0 -0
  321. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/effectuation/strategies/__init__.py +0 -0
  322. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/effectuation/strategies/framework_param.py +0 -0
  323. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/effectuation/strategies/self_consistency.py +0 -0
  324. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluation/__init__.py +0 -0
  325. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluation/client.py +0 -0
  326. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluation/config.py +0 -0
  327. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluation/dtos.py +0 -0
  328. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/__init__.py +0 -0
  329. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
  330. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
  331. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/catalog_loader.py +0 -0
  332. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/dataset_registry.py +0 -0
  333. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/hybrid_api.py +0 -0
  334. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/metrics_tracker.py +0 -0
  335. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/evaluators/recommendations.py +0 -0
  336. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/__init__.py +0 -0
  337. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/__init__.py +0 -0
  338. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/_bootstrap.py +0 -0
  339. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/_demo.py +0 -0
  340. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/anthropic.py +0 -0
  341. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/aws.py +0 -0
  342. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/azure.py +0 -0
  343. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/gcp.py +0 -0
  344. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/gemini.py +0 -0
  345. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/groq.py +0 -0
  346. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/litellm_any.py +0 -0
  347. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/manifest.json +0 -0
  348. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/openai.py +0 -0
  349. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/openrouter.py +0 -0
  350. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/providers/qa_samples.jsonl +0 -0
  351. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/quickstart/__init__.py +0 -0
  352. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/quickstart/__main__.py +0 -0
  353. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/quickstart/_env.py +0 -0
  354. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
  355. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/examples/tutorial_bootstrap.py +0 -0
  356. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/__init__.py +0 -0
  357. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/backend_provider.py +0 -0
  358. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/example_synth.py +0 -0
  359. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/llm_provider.py +0 -0
  360. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/loop.py +0 -0
  361. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/models.py +0 -0
  362. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/options.py +0 -0
  363. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/prompt_rewriter.py +0 -0
  364. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/__init__.py +0 -0
  365. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/artifacts.py +0 -0
  366. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/buffer.py +0 -0
  367. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/document.py +0 -0
  368. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/edits.py +0 -0
  369. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/prompts.py +0 -0
  370. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/reflection.py +0 -0
  371. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/schedule.py +0 -0
  372. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/trainer.py +0 -0
  373. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/skill_train/trainer_result.py +0 -0
  374. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/generation/validators.py +0 -0
  375. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/guaranteed_modes.py +0 -0
  376. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hooks/__init__.py +0 -0
  377. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hooks/config.py +0 -0
  378. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hooks/installer.py +0 -0
  379. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hooks/validator.py +0 -0
  380. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hybrid/__init__.py +0 -0
  381. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hybrid/discovery.py +0 -0
  382. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hybrid/http_transport.py +0 -0
  383. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hybrid/lifecycle.py +0 -0
  384. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hybrid/mcp_transport.py +0 -0
  385. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hybrid/protocol.py +0 -0
  386. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/hybrid/transport.py +0 -0
  387. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/__init__.py +0 -0
  388. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/activation.py +0 -0
  389. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/base.py +0 -0
  390. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/base_plugin.py +0 -0
  391. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/batch_wrapper.py +0 -0
  392. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/bedrock_client.py +0 -0
  393. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/config.py +0 -0
  394. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/dspy_adapter.py +0 -0
  395. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/langchain/__init__.py +0 -0
  396. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/langfuse/__init__.py +0 -0
  397. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/langfuse/callback.py +0 -0
  398. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/langfuse/client.py +0 -0
  399. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/langfuse/tracker.py +0 -0
  400. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/__init__.py +0 -0
  401. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/anthropic_plugin.py +0 -0
  402. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
  403. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/base_llm_plugin.py +0 -0
  404. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/bedrock_plugin.py +0 -0
  405. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/cohere_plugin.py +0 -0
  406. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/gemini_plugin.py +0 -0
  407. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/huggingface_plugin.py +0 -0
  408. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/langchain/__init__.py +0 -0
  409. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/langchain/base.py +0 -0
  410. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/langchain_plugin.py +0 -0
  411. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/litellm_plugin.py +0 -0
  412. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
  413. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/mistral_plugin.py +0 -0
  414. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/openai.py +0 -0
  415. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/llms/openai_plugin.py +0 -0
  416. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/mappings.py +0 -0
  417. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/model_discovery/__init__.py +0 -0
  418. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
  419. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
  420. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/model_discovery/base.py +0 -0
  421. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/model_discovery/cache.py +0 -0
  422. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
  423. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
  424. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
  425. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/model_discovery/registry.py +0 -0
  426. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/observability/__init__.py +0 -0
  427. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/observability/mlflow.py +0 -0
  428. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/observability/wandb.py +0 -0
  429. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/observability/workflow_traces.py +0 -0
  430. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/plugin_registry.py +0 -0
  431. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/providers.py +0 -0
  432. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/pydantic_ai/__init__.py +0 -0
  433. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/pydantic_ai/_types.py +0 -0
  434. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/pydantic_ai/handler.py +0 -0
  435. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/pydantic_ai/plugin.py +0 -0
  436. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/utils/__init__.py +0 -0
  437. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/utils/discovery.py +0 -0
  438. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/utils/message_coercion.py +0 -0
  439. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/utils/mock_adapter.py +0 -0
  440. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/utils/parameter_normalizer.py +0 -0
  441. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/utils/response_wrapper.py +0 -0
  442. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/utils/validation.py +0 -0
  443. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/utils/version_compat.py +0 -0
  444. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/vector_stores/__init__.py +0 -0
  445. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/vector_stores/base.py +0 -0
  446. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
  447. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
  448. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
  449. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/integrations/wrappers.py +0 -0
  450. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/invokers/__init__.py +0 -0
  451. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/invokers/base.py +0 -0
  452. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/invokers/batch.py +0 -0
  453. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/invokers/local.py +0 -0
  454. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/invokers/streaming.py +0 -0
  455. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/__init__.py +0 -0
  456. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/adapters.py +0 -0
  457. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/bindings.py +0 -0
  458. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/canonical.py +0 -0
  459. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/cascade.py +0 -0
  460. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/certificates.py +0 -0
  461. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/composites.py +0 -0
  462. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/kinds.py +0 -0
  463. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/patterns.py +0 -0
  464. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/resolution.py +0 -0
  465. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/resolver.py +0 -0
  466. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/runtime.py +0 -0
  467. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/signals.py +0 -0
  468. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/knobs/telemetry.py +0 -0
  469. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/mcp/__init__.py +0 -0
  470. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/mcp/server.py +0 -0
  471. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/mcp/tools.py +0 -0
  472. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/metrics/__init__.py +0 -0
  473. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/metrics/agent_metrics.py +0 -0
  474. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/metrics/content_features.py +0 -0
  475. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/metrics/deepeval_metrics.py +0 -0
  476. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/metrics/ragas_metrics.py +0 -0
  477. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/metrics/registry.py +0 -0
  478. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/observability/__init__.py +0 -0
  479. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/observability/agent_spans.py +0 -0
  480. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/observability/client.py +0 -0
  481. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/observability/config.py +0 -0
  482. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/observability/decorators.py +0 -0
  483. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/observability/dtos.py +0 -0
  484. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/__init__.py +0 -0
  485. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/cloud_optimizer.py +0 -0
  486. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/interactive_optimizer.py +0 -0
  487. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/registry.py +0 -0
  488. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/remote.py +0 -0
  489. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/remote_services.py +0 -0
  490. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/optimizers/results.py +0 -0
  491. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/playbook/__init__.py +0 -0
  492. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/playbook/loader.py +0 -0
  493. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/playbook/model.py +0 -0
  494. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/playbook/scaffold.py +0 -0
  495. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
  496. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/playbook/staleness.py +0 -0
  497. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/playbook/validator.py +0 -0
  498. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/plugins/__init__.py +0 -0
  499. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/plugins/registry.py +0 -0
  500. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/projects/__init__.py +0 -0
  501. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/projects/client.py +0 -0
  502. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/projects/config.py +0 -0
  503. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/projects/dtos.py +0 -0
  504. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/prompts/__init__.py +0 -0
  505. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/prompts/client.py +0 -0
  506. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/prompts/config.py +0 -0
  507. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/prompts/dtos.py +0 -0
  508. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/providers/__init__.py +0 -0
  509. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/providers/validation.py +0 -0
  510. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/py.typed +0 -0
  511. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/reporting/__init__.py +0 -0
  512. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/reporting/example_map.py +0 -0
  513. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/__init__.py +0 -0
  514. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/audit.py +0 -0
  515. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/auth/__init__.py +0 -0
  516. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/auth/helpers.py +0 -0
  517. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/auth/mfa.py +0 -0
  518. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/auth/models.py +0 -0
  519. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/auth/oidc.py +0 -0
  520. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/auth/saml.py +0 -0
  521. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/auth/sms.py +0 -0
  522. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/auth/totp.py +0 -0
  523. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/config.py +0 -0
  524. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/credentials.py +0 -0
  525. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/crypto_utils.py +0 -0
  526. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/deployment.py +0 -0
  527. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/encryption.py +0 -0
  528. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/enterprise.py +0 -0
  529. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/headers.py +0 -0
  530. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/jwt_validator.py +0 -0
  531. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/rate_limiter.py +0 -0
  532. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/redaction.py +0 -0
  533. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/session_manager.py +0 -0
  534. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/security/tenant.py +0 -0
  535. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
  536. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
  537. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
  538. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
  539. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
  540. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
  541. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-debugging/SKILL.md +0 -0
  542. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
  543. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
  544. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
  545. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-decorator-setup/SKILL.md +0 -0
  546. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
  547. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
  548. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
  549. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-integrations/SKILL.md +0 -0
  550. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
  551. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
  552. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
  553. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
  554. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
  555. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
  556. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-run-optimization/SKILL.md +0 -0
  557. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
  558. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
  559. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
  560. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/storage/__init__.py +0 -0
  561. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/storage/local_storage.py +0 -0
  562. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/testing/__init__.py +0 -0
  563. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/traigent_client.py +0 -0
  564. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/traigent_integration.py +0 -0
  565. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tuned_variables/__init__.py +0 -0
  566. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tuned_variables/dataflow_strategy.py +0 -0
  567. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tuned_variables/detection_strategies.py +0 -0
  568. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tuned_variables/detection_types.py +0 -0
  569. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tuned_variables/detector.py +0 -0
  570. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tuned_variables/discovery.py +0 -0
  571. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tuned_variables/observation.py +0 -0
  572. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tuned_variables/py.typed +0 -0
  573. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/__init__.py +0 -0
  574. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/__main__.py +0 -0
  575. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/models.py +0 -0
  576. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/objectives.py +0 -0
  577. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/options.py +0 -0
  578. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/promotion_gate.py +0 -0
  579. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/registry.py +0 -0
  580. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/spec_loader.py +0 -0
  581. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/spec_validator.py +0 -0
  582. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/tvl/statistics.py +0 -0
  583. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/__init__.py +0 -0
  584. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/batch_optimizer_utils.py +0 -0
  585. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/batch_processing.py +0 -0
  586. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/callbacks.py +0 -0
  587. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/console.py +0 -0
  588. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/constraints.py +0 -0
  589. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/diagnostics.py +0 -0
  590. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/env_config.py +0 -0
  591. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/error_handler.py +0 -0
  592. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/example_id.py +0 -0
  593. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/exceptions.py +0 -0
  594. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/file_versioning.py +0 -0
  595. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/function_identity.py +0 -0
  596. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/hashing.py +0 -0
  597. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/importance.py +0 -0
  598. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/incentives.py +0 -0
  599. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/insights.py +0 -0
  600. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/langchain_interceptor.py +0 -0
  601. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/litellm_interceptor.py +0 -0
  602. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/llm_response_parsing.py +0 -0
  603. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/local_analytics.py +0 -0
  604. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/logging.py +0 -0
  605. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/multi_objective.py +0 -0
  606. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/numpy_compat.py +0 -0
  607. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/optimization_analyzer.py +0 -0
  608. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/persistence.py +0 -0
  609. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/reproducibility.py +0 -0
  610. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/results_table.py +0 -0
  611. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/retry.py +0 -0
  612. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/secure_path.py +0 -0
  613. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/url_security.py +0 -0
  614. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/user_prompts.py +0 -0
  615. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/utils/validation.py +0 -0
  616. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/visualization/__init__.py +0 -0
  617. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/visualization/plots.py +0 -0
  618. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/wrapper/__init__.py +0 -0
  619. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/wrapper/errors.py +0 -0
  620. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/wrapper/server.py +0 -0
  621. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent/wrapper/service.py +0 -0
  622. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent.egg-info/dependency_links.txt +0 -0
  623. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent.egg-info/requires.txt +0 -0
  624. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent.egg-info/top_level.txt +0 -0
  625. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent_validation/__init__.py +0 -0
  626. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent_validation/base.py +0 -0
  627. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent_validation/plugins.py +0 -0
  628. {traigent-0.17.0 → traigent-0.18.0.dev0}/traigent_validation/py.typed +0 -0
@@ -6,8 +6,6 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
- ## [0.17.0] - 2026-06-23
10
-
11
9
  ### Added
12
10
  - Added a no-content-egress cloud-brain canary test that captures serialized
13
11
  session, next-trial, metrics, and finalize payloads and asserts dataset
@@ -26,29 +24,6 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
26
24
  var (`OPTUNA_ROLLOUT`, renamed during the managed-routing migration).
27
25
  - Smart algorithms (`bayesian` and the Optuna family) now route to the Traigent
28
26
  cloud; the local SDK supports `grid` and `random` only.
29
- - Removed 7 production-dead internal modules (`config_builder`,
30
- `llm_processor`, `refactoring_utils`, `service_registry`, `event_manager`,
31
- `langchain/discovery`, empty `telemetry` package) and their tests.
32
-
33
- ### Fixed
34
- - Per-config `cost` metric is now wired to the authoritative `total_cost`, so
35
- the `minimize cost` objective is no longer inert and the portal no longer
36
- shows `$0` per config on a real paid run; a model unpriced at runtime is
37
- surfaced on the result (and fails closed under
38
- `TRAIGENT_STRICT_COST_ACCOUNTING`).
39
- - `traigent sync` / `traigent local sync` no longer fail every completed
40
- session with `409 EXPERIMENT_HAS_NO_RUNS`; sync now creates the experiment
41
- `PENDING`, uploads runs, finalizes to `COMPLETED`, resumes idempotently, and
42
- returns a non-zero exit on failure.
43
- - Runtime `optimize(algorithm="grid"|"random")` with a portal key now stays
44
- local and exhaustive instead of routing to the cloud sampler.
45
- - `traigent quickstart` runs on a bare install (uses base `litellm`, not the
46
- `integrations` LangChain extra) and fails closed when no trial succeeds.
47
- - `ObjectiveDefinition` fails closed on unimplemented normalization strategies
48
- (`z_score`/`robust`) instead of silently behaving like `min_max`.
49
-
50
- ### Dependencies
51
- - Bumped `langsmith` 0.8.3 → 0.8.18 and `pydantic-settings` 2.14.1 → 2.14.2.
52
27
 
53
28
  ## [0.14.1] - 2026-06-19
54
29
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: traigent
3
- Version: 0.17.0
3
+ Version: 0.18.0.dev0
4
4
  Summary: Enterprise-grade LLM optimization platform with advanced analytics and AI-powered insights
5
5
  Author-email: Traigent Team <opensource@traigent.ai>
6
6
  License-Expression: AGPL-3.0-only OR LicenseRef-Traigent-Commercial
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "traigent"
7
- version = "0.17.0"
7
+ version = "0.18.0.dev0"
8
8
  authors = [
9
9
  {name = "Traigent Team", email = "opensource@traigent.ai"},
10
10
  ]
@@ -239,6 +239,7 @@ Changelog = "https://github.com/Traigent/Traigent/blob/main/CHANGELOG.md"
239
239
 
240
240
  [project.scripts]
241
241
  traigent = "traigent.cli.main:cli"
242
+ traigent-analytics-mcp = "traigent.analytics_mcp.server:main"
242
243
 
243
244
  [project.entry-points."traigent.validators"]
244
245
  python = "traigent_validation.validators:PythonConstraintValidator"
@@ -9,6 +9,7 @@ from abc import ABC, abstractmethod
9
9
  from typing import Any, cast
10
10
 
11
11
  from traigent.config.types import ExecutionMode
12
+ from traigent.evaluators.base import _accuracy_values_match
12
13
 
13
14
  logger = logging.getLogger(__name__)
14
15
 
@@ -192,7 +193,7 @@ class LocalExecutionAdapter(ExecutionAdapter):
192
193
  # Exact / case-insensitive match — must stay aligned with
193
194
  # LocalEvaluator and the public docs (the tracked fix). Diverging
194
195
  # here was how "Paris" vs "paris" silently scored 0.0.
195
- is_correct = str(output).strip().lower() == str(expected).strip().lower()
196
+ is_correct = _accuracy_values_match(output, expected)
196
197
  result["correct"] = is_correct
197
198
 
198
199
  elif eval_type == "contains":
@@ -245,8 +246,21 @@ class LocalExecutionAdapter(ExecutionAdapter):
245
246
 
246
247
  else:
247
248
  # Unknown evaluation type
248
- result["correct"] = None
249
+ result["correct"] = False
250
+ result["success"] = False
249
251
  result["unknown_eval_type"] = eval_type
252
+ result["error"] = (
253
+ f"Unsupported evaluation_type '{eval_type}'. "
254
+ "Use exact_match, contains, numeric, semantic with a custom evaluator, "
255
+ "or provide a scoring_function."
256
+ )
257
+ logger.error(
258
+ "Unsupported evaluation_type %r for LocalExecutionAdapter; marking "
259
+ "example as failed. trial_id=%s example_index=%s",
260
+ eval_type,
261
+ trial_id or "<unknown>",
262
+ example_index if example_index is not None else "<unknown>",
263
+ )
250
264
 
251
265
  return result
252
266
 
@@ -0,0 +1,349 @@
1
+ """Local chart rendering for backend analytics payloads.
2
+
3
+ This module turns a canonical, backend-produced analytics payload (a
4
+ ``run_pareto`` or ``run_correlations`` document, per the frozen v0 contracts)
5
+ into an image file on disk and returns the path.
6
+
7
+ It is a **pure presentation layer**: it renders pixels *from the numbers the
8
+ backend already computed*. It never recomputes a frontier, a correlation, a
9
+ p-value, or any other analytic — doing so would risk the chart disagreeing with
10
+ the backend's own report. If a value is missing from the payload, the point is
11
+ skipped, not invented.
12
+
13
+ ``matplotlib`` is imported lazily inside :func:`render_chart` so it stays an
14
+ optional dependency (``pip install 'traigent[analytics]'`` or
15
+ ``traigent[visualization]``) and the base SDK install is not bloated.
16
+ """
17
+
18
+ # Traceability: CONC-Layer-Infra FUNC-ANALYTICS
19
+
20
+ from __future__ import annotations
21
+
22
+ from pathlib import Path
23
+ from typing import Any, Literal
24
+
25
+ from traigent.utils.logging import get_logger
26
+
27
+ logger = get_logger(__name__)
28
+
29
+ ChartKind = Literal["run_pareto", "run_correlations"]
30
+
31
+ _SUPPORTED_KINDS: frozenset[str] = frozenset({"run_pareto", "run_correlations"})
32
+ _DEFAULT_FORMAT = "png"
33
+ _SUPPORTED_FORMATS: frozenset[str] = frozenset({"png", "svg"})
34
+
35
+ _MATPLOTLIB_INSTALL_MESSAGE = (
36
+ "Chart rendering requires matplotlib. "
37
+ "Install it with: pip install 'traigent[analytics]'"
38
+ )
39
+
40
+
41
+ class ChartRenderError(ValueError):
42
+ """Raised when a payload cannot be rendered into a chart."""
43
+
44
+
45
+ def _import_pyplot() -> Any:
46
+ """Import matplotlib's pyplot lazily with a non-interactive backend."""
47
+ try:
48
+ import matplotlib
49
+ except ImportError as exc: # pragma: no cover - covered by import guard test
50
+ raise ChartRenderError(_MATPLOTLIB_INSTALL_MESSAGE) from exc
51
+
52
+ # Force a headless backend so rendering works in agent/CI environments with
53
+ # no display. Set before pyplot is imported.
54
+ matplotlib.use("Agg", force=True)
55
+ import matplotlib.pyplot as plt
56
+
57
+ return plt
58
+
59
+
60
+ def _resolve_output_path(
61
+ output_path: str | Path | None,
62
+ *,
63
+ kind: str,
64
+ run_id: str | None,
65
+ fmt: str,
66
+ ) -> Path:
67
+ if output_path is not None:
68
+ path = Path(output_path).expanduser()
69
+ if path.suffix.lower().lstrip(".") not in _SUPPORTED_FORMATS:
70
+ raise ChartRenderError(
71
+ f"output_path must end in one of {sorted(_SUPPORTED_FORMATS)}: {path}"
72
+ )
73
+ return path
74
+
75
+ safe_run = "".join(
76
+ ch if ch.isalnum() or ch in {"-", "_"} else "_" for ch in (run_id or "run")
77
+ )
78
+ return Path.cwd() / f"{kind}.{safe_run}.{fmt}"
79
+
80
+
81
+ def _as_float(value: Any) -> float | None:
82
+ """Best-effort numeric coercion; returns None when not a finite number."""
83
+ if isinstance(value, bool):
84
+ return None
85
+ if isinstance(value, (int, float)):
86
+ result = float(value)
87
+ elif isinstance(value, str):
88
+ try:
89
+ result = float(value)
90
+ except ValueError:
91
+ return None
92
+ else:
93
+ return None
94
+ # Reject NaN/inf so matplotlib never plots a meaningless point.
95
+ if result != result or result in (float("inf"), float("-inf")):
96
+ return None
97
+ return result
98
+
99
+
100
+ def _require_mapping(payload: Any) -> dict[str, Any]:
101
+ if not isinstance(payload, dict):
102
+ raise ChartRenderError("payload must be a mapping (decoded JSON object).")
103
+ return payload
104
+
105
+
106
+ def _resolve_axis_metric_key(measures: Any, axis: str) -> str:
107
+ """Resolve a canonical axis name to the payload's actual metric key."""
108
+ if not isinstance(measures, dict):
109
+ return axis
110
+ resolved = measures.get(axis)
111
+ if isinstance(resolved, str) and resolved:
112
+ return resolved
113
+ return axis
114
+
115
+
116
+ def _render_pareto(plt: Any, payload: dict[str, Any]) -> Any:
117
+ """Plot a cost/quality scatter from a ``run_pareto`` payload.
118
+
119
+ Frontier points are emphasized (the knee is annotated); dominated points are
120
+ drawn faded. Axes are read straight from each config's ``metrics`` — nothing
121
+ is recomputed.
122
+ """
123
+ measures = payload.get("measures") or {}
124
+ quality_key = _resolve_axis_metric_key(measures, "quality")
125
+ cost_key = _resolve_axis_metric_key(measures, "cost")
126
+
127
+ fig, ax = plt.subplots(figsize=(7, 5))
128
+
129
+ frontier = payload.get("frontier") or []
130
+ dominated = payload.get("dominated_points") or payload.get("dominated") or []
131
+
132
+ plotted_any = False
133
+ knee_xy: tuple[float, float] | None = None
134
+
135
+ front_x: list[float] = []
136
+ front_y: list[float] = []
137
+ for point in frontier:
138
+ if not isinstance(point, dict):
139
+ continue
140
+ metrics = point.get("metrics") or {}
141
+ cost = _as_float(metrics.get(cost_key))
142
+ quality = _as_float(metrics.get(quality_key))
143
+ if cost is None or quality is None:
144
+ continue
145
+ front_x.append(cost)
146
+ front_y.append(quality)
147
+ plotted_any = True
148
+ if point.get("is_knee"):
149
+ knee_xy = (cost, quality)
150
+ label = point.get("config_id")
151
+ if label:
152
+ ax.annotate(
153
+ str(label),
154
+ (cost, quality),
155
+ textcoords="offset points",
156
+ xytext=(5, 5),
157
+ fontsize=7,
158
+ )
159
+
160
+ dom_x: list[float] = []
161
+ dom_y: list[float] = []
162
+ for point in dominated:
163
+ if not isinstance(point, dict):
164
+ continue
165
+ metrics = point.get("metrics") or {}
166
+ cost = _as_float(metrics.get(cost_key))
167
+ quality = _as_float(metrics.get(quality_key))
168
+ if cost is None or quality is None:
169
+ continue
170
+ dom_x.append(cost)
171
+ dom_y.append(quality)
172
+ plotted_any = True
173
+
174
+ if dom_x:
175
+ ax.scatter(dom_x, dom_y, c="#bbbbbb", marker="x", label="dominated", zorder=2)
176
+ if front_x:
177
+ # Sort frontier by cost so the connecting line reads left-to-right.
178
+ order = sorted(range(len(front_x)), key=lambda i: front_x[i])
179
+ sx = [front_x[i] for i in order]
180
+ sy = [front_y[i] for i in order]
181
+ ax.plot(sx, sy, color="#1f77b4", linewidth=1.0, alpha=0.6, zorder=3)
182
+ ax.scatter(
183
+ front_x, front_y, c="#1f77b4", marker="o", label="frontier", zorder=4
184
+ )
185
+ if knee_xy is not None:
186
+ ax.scatter(
187
+ [knee_xy[0]],
188
+ [knee_xy[1]],
189
+ facecolors="none",
190
+ edgecolors="#d62728",
191
+ s=180,
192
+ linewidths=2,
193
+ label="knee",
194
+ zorder=5,
195
+ )
196
+
197
+ if not plotted_any:
198
+ raise ChartRenderError(
199
+ "run_pareto payload had no plottable points "
200
+ f"(need frontier/dominated entries with metrics.{cost_key} "
201
+ f"and metrics.{quality_key})."
202
+ )
203
+
204
+ quality_meta = measures.get(quality_key) if isinstance(measures, dict) else None
205
+ cost_meta = measures.get(cost_key) if isinstance(measures, dict) else None
206
+ ax.set_xlabel(_axis_label("cost", cost_meta))
207
+ ax.set_ylabel(_axis_label("quality", quality_meta))
208
+ run_id = payload.get("run_id") or "run"
209
+ shape = payload.get("shape")
210
+ title = f"Pareto frontier — {run_id}"
211
+ if shape:
212
+ title = f"{title} ({shape})"
213
+ ax.set_title(title)
214
+ ax.legend(loc="best", fontsize=8)
215
+ ax.grid(True, linestyle=":", alpha=0.4)
216
+ fig.tight_layout()
217
+ return fig
218
+
219
+
220
+ def _axis_label(default: str, meta: Any) -> str:
221
+ if isinstance(meta, dict):
222
+ name = meta.get("label") or meta.get("name")
223
+ unit = meta.get("unit")
224
+ if name and unit:
225
+ return f"{name} ({unit})"
226
+ if name:
227
+ return str(name)
228
+ return default
229
+
230
+
231
+ def _render_correlations(plt: Any, payload: dict[str, Any]) -> Any:
232
+ """Plot a bar chart of measure correlations from a ``run_correlations`` payload.
233
+
234
+ Each bar is one ``measure_correlations`` entry's ``r`` value. Values are read
235
+ directly from the payload; nothing is recomputed.
236
+ """
237
+ correlations = payload.get("measure_correlations") or []
238
+ labels: list[str] = []
239
+ values: list[float] = []
240
+ for entry in correlations:
241
+ if not isinstance(entry, dict):
242
+ continue
243
+ r = _as_float(entry.get("r"))
244
+ if r is None:
245
+ continue
246
+ x = entry.get("x")
247
+ y = entry.get("y")
248
+ labels.append(f"{x}↔{y}" if x and y else str(entry.get("strength", "?")))
249
+ values.append(r)
250
+
251
+ if not values:
252
+ raise ChartRenderError(
253
+ "run_correlations payload had no plottable measure_correlations "
254
+ "entries with a numeric 'r'."
255
+ )
256
+
257
+ fig, ax = plt.subplots(figsize=(7, 5))
258
+ colors = ["#2ca02c" if v >= 0 else "#d62728" for v in values]
259
+ positions = list(range(len(values)))
260
+ ax.bar(positions, values, color=colors)
261
+ ax.set_xticks(positions)
262
+ ax.set_xticklabels(labels, rotation=30, ha="right", fontsize=8)
263
+ ax.set_ylabel("Pearson r")
264
+ ax.set_ylim(-1.05, 1.05)
265
+ ax.axhline(0.0, color="#333333", linewidth=0.8)
266
+ method = payload.get("method")
267
+ run_id = payload.get("run_id") or "run"
268
+ sample = payload.get("sample_size")
269
+ title = f"Measure correlations — {run_id}"
270
+ if method or sample is not None:
271
+ suffix = ", ".join(
272
+ part
273
+ for part in (
274
+ str(method) if method else None,
275
+ f"n={sample}" if sample is not None else None,
276
+ )
277
+ if part
278
+ )
279
+ title = f"{title} ({suffix})"
280
+ ax.set_title(title)
281
+ ax.grid(True, axis="y", linestyle=":", alpha=0.4)
282
+ fig.tight_layout()
283
+ return fig
284
+
285
+
286
+ def render_chart(
287
+ payload: dict[str, Any],
288
+ kind: ChartKind,
289
+ output_path: str | Path | None = None,
290
+ *,
291
+ fmt: str | None = None,
292
+ ) -> str:
293
+ """Render a canonical analytics payload to an image file and return its path.
294
+
295
+ Args:
296
+ payload: A backend-produced ``run_pareto`` or ``run_correlations``
297
+ document (the frozen v0 contract). Values are plotted as-is; this
298
+ function never recomputes analytics.
299
+ kind: ``"run_pareto"`` or ``"run_correlations"``.
300
+ output_path: Destination file. When ``None`` a name is derived from the
301
+ kind and ``run_id`` and written under the current working directory.
302
+ The extension (``.png`` / ``.svg``) determines the format.
303
+ fmt: Optional explicit format (``"png"`` or ``"svg"``) used only when
304
+ ``output_path`` is ``None``.
305
+
306
+ Returns:
307
+ The absolute path to the written image, as a string.
308
+
309
+ Raises:
310
+ ChartRenderError: If ``kind`` is unsupported, ``matplotlib`` is missing,
311
+ the format is unsupported, or the payload has no plottable data.
312
+ """
313
+ if kind not in _SUPPORTED_KINDS:
314
+ raise ChartRenderError(
315
+ f"Unsupported chart kind {kind!r}. "
316
+ f"Supported kinds: {sorted(_SUPPORTED_KINDS)}."
317
+ )
318
+ payload = _require_mapping(payload)
319
+
320
+ chosen_fmt = (fmt or _DEFAULT_FORMAT).lower().lstrip(".")
321
+ if chosen_fmt not in _SUPPORTED_FORMATS:
322
+ raise ChartRenderError(
323
+ f"Unsupported format {chosen_fmt!r}. "
324
+ f"Supported formats: {sorted(_SUPPORTED_FORMATS)}."
325
+ )
326
+
327
+ resolved = _resolve_output_path(
328
+ output_path,
329
+ kind=kind,
330
+ run_id=(
331
+ payload.get("run_id") if isinstance(payload.get("run_id"), str) else None
332
+ ),
333
+ fmt=chosen_fmt,
334
+ )
335
+ resolved.parent.mkdir(parents=True, exist_ok=True)
336
+
337
+ plt = _import_pyplot()
338
+ if kind == "run_pareto":
339
+ fig = _render_pareto(plt, payload)
340
+ else:
341
+ fig = _render_correlations(plt, payload)
342
+
343
+ try:
344
+ fig.savefig(str(resolved))
345
+ finally:
346
+ plt.close(fig)
347
+
348
+ logger.debug("Rendered %s chart to %s", kind, resolved)
349
+ return str(resolved.resolve())
@@ -0,0 +1,12 @@
1
+ """Agent-facing Traigent analytics MCP (cloud-read optimization analytics).
2
+
3
+ A separate MCP server from :mod:`traigent.mcp` (the local-results server): this
4
+ one is an authenticated thin client over the backend analytics endpoints plus a
5
+ local chart-render helper. Console entry point: ``traigent-analytics-mcp``.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ from traigent.analytics_mcp.tools import ANALYTICS_TOOL_NAMES
11
+
12
+ __all__ = ["ANALYTICS_TOOL_NAMES"]