traigent 0.18.1.dev7__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.dev7/traigent.egg-info → traigent-0.18.1.dev9}/PKG-INFO +1 -1
  2. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/pyproject.toml +1 -1
  3. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/orchestrator.py +5 -0
  4. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/trial_lifecycle.py +5 -0
  5. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/base.py +242 -24
  6. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/interactive_optimizer.py +64 -33
  7. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9/traigent.egg-info}/PKG-INFO +1 -1
  8. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/CHANGELOG.md +0 -0
  9. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/COMMERCIAL-LICENSE.md +0 -0
  10. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/CONTRIBUTING.md +0 -0
  11. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/CONTRIBUTOR-LICENSING.md +0 -0
  12. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/DISCLAIMER.md +0 -0
  13. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/LICENSE +0 -0
  14. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/MANIFEST.in +0 -0
  15. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/NOTICE +0 -0
  16. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/README.md +0 -0
  17. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/SECURITY.md +0 -0
  18. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/LOCAL_CI_GATE.md +0 -0
  19. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/README.md +0 -0
  20. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/SYNC_MAP.md +0 -0
  21. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/agent-skill.md +0 -0
  22. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/complete-function-specification.md +0 -0
  23. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/decorator-reference.md +0 -0
  24. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/enterprise-beta-api.md +0 -0
  25. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/interactive_optimizer.md +0 -0
  26. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/telemetry.md +0 -0
  27. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/thread-pool-examples.md +0 -0
  28. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/ARCHITECTURE.md +0 -0
  29. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/cost-architecture-validation.md +0 -0
  30. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/execution_mode_follow_up.md +0 -0
  31. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/integrations-inventory.md +0 -0
  32. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/plugin_architecture.md +0 -0
  33. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/project-structure.md +0 -0
  34. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/stop_conditions.md +0 -0
  35. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/concepts/composite-knob-ir.md +0 -0
  36. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/concepts/composite-knobs.md +0 -0
  37. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/concepts/guided-generation.md +0 -0
  38. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
  39. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
  40. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/CONTRIBUTING.md +0 -0
  41. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
  42. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/README.md +0 -0
  43. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/SECURITY.md +0 -0
  44. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/aikido_triage.md +0 -0
  45. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/code_review_instructions.md +0 -0
  46. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/test-quality-guide.md +0 -0
  47. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
  48. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/demos/README.md +0 -0
  49. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/API_PATTERNS.md +0 -0
  50. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/LEARNING_ROADMAP.md +0 -0
  51. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/QUICK_REFERENCE.md +0 -0
  52. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/README.md +0 -0
  53. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/START_HERE.md +0 -0
  54. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/TROUBLESHOOTING.md +0 -0
  55. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/fake-completion-tracking.md +0 -0
  56. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/feature_matrices/README.md +0 -0
  57. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/README.md +0 -0
  58. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/authentication.md +0 -0
  59. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/constraint-dsl.md +0 -0
  60. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/dataflow-detection.md +0 -0
  61. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/framework_override_enhanced_features.md +0 -0
  62. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/mcp-server.md +0 -0
  63. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/observability-spans.md +0 -0
  64. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/onboarding.md +0 -0
  65. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/prompt_management.md +0 -0
  66. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/recommendations.md +0 -0
  67. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/safety-gates.md +0 -0
  68. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/seamless_injection.md +0 -0
  69. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/strategy-presets.md +0 -0
  70. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/strict_metrics_nulls.md +0 -0
  71. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/GETTING_STARTED.md +0 -0
  72. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/README.md +0 -0
  73. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/installation.md +0 -0
  74. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/minimal-integration.md +0 -0
  75. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
  76. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/testing.md +0 -0
  77. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
  78. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/evaluation.md +0 -0
  79. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/execution-mode-migration.md +0 -0
  80. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/execution-modes.md +0 -0
  81. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/js-bridge.md +0 -0
  82. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/llm_plugin_migration_guide.md +0 -0
  83. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/parallel-configuration.md +0 -0
  84. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/secrets_management.md +0 -0
  85. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/hybrid-mode-api-contract.md +0 -0
  86. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/hybrid-mode-client-guide.md +0 -0
  87. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/operations/azure_openai.md +0 -0
  88. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/operations/bedrock.md +0 -0
  89. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/operations/google_gemini.md +0 -0
  90. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/security/trust_model.md +0 -0
  91. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
  92. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/concepts/composite-knob-ir.md +0 -0
  93. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/concepts/composite-knobs.md +0 -0
  94. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/concepts/guided-generation.md +0 -0
  95. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/schema.md +0 -0
  96. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/tagging_tracking.md +0 -0
  97. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/taxonomy_reference.md +0 -0
  98. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
  99. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/README.md +0 -0
  100. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/agent_optimization.md +0 -0
  101. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/choosing_optimization_model.md +0 -0
  102. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/configuration-spaces.md +0 -0
  103. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/evaluation_guide.md +0 -0
  104. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/injection_modes.md +0 -0
  105. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/interactive_optimization.md +0 -0
  106. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/smart_optimization.md +0 -0
  107. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/tuned_variables.md +0 -0
  108. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/walkthrough.md +0 -0
  109. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-all.txt +0 -0
  110. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-analytics.txt +0 -0
  111. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-bayesian.txt +0 -0
  112. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-chroma.txt +0 -0
  113. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-dev.txt +0 -0
  114. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-hybrid.txt +0 -0
  115. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-integrations.txt +0 -0
  116. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-security.txt +0 -0
  117. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-test.txt +0 -0
  118. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements.txt +0 -0
  119. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/setup.cfg +0 -0
  120. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/__init__.py +0 -0
  121. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/_version.py +0 -0
  122. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/adapters/execution_adapter.py +0 -0
  123. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/admin/__init__.py +0 -0
  124. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/admin/client.py +0 -0
  125. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/admin/config.py +0 -0
  126. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/admin/dtos.py +0 -0
  127. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/__init__.py +0 -0
  128. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/config_mapper.py +0 -0
  129. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/executor.py +0 -0
  130. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/platforms.py +0 -0
  131. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/specification_generator.py +0 -0
  132. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/__init__.py +0 -0
  133. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/anomaly.py +0 -0
  134. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/cost_optimization.py +0 -0
  135. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/example_insights.py +0 -0
  136. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/intelligence.py +0 -0
  137. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/meta_learning.py +0 -0
  138. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/next_steps.py +0 -0
  139. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/optimization_plan.py +0 -0
  140. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/predictive.py +0 -0
  141. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/render.py +0 -0
  142. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/scheduling.py +0 -0
  143. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics_mcp/__init__.py +0 -0
  144. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics_mcp/server.py +0 -0
  145. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics_mcp/tools.py +0 -0
  146. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/__init__.py +0 -0
  147. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/agent_inference.py +0 -0
  148. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/config_builder.py +0 -0
  149. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/config_space.py +0 -0
  150. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/constraint_builders.py +0 -0
  151. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/constraints.py +0 -0
  152. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/decorators.py +0 -0
  153. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/functions.py +0 -0
  154. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/parameter_ranges.py +0 -0
  155. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/parameter_validator.py +0 -0
  156. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/safety.py +0 -0
  157. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/strategy_presets.py +0 -0
  158. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/types.py +0 -0
  159. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/validation_protocol.py +0 -0
  160. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/__init__.py +0 -0
  161. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/auth_commands.py +0 -0
  162. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/detect_tvars_command.py +0 -0
  163. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/function_discovery.py +0 -0
  164. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/generate_config_command.py +0 -0
  165. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/hooks_commands.py +0 -0
  166. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/local_commands.py +0 -0
  167. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/main.py +0 -0
  168. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/next_steps_command.py +0 -0
  169. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/onboard_commands.py +0 -0
  170. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/optimization_validator.py +0 -0
  171. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/plan_command.py +0 -0
  172. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/playbook_commands.py +0 -0
  173. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/sync_commands.py +0 -0
  174. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/validation_types.py +0 -0
  175. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/__init__.py +0 -0
  176. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/_aiohttp_compat.py +0 -0
  177. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/agent_dtos.py +0 -0
  178. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/analytics_auth.py +0 -0
  179. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/analytics_client.py +0 -0
  180. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/api_key_manager.py +0 -0
  181. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/api_operations.py +0 -0
  182. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/async_batch_transport.py +0 -0
  183. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/auth.py +0 -0
  184. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/backend_bridges.py +0 -0
  185. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/backend_client.py +0 -0
  186. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/backend_components.py +0 -0
  187. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/backend_synchronizer.py +0 -0
  188. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/benchmark_client.py +0 -0
  189. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/billing.py +0 -0
  190. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/client.py +0 -0
  191. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/cloud_operations.py +0 -0
  192. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/credential_manager.py +0 -0
  193. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/credential_resolver.py +0 -0
  194. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/dataset_converter.py +0 -0
  195. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/dtos.py +0 -0
  196. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/governance.py +0 -0
  197. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/integration_manager.py +0 -0
  198. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/models.py +0 -0
  199. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/optimizer_client.py +0 -0
  200. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/password_auth_handler.py +0 -0
  201. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/privacy_operations.py +0 -0
  202. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/production_mcp_client.py +0 -0
  203. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/remote_guidance.py +0 -0
  204. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/resilient_client.py +0 -0
  205. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/service.py +0 -0
  206. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/session_operations.py +0 -0
  207. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/session_types.py +0 -0
  208. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/sessions.py +0 -0
  209. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/smart_pruning.py +0 -0
  210. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/subset_selection.py +0 -0
  211. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/sync_manager.py +0 -0
  212. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/token_manager.py +0 -0
  213. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/trial_operations.py +0 -0
  214. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/trial_tracker.py +0 -0
  215. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/url_security.py +0 -0
  216. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/user_agent.py +0 -0
  217. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/validators.py +0 -0
  218. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/__init__.py +0 -0
  219. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/api_keys.py +0 -0
  220. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/ast_transformer.py +0 -0
  221. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/backend_config.py +0 -0
  222. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/context.py +0 -0
  223. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/feature_flags.py +0 -0
  224. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/models.yaml +0 -0
  225. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/parallel.py +0 -0
  226. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/project.py +0 -0
  227. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/provider_support.py +0 -0
  228. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/providers.py +0 -0
  229. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/runtime_injector.py +0 -0
  230. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/tenant.py +0 -0
  231. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/types.py +0 -0
  232. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/__init__.py +0 -0
  233. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/agent_classifier.py +0 -0
  234. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/apply.py +0 -0
  235. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
  236. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
  237. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
  238. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
  239. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog.py +0 -0
  240. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/llm_backend.py +0 -0
  241. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/pipeline.py +0 -0
  242. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/__init__.py +0 -0
  243. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
  244. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
  245. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/constraint_templates.py +0 -0
  246. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/range_presets.py +0 -0
  247. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/recommendations.py +0 -0
  248. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/__init__.py +0 -0
  249. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/benchmarks.py +0 -0
  250. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/objectives.py +0 -0
  251. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
  252. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
  253. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
  254. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
  255. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/types.py +0 -0
  256. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/__init__.py +0 -0
  257. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/backend_session_manager.py +0 -0
  258. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/best_config_runtime.py +0 -0
  259. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/cache_policy.py +0 -0
  260. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/ci_approval.py +0 -0
  261. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/config_state_manager.py +0 -0
  262. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/constants.py +0 -0
  263. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/cost_enforcement.py +0 -0
  264. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/cost_estimator.py +0 -0
  265. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/evaluator_wrapper.py +0 -0
  266. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/exception_handler.py +0 -0
  267. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/execution_policy_runtime.py +0 -0
  268. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/license.py +0 -0
  269. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/logger_facade.py +0 -0
  270. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/mandatory_metrics.py +0 -0
  271. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/meta_types.py +0 -0
  272. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/metadata_helpers.py +0 -0
  273. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/metric_registry.py +0 -0
  274. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/metrics_aggregator.py +0 -0
  275. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/namespace.py +0 -0
  276. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/objectives.py +0 -0
  277. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/optimization_pipeline.py +0 -0
  278. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/optimized_function.py +0 -0
  279. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/orchestrator_helpers.py +0 -0
  280. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/parallel_execution_manager.py +0 -0
  281. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/progress_manager.py +0 -0
  282. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/result_selection.py +0 -0
  283. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/sample_budget.py +0 -0
  284. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/samplers/__init__.py +0 -0
  285. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/samplers/random_sampler.py +0 -0
  286. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/session_context.py +0 -0
  287. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/session_types.py +0 -0
  288. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/stat_significance.py +0 -0
  289. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/stop_condition_manager.py +0 -0
  290. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/stop_conditions.py +0 -0
  291. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/trace_env.py +0 -0
  292. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/tracing.py +0 -0
  293. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/trial_context.py +0 -0
  294. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/trial_result_factory.py +0 -0
  295. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/types.py +0 -0
  296. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/types_ext.py +0 -0
  297. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/utils.py +0 -0
  298. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/workflow_trace_manager.py +0 -0
  299. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core_metrics/__init__.py +0 -0
  300. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core_metrics/client.py +0 -0
  301. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core_metrics/config.py +0 -0
  302. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core_metrics/dtos.py +0 -0
  303. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/defaults.py +0 -0
  304. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/__init__.py +0 -0
  305. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/contracts.py +0 -0
  306. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/strategies/__init__.py +0 -0
  307. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/strategies/framework_param.py +0 -0
  308. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/strategies/self_consistency.py +0 -0
  309. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluation/__init__.py +0 -0
  310. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluation/client.py +0 -0
  311. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluation/config.py +0 -0
  312. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluation/dtos.py +0 -0
  313. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/__init__.py +0 -0
  314. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
  315. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
  316. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/catalog_loader.py +0 -0
  317. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/dataset_registry.py +0 -0
  318. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/hybrid_api.py +0 -0
  319. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/local.py +0 -0
  320. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/metrics.py +0 -0
  321. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/metrics_tracker.py +0 -0
  322. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/recommendations.py +0 -0
  323. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/__init__.py +0 -0
  324. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/__init__.py +0 -0
  325. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/_bootstrap.py +0 -0
  326. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/_demo.py +0 -0
  327. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/anthropic.py +0 -0
  328. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/aws.py +0 -0
  329. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/azure.py +0 -0
  330. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/gcp.py +0 -0
  331. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/gemini.py +0 -0
  332. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/groq.py +0 -0
  333. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/litellm_any.py +0 -0
  334. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/manifest.json +0 -0
  335. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/openai.py +0 -0
  336. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/openrouter.py +0 -0
  337. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/qa_samples.jsonl +0 -0
  338. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/__init__.py +0 -0
  339. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/__main__.py +0 -0
  340. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/_env.py +0 -0
  341. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/publish_and_verify.py +0 -0
  342. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
  343. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/tutorial_bootstrap.py +0 -0
  344. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/__init__.py +0 -0
  345. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/backend_provider.py +0 -0
  346. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/example_synth.py +0 -0
  347. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/llm_provider.py +0 -0
  348. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/loop.py +0 -0
  349. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/models.py +0 -0
  350. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/options.py +0 -0
  351. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/prompt_rewriter.py +0 -0
  352. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/__init__.py +0 -0
  353. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/artifacts.py +0 -0
  354. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/buffer.py +0 -0
  355. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/document.py +0 -0
  356. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/edits.py +0 -0
  357. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/prompts.py +0 -0
  358. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/reflection.py +0 -0
  359. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/schedule.py +0 -0
  360. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/slow_update.py +0 -0
  361. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/splits.py +0 -0
  362. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/trainer.py +0 -0
  363. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/trainer_result.py +0 -0
  364. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/validators.py +0 -0
  365. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/guaranteed_modes.py +0 -0
  366. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hooks/__init__.py +0 -0
  367. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hooks/config.py +0 -0
  368. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hooks/installer.py +0 -0
  369. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hooks/validator.py +0 -0
  370. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/__init__.py +0 -0
  371. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/discovery.py +0 -0
  372. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/http_transport.py +0 -0
  373. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/lifecycle.py +0 -0
  374. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/mcp_transport.py +0 -0
  375. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/protocol.py +0 -0
  376. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/transport.py +0 -0
  377. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/__init__.py +0 -0
  378. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/activation.py +0 -0
  379. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/base.py +0 -0
  380. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/base_plugin.py +0 -0
  381. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/bedrock_client.py +0 -0
  382. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/config.py +0 -0
  383. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/dspy_adapter.py +0 -0
  384. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/framework_override.py +0 -0
  385. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langchain/__init__.py +0 -0
  386. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langchain/handler.py +0 -0
  387. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/__init__.py +0 -0
  388. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/callback.py +0 -0
  389. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/client.py +0 -0
  390. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/tracker.py +0 -0
  391. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/__init__.py +0 -0
  392. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/anthropic_plugin.py +0 -0
  393. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
  394. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/base_llm_plugin.py +0 -0
  395. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/bedrock_plugin.py +0 -0
  396. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/cohere_plugin.py +0 -0
  397. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/gemini_plugin.py +0 -0
  398. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/huggingface_plugin.py +0 -0
  399. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/langchain/__init__.py +0 -0
  400. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/langchain/base.py +0 -0
  401. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/langchain_plugin.py +0 -0
  402. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/litellm_plugin.py +0 -0
  403. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
  404. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/mistral_plugin.py +0 -0
  405. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/openai.py +0 -0
  406. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/openai_plugin.py +0 -0
  407. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/mappings.py +0 -0
  408. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/__init__.py +0 -0
  409. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
  410. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
  411. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/base.py +0 -0
  412. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/cache.py +0 -0
  413. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
  414. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
  415. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
  416. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/registry.py +0 -0
  417. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/observability/__init__.py +0 -0
  418. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/observability/mlflow.py +0 -0
  419. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/observability/wandb.py +0 -0
  420. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/observability/workflow_traces.py +0 -0
  421. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/plugin_registry.py +0 -0
  422. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/providers.py +0 -0
  423. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/__init__.py +0 -0
  424. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/_types.py +0 -0
  425. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/handler.py +0 -0
  426. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/plugin.py +0 -0
  427. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/__init__.py +0 -0
  428. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/discovery.py +0 -0
  429. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/message_coercion.py +0 -0
  430. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/mock_adapter.py +0 -0
  431. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/parameter_normalizer.py +0 -0
  432. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/response_wrapper.py +0 -0
  433. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/validation.py +0 -0
  434. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/version_compat.py +0 -0
  435. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/__init__.py +0 -0
  436. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/base.py +0 -0
  437. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
  438. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
  439. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
  440. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/wrappers.py +0 -0
  441. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/__init__.py +0 -0
  442. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/base.py +0 -0
  443. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/batch.py +0 -0
  444. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/local.py +0 -0
  445. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/streaming.py +0 -0
  446. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/__init__.py +0 -0
  447. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/adapters.py +0 -0
  448. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/bindings.py +0 -0
  449. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/canonical.py +0 -0
  450. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/cascade.py +0 -0
  451. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/certificates.py +0 -0
  452. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/composites.py +0 -0
  453. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/kinds.py +0 -0
  454. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/patterns.py +0 -0
  455. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/resolution.py +0 -0
  456. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/resolver.py +0 -0
  457. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/runtime.py +0 -0
  458. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/signals.py +0 -0
  459. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/telemetry.py +0 -0
  460. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/mcp/__init__.py +0 -0
  461. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/mcp/server.py +0 -0
  462. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/mcp/tools.py +0 -0
  463. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/__init__.py +0 -0
  464. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/agent_metrics.py +0 -0
  465. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/content_features.py +0 -0
  466. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/deepeval_metrics.py +0 -0
  467. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/ragas_metrics.py +0 -0
  468. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/registry.py +0 -0
  469. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/__init__.py +0 -0
  470. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/agent_spans.py +0 -0
  471. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/client.py +0 -0
  472. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/config.py +0 -0
  473. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/decorators.py +0 -0
  474. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/dtos.py +0 -0
  475. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/__init__.py +0 -0
  476. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/base.py +0 -0
  477. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/batch_optimizers.py +0 -0
  478. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/cloud_optimizer.py +0 -0
  479. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/grid.py +0 -0
  480. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/random.py +0 -0
  481. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/registry.py +0 -0
  482. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/remote.py +0 -0
  483. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/remote_services.py +0 -0
  484. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/results.py +0 -0
  485. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/__init__.py +0 -0
  486. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/loader.py +0 -0
  487. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/model.py +0 -0
  488. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/scaffold.py +0 -0
  489. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
  490. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/staleness.py +0 -0
  491. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/validator.py +0 -0
  492. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/plugins/__init__.py +0 -0
  493. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/plugins/registry.py +0 -0
  494. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/projects/__init__.py +0 -0
  495. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/projects/client.py +0 -0
  496. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/projects/config.py +0 -0
  497. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/projects/dtos.py +0 -0
  498. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/prompts/__init__.py +0 -0
  499. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/prompts/client.py +0 -0
  500. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/prompts/config.py +0 -0
  501. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/prompts/dtos.py +0 -0
  502. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/providers/__init__.py +0 -0
  503. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/providers/validation.py +0 -0
  504. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/py.typed +0 -0
  505. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/reporting/__init__.py +0 -0
  506. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/reporting/example_map.py +0 -0
  507. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/__init__.py +0 -0
  508. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/audit.py +0 -0
  509. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/__init__.py +0 -0
  510. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/helpers.py +0 -0
  511. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/mfa.py +0 -0
  512. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/models.py +0 -0
  513. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/oidc.py +0 -0
  514. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/saml.py +0 -0
  515. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/sms.py +0 -0
  516. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/totp.py +0 -0
  517. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/config.py +0 -0
  518. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/credentials.py +0 -0
  519. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/crypto_utils.py +0 -0
  520. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/deployment.py +0 -0
  521. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/encryption.py +0 -0
  522. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/enterprise.py +0 -0
  523. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/headers.py +0 -0
  524. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/input_validation.py +0 -0
  525. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/jwt_validator.py +0 -0
  526. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/rate_limiter.py +0 -0
  527. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/redaction.py +0 -0
  528. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/session_manager.py +0 -0
  529. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/tenant.py +0 -0
  530. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
  531. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
  532. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
  533. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
  534. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
  535. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
  536. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/SKILL.md +0 -0
  537. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
  538. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
  539. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
  540. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/SKILL.md +0 -0
  541. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
  542. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
  543. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
  544. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/SKILL.md +0 -0
  545. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
  546. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
  547. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
  548. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
  549. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
  550. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
  551. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/SKILL.md +0 -0
  552. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
  553. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
  554. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
  555. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/storage/__init__.py +0 -0
  556. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/storage/local_storage.py +0 -0
  557. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/testing/__init__.py +0 -0
  558. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/traigent_client.py +0 -0
  559. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/traigent_integration.py +0 -0
  560. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/__init__.py +0 -0
  561. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/dataflow_strategy.py +0 -0
  562. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/detection_strategies.py +0 -0
  563. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/detection_types.py +0 -0
  564. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/detector.py +0 -0
  565. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/discovery.py +0 -0
  566. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/observation.py +0 -0
  567. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/py.typed +0 -0
  568. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/__init__.py +0 -0
  569. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/__main__.py +0 -0
  570. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/models.py +0 -0
  571. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/objectives.py +0 -0
  572. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/options.py +0 -0
  573. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/promotion_gate.py +0 -0
  574. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/registry.py +0 -0
  575. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/spec_loader.py +0 -0
  576. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/spec_validator.py +0 -0
  577. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/statistics.py +0 -0
  578. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/__init__.py +0 -0
  579. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/artifact_fingerprints.py +0 -0
  580. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/batch_optimizer_utils.py +0 -0
  581. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/batch_processing.py +0 -0
  582. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/callbacks.py +0 -0
  583. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/console.py +0 -0
  584. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/constraints.py +0 -0
  585. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/cost_calculator.py +0 -0
  586. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/diagnostics.py +0 -0
  587. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/discrete_domains.py +0 -0
  588. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/env_config.py +0 -0
  589. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/error_handler.py +0 -0
  590. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/example_id.py +0 -0
  591. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/exceptions.py +0 -0
  592. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/file_versioning.py +0 -0
  593. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/function_identity.py +0 -0
  594. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/hashing.py +0 -0
  595. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/importance.py +0 -0
  596. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/incentives.py +0 -0
  597. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/insights.py +0 -0
  598. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/langchain_interceptor.py +0 -0
  599. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/litellm_interceptor.py +0 -0
  600. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/llm_response_parsing.py +0 -0
  601. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/local_analytics.py +0 -0
  602. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/logging.py +0 -0
  603. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/multi_objective.py +0 -0
  604. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/numpy_compat.py +0 -0
  605. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/objectives.py +0 -0
  606. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/optimization_analyzer.py +0 -0
  607. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/optimization_logger.py +0 -0
  608. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/pagination.py +0 -0
  609. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/persistence.py +0 -0
  610. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/results_table.py +0 -0
  611. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/retry.py +0 -0
  612. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/secure_path.py +0 -0
  613. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/url_security.py +0 -0
  614. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/validation.py +0 -0
  615. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/visualization/__init__.py +0 -0
  616. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/visualization/plots.py +0 -0
  617. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/wrapper/__init__.py +0 -0
  618. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/wrapper/errors.py +0 -0
  619. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/wrapper/server.py +0 -0
  620. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/wrapper/service.py +0 -0
  621. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/SOURCES.txt +0 -0
  622. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/dependency_links.txt +0 -0
  623. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/entry_points.txt +0 -0
  624. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/requires.txt +0 -0
  625. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/top_level.txt +0 -0
  626. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent_validation/__init__.py +0 -0
  627. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent_validation/base.py +0 -0
  628. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent_validation/plugins.py +0 -0
  629. {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent_validation/py.typed +0 -0
  630. {traigent-0.18.1.dev7 → 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.dev7
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.dev7"
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]:
@@ -761,6 +761,11 @@ class TrialLifecycle:
761
761
  decision = report(payload) if callable(report) else {}
762
762
  if isinstance(decision, dict) and decision.get("prune") is True:
763
763
  reason = decision.get("prune_reason") or "cloud smart pruning"
764
+ logger.info(
765
+ "Cloud smart pruning requested trial pruning after %s examples: %s",
766
+ state["evaluated"],
767
+ reason,
768
+ )
764
769
  raise TrialPrunedError(str(reason), step=int(state["evaluated"]))
765
770
 
766
771
  return _progress_callback, state
@@ -1610,7 +1610,10 @@ class BaseEvaluator(ABC):
1610
1610
 
1611
1611
  if progress_callback:
1612
1612
  progress_callback(
1613
- index, {"success": error is None, "output": output, "error": error}
1613
+ index,
1614
+ self._build_non_detailed_progress_payload(
1615
+ example, index, output, error
1616
+ ),
1614
1617
  )
1615
1618
 
1616
1619
  return output, error
@@ -1643,6 +1646,7 @@ class BaseEvaluator(ABC):
1643
1646
  config,
1644
1647
  example,
1645
1648
  i,
1649
+ dataset,
1646
1650
  executor=None,
1647
1651
  progress_callback=progress_callback,
1648
1652
  )
