traigent 0.18.1.dev8__tar.gz → 0.18.1.dev9__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 (630) hide show
  1. {traigent-0.18.1.dev8/traigent.egg-info → traigent-0.18.1.dev9}/PKG-INFO +1 -1
  2. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/pyproject.toml +1 -1
  3. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/orchestrator.py +5 -0
  4. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/base.py +177 -8
  5. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/interactive_optimizer.py +64 -33
  6. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9/traigent.egg-info}/PKG-INFO +1 -1
  7. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/CHANGELOG.md +0 -0
  8. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/COMMERCIAL-LICENSE.md +0 -0
  9. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/CONTRIBUTING.md +0 -0
  10. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/CONTRIBUTOR-LICENSING.md +0 -0
  11. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/DISCLAIMER.md +0 -0
  12. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/LICENSE +0 -0
  13. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/MANIFEST.in +0 -0
  14. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/NOTICE +0 -0
  15. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/README.md +0 -0
  16. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/SECURITY.md +0 -0
  17. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/LOCAL_CI_GATE.md +0 -0
  18. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/README.md +0 -0
  19. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/SYNC_MAP.md +0 -0
  20. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/agent-skill.md +0 -0
  21. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/api-reference/complete-function-specification.md +0 -0
  22. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/api-reference/decorator-reference.md +0 -0
  23. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/api-reference/enterprise-beta-api.md +0 -0
  24. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/api-reference/interactive_optimizer.md +0 -0
  25. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/api-reference/telemetry.md +0 -0
  26. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/api-reference/thread-pool-examples.md +0 -0
  27. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/architecture/ARCHITECTURE.md +0 -0
  28. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/architecture/cost-architecture-validation.md +0 -0
  29. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/architecture/execution_mode_follow_up.md +0 -0
  30. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/architecture/integrations-inventory.md +0 -0
  31. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/architecture/plugin_architecture.md +0 -0
  32. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/architecture/project-structure.md +0 -0
  33. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/architecture/stop_conditions.md +0 -0
  34. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/concepts/composite-knob-ir.md +0 -0
  35. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/concepts/composite-knobs.md +0 -0
  36. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/concepts/guided-generation.md +0 -0
  37. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
  38. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
  39. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/contributing/CONTRIBUTING.md +0 -0
  40. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
  41. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/contributing/README.md +0 -0
  42. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/contributing/SECURITY.md +0 -0
  43. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/contributing/aikido_triage.md +0 -0
  44. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/contributing/code_review_instructions.md +0 -0
  45. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/contributing/test-quality-guide.md +0 -0
  46. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
  47. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/demos/README.md +0 -0
  48. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/examples/API_PATTERNS.md +0 -0
  49. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/examples/LEARNING_ROADMAP.md +0 -0
  50. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/examples/QUICK_REFERENCE.md +0 -0
  51. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/examples/README.md +0 -0
  52. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/examples/START_HERE.md +0 -0
  53. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/examples/TROUBLESHOOTING.md +0 -0
  54. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/fake-completion-tracking.md +0 -0
  55. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/feature_matrices/README.md +0 -0
  56. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/README.md +0 -0
  57. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/authentication.md +0 -0
  58. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/constraint-dsl.md +0 -0
  59. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/dataflow-detection.md +0 -0
  60. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/framework_override_enhanced_features.md +0 -0
  61. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/mcp-server.md +0 -0
  62. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/observability-spans.md +0 -0
  63. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/onboarding.md +0 -0
  64. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/prompt_management.md +0 -0
  65. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/recommendations.md +0 -0
  66. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/safety-gates.md +0 -0
  67. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/seamless_injection.md +0 -0
  68. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/strategy-presets.md +0 -0
  69. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/features/strict_metrics_nulls.md +0 -0
  70. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/getting-started/GETTING_STARTED.md +0 -0
  71. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/getting-started/README.md +0 -0
  72. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/getting-started/installation.md +0 -0
  73. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/getting-started/minimal-integration.md +0 -0
  74. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
  75. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/getting-started/testing.md +0 -0
  76. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
  77. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/guides/evaluation.md +0 -0
  78. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/guides/execution-mode-migration.md +0 -0
  79. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/guides/execution-modes.md +0 -0
  80. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/guides/js-bridge.md +0 -0
  81. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/guides/llm_plugin_migration_guide.md +0 -0
  82. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/guides/parallel-configuration.md +0 -0
  83. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/guides/secrets_management.md +0 -0
  84. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/hybrid-mode-api-contract.md +0 -0
  85. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/hybrid-mode-client-guide.md +0 -0
  86. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/operations/azure_openai.md +0 -0
  87. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/operations/bedrock.md +0 -0
  88. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/operations/google_gemini.md +0 -0
  89. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/security/trust_model.md +0 -0
  90. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
  91. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/traceability/concepts/composite-knob-ir.md +0 -0
  92. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/traceability/concepts/composite-knobs.md +0 -0
  93. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/traceability/concepts/guided-generation.md +0 -0
  94. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/traceability/schema.md +0 -0
  95. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/traceability/tagging_tracking.md +0 -0
  96. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/traceability/taxonomy_reference.md +0 -0
  97. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
  98. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/user-guide/README.md +0 -0
  99. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/user-guide/agent_optimization.md +0 -0
  100. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/user-guide/choosing_optimization_model.md +0 -0
  101. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/user-guide/configuration-spaces.md +0 -0
  102. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/user-guide/evaluation_guide.md +0 -0
  103. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/user-guide/injection_modes.md +0 -0
  104. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/user-guide/interactive_optimization.md +0 -0
  105. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/user-guide/smart_optimization.md +0 -0
  106. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/user-guide/tuned_variables.md +0 -0
  107. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/docs/walkthrough.md +0 -0
  108. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements-all.txt +0 -0
  109. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements-analytics.txt +0 -0
  110. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements-bayesian.txt +0 -0
  111. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements-chroma.txt +0 -0
  112. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements-dev.txt +0 -0
  113. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements-hybrid.txt +0 -0
  114. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements-integrations.txt +0 -0
  115. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements-security.txt +0 -0
  116. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements-test.txt +0 -0
  117. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/requirements/requirements.txt +0 -0
  118. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/setup.cfg +0 -0
  119. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/__init__.py +0 -0
  120. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/_version.py +0 -0
  121. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/adapters/execution_adapter.py +0 -0
  122. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/admin/__init__.py +0 -0
  123. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/admin/client.py +0 -0
  124. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/admin/config.py +0 -0
  125. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/admin/dtos.py +0 -0
  126. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/agents/__init__.py +0 -0
  127. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/agents/config_mapper.py +0 -0
  128. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/agents/executor.py +0 -0
  129. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/agents/platforms.py +0 -0
  130. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/agents/specification_generator.py +0 -0
  131. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/__init__.py +0 -0
  132. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/anomaly.py +0 -0
  133. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/cost_optimization.py +0 -0
  134. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/example_insights.py +0 -0
  135. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/intelligence.py +0 -0
  136. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/meta_learning.py +0 -0
  137. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/next_steps.py +0 -0
  138. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/optimization_plan.py +0 -0
  139. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/predictive.py +0 -0
  140. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/render.py +0 -0
  141. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics/scheduling.py +0 -0
  142. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics_mcp/__init__.py +0 -0
  143. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics_mcp/server.py +0 -0
  144. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/analytics_mcp/tools.py +0 -0
  145. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/__init__.py +0 -0
  146. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/agent_inference.py +0 -0
  147. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/config_builder.py +0 -0
  148. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/config_space.py +0 -0
  149. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/constraint_builders.py +0 -0
  150. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/constraints.py +0 -0
  151. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/decorators.py +0 -0
  152. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/functions.py +0 -0
  153. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/parameter_ranges.py +0 -0
  154. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/parameter_validator.py +0 -0
  155. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/safety.py +0 -0
  156. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/strategy_presets.py +0 -0
  157. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/types.py +0 -0
  158. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/api/validation_protocol.py +0 -0
  159. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/__init__.py +0 -0
  160. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/auth_commands.py +0 -0
  161. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/detect_tvars_command.py +0 -0
  162. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/function_discovery.py +0 -0
  163. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/generate_config_command.py +0 -0
  164. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/hooks_commands.py +0 -0
  165. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/local_commands.py +0 -0
  166. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/main.py +0 -0
  167. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/next_steps_command.py +0 -0
  168. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/onboard_commands.py +0 -0
  169. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/optimization_validator.py +0 -0
  170. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/plan_command.py +0 -0
  171. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/playbook_commands.py +0 -0
  172. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/sync_commands.py +0 -0
  173. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cli/validation_types.py +0 -0
  174. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/__init__.py +0 -0
  175. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/_aiohttp_compat.py +0 -0
  176. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/agent_dtos.py +0 -0
  177. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/analytics_auth.py +0 -0
  178. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/analytics_client.py +0 -0
  179. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/api_key_manager.py +0 -0
  180. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/api_operations.py +0 -0
  181. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/async_batch_transport.py +0 -0
  182. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/auth.py +0 -0
  183. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/backend_bridges.py +0 -0
  184. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/backend_client.py +0 -0
  185. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/backend_components.py +0 -0
  186. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/backend_synchronizer.py +0 -0
  187. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/benchmark_client.py +0 -0
  188. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/billing.py +0 -0
  189. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/client.py +0 -0
  190. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/cloud_operations.py +0 -0
  191. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/credential_manager.py +0 -0
  192. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/credential_resolver.py +0 -0
  193. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/dataset_converter.py +0 -0
  194. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/dtos.py +0 -0
  195. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/governance.py +0 -0
  196. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/integration_manager.py +0 -0
  197. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/models.py +0 -0
  198. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/optimizer_client.py +0 -0
  199. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/password_auth_handler.py +0 -0
  200. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/privacy_operations.py +0 -0
  201. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/production_mcp_client.py +0 -0
  202. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/remote_guidance.py +0 -0
  203. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/resilient_client.py +0 -0
  204. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/service.py +0 -0
  205. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/session_operations.py +0 -0
  206. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/session_types.py +0 -0
  207. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/sessions.py +0 -0
  208. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/smart_pruning.py +0 -0
  209. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/subset_selection.py +0 -0
  210. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/sync_manager.py +0 -0
  211. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/token_manager.py +0 -0
  212. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/trial_operations.py +0 -0
  213. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/trial_tracker.py +0 -0
  214. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/url_security.py +0 -0
  215. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/user_agent.py +0 -0
  216. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/cloud/validators.py +0 -0
  217. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/__init__.py +0 -0
  218. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/api_keys.py +0 -0
  219. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/ast_transformer.py +0 -0
  220. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/backend_config.py +0 -0
  221. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/context.py +0 -0
  222. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/feature_flags.py +0 -0
  223. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/models.yaml +0 -0
  224. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/parallel.py +0 -0
  225. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/project.py +0 -0
  226. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/provider_support.py +0 -0
  227. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/providers.py +0 -0
  228. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/runtime_injector.py +0 -0
  229. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/tenant.py +0 -0
  230. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config/types.py +0 -0
  231. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/__init__.py +0 -0
  232. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/agent_classifier.py +0 -0
  233. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/apply.py +0 -0
  234. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
  235. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
  236. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
  237. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
  238. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/catalog.py +0 -0
  239. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/llm_backend.py +0 -0
  240. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/pipeline.py +0 -0
  241. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/presets/__init__.py +0 -0
  242. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
  243. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
  244. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/presets/constraint_templates.py +0 -0
  245. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/presets/range_presets.py +0 -0
  246. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/recommendations.py +0 -0
  247. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/__init__.py +0 -0
  248. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/benchmarks.py +0 -0
  249. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/objectives.py +0 -0
  250. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
  251. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
  252. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
  253. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
  254. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/config_generator/types.py +0 -0
  255. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/__init__.py +0 -0
  256. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/backend_session_manager.py +0 -0
  257. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/best_config_runtime.py +0 -0
  258. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/cache_policy.py +0 -0
  259. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/ci_approval.py +0 -0
  260. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/config_state_manager.py +0 -0
  261. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/constants.py +0 -0
  262. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/cost_enforcement.py +0 -0
  263. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/cost_estimator.py +0 -0
  264. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/evaluator_wrapper.py +0 -0
  265. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/exception_handler.py +0 -0
  266. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/execution_policy_runtime.py +0 -0
  267. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/license.py +0 -0
  268. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/logger_facade.py +0 -0
  269. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/mandatory_metrics.py +0 -0
  270. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/meta_types.py +0 -0
  271. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/metadata_helpers.py +0 -0
  272. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/metric_registry.py +0 -0
  273. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/metrics_aggregator.py +0 -0
  274. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/namespace.py +0 -0
  275. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/objectives.py +0 -0
  276. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/optimization_pipeline.py +0 -0
  277. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/optimized_function.py +0 -0
  278. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/orchestrator_helpers.py +0 -0
  279. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/parallel_execution_manager.py +0 -0
  280. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/progress_manager.py +0 -0
  281. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/result_selection.py +0 -0
  282. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/sample_budget.py +0 -0
  283. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/samplers/__init__.py +0 -0
  284. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/samplers/random_sampler.py +0 -0
  285. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/session_context.py +0 -0
  286. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/session_types.py +0 -0
  287. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/stat_significance.py +0 -0
  288. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/stop_condition_manager.py +0 -0
  289. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/stop_conditions.py +0 -0
  290. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/trace_env.py +0 -0
  291. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/tracing.py +0 -0
  292. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/trial_context.py +0 -0
  293. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/trial_lifecycle.py +0 -0
  294. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/trial_result_factory.py +0 -0
  295. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/types.py +0 -0
  296. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/types_ext.py +0 -0
  297. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/utils.py +0 -0
  298. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core/workflow_trace_manager.py +0 -0
  299. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core_metrics/__init__.py +0 -0
  300. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core_metrics/client.py +0 -0
  301. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core_metrics/config.py +0 -0
  302. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/core_metrics/dtos.py +0 -0
  303. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/defaults.py +0 -0
  304. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/effectuation/__init__.py +0 -0
  305. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/effectuation/contracts.py +0 -0
  306. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/effectuation/strategies/__init__.py +0 -0
  307. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/effectuation/strategies/framework_param.py +0 -0
  308. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/effectuation/strategies/self_consistency.py +0 -0
  309. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluation/__init__.py +0 -0
  310. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluation/client.py +0 -0
  311. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluation/config.py +0 -0
  312. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluation/dtos.py +0 -0
  313. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/__init__.py +0 -0
  314. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
  315. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
  316. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/catalog_loader.py +0 -0
  317. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/dataset_registry.py +0 -0
  318. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/hybrid_api.py +0 -0
  319. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/local.py +0 -0
  320. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/metrics.py +0 -0
  321. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/metrics_tracker.py +0 -0
  322. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/evaluators/recommendations.py +0 -0
  323. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/__init__.py +0 -0
  324. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/__init__.py +0 -0
  325. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/_bootstrap.py +0 -0
  326. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/_demo.py +0 -0
  327. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/anthropic.py +0 -0
  328. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/aws.py +0 -0
  329. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/azure.py +0 -0
  330. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/gcp.py +0 -0
  331. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/gemini.py +0 -0
  332. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/groq.py +0 -0
  333. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/litellm_any.py +0 -0
  334. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/manifest.json +0 -0
  335. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/openai.py +0 -0
  336. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/openrouter.py +0 -0
  337. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/providers/qa_samples.jsonl +0 -0
  338. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/quickstart/__init__.py +0 -0
  339. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/quickstart/__main__.py +0 -0
  340. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/quickstart/_env.py +0 -0
  341. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/quickstart/publish_and_verify.py +0 -0
  342. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
  343. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/examples/tutorial_bootstrap.py +0 -0
  344. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/__init__.py +0 -0
  345. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/backend_provider.py +0 -0
  346. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/example_synth.py +0 -0
  347. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/llm_provider.py +0 -0
  348. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/loop.py +0 -0
  349. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/models.py +0 -0
  350. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/options.py +0 -0
  351. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/prompt_rewriter.py +0 -0
  352. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/__init__.py +0 -0
  353. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/artifacts.py +0 -0
  354. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/buffer.py +0 -0
  355. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/document.py +0 -0
  356. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/edits.py +0 -0
  357. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/prompts.py +0 -0
  358. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/reflection.py +0 -0
  359. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/schedule.py +0 -0
  360. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/slow_update.py +0 -0
  361. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/splits.py +0 -0
  362. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/trainer.py +0 -0
  363. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/skill_train/trainer_result.py +0 -0
  364. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/generation/validators.py +0 -0
  365. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/guaranteed_modes.py +0 -0
  366. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hooks/__init__.py +0 -0
  367. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hooks/config.py +0 -0
  368. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hooks/installer.py +0 -0
  369. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hooks/validator.py +0 -0
  370. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hybrid/__init__.py +0 -0
  371. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hybrid/discovery.py +0 -0
  372. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hybrid/http_transport.py +0 -0
  373. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hybrid/lifecycle.py +0 -0
  374. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hybrid/mcp_transport.py +0 -0
  375. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hybrid/protocol.py +0 -0
  376. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/hybrid/transport.py +0 -0
  377. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/__init__.py +0 -0
  378. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/activation.py +0 -0
  379. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/base.py +0 -0
  380. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/base_plugin.py +0 -0
  381. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/bedrock_client.py +0 -0
  382. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/config.py +0 -0
  383. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/dspy_adapter.py +0 -0
  384. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/framework_override.py +0 -0
  385. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/langchain/__init__.py +0 -0
  386. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/langchain/handler.py +0 -0
  387. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/__init__.py +0 -0
  388. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/callback.py +0 -0
  389. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/client.py +0 -0
  390. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/tracker.py +0 -0
  391. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/__init__.py +0 -0
  392. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/anthropic_plugin.py +0 -0
  393. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
  394. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/base_llm_plugin.py +0 -0
  395. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/bedrock_plugin.py +0 -0
  396. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/cohere_plugin.py +0 -0
  397. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/gemini_plugin.py +0 -0
  398. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/huggingface_plugin.py +0 -0
  399. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/langchain/__init__.py +0 -0
  400. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/langchain/base.py +0 -0
  401. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/langchain_plugin.py +0 -0
  402. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/litellm_plugin.py +0 -0
  403. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
  404. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/mistral_plugin.py +0 -0
  405. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/openai.py +0 -0
  406. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/llms/openai_plugin.py +0 -0
  407. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/mappings.py +0 -0
  408. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/__init__.py +0 -0
  409. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
  410. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
  411. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/base.py +0 -0
  412. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/cache.py +0 -0
  413. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
  414. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
  415. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
  416. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/registry.py +0 -0
  417. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/observability/__init__.py +0 -0
  418. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/observability/mlflow.py +0 -0
  419. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/observability/wandb.py +0 -0
  420. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/observability/workflow_traces.py +0 -0
  421. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/plugin_registry.py +0 -0
  422. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/providers.py +0 -0
  423. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/__init__.py +0 -0
  424. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/_types.py +0 -0
  425. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/handler.py +0 -0
  426. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/plugin.py +0 -0
  427. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/utils/__init__.py +0 -0
  428. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/utils/discovery.py +0 -0
  429. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/utils/message_coercion.py +0 -0
  430. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/utils/mock_adapter.py +0 -0
  431. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/utils/parameter_normalizer.py +0 -0
  432. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/utils/response_wrapper.py +0 -0
  433. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/utils/validation.py +0 -0
  434. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/utils/version_compat.py +0 -0
  435. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/__init__.py +0 -0
  436. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/base.py +0 -0
  437. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
  438. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
  439. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
  440. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/integrations/wrappers.py +0 -0
  441. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/invokers/__init__.py +0 -0
  442. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/invokers/base.py +0 -0
  443. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/invokers/batch.py +0 -0
  444. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/invokers/local.py +0 -0
  445. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/invokers/streaming.py +0 -0
  446. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/__init__.py +0 -0
  447. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/adapters.py +0 -0
  448. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/bindings.py +0 -0
  449. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/canonical.py +0 -0
  450. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/cascade.py +0 -0
  451. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/certificates.py +0 -0
  452. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/composites.py +0 -0
  453. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/kinds.py +0 -0
  454. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/patterns.py +0 -0
  455. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/resolution.py +0 -0
  456. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/resolver.py +0 -0
  457. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/runtime.py +0 -0
  458. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/signals.py +0 -0
  459. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/knobs/telemetry.py +0 -0
  460. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/mcp/__init__.py +0 -0
  461. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/mcp/server.py +0 -0
  462. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/mcp/tools.py +0 -0
  463. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/metrics/__init__.py +0 -0
  464. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/metrics/agent_metrics.py +0 -0
  465. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/metrics/content_features.py +0 -0
  466. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/metrics/deepeval_metrics.py +0 -0
  467. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/metrics/ragas_metrics.py +0 -0
  468. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/metrics/registry.py +0 -0
  469. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/observability/__init__.py +0 -0
  470. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/observability/agent_spans.py +0 -0
  471. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/observability/client.py +0 -0
  472. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/observability/config.py +0 -0
  473. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/observability/decorators.py +0 -0
  474. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/observability/dtos.py +0 -0
  475. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/__init__.py +0 -0
  476. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/base.py +0 -0
  477. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/batch_optimizers.py +0 -0
  478. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/cloud_optimizer.py +0 -0
  479. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/grid.py +0 -0
  480. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/random.py +0 -0
  481. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/registry.py +0 -0
  482. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/remote.py +0 -0
  483. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/remote_services.py +0 -0
  484. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/optimizers/results.py +0 -0
  485. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/playbook/__init__.py +0 -0
  486. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/playbook/loader.py +0 -0
  487. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/playbook/model.py +0 -0
  488. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/playbook/scaffold.py +0 -0
  489. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
  490. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/playbook/staleness.py +0 -0
  491. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/playbook/validator.py +0 -0
  492. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/plugins/__init__.py +0 -0
  493. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/plugins/registry.py +0 -0
  494. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/projects/__init__.py +0 -0
  495. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/projects/client.py +0 -0
  496. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/projects/config.py +0 -0
  497. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/projects/dtos.py +0 -0
  498. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/prompts/__init__.py +0 -0
  499. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/prompts/client.py +0 -0
  500. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/prompts/config.py +0 -0
  501. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/prompts/dtos.py +0 -0
  502. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/providers/__init__.py +0 -0
  503. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/providers/validation.py +0 -0
  504. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/py.typed +0 -0
  505. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/reporting/__init__.py +0 -0
  506. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/reporting/example_map.py +0 -0
  507. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/__init__.py +0 -0
  508. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/audit.py +0 -0
  509. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/auth/__init__.py +0 -0
  510. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/auth/helpers.py +0 -0
  511. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/auth/mfa.py +0 -0
  512. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/auth/models.py +0 -0
  513. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/auth/oidc.py +0 -0
  514. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/auth/saml.py +0 -0
  515. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/auth/sms.py +0 -0
  516. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/auth/totp.py +0 -0
  517. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/config.py +0 -0
  518. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/credentials.py +0 -0
  519. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/crypto_utils.py +0 -0
  520. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/deployment.py +0 -0
  521. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/encryption.py +0 -0
  522. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/enterprise.py +0 -0
  523. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/headers.py +0 -0
  524. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/input_validation.py +0 -0
  525. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/jwt_validator.py +0 -0
  526. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/rate_limiter.py +0 -0
  527. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/redaction.py +0 -0
  528. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/session_manager.py +0 -0
  529. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/security/tenant.py +0 -0
  530. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
  531. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
  532. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
  533. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
  534. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
  535. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
  536. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/SKILL.md +0 -0
  537. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
  538. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
  539. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
  540. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/SKILL.md +0 -0
  541. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
  542. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
  543. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
  544. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/SKILL.md +0 -0
  545. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
  546. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
  547. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
  548. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
  549. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
  550. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
  551. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/SKILL.md +0 -0
  552. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
  553. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
  554. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
  555. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/storage/__init__.py +0 -0
  556. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/storage/local_storage.py +0 -0
  557. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/testing/__init__.py +0 -0
  558. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/traigent_client.py +0 -0
  559. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/traigent_integration.py +0 -0
  560. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tuned_variables/__init__.py +0 -0
  561. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tuned_variables/dataflow_strategy.py +0 -0
  562. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tuned_variables/detection_strategies.py +0 -0
  563. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tuned_variables/detection_types.py +0 -0
  564. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tuned_variables/detector.py +0 -0
  565. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tuned_variables/discovery.py +0 -0
  566. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tuned_variables/observation.py +0 -0
  567. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tuned_variables/py.typed +0 -0
  568. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/__init__.py +0 -0
  569. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/__main__.py +0 -0
  570. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/models.py +0 -0
  571. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/objectives.py +0 -0
  572. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/options.py +0 -0
  573. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/promotion_gate.py +0 -0
  574. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/registry.py +0 -0
  575. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/spec_loader.py +0 -0
  576. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/spec_validator.py +0 -0
  577. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/tvl/statistics.py +0 -0
  578. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/__init__.py +0 -0
  579. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/artifact_fingerprints.py +0 -0
  580. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/batch_optimizer_utils.py +0 -0
  581. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/batch_processing.py +0 -0
  582. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/callbacks.py +0 -0
  583. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/console.py +0 -0
  584. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/constraints.py +0 -0
  585. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/cost_calculator.py +0 -0
  586. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/diagnostics.py +0 -0
  587. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/discrete_domains.py +0 -0
  588. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/env_config.py +0 -0
  589. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/error_handler.py +0 -0
  590. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/example_id.py +0 -0
  591. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/exceptions.py +0 -0
  592. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/file_versioning.py +0 -0
  593. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/function_identity.py +0 -0
  594. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/hashing.py +0 -0
  595. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/importance.py +0 -0
  596. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/incentives.py +0 -0
  597. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/insights.py +0 -0
  598. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/langchain_interceptor.py +0 -0
  599. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/litellm_interceptor.py +0 -0
  600. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/llm_response_parsing.py +0 -0
  601. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/local_analytics.py +0 -0
  602. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/logging.py +0 -0
  603. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/multi_objective.py +0 -0
  604. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/numpy_compat.py +0 -0
  605. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/objectives.py +0 -0
  606. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/optimization_analyzer.py +0 -0
  607. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/optimization_logger.py +0 -0
  608. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/pagination.py +0 -0
  609. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/persistence.py +0 -0
  610. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/results_table.py +0 -0
  611. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/retry.py +0 -0
  612. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/secure_path.py +0 -0
  613. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/url_security.py +0 -0
  614. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/utils/validation.py +0 -0
  615. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/visualization/__init__.py +0 -0
  616. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/visualization/plots.py +0 -0
  617. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/wrapper/__init__.py +0 -0
  618. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/wrapper/errors.py +0 -0
  619. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/wrapper/server.py +0 -0
  620. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent/wrapper/service.py +0 -0
  621. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent.egg-info/SOURCES.txt +0 -0
  622. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent.egg-info/dependency_links.txt +0 -0
  623. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent.egg-info/entry_points.txt +0 -0
  624. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent.egg-info/requires.txt +0 -0
  625. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent.egg-info/top_level.txt +0 -0
  626. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent_validation/__init__.py +0 -0
  627. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent_validation/base.py +0 -0
  628. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent_validation/plugins.py +0 -0
  629. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent_validation/py.typed +0 -0
  630. {traigent-0.18.1.dev8 → traigent-0.18.1.dev9}/traigent_validation/validators.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: traigent