@@ -1727,6 +1731,7 @@ class BaseEvaluator(ABC):
1727
1731
  detailed: bool,
1728
1732
  progress_callback: Callable[[int, dict[str, Any]], Any] | None,
1729
1733
  index: int,
1734
+ example: EvaluationExample,
1730
1735
  outputs: list[Any],
1731
1736
  errors: list[str | None],
1732
1737
  example_results: list[ExampleResult | None],
@@ -1742,7 +1747,10 @@ class BaseEvaluator(ABC):
1742
1747
  errors.append(error)
1743
1748
  if progress_callback:
1744
1749
  progress_callback(
1745
- index, {"success": error is None, "output": output, "error": error}
1750
+ index,
1751
+ self._build_non_detailed_progress_payload(
1752
+ example, index, output, error
1753
+ ),
1746
1754
  )
1747
1755
 
1748
1756
  async def _handle_task_result(
@@ -1813,6 +1821,7 @@ class BaseEvaluator(ABC):
1813
1821
  result,
1814
1822
  detailed,
1815
1823
  progress_callback,
1824
+ examples[index],
1816
1825
  outputs_by_index,
1817
1826
  errors_by_index,
1818
1827
  example_results_by_index,
@@ -1845,6 +1854,7 @@ class BaseEvaluator(ABC):
1845
1854
  result: Any,
1846
1855
  detailed: bool,
1847
1856
  progress_callback: Callable[[int, dict[str, Any]], Any] | None,
1857
+ example: EvaluationExample,
1848
1858
  outputs_by_index: dict[int, Any],
1849
1859
  errors_by_index: dict[int, str | None],
1850
1860
  example_results_by_index: dict[int, ExampleResult | None],
@@ -1864,7 +1874,9 @@ class BaseEvaluator(ABC):
1864
1874
  # Note: This is sync in the original, we handle exceptions elsewhere
1865
1875
  progress_callback(
1866
1876
  index,
1867
- {"success": error is None, "output": output, "error": error},
1877
+ self._build_non_detailed_progress_payload(
1878
+ example, index, output, error
1879
+ ),
1868
1880
  )
1869
1881
 
1870
1882
  async def _safe_progress_callback(
@@ -1998,6 +2010,7 @@ class BaseEvaluator(ABC):
1998
2010
  consumed, exhausted = await self._run_concurrent_tasks(
1999
2011
  func,
2000
2012
  config,
2013
+ dataset,
2001
2014
  examples,
2002
2015
  sample_lease,
2003
2016
  detailed,
@@ -2032,6 +2045,7 @@ class BaseEvaluator(ABC):
2032
2045
  self,
2033
2046
  func: Callable[..., Any],
2034
2047
  config: dict[str, Any],
2048
+ dataset: Dataset,
2035
2049
  examples: list[EvaluationExample],
2036
2050
  sample_lease: SampleBudgetLease | None,
2037
2051
  detailed: bool,
@@ -2055,6 +2069,7 @@ class BaseEvaluator(ABC):
2055
2069
  config,
2056
2070
  example,
2057
2071
  idx,
2072
+ dataset,
2058
2073
  executor=None,
2059
2074
  progress_callback=progress_callback,
2060
2075
  )
@@ -2227,37 +2242,239 @@ class BaseEvaluator(ABC):
2227
2242
  result: ExampleResult,
2228
2243
  config: dict[str, Any],
2229
2244
  error: str | None,
2245
+ dataset: Dataset,
2246
+ example_index: int,
2230
2247
  ) -> dict[str, Any]:
2231
2248
  """Build progress callback payload with metrics."""
2232
- metrics_payload: dict[str, float] = {}
2233
-
2234
- if error is None and example.expected_output is not None:
2235
- try:
2236
- metrics_payload["accuracy"] = (
2237
- 1.0
2238
- if _accuracy_values_match(
2239
- result.actual_output, example.expected_output
2240
- )
2241
- else 0.0
2242
- )
2243
- except Exception as exc:
2244
- logger.warning(
2245
- "Failed to compute accuracy metric for example %s: %s",
2246
- example_id,
2247
- exc,
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
- return {
2272
+ payload: dict[str, Any] = {
2256
2273
  "success": result.success,
2257
2274
  "error": result.error_message,
2258
- "metrics": metrics_payload,
2259
2275
  "output": result.actual_output,
2260
2276
  }
2277
+ if metrics_payload:
2278
+ payload["metrics"] = metrics_payload
2279
+ return payload
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
+
2432
+ def _build_progress_accuracy_metrics(
2433
+ self,
2434
+ *,
2435
+ output: Any,
2436
+ expected_output: Any,
2437
+ error: str | None,
2438
+ example_id: str,
2439
+ ) -> dict[str, float]:
2440
+ """Return per-example accuracy using the same comparator as aggregate accuracy."""
2441
+ if error is not None or _is_empty_expected_output(expected_output):
2442
+ return {}
2443
+ try:
2444
+ return {
2445
+ "accuracy": (
2446
+ 1.0 if _accuracy_values_match(output, expected_output) else 0.0
2447
+ )
2448
+ }
2449
+ except Exception as exc:
2450
+ logger.warning(
2451
+ "Failed to compute accuracy metric for example %s: %s",
2452
+ example_id,
2453
+ exc,
2454
+ )
2455
+ return {}
2456
+
2457
+ def _build_non_detailed_progress_payload(
2458
+ self,
2459
+ example: EvaluationExample,
2460
+ index: int,
2461
+ output: Any,
2462
+ error: str | None,
2463
+ ) -> dict[str, Any]:
2464
+ payload: dict[str, Any] = {
2465
+ "success": error is None,
2466
+ "output": output,
2467
+ "error": error,
2468
+ }
2469
+ metrics_payload = self._build_progress_accuracy_metrics(
2470
+ output=output,
2471
+ expected_output=example.expected_output,
2472
+ error=error,
2473
+ example_id=_example_correlation_key(example, index),
2474
+ )
2475
+ if metrics_payload:
2476
+ payload["metrics"] = metrics_payload
2477
+ return payload
2261
2478
 
2262
2479
  def _record_example_trace(
2263
2480
  self,
@@ -2386,6 +2603,7 @@ class BaseEvaluator(ABC):
2386
2603
  config: dict[str, Any],
2387
2604
  example: EvaluationExample,
2388
2605
  example_index: int,
2606
+ dataset: Dataset,
2389
2607
  executor: Any | None = None,
2390
2608
  progress_callback: Callable[[int, dict[str, Any]], Any] | None = None,
2391
2609
  ) -> ExampleResult:
@@ -2452,7 +2670,7 @@ class BaseEvaluator(ABC):
2452
2670
 
2453
2671
  if progress_callback:
2454
2672
  progress_payload = self._build_progress_payload(
2455
- example_id, example, result, config, error
2673
+ example_id, example, result, config, error, dataset, example_index
2456
2674
  )
2457
2675
  try:
2458
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.dev7
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