3
- Version: 0.18.1.dev8
3
+ Version: 0.18.1.dev9
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.18.1.dev8"
7
+ version = "0.18.1.dev9"
8
8
  authors = [
9
9
  {name = "Traigent Team", email = "opensource@traigent.ai"},
10
10
  ]
@@ -101,6 +101,7 @@ from traigent.core.workflow_trace_manager import WorkflowTraceManager
101
101
  from traigent.evaluators.base import BaseEvaluator, Dataset
102
102
  from traigent.metrics.registry import clone_registry
103
103
  from traigent.optimizers.base import BaseOptimizer
104
+ from traigent.optimizers.interactive_optimizer import CloudBrainOptimizationComplete
104
105
  from traigent.tvl.promotion_gate import PromotionGate
105
106
  from traigent.utils.callbacks import CallbackManager, OptimizationCallback, ProgressInfo
106
107
  from traigent.utils.env_config import ( # noqa: F401
@@ -2588,6 +2589,10 @@ class OptimizationOrchestrator:
2588
2589
  self._stop_reason = "vendor_error"
2589
2590
  return trial_count, "break"
2590
2591
  return trial_count, "continue" # User chose to resume
2592
+ except CloudBrainOptimizationComplete as complete:
2593
+ self._stop_reason = cast(StopReason, complete.stop_reason)
2594
+ logger.info("Cloud brain completed optimization: %s", complete.reason)
2595
+ return trial_count, "break"
2591
2596
 
2592
2597
  @staticmethod
2593
2598
  def _vendor_retry_settings() -> tuple[int, float]:
@@ -1646,6 +1646,7 @@ class BaseEvaluator(ABC):
1646
1646
  config,
1647
1647
  example,
1648
1648
  i,
1649
+ dataset,
1649
1650
  executor=None,
1650
1651
  progress_callback=progress_callback,
1651
1652
  )
@@ -2009,6 +2010,7 @@ class BaseEvaluator(ABC):
2009
2010
  consumed, exhausted = await self._run_concurrent_tasks(
2010
2011
  func,
2011
2012
  config,
2013
+ dataset,
2012
2014
  examples,
2013
2015
  sample_lease,
2014
2016
  detailed,
@@ -2043,6 +2045,7 @@ class BaseEvaluator(ABC):
2043
2045
  self,
2044
2046
  func: Callable[..., Any],
2045
2047
  config: dict[str, Any],
2048
+ dataset: Dataset,
2046
2049
  examples: list[EvaluationExample],
2047
2050
  sample_lease: SampleBudgetLease | None,
2048
2051
  detailed: bool,
@@ -2066,6 +2069,7 @@ class BaseEvaluator(ABC):
2066
2069
  config,
2067
2070
  example,
2068
2071
  idx,
2072
+ dataset,
2069
2073
  executor=None,
2070
2074
  progress_callback=progress_callback,
2071
2075
  )
@@ -2238,18 +2242,31 @@ class BaseEvaluator(ABC):
2238
2242
  result: ExampleResult,
2239
2243
  config: dict[str, Any],
2240
2244
  error: str | None,
2245
+ dataset: Dataset,
2246
+ example_index: int,
2241
2247
  ) -> dict[str, Any]:
2242
2248
  """Build progress callback payload with metrics."""
2243
- metrics_payload = self._build_progress_accuracy_metrics(
2244
- output=result.actual_output,
2245
- expected_output=example.expected_output,
2246
- error=error,
2247
- example_id=example_id,
2248
- )
2249
-
2250
2249
  metrics_update, _ = self._extract_response_metrics(
2251
2250
  example_id, example, result, config
2252
2251
  )
2252
+ llm_metrics = dict(result.metrics or metrics_update)
2253
+
2254
+ metrics_payload = self._build_progress_objective_metrics(
2255
+ example=example,
2256
+ result=result,
2257
+ config=config,
2258
+ error=error,
2259
+ dataset=dataset,
2260
+ example_index=example_index,
2261
+ llm_metrics=llm_metrics or None,
2262
+ )
2263
+ if not metrics_payload and not self._has_configured_progress_objective():
2264
+ metrics_payload = self._build_progress_accuracy_metrics(
2265
+ output=result.actual_output,
2266
+ expected_output=example.expected_output,
2267
+ error=error,
2268
+ example_id=example_id,
2269
+ )
2253
2270
  metrics_payload.update(metrics_update)
2254
2271
 
2255
2272
  payload: dict[str, Any] = {
@@ -2261,6 +2278,157 @@ class BaseEvaluator(ABC):
2261
2278
  payload["metrics"] = metrics_payload
2262
2279
  return payload
2263
2280
 
2281
+ def _has_configured_progress_objective(self) -> bool:
2282
+ """Return True when callers configured a custom per-example objective."""
2283
+ return bool(
2284
+ getattr(self, "metric_functions", None)
2285
+ or getattr(self, "scoring_function", None)
2286
+ )
2287
+
2288
+ def _build_progress_objective_metrics(
2289
+ self,
2290
+ *,
2291
+ example: EvaluationExample,
2292
+ result: ExampleResult,
2293
+ config: dict[str, Any],
2294
+ error: str | None,
2295
+ dataset: Dataset,
2296
+ example_index: int,
2297
+ llm_metrics: dict[str, Any] | None,
2298
+ ) -> dict[str, float]:
2299
+ """Return configured per-example objective metrics for detailed progress."""
2300
+ if error is not None:
2301
+ return {}
2302
+
2303
+ metric_functions = getattr(self, "metric_functions", None) or {}
2304
+ if metric_functions:
2305
+ metrics = self._call_progress_metric_functions(
2306
+ metric_functions=metric_functions,
2307
+ output=result.actual_output,
2308
+ example=example,
2309
+ config=config,
2310
+ dataset=dataset,
2311
+ example_index=example_index,
2312
+ llm_metrics=llm_metrics,
2313
+ )
2314
+ if metrics:
2315
+ return metrics
2316
+
2317
+ scoring_function = getattr(self, "scoring_function", None)
2318
+ if scoring_function is not None:
2319
+ metrics = self._call_progress_scoring_function(
2320
+ output=result.actual_output,
2321
+ example=example,
2322
+ config=config,
2323
+ dataset=dataset,
2324
+ example_index=example_index,
2325
+ llm_metrics=llm_metrics,
2326
+ )
2327
+ if metrics:
2328
+ return metrics
2329
+
2330
+ return {}
2331
+
2332
+ def _call_progress_metric_functions(
2333
+ self,
2334
+ *,
2335
+ metric_functions: Mapping[str, Callable[..., Any]],
2336
+ output: Any,
2337
+ example: EvaluationExample,
2338
+ config: dict[str, Any],
2339
+ dataset: Dataset,
2340
+ example_index: int,
2341
+ llm_metrics: dict[str, Any] | None,
2342
+ ) -> dict[str, float]:
2343
+ """Call configured metric functions using the evaluator's scoring helper."""
2344
+ call_metric_functions = getattr(self, "_call_metric_functions", None)
2345
+ if callable(call_metric_functions):
2346
+ return self._coerce_progress_metrics(
2347
+ call_metric_functions(
2348
+ output, example, config, dataset, example_index, llm_metrics
2349
+ )
2350
+ )
2351
+
2352
+ invoke_metric = getattr(self, "_invoke_metric_function", None)
2353
+ if callable(invoke_metric):
2354
+ metrics: dict[str, float] = {}
2355
+ for metric_name, metric_func in metric_functions.items():
2356
+ value = invoke_metric(
2357
+ metric_func,
2358
+ metric_name,
2359
+ output,
2360
+ example,
2361
+ config,
2362
+ llm_metrics or {},
2363
+ example_index,
2364
+ )
2365
+ if isinstance(value, Mapping):
2366
+ metrics.update(self._coerce_progress_metrics(value))
2367
+ elif value is not None:
2368
+ try:
2369
+ metrics[metric_name] = float(value)
2370
+ except (TypeError, ValueError):
2371
+ logger.warning(
2372
+ "Metric function %s returned non-numeric progress value "
2373
+ "for example %s",
2374
+ metric_name,
2375
+ getattr(example, "example_id", None) or example_index,
2376
+ )
2377
+ return metrics
2378
+
2379
+ return {}
2380
+
2381
+ def _call_progress_scoring_function(
2382
+ self,
2383
+ *,
2384
+ output: Any,
2385
+ example: EvaluationExample,
2386
+ config: dict[str, Any],
2387
+ dataset: Dataset,
2388
+ example_index: int,
2389
+ llm_metrics: dict[str, Any] | None,
2390
+ ) -> dict[str, float]:
2391
+ """Call configured scoring function using the evaluator's scoring helper."""
2392
+ compute_example_metrics = getattr(self, "_compute_example_metrics", None)
2393
+ if callable(compute_example_metrics):
2394
+ try:
2395
+ return self._coerce_progress_metrics(
2396
+ compute_example_metrics(
2397
+ output, example, config, dataset, example_index, llm_metrics
2398
+ )
2399
+ )
2400
+ except TypeError:
2401
+ logger.debug(
2402
+ "Evaluator _compute_example_metrics signature does not support "
2403
+ "detailed progress scoring; trying scoring helper",
2404
+ exc_info=True,
2405
+ )
2406
+
2407
+ call_scoring_function = getattr(self, "_call_scoring_function", None)
2408
+ if callable(call_scoring_function):
2409
+ return self._coerce_progress_metrics(
2410
+ call_scoring_function(output, example, llm_metrics)
2411
+ )
2412
+
2413
+ return {}
2414
+
2415
+ @staticmethod
2416
+ def _coerce_progress_metrics(values: Mapping[str, Any] | None) -> dict[str, float]:
2417
+ """Keep only finite numeric metrics for the progress payload."""
2418
+ metrics: dict[str, float] = {}
2419
+ if not values:
2420
+ return metrics
2421
+ for name, value in values.items():
2422
+ if isinstance(value, bool) or value is None:
2423
+ continue
2424
+ try:
2425
+ number = float(value)
2426
+ except (TypeError, ValueError):
2427
+ continue
2428
+ if math.isfinite(number):
2429
+ metrics[str(name)] = number
2430
+ return metrics
2431
+
2264
2432
  def _build_progress_accuracy_metrics(
2265
2433
  self,
2266
2434
  *,
@@ -2435,6 +2603,7 @@ class BaseEvaluator(ABC):
2435
2603
  config: dict[str, Any],
2436
2604
  example: EvaluationExample,
2437
2605
  example_index: int,
2606
+ dataset: Dataset,
2438
2607
  executor: Any | None = None,
2439
2608
  progress_callback: Callable[[int, dict[str, Any]], Any] | None = None,
2440
2609
  ) -> ExampleResult:
@@ -2501,7 +2670,7 @@ class BaseEvaluator(ABC):
2501
2670
 
2502
2671
  if progress_callback:
2503
2672
  progress_payload = self._build_progress_payload(
2504
- example_id, example, result, config, error
2673
+ example_id, example, result, config, error, dataset, example_index
2505
2674
  )
2506
2675
  try:
2507
2676
  progress_callback(example_index, progress_payload)
@@ -11,7 +11,7 @@ from __future__ import annotations
11
11
 
12
12
  import time
13
13
  from datetime import UTC, datetime
14
- from typing import TYPE_CHECKING, Any, Protocol, TypeAlias
14
+ from typing import TYPE_CHECKING, Any, Protocol, TypeAlias, cast
15
15
 
16
16
  from traigent.api.types import TrialResult
17
17
  from traigent.api.types import TrialStatus as SDKTrialStatus
@@ -94,7 +94,7 @@ def _coerce_trial_status(status: TrialStatusLike) -> Any:
94
94
 
95
95
  def _is_completed_status(status: TrialStatusLike) -> bool:
96
96
  """Check completion across SDK and cloud status enums."""
97
- return getattr(status, "value", status) == "completed"
97
+ return bool(getattr(status, "value", status) == "completed")
98
98
 
99
99
 
100
100
  def _string_sequence(value: Any) -> tuple[str, ...]:
@@ -104,6 +104,23 @@ def _string_sequence(value: Any) -> tuple[str, ...]:
104
104
  return tuple(str(item) for item in value if item)
105
105
 
106
106
 
107
+ class CloudBrainOptimizationComplete(RuntimeError):
108
+ """Normal cloud-brain terminal signal from the next-trial API."""
109
+
110
+ def __init__(self, reason: str | None = None) -> None:
111
+ self.reason = reason or "cloud brain completed optimization"
112
+ super().__init__(self.reason)
113
+
114
+ @property
115
+ def stop_reason(self) -> str:
116
+ normalized = self.reason.lower().replace("-", "_").replace(" ", "_")
117
+ if "max" in normalized and "trial" in normalized:
118
+ return "max_trials_reached"
119
+ if "conver" in normalized:
120
+ return "convergence"
121
+ return "optimizer"
122
+
123
+
107
124
  class RemoteGuidanceService(Protocol):
108
125
  """Protocol for remote guidance services."""
109
126
 
@@ -185,6 +202,7 @@ class InteractiveOptimizer(BaseOptimizer):
185
202
  self._pending_trials: dict[str, TrialSuggestion] = {}
186
203
  self._completed_trials: list[TrialResultSubmission] = []
187
204
  self._start_time: float | None = None
205
+ self._completion_reason: str | None = None
188
206
 
189
207
  async def initialize_session(
190
208
  self,
@@ -271,42 +289,52 @@ class InteractiveOptimizer(BaseOptimizer):
271
289
  if not self.session_id:
272
290
  raise OptimizationError("No active session. Call initialize_session first.")
273
291
 
274
- try:
275
- request = NextTrialRequest(
276
- session_id=self.session_id,
277
- previous_results=previous_results or self._completed_trials[-5:],
278
- request_metadata={
279
- "dataset_size": dataset_size,
280
- "completed_trials": len(self._completed_trials),
281
- },
282
- )
292
+ request = NextTrialRequest(
293
+ session_id=self.session_id,
294
+ previous_results=previous_results or self._completed_trials[-5:],
295
+ request_metadata={
296
+ "dataset_size": dataset_size,
297
+ "completed_trials": len(self._completed_trials),
298
+ },
299
+ )
283
300
 
301
+ try:
284
302
  response = await self.remote_service.get_next_trial(request)
303
+ except Exception as e:
304
+ logger.error(f"Failed to get next suggestion: {e}")
305
+ raise OptimizationError(f"Failed to get suggestion: {e}") from e
285
306
 
286
- # Update local session status
287
- if self.session:
288
- self.session.status = response.session_status
307
+ # Update local session status
308
+ if self.session:
309
+ self.session.status = response.session_status
289
310
 
290
- if not response.should_continue or not response.suggestion:
291
- logger.info(f"Optimization complete: {response.reason}")
292
- return None
311
+ if not response.should_continue:
312
+ self._completion_reason = (
313
+ response.stop_reason
314
+ or response.reason
315
+ or "cloud brain completed optimization"
316
+ )
317
+ logger.info(f"Optimization complete: {self._completion_reason}")
318
+ return None
293
319
 
294
- suggestion = response.suggestion
320
+ if not response.suggestion:
321
+ raise OptimizationError(
322
+ "Cloud brain returned no suggestion while should_continue=True"
323
+ )
295
324
 
296
- # Store pending trial
297
- self._pending_trials[suggestion.trial_id] = suggestion
325
+ self._completion_reason = None
326
+ suggestion = response.suggestion
298
327
 
299
- logger.info(
300
- f"Got suggestion {suggestion.trial_id}: "
301
- f"{suggestion.exploration_type} with "
302
- f"{len(suggestion.dataset_subset.indices)} examples"
303
- )
328
+ # Store pending trial
329
+ self._pending_trials[suggestion.trial_id] = suggestion
304
330
 
305
- return suggestion
331
+ logger.info(
332
+ f"Got suggestion {suggestion.trial_id}: "
333
+ f"{suggestion.exploration_type} with "
334
+ f"{len(suggestion.dataset_subset.indices)} examples"
335
+ )
306
336
 
307
- except Exception as e:
308
- logger.error(f"Failed to get next suggestion: {e}")
309
- raise OptimizationError(f"Failed to get suggestion: {e}") from e
337
+ return suggestion
310
338
 
311
339
  async def suggest_next_trial_async(
312
340
  self,
@@ -323,7 +351,7 @@ class InteractiveOptimizer(BaseOptimizer):
323
351
  dataset_size=max(dataset_size, 1),
324
352
  )
325
353
  if suggestion is None:
326
- raise OptimizationError("Cloud brain returned no further suggestions")
354
+ raise CloudBrainOptimizationComplete(self._completion_reason)
327
355
 
328
356
  config = dict(suggestion.config or {})
329
357
  config["_traigent_backend_trial_id"] = suggestion.trial_id
@@ -509,8 +537,8 @@ class InteractiveOptimizer(BaseOptimizer):
509
537
  # Simple comparison on primary objective
510
538
  if self.objectives and self.objectives[0] in metrics:
511
539
  primary = self.objectives[0]
512
- current = metrics.get(primary, 0)
513
- best = self.session.best_metrics.get(primary, 0)
540
+ current = float(metrics.get(primary, 0.0))
541
+ best = float(self.session.best_metrics.get(primary, 0.0))
514
542
 
515
543
  # Assume higher is better for now
516
544
  return current > best
@@ -568,7 +596,10 @@ class InteractiveOptimizer(BaseOptimizer):
568
596
  ),
569
597
  effectuation_events=result_metadata.get("effectuation_events"),
570
598
  )
571
- return merge_tvar_observation_metadata(result_metadata, observation)
599
+ return cast(
600
+ dict[str, Any],
601
+ merge_tvar_observation_metadata(result_metadata, observation),
602
+ )
572
603
  except Exception as exc:
573
604
  logger.debug(
574
605
  "Skipping TVAR observation metadata for trial %s: %s",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: traigent
3
- Version: 0.18.1.dev8
3
+ Version: 0.18.1.dev9
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
File without changes
File without changes
File without changes