traigent 0.18.1.dev10__tar.gz → 0.19.1__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 (633) hide show
  1. {traigent-0.18.1.dev10 → traigent-0.19.1}/CHANGELOG.md +110 -0
  2. {traigent-0.18.1.dev10/traigent.egg-info → traigent-0.19.1}/PKG-INFO +2 -2
  3. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/api-reference/complete-function-specification.md +1 -0
  4. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/api-reference/decorator-reference.md +3 -2
  5. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/api-reference/telemetry.md +40 -14
  6. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/architecture/stop_conditions.md +57 -7
  7. {traigent-0.18.1.dev10 → traigent-0.19.1}/pyproject.toml +5 -3
  8. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/adapters/execution_adapter.py +2 -2
  9. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/predictive.py +0 -15
  10. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/render.py +2 -1
  11. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/config_builder.py +0 -8
  12. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/decorators.py +122 -23
  13. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/functions.py +12 -9
  14. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/parameter_validator.py +4 -20
  15. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/types.py +34 -4
  16. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/auth_commands.py +47 -0
  17. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/local_commands.py +5 -2
  18. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/playbook_commands.py +32 -8
  19. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/sync_commands.py +17 -0
  20. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/__init__.py +35 -0
  21. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/analytics_client.py +68 -0
  22. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/api_operations.py +52 -6
  23. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/async_batch_transport.py +1 -1
  24. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/backend_client.py +159 -20
  25. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/client.py +1 -1
  26. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/dtos.py +674 -5
  27. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/integration_manager.py +17 -10
  28. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/optimizer_client.py +4 -2
  29. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/privacy_operations.py +4 -1
  30. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/session_operations.py +126 -7
  31. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/subset_selection.py +1 -1
  32. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/sync_manager.py +95 -4
  33. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/trial_operations.py +106 -34
  34. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/types.py +240 -93
  35. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/subsystems/tvar_recommendations.py +2 -2
  36. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/backend_session_manager.py +47 -5
  37. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/best_config_runtime.py +10 -1
  38. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/ci_approval.py +42 -20
  39. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/config_state_manager.py +5 -0
  40. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/constants.py +3 -2
  41. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/cost_enforcement.py +104 -6
  42. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/evaluator_wrapper.py +2 -1
  43. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/exception_handler.py +60 -0
  44. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/logger_facade.py +2 -2
  45. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/metadata_helpers.py +17 -3
  46. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/objectives.py +68 -17
  47. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/optimization_pipeline.py +218 -20
  48. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/optimized_function.py +175 -36
  49. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/orchestrator.py +274 -11
  50. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/result_selection.py +311 -9
  51. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/stop_condition_manager.py +20 -0
  52. traigent-0.19.1/traigent/core/stop_conditions.py +1354 -0
  53. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/trial_lifecycle.py +216 -0
  54. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/trial_result_factory.py +53 -0
  55. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/types_ext.py +1 -1
  56. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/base.py +60 -4
  57. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/local.py +28 -6
  58. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/metrics_tracker.py +138 -28
  59. traigent-0.19.1/traigent/examples/_portal.py +8 -0
  60. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/quickstart/_env.py +2 -2
  61. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/quickstart/publish_and_verify.py +9 -4
  62. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/tutorial_bootstrap.py +2 -2
  63. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/options.py +1 -1
  64. traigent-0.19.1/traigent/generation/skill_train/_deterministic_indices.py +33 -0
  65. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/artifacts.py +22 -8
  66. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/slow_update.py +2 -3
  67. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/splits.py +3 -5
  68. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/invokers/base.py +8 -3
  69. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/invokers/local.py +4 -2
  70. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/invokers/streaming.py +112 -8
  71. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/metrics/deepeval_metrics.py +126 -2
  72. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/grid.py +4 -17
  73. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/interactive_optimizer.py +61 -2
  74. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/audit.py +31 -8
  75. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/input_validation.py +7 -5
  76. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-decorator-setup/SKILL.md +3 -3
  77. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +3 -3
  78. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-run-optimization/SKILL.md +1 -1
  79. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/storage/local_storage.py +3 -2
  80. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/traigent_client.py +8 -10
  81. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/artifact_fingerprints.py +20 -0
  82. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/diagnostics.py +3 -2
  83. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/env_config.py +7 -4
  84. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/function_identity.py +45 -6
  85. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/incentives.py +2 -2
  86. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/local_analytics.py +2 -2
  87. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/persistence.py +37 -20
  88. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/retry.py +4 -3
  89. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/secure_path.py +1 -19
  90. {traigent-0.18.1.dev10 → traigent-0.19.1/traigent.egg-info}/PKG-INFO +2 -2
  91. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent.egg-info/SOURCES.txt +2 -0
  92. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent.egg-info/requires.txt +1 -1
  93. traigent-0.18.1.dev10/traigent/core/stop_conditions.py +0 -662
  94. {traigent-0.18.1.dev10 → traigent-0.19.1}/COMMERCIAL-LICENSE.md +0 -0
  95. {traigent-0.18.1.dev10 → traigent-0.19.1}/CONTRIBUTING.md +0 -0
  96. {traigent-0.18.1.dev10 → traigent-0.19.1}/CONTRIBUTOR-LICENSING.md +0 -0
  97. {traigent-0.18.1.dev10 → traigent-0.19.1}/DISCLAIMER.md +0 -0
  98. {traigent-0.18.1.dev10 → traigent-0.19.1}/LICENSE +0 -0
  99. {traigent-0.18.1.dev10 → traigent-0.19.1}/MANIFEST.in +0 -0
  100. {traigent-0.18.1.dev10 → traigent-0.19.1}/NOTICE +0 -0
  101. {traigent-0.18.1.dev10 → traigent-0.19.1}/README.md +0 -0
  102. {traigent-0.18.1.dev10 → traigent-0.19.1}/SECURITY.md +0 -0
  103. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/LOCAL_CI_GATE.md +0 -0
  104. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/README.md +0 -0
  105. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/SYNC_MAP.md +0 -0
  106. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/agent-skill.md +0 -0
  107. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/api-reference/enterprise-beta-api.md +0 -0
  108. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/api-reference/interactive_optimizer.md +0 -0
  109. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/api-reference/thread-pool-examples.md +0 -0
  110. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/architecture/ARCHITECTURE.md +0 -0
  111. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/architecture/cost-architecture-validation.md +0 -0
  112. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/architecture/execution_mode_follow_up.md +0 -0
  113. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/architecture/integrations-inventory.md +0 -0
  114. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/architecture/plugin_architecture.md +0 -0
  115. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/architecture/project-structure.md +0 -0
  116. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/concepts/composite-knob-ir.md +0 -0
  117. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/concepts/composite-knobs.md +0 -0
  118. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/concepts/guided-generation.md +0 -0
  119. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
  120. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
  121. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/contributing/CONTRIBUTING.md +0 -0
  122. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
  123. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/contributing/README.md +0 -0
  124. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/contributing/SECURITY.md +0 -0
  125. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/contributing/aikido_triage.md +0 -0
  126. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/contributing/code_review_instructions.md +0 -0
  127. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/contributing/test-quality-guide.md +0 -0
  128. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
  129. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/demos/README.md +0 -0
  130. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/examples/API_PATTERNS.md +0 -0
  131. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/examples/LEARNING_ROADMAP.md +0 -0
  132. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/examples/QUICK_REFERENCE.md +0 -0
  133. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/examples/README.md +0 -0
  134. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/examples/START_HERE.md +0 -0
  135. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/examples/TROUBLESHOOTING.md +0 -0
  136. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/fake-completion-tracking.md +0 -0
  137. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/feature_matrices/README.md +0 -0
  138. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/README.md +0 -0
  139. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/authentication.md +0 -0
  140. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/constraint-dsl.md +0 -0
  141. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/dataflow-detection.md +0 -0
  142. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/framework_override_enhanced_features.md +0 -0
  143. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/mcp-server.md +0 -0
  144. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/observability-spans.md +0 -0
  145. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/onboarding.md +0 -0
  146. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/prompt_management.md +0 -0
  147. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/recommendations.md +0 -0
  148. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/safety-gates.md +0 -0
  149. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/seamless_injection.md +0 -0
  150. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/strategy-presets.md +0 -0
  151. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/features/strict_metrics_nulls.md +0 -0
  152. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/getting-started/GETTING_STARTED.md +0 -0
  153. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/getting-started/README.md +0 -0
  154. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/getting-started/installation.md +0 -0
  155. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/getting-started/minimal-integration.md +0 -0
  156. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
  157. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/getting-started/testing.md +0 -0
  158. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
  159. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/guides/evaluation.md +0 -0
  160. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/guides/execution-mode-migration.md +0 -0
  161. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/guides/execution-modes.md +0 -0
  162. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/guides/js-bridge.md +0 -0
  163. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/guides/llm_plugin_migration_guide.md +0 -0
  164. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/guides/parallel-configuration.md +0 -0
  165. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/guides/secrets_management.md +0 -0
  166. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/hybrid-mode-api-contract.md +0 -0
  167. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/hybrid-mode-client-guide.md +0 -0
  168. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/operations/azure_openai.md +0 -0
  169. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/operations/bedrock.md +0 -0
  170. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/operations/google_gemini.md +0 -0
  171. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/security/trust_model.md +0 -0
  172. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
  173. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/traceability/concepts/composite-knob-ir.md +0 -0
  174. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/traceability/concepts/composite-knobs.md +0 -0
  175. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/traceability/concepts/guided-generation.md +0 -0
  176. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/traceability/schema.md +0 -0
  177. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/traceability/tagging_tracking.md +0 -0
  178. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/traceability/taxonomy_reference.md +0 -0
  179. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
  180. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/user-guide/README.md +0 -0
  181. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/user-guide/agent_optimization.md +0 -0
  182. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/user-guide/choosing_optimization_model.md +0 -0
  183. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/user-guide/configuration-spaces.md +0 -0
  184. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/user-guide/evaluation_guide.md +0 -0
  185. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/user-guide/injection_modes.md +0 -0
  186. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/user-guide/interactive_optimization.md +0 -0
  187. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/user-guide/smart_optimization.md +0 -0
  188. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/user-guide/tuned_variables.md +0 -0
  189. {traigent-0.18.1.dev10 → traigent-0.19.1}/docs/walkthrough.md +0 -0
  190. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements-all.txt +0 -0
  191. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements-analytics.txt +0 -0
  192. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements-bayesian.txt +0 -0
  193. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements-chroma.txt +0 -0
  194. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements-dev.txt +0 -0
  195. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements-hybrid.txt +0 -0
  196. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements-integrations.txt +0 -0
  197. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements-security.txt +0 -0
  198. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements-test.txt +0 -0
  199. {traigent-0.18.1.dev10 → traigent-0.19.1}/requirements/requirements.txt +0 -0
  200. {traigent-0.18.1.dev10 → traigent-0.19.1}/setup.cfg +0 -0
  201. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/__init__.py +0 -0
  202. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/_version.py +0 -0
  203. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/admin/__init__.py +0 -0
  204. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/admin/client.py +0 -0
  205. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/admin/config.py +0 -0
  206. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/admin/dtos.py +0 -0
  207. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/agents/__init__.py +0 -0
  208. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/agents/config_mapper.py +0 -0
  209. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/agents/executor.py +0 -0
  210. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/agents/platforms.py +0 -0
  211. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/agents/specification_generator.py +0 -0
  212. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/__init__.py +0 -0
  213. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/anomaly.py +0 -0
  214. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/cost_optimization.py +0 -0
  215. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/example_insights.py +0 -0
  216. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/intelligence.py +0 -0
  217. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/meta_learning.py +0 -0
  218. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/next_steps.py +0 -0
  219. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/optimization_plan.py +0 -0
  220. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics/scheduling.py +0 -0
  221. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics_mcp/__init__.py +0 -0
  222. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics_mcp/server.py +0 -0
  223. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/analytics_mcp/tools.py +0 -0
  224. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/__init__.py +0 -0
  225. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/agent_inference.py +0 -0
  226. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/config_space.py +0 -0
  227. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/constraint_builders.py +0 -0
  228. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/constraints.py +0 -0
  229. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/parameter_ranges.py +0 -0
  230. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/safety.py +0 -0
  231. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/strategy_presets.py +0 -0
  232. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/api/validation_protocol.py +0 -0
  233. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/__init__.py +0 -0
  234. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/detect_tvars_command.py +0 -0
  235. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/function_discovery.py +0 -0
  236. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/generate_config_command.py +0 -0
  237. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/hooks_commands.py +0 -0
  238. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/main.py +0 -0
  239. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/next_steps_command.py +0 -0
  240. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/onboard_commands.py +0 -0
  241. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/optimization_validator.py +0 -0
  242. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/plan_command.py +0 -0
  243. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cli/validation_types.py +0 -0
  244. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/_aiohttp_compat.py +0 -0
  245. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/agent_dtos.py +0 -0
  246. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/analytics_auth.py +0 -0
  247. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/api_key_manager.py +0 -0
  248. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/auth.py +0 -0
  249. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/backend_bridges.py +0 -0
  250. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/backend_components.py +0 -0
  251. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/backend_synchronizer.py +0 -0
  252. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/benchmark_client.py +0 -0
  253. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/billing.py +0 -0
  254. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/cloud_operations.py +0 -0
  255. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/credential_manager.py +0 -0
  256. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/credential_resolver.py +0 -0
  257. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/dataset_converter.py +0 -0
  258. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/governance.py +0 -0
  259. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/models.py +0 -0
  260. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/password_auth_handler.py +0 -0
  261. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/production_mcp_client.py +0 -0
  262. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/remote_guidance.py +0 -0
  263. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/resilient_client.py +0 -0
  264. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/service.py +0 -0
  265. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/session_types.py +0 -0
  266. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/sessions.py +0 -0
  267. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/smart_pruning.py +0 -0
  268. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/token_manager.py +0 -0
  269. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/trial_tracker.py +0 -0
  270. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/url_security.py +0 -0
  271. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/user_agent.py +0 -0
  272. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/cloud/validators.py +0 -0
  273. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/__init__.py +0 -0
  274. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/api_keys.py +0 -0
  275. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/ast_transformer.py +0 -0
  276. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/backend_config.py +0 -0
  277. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/context.py +0 -0
  278. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/feature_flags.py +0 -0
  279. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/models.yaml +0 -0
  280. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/parallel.py +0 -0
  281. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/project.py +0 -0
  282. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/provider_support.py +0 -0
  283. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/providers.py +0 -0
  284. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/runtime_injector.py +0 -0
  285. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config/tenant.py +0 -0
  286. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/__init__.py +0 -0
  287. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/agent_classifier.py +0 -0
  288. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/apply.py +0 -0
  289. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
  290. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
  291. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
  292. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
  293. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/catalog.py +0 -0
  294. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/llm_backend.py +0 -0
  295. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/pipeline.py +0 -0
  296. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/presets/__init__.py +0 -0
  297. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
  298. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
  299. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/presets/constraint_templates.py +0 -0
  300. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/presets/range_presets.py +0 -0
  301. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/recommendations.py +0 -0
  302. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/subsystems/__init__.py +0 -0
  303. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/subsystems/benchmarks.py +0 -0
  304. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/subsystems/objectives.py +0 -0
  305. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
  306. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
  307. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
  308. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/config_generator/types.py +0 -0
  309. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/__init__.py +0 -0
  310. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/cache_policy.py +0 -0
  311. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/cost_estimator.py +0 -0
  312. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/execution_policy_runtime.py +0 -0
  313. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/license.py +0 -0
  314. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/mandatory_metrics.py +0 -0
  315. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/meta_types.py +0 -0
  316. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/metric_registry.py +0 -0
  317. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/metrics_aggregator.py +0 -0
  318. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/namespace.py +0 -0
  319. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/orchestrator_helpers.py +0 -0
  320. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/parallel_execution_manager.py +0 -0
  321. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/progress_manager.py +0 -0
  322. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/sample_budget.py +0 -0
  323. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/samplers/__init__.py +0 -0
  324. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/samplers/random_sampler.py +0 -0
  325. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/session_context.py +0 -0
  326. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/session_types.py +0 -0
  327. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/stat_significance.py +0 -0
  328. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/trace_env.py +0 -0
  329. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/tracing.py +0 -0
  330. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/trial_context.py +0 -0
  331. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/types.py +0 -0
  332. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/utils.py +0 -0
  333. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core/workflow_trace_manager.py +0 -0
  334. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core_metrics/__init__.py +0 -0
  335. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core_metrics/client.py +0 -0
  336. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core_metrics/config.py +0 -0
  337. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/core_metrics/dtos.py +0 -0
  338. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/defaults.py +0 -0
  339. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/effectuation/__init__.py +0 -0
  340. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/effectuation/contracts.py +0 -0
  341. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/effectuation/strategies/__init__.py +0 -0
  342. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/effectuation/strategies/framework_param.py +0 -0
  343. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/effectuation/strategies/self_consistency.py +0 -0
  344. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluation/__init__.py +0 -0
  345. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluation/client.py +0 -0
  346. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluation/config.py +0 -0
  347. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluation/dtos.py +0 -0
  348. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/__init__.py +0 -0
  349. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
  350. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
  351. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/catalog_loader.py +0 -0
  352. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/dataset_registry.py +0 -0
  353. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/hybrid_api.py +0 -0
  354. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/metrics.py +0 -0
  355. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/evaluators/recommendations.py +0 -0
  356. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/__init__.py +0 -0
  357. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/__init__.py +0 -0
  358. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/_bootstrap.py +0 -0
  359. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/_demo.py +0 -0
  360. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/anthropic.py +0 -0
  361. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/aws.py +0 -0
  362. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/azure.py +0 -0
  363. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/gcp.py +0 -0
  364. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/gemini.py +0 -0
  365. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/groq.py +0 -0
  366. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/litellm_any.py +0 -0
  367. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/manifest.json +0 -0
  368. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/openai.py +0 -0
  369. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/openrouter.py +0 -0
  370. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/providers/qa_samples.jsonl +0 -0
  371. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/quickstart/__init__.py +0 -0
  372. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/quickstart/__main__.py +0 -0
  373. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
  374. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/__init__.py +0 -0
  375. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/backend_provider.py +0 -0
  376. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/example_synth.py +0 -0
  377. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/llm_provider.py +0 -0
  378. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/loop.py +0 -0
  379. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/models.py +0 -0
  380. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/prompt_rewriter.py +0 -0
  381. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/__init__.py +0 -0
  382. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/buffer.py +0 -0
  383. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/document.py +0 -0
  384. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/edits.py +0 -0
  385. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/prompts.py +0 -0
  386. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/reflection.py +0 -0
  387. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/schedule.py +0 -0
  388. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/trainer.py +0 -0
  389. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/skill_train/trainer_result.py +0 -0
  390. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/generation/validators.py +0 -0
  391. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/guaranteed_modes.py +0 -0
  392. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hooks/__init__.py +0 -0
  393. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hooks/config.py +0 -0
  394. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hooks/installer.py +0 -0
  395. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hooks/validator.py +0 -0
  396. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hybrid/__init__.py +0 -0
  397. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hybrid/discovery.py +0 -0
  398. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hybrid/http_transport.py +0 -0
  399. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hybrid/lifecycle.py +0 -0
  400. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hybrid/mcp_transport.py +0 -0
  401. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hybrid/protocol.py +0 -0
  402. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/hybrid/transport.py +0 -0
  403. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/__init__.py +0 -0
  404. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/activation.py +0 -0
  405. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/base.py +0 -0
  406. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/base_plugin.py +0 -0
  407. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/bedrock_client.py +0 -0
  408. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/config.py +0 -0
  409. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/dspy_adapter.py +0 -0
  410. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/framework_override.py +0 -0
  411. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/langchain/__init__.py +0 -0
  412. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/langchain/handler.py +0 -0
  413. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/langfuse/__init__.py +0 -0
  414. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/langfuse/callback.py +0 -0
  415. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/langfuse/client.py +0 -0
  416. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/langfuse/tracker.py +0 -0
  417. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/__init__.py +0 -0
  418. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/anthropic_plugin.py +0 -0
  419. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
  420. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/base_llm_plugin.py +0 -0
  421. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/bedrock_plugin.py +0 -0
  422. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/cohere_plugin.py +0 -0
  423. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/gemini_plugin.py +0 -0
  424. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/huggingface_plugin.py +0 -0
  425. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/langchain/__init__.py +0 -0
  426. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/langchain/base.py +0 -0
  427. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/langchain_plugin.py +0 -0
  428. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/litellm_plugin.py +0 -0
  429. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
  430. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/mistral_plugin.py +0 -0
  431. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/openai.py +0 -0
  432. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/llms/openai_plugin.py +0 -0
  433. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/mappings.py +0 -0
  434. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/model_discovery/__init__.py +0 -0
  435. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
  436. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
  437. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/model_discovery/base.py +0 -0
  438. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/model_discovery/cache.py +0 -0
  439. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
  440. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
  441. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
  442. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/model_discovery/registry.py +0 -0
  443. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/observability/__init__.py +0 -0
  444. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/observability/mlflow.py +0 -0
  445. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/observability/wandb.py +0 -0
  446. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/observability/workflow_traces.py +0 -0
  447. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/plugin_registry.py +0 -0
  448. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/providers.py +0 -0
  449. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/pydantic_ai/__init__.py +0 -0
  450. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/pydantic_ai/_types.py +0 -0
  451. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/pydantic_ai/handler.py +0 -0
  452. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/pydantic_ai/plugin.py +0 -0
  453. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/utils/__init__.py +0 -0
  454. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/utils/discovery.py +0 -0
  455. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/utils/message_coercion.py +0 -0
  456. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/utils/mock_adapter.py +0 -0
  457. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/utils/parameter_normalizer.py +0 -0
  458. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/utils/response_wrapper.py +0 -0
  459. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/utils/validation.py +0 -0
  460. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/utils/version_compat.py +0 -0
  461. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/vector_stores/__init__.py +0 -0
  462. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/vector_stores/base.py +0 -0
  463. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
  464. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
  465. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
  466. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/integrations/wrappers.py +0 -0
  467. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/invokers/__init__.py +0 -0
  468. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/invokers/batch.py +0 -0
  469. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/__init__.py +0 -0
  470. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/adapters.py +0 -0
  471. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/bindings.py +0 -0
  472. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/canonical.py +0 -0
  473. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/cascade.py +0 -0
  474. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/certificates.py +0 -0
  475. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/composites.py +0 -0
  476. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/kinds.py +0 -0
  477. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/patterns.py +0 -0
  478. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/resolution.py +0 -0
  479. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/resolver.py +0 -0
  480. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/runtime.py +0 -0
  481. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/signals.py +0 -0
  482. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/knobs/telemetry.py +0 -0
  483. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/mcp/__init__.py +0 -0
  484. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/mcp/server.py +0 -0
  485. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/mcp/tools.py +0 -0
  486. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/metrics/__init__.py +0 -0
  487. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/metrics/agent_metrics.py +0 -0
  488. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/metrics/content_features.py +0 -0
  489. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/metrics/ragas_metrics.py +0 -0
  490. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/metrics/registry.py +0 -0
  491. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/observability/__init__.py +0 -0
  492. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/observability/agent_spans.py +0 -0
  493. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/observability/client.py +0 -0
  494. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/observability/config.py +0 -0
  495. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/observability/decorators.py +0 -0
  496. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/observability/dtos.py +0 -0
  497. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/__init__.py +0 -0
  498. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/base.py +0 -0
  499. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/batch_optimizers.py +0 -0
  500. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/cloud_optimizer.py +0 -0
  501. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/random.py +0 -0
  502. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/registry.py +0 -0
  503. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/remote.py +0 -0
  504. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/remote_services.py +0 -0
  505. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/optimizers/results.py +0 -0
  506. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/playbook/__init__.py +0 -0
  507. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/playbook/loader.py +0 -0
  508. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/playbook/model.py +0 -0
  509. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/playbook/scaffold.py +0 -0
  510. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
  511. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/playbook/staleness.py +0 -0
  512. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/playbook/validator.py +0 -0
  513. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/plugins/__init__.py +0 -0
  514. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/plugins/registry.py +0 -0
  515. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/projects/__init__.py +0 -0
  516. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/projects/client.py +0 -0
  517. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/projects/config.py +0 -0
  518. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/projects/dtos.py +0 -0
  519. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/prompts/__init__.py +0 -0
  520. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/prompts/client.py +0 -0
  521. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/prompts/config.py +0 -0
  522. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/prompts/dtos.py +0 -0
  523. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/providers/__init__.py +0 -0
  524. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/providers/validation.py +0 -0
  525. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/py.typed +0 -0
  526. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/reporting/__init__.py +0 -0
  527. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/reporting/example_map.py +0 -0
  528. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/__init__.py +0 -0
  529. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/auth/__init__.py +0 -0
  530. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/auth/helpers.py +0 -0
  531. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/auth/mfa.py +0 -0
  532. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/auth/models.py +0 -0
  533. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/auth/oidc.py +0 -0
  534. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/auth/saml.py +0 -0
  535. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/auth/sms.py +0 -0
  536. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/auth/totp.py +0 -0
  537. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/config.py +0 -0
  538. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/credentials.py +0 -0
  539. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/crypto_utils.py +0 -0
  540. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/deployment.py +0 -0
  541. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/encryption.py +0 -0
  542. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/enterprise.py +0 -0
  543. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/headers.py +0 -0
  544. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/jwt_validator.py +0 -0
  545. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/rate_limiter.py +0 -0
  546. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/redaction.py +0 -0
  547. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/session_manager.py +0 -0
  548. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/security/tenant.py +0 -0
  549. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
  550. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
  551. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
  552. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
  553. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
  554. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
  555. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-debugging/SKILL.md +0 -0
  556. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
  557. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
  558. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
  559. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
  560. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
  561. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-integrations/SKILL.md +0 -0
  562. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
  563. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
  564. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
  565. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
  566. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
  567. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
  568. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
  569. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
  570. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
  571. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/storage/__init__.py +0 -0
  572. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/testing/__init__.py +0 -0
  573. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/traigent_integration.py +0 -0
  574. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tuned_variables/__init__.py +0 -0
  575. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tuned_variables/dataflow_strategy.py +0 -0
  576. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tuned_variables/detection_strategies.py +0 -0
  577. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tuned_variables/detection_types.py +0 -0
  578. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tuned_variables/detector.py +0 -0
  579. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tuned_variables/discovery.py +0 -0
  580. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tuned_variables/observation.py +0 -0
  581. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tuned_variables/py.typed +0 -0
  582. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/__init__.py +0 -0
  583. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/__main__.py +0 -0
  584. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/models.py +0 -0
  585. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/objectives.py +0 -0
  586. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/options.py +0 -0
  587. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/promotion_gate.py +0 -0
  588. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/registry.py +0 -0
  589. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/spec_loader.py +0 -0
  590. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/spec_validator.py +0 -0
  591. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/tvl/statistics.py +0 -0
  592. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/__init__.py +0 -0
  593. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/batch_optimizer_utils.py +0 -0
  594. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/batch_processing.py +0 -0
  595. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/callbacks.py +0 -0
  596. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/console.py +0 -0
  597. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/constraints.py +0 -0
  598. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/cost_calculator.py +0 -0
  599. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/discrete_domains.py +0 -0
  600. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/error_handler.py +0 -0
  601. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/example_id.py +0 -0
  602. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/exceptions.py +0 -0
  603. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/file_versioning.py +0 -0
  604. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/hashing.py +0 -0
  605. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/importance.py +0 -0
  606. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/insights.py +0 -0
  607. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/langchain_interceptor.py +0 -0
  608. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/litellm_interceptor.py +0 -0
  609. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/llm_response_parsing.py +0 -0
  610. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/logging.py +0 -0
  611. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/multi_objective.py +0 -0
  612. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/numpy_compat.py +0 -0
  613. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/objectives.py +0 -0
  614. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/optimization_analyzer.py +0 -0
  615. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/optimization_logger.py +0 -0
  616. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/pagination.py +0 -0
  617. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/results_table.py +0 -0
  618. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/url_security.py +0 -0
  619. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/utils/validation.py +0 -0
  620. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/visualization/__init__.py +0 -0
  621. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/visualization/plots.py +0 -0
  622. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/wrapper/__init__.py +0 -0
  623. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/wrapper/errors.py +0 -0
  624. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/wrapper/server.py +0 -0
  625. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent/wrapper/service.py +0 -0
  626. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent.egg-info/dependency_links.txt +0 -0
  627. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent.egg-info/entry_points.txt +0 -0
  628. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent.egg-info/top_level.txt +0 -0
  629. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent_validation/__init__.py +0 -0
  630. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent_validation/base.py +0 -0
  631. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent_validation/plugins.py +0 -0
  632. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent_validation/py.typed +0 -0
  633. {traigent-0.18.1.dev10 → traigent-0.19.1}/traigent_validation/validators.py +0 -0
@@ -6,6 +6,86 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.19.1] - 2026-07-03
10
+
11
+ No-silent-legacy hardening release: five classes of silent failure now either
12
+ work correctly or fail loudly.
13
+
14
+ ### Fixed
15
+ - `ObjectiveSchema` weights now govern `best_config` selection for grid/random
16
+ runs via observed-range (min-max, orientation-aware) weighted scoring;
17
+ per-trial `metrics["score"]` is populated and post-hoc
18
+ `calculate_weighted_scores` uses the same scorer. Flipping weights
19
+ 0.9/0.1 ↔ 0.1/0.9 on an accuracy/cost tradeoff now flips the winner. (#1682)
20
+ - `warm_start_transfer` returned in the session-create response now reaches
21
+ `result.metadata` (previously dropped; runs reported `no_seed_configs` from
22
+ valid cloud-tracked priors). An explicit `warm_start_from` that applies 0
23
+ seeds emits a warning naming the refusal reason. (#1683)
24
+ - Dataset file-not-found errors name the resolution rule
25
+ (`TRAIGENT_DATASET_ROOT` vs cwd), the registry-resolved path, and the exact
26
+ candidate tried — the doubled-path case is self-diagnosing. (#1684)
27
+
28
+ ### Changed (fail loud instead of silent)
29
+ - Smart algorithms (`bayesian`, `tpe`, `cmaes`, `nsga2`, `optuna*`) raise an
30
+ actionable error when the managed cloud path cannot execute them, instead of
31
+ returning a silent 0-trial COMPLETED result with `best_config=None`. Runtime
32
+ `optimize(algorithm=...)` smart overrides re-resolve to cloud-required
33
+ policy (no silent local fallback). (#1681)
34
+ - `.optimize()` rejects decorator-only arguments at call time with a
35
+ move-it-to-the-decorator `TypeError` — `warm_start_from` and 39 sibling
36
+ options were previously swallowed silently. (#1683)
37
+ - Deprecated `execution_mode` selectors (notably `"edge_analytics"`) raise
38
+ `ConfigurationError` with `algorithm=` + `offline=` migration guidance on
39
+ every entry path (decorator, `initialize`, `TraigentConfig`, client) —
40
+ previously a silent 0-trial run. On the wire, `metadata["mode"]` now carries
41
+ the canonical `local`/`hybrid`/`hybrid_api` vocabulary. (#1684, #1393)
42
+ - Nonpositive cost limits raise at configuration time; a budget-gate block
43
+ logs "budget gate blocked N planned trials (estimated $X > limit $Y)"
44
+ instead of silently completing with 0 trials. (#1684)
45
+ - Flagship multi-objective examples and docs migrated off removed/deprecated
46
+ parameters (`execution_mode`, `budget_limit`). (#1684)
47
+
48
+ ## [0.19.0] - 2026-07-03
49
+
50
+ ### Added
51
+ - `SemanticSaturationStopCondition` rebuilt from the shipped schema plan
52
+ (FR-SDK-SEMANTIC-SATURATION-V1).
53
+ - Surrogate (pre-screen) evaluator: a cheap second scorer over captured
54
+ outputs, with an e2e co-evolution demo in mock mode.
55
+ - Smart-pruning producer wired end-to-end: per-example pruning is reachable
56
+ from the SDK, with real per-example accuracy threaded into pruning progress
57
+ and live-e2e-confirmed correctness/durability fixes.
58
+ - `list_sessions()` with typed `SessionSummary`; `delete_session` defaults to
59
+ non-destructive and `cascade=True` now calls the backend DELETE.
60
+ - Experiment group analytics client.
61
+
62
+ ### Changed
63
+ - Deprecation warnings for the legacy session contract and the
64
+ `edge_analytics` wire value (now `local`).
65
+ - Self-describing default experiment names.
66
+ - Real streaming token-cost accounting with a plausibility clamp on
67
+ self-reported costs; `budget.max_cost_usd` is sent on typed session create
68
+ so the backend cost cap arms.
69
+
70
+ ### Fixed
71
+ - Abort on systematic provider failures instead of reporting fake
72
+ convergence; fail fast when the optimizer is unavailable instead of
73
+ hanging.
74
+ - Offline-sync finalization is status-aware and skips terminal non-COMPLETED
75
+ experiments; sync CLI surfaces terminal-skip warnings.
76
+ - Trial-results table no longer double-scales 0-100 metrics; cost capture
77
+ works when the config has no `model` key.
78
+ - `FunctionDescriptor` identity, metric batching, and audit-alert
79
+ ratchet-surfaced bugs.
80
+
81
+ ### Security
82
+ - `RestrictedUnpickler` pinned to a precise (module, name) allowlist,
83
+ closing a pickle deserialization RCE vector.
84
+ - CLI login rate limiting enforced; file-read containment for CWE-23.
85
+ - Sensitive tuned config values are redacted on the privacy-mode submission
86
+ path; safety-sensitive-key blocking is non-bypassable on best-config
87
+ drift; CI-approval token expiry compared in UTC.
88
+
9
89
  ## [0.18.0] - 2026-06-27
10
90
 
11
91
  ### Added
@@ -26,6 +106,29 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
26
106
  var (`OPTUNA_ROLLOUT`, renamed during the managed-routing migration).
27
107
  - Smart algorithms (`bayesian` and the Optuna family) now route to the Traigent
28
108
  cloud; the local SDK supports `grid` and `random` only.
109
+ - Removed 7 production-dead internal modules (`config_builder`,
110
+ `llm_processor`, `refactoring_utils`, `service_registry`, `event_manager`,
111
+ `langchain/discovery`, empty `telemetry` package) and their tests.
112
+
113
+ ### Fixed
114
+ - Per-config `cost` metric is now wired to the authoritative `total_cost`, so
115
+ the `minimize cost` objective is no longer inert and the portal no longer
116
+ shows `$0` per config on a real paid run; a model unpriced at runtime is
117
+ surfaced on the result (and fails closed under
118
+ `TRAIGENT_STRICT_COST_ACCOUNTING`).
119
+ - `traigent sync` / `traigent local sync` no longer fail every completed
120
+ session with `409 EXPERIMENT_HAS_NO_RUNS`; sync now creates the experiment
121
+ `PENDING`, uploads runs, finalizes to `COMPLETED`, resumes idempotently, and
122
+ returns a non-zero exit on failure.
123
+ - Runtime `optimize(algorithm="grid"|"random")` with a portal key now stays
124
+ local and exhaustive instead of routing to the cloud sampler.
125
+ - `traigent quickstart` runs on a bare install (uses base `litellm`, not the
126
+ `integrations` LangChain extra) and fails closed when no trial succeeds.
127
+ - `ObjectiveDefinition` fails closed on unimplemented normalization strategies
128
+ (`z_score`/`robust`) instead of silently behaving like `min_max`.
129
+
130
+ ### Dependencies
131
+ - Bumped `langsmith` 0.8.3 → 0.8.18 and `pydantic-settings` 2.14.1 → 2.14.2.
29
132
 
30
133
  ## [0.14.1] - 2026-06-19
31
134
 
@@ -123,6 +226,13 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
123
226
  - **`langgraph-checkpoint` 3.x → 4.x:** the 4.0 release drops default deserialization of payloads serialized with the legacy `"json"` serde mode. Users running `langgraph` with a persistent checkpoint saver (SQLite, Postgres, Redis, etc.) whose stored state contains JSON-format blobs will see deserialization failures unless they configure `serde` with an explicit `allowed_json_modules` list. Traigent does not bind `langgraph-checkpoint` directly — it arrives transitively through the `langgraph` dependency — so this only affects projects that also use `langgraph` checkpointers in their own code. See [CVE-2026-27794](https://github.com/langchain-ai/langgraph/security/advisories) for the underlying RCE that motivated removing the default.
124
227
 
125
228
  ### Changed
229
+ - **CI approval gate:** running `optimize()` in local/offline mode within a CI
230
+ environment now requires explicit approval via `TRAIGENT_RUN_APPROVED=1`.
231
+ `TRAIGENT_MOCK_LLM` no longer bypasses this gate — mock and offline runs in
232
+ CI are intentionally included (a purpose-built approval signal replaces an
233
+ env-var bypass of a security control). Cloud-mode runs are unaffected.
234
+ Migration: set `TRAIGENT_RUN_APPROVED=1` in CI for legitimately-approved
235
+ runs.
126
236
  - **Strict evidence modes now fail closed in promotion** (#1103,
127
237
  FR-SDK-FAIL-CLOSED-PROMOTION-V1). When a TVL promotion policy declares a strict
128
238
  evidence mode — `require_calibration.enabled: true` or `chance_constraints` —
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: traigent
3
- Version: 0.18.1.dev10
3
+ Version: 0.19.1
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
@@ -92,7 +92,7 @@ Requires-Dist: mcp>=1.27.0; extra == "hybrid"
92
92
  Provides-Extra: mcp
93
93
  Requires-Dist: mcp>=1.27.0; extra == "mcp"
94
94
  Provides-Extra: internal-schema
95
- Requires-Dist: traigent-schema==4.1.0; extra == "internal-schema"
95
+ Requires-Dist: traigent-schema==4.7.1; extra == "internal-schema"
96
96
  Provides-Extra: test
97
97
  Requires-Dist: pytest>=9.0.3; extra == "test"
98
98
  Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
@@ -247,6 +247,7 @@ async def optimize(
247
247
  | `metric_limit` / `metric_name` / `metric_include_pruned` | Configure soft cumulative-metric early stopping. |
248
248
  | `budget_limit` / `budget_metric` / `budget_include_pruned` | Deprecated aliases for metric-limit controls. Use `cost_limit` for hard USD spend control. |
249
249
  | `plateau_window` / `plateau_epsilon` | Configure plateau detection stop conditions. |
250
+ | `semantic_saturation` | Configure opt-in semantic saturation. Uses per-example metric-vector churn plus continuous objective improvement and emits sanitized diagnostics in `OptimizationResult.metadata["semantic_saturation"]`. |
250
251
  | `parameter_order` | Grid search only: mapping of parameter names to numeric priorities. Lower values vary slowest; higher values vary fastest. |
251
252
  | `order` | Alias for `parameter_order` (grid search only). |
252
253
 
@@ -596,8 +596,9 @@ approve.
596
596
  )
597
597
  ```
598
598
 
599
- `budget_limit` / `budget_metric` / `budget_include_pruned` are deprecated aliases
600
- for compatibility. Use `cost_limit` for hard USD spend control.
599
+ `budget_limit` / `budget_metric` / `budget_include_pruned` were removed in
600
+ 0.13.0 and now raise `TypeError`. Use `cost_limit` for hard USD spend control,
601
+ or `metric_limit` / `metric_name` for other cumulative metrics.
601
602
 
602
603
  **Stop Conditions**:
603
604
 
@@ -16,7 +16,11 @@ During optimization runs, Traigent collects:
16
16
  - Trial suggested/intermediate/completed timestamps
17
17
  - Trial status (completed, failed, pruned)
18
18
  - Trial duration
19
- - Trial configuration (parameter values being tested, with internal keys stripped)
19
+ - Trial configuration. On the default portal-backed path, this includes tuned
20
+ config-space key/value pairs being tested, with internal keys stripped. If you
21
+ tune prompt variants or other free-text strings as configuration values, those
22
+ tuned values are sent on the default path so the portal can display winning
23
+ configs.
20
24
  - Trial metrics (accuracy, cost, latency, etc.)
21
25
 
22
26
  **Optimization Run Metadata**:
@@ -26,7 +30,7 @@ During optimization runs, Traigent collects:
26
30
  - Total optimization duration
27
31
  - Result source (`cloud_brain`, `local_fallback`, `explicit_local`, or `offline`)
28
32
  - Stop conditions triggered
29
- - Content-free tuned-variable observations can include knob names, enum/scalar values, numeric metrics, and aggregate effectuation events for backend optimization. Set `TRAIGENT_TVAR_OBSERVATION=off` to disable them, or use `TRAIGENT_TVAR_OBSERVATION=hashed` (default) to hash free-form string values. Only `off` and `hashed` are supported; unsupported values fall back to `hashed`.
33
+ - Content-free tuned-variable observations can include knob names, enum/scalar values, numeric metrics, and aggregate effectuation events for backend optimization. Set `TRAIGENT_TVAR_OBSERVATION=off` to disable the `tvar_observation_v1` metadata sub-field, or use `TRAIGENT_TVAR_OBSERVATION=hashed` (default) to hash free-form string values in that sub-field. Only `off` and `hashed` are supported; unsupported values fall back to `hashed`. This setting does not control the trial `config` field.
30
34
 
31
35
  **Performance Metrics**:
32
36
  - LLM API response times
@@ -36,7 +40,8 @@ During optimization runs, Traigent collects:
36
40
 
37
41
  ### What is NOT Collected
38
42
 
39
- Traigent does **not** collect:
43
+ Outside tuned configuration values explicitly sent on the default portal-backed
44
+ path, Traigent does **not** collect:
40
45
 
41
46
  - **User prompts or inputs**
42
47
  - **LLM responses or outputs**
@@ -47,10 +52,25 @@ Traigent does **not** collect:
47
52
 
48
53
  ### Data Boundary and No-Egress Runs
49
54
 
50
- The default portal-backed path sends configuration identifiers and numeric metrics. It
51
- does not send dataset example inputs, expected outputs, prompts, responses, or
52
- example metadata. Use `offline=True` when your policy requires no Traigent
53
- backend egress at all:
55
+ The default portal-backed path sends tuned config-space values and numeric
56
+ metrics. This is deliberate: the portal uses those values to display and compare
57
+ winning configs. If a prompt variant, persona instruction, model name, or other
58
+ string is part of the tuned configuration space, the default path sends that
59
+ string value. It does not send dataset example inputs, expected outputs, model
60
+ responses, or example metadata unless you put that content into the tuned
61
+ configuration itself.
62
+
63
+ Use privacy-mode redaction when you need backend coordination without sending
64
+ tuned string values. Privacy submissions preserve which keys were tuned, but
65
+ redact sensitive-key values and all string/free-text config values. Numeric,
66
+ boolean, and `None` config values still pass through. This redaction is gated by
67
+ the run's effective `TraigentConfig.privacy_enabled` setting, including
68
+ configuration loaded from `TRAIGENT_PRIVACY_MODE=true` for compatibility. Do not
69
+ use `@traigent.optimize(..., privacy_enabled=True)` for new code; that decorator
70
+ keyword is deprecated and emits a warning. Use `offline=True` instead when the
71
+ requirement is no Traigent backend egress.
72
+
73
+ Use `offline=True` when your policy requires no Traigent backend egress at all:
54
74
 
55
75
  ```python
56
76
  @traigent.optimize(
@@ -63,8 +83,10 @@ backend egress at all:
63
83
  No-egress runs keep Traigent optimization metadata local while still allowing your
64
84
  own function to call LLM providers or other services.
65
85
 
66
- Use `TRAIGENT_DISABLE_TELEMETRY=true` for telemetry opt-out and `offline=True`
67
- for zero Traigent backend egress.
86
+ Use `TRAIGENT_DISABLE_TELEMETRY=true` for SDK telemetry opt-out, effective
87
+ `TraigentConfig.privacy_enabled` privacy mode to redact tuned string config
88
+ values on privacy-mode submissions, and `offline=True` for zero Traigent backend
89
+ egress.
68
90
 
69
91
  ### OpenTelemetry Tracing
70
92
 
@@ -128,7 +150,7 @@ Telemetry data is used for:
128
150
  - No data is sent to the Traigent backend
129
151
 
130
152
  **Portal-backed runs**:
131
- - Configuration IDs/schema and numeric metrics can be sent to Traigent backend for optimization coordination
153
+ - Tuned config-space values, configuration IDs/schema, and numeric metrics can be sent to Traigent backend for optimization coordination
132
154
  - Retention policies depend on your managed-service agreement
133
155
  - You can request data deletion at any time
134
156
 
@@ -249,7 +271,10 @@ control and CI artifact collection in sensitive projects.
249
271
  ### Data Sanitization
250
272
 
251
273
  Configuration data is sanitized before telemetry. Private/internal keys
252
- (starting with `_`) are automatically removed.
274
+ (starting with `_`) are automatically removed. On default portal-backed
275
+ submissions, tuned config values are otherwise sent unchanged so the portal can
276
+ display winning configs. On privacy-mode submissions, sensitive-key values and
277
+ all string/free-text config values are redacted while preserving the tuned keys.
253
278
 
254
279
  ### Error Handling
255
280
 
@@ -305,9 +330,10 @@ For HIPAA compliance or handling sensitive data:
305
330
 
306
331
  ### Q: Is telemetry enabled by default?
307
332
 
308
- **A**: Yes, for local optimization metadata. The default portal-backed path sends
309
- configuration IDs/schema and numeric metrics only; use `offline=True` for zero
310
- Traigent backend egress.
333
+ **A**: Yes, for local optimization metadata. The default portal-backed path can
334
+ send tuned config-space values, configuration IDs/schema, and numeric metrics;
335
+ use privacy-mode redaction when backend coordination is needed without tuned
336
+ string values, or `offline=True` for zero Traigent backend egress.
311
337
 
312
338
  ### Q: How do I verify telemetry is disabled?
313
339
 
@@ -29,9 +29,12 @@ Built-in implementations:
29
29
  | `MetricLimitStopCondition` | Soft stop when the cumulative value of a named completed-trial metric reaches a limit. | `metric_limit`, `metric_name`, `metric_include_pruned`. |
30
30
  | `CostLimitStopCondition` | Hard money-spend guard backed by `CostEnforcer` permits before execution starts. Parallel-safe. | `cost_limit`, `cost_approved`. |
31
31
  | `HypervolumeConvergenceStopCondition` | Stops when hypervolume improvement remains below a threshold across a sliding window. | `convergence_metric="hypervolume_improvement"`, `convergence_window`, `convergence_threshold`. |
32
+ | `SemanticSaturationStopCondition` | Stops when per-example quality vectors are stable and monitored continuous objectives are no longer improving. | `semantic_saturation={...}`. |
32
33
 
33
- `budget_limit` remains as a deprecated alias for `metric_limit` for compatibility.
34
- New code should not use it.
34
+ `budget_limit`/`budget_metric`/`budget_include_pruned` were removed in 0.13.0.
35
+ Passing any of them to `@traigent.optimize` or `.optimize(...)` now raises
36
+ `TypeError`. Use `cost_limit` for money-spend control, or `metric_limit`/
37
+ `metric_name` for other cumulative metrics.
35
38
 
36
39
  ## Cost limit vs metric limit
37
40
 
@@ -58,10 +61,12 @@ def chat(question: str) -> str:
58
61
  ...
59
62
  ```
60
63
 
61
- Legacy migration:
64
+ Removed legacy API:
62
65
 
63
66
  ```python
64
- # Deprecated compatibility path. Emits a DeprecationWarning.
67
+ # Raises TypeError: budget_limit/budget_metric/budget_include_pruned were
68
+ # removed in 0.13.0. Use cost_limit=<value> and/or metric_limit=<value> with
69
+ # metric_name=<name> instead.
65
70
  @traigent.optimize(
66
71
  eval_dataset="qa.jsonl",
67
72
  configuration_space={"temperature": [0.0, 0.5, 0.9]},
@@ -72,15 +77,53 @@ def chat(question: str) -> str:
72
77
  ...
73
78
  ```
74
79
 
75
- If a legacy `budget_limit` call omits the metric name, Traigent defaults to
76
- `total_cost` for compatibility and warns that money spend control should use
77
- `cost_limit` instead.
80
+ Migrate to:
81
+
82
+ ```python
83
+ @traigent.optimize(
84
+ eval_dataset="qa.jsonl",
85
+ configuration_space={"temperature": [0.0, 0.5, 0.9]},
86
+ metric_limit=50_000,
87
+ metric_name="total_tokens",
88
+ )
89
+ def chat(question: str) -> str:
90
+ ...
91
+ ```
78
92
 
79
93
  The orchestrator instantiates the conditions during construction via
80
94
  `_configure_stop_conditions()` and calls `reset()` for every run so state never leaks
81
95
  between optimizations. `_should_stop()` evaluates all configured conditions before
82
96
  fallback logic (timeout or optimizer-provided stop signals).
83
97
 
98
+ ## Semantic saturation
99
+
100
+ `semantic_saturation` is an opt-in stop condition for runs where aggregate
101
+ accuracy alone is not enough to decide convergence. It only reads `example_id`
102
+ and numeric or boolean values from each example's `metrics` map. It never reads
103
+ or emits inputs, expected outputs, actual outputs, model text, or document
104
+ content.
105
+
106
+ The condition selects the latest completed trials with distinct configuration
107
+ signatures, warms up until `max(window, min_trials)` distinct configs are
108
+ available, then evaluates the latest `window` configs:
109
+
110
+ * Quality metrics come from `example_score_metrics`/`accuracy_metrics` or from
111
+ accuracy-like and binary per-example metrics.
112
+ * Quality saturation is measured as churn across common example IDs, gated by
113
+ `min_overlap`, `score_tolerance`, and `churn_threshold`.
114
+ * Continuous objectives come from `continuous_objectives`/`objectives`, the
115
+ `ObjectiveSchema`, or cost/latency/token-like aggregate metrics.
116
+ * Continuous objectives use direction-aware best improvement over the window,
117
+ compared to `relative_improvement_epsilon` and
118
+ `absolute_improvement_epsilon`.
119
+
120
+ The run stops only when every quality metric and every continuous objective is
121
+ saturated. When it fires, `OptimizationResult.stop_reason` is
122
+ `"semantic_saturation"`. The latest sanitized decision payload is emitted under
123
+ `OptimizationResult.metadata["semantic_saturation"]` and follows TraigentSchema
124
+ `optimization/semantic_saturation_schema.json`; example ID lists are capped by
125
+ `max_example_ids`.
126
+
84
127
  ## Vendor-error pause semantics
85
128
 
86
129
  When every trial in a parallel batch fails with a vendor-classifiable error
@@ -175,6 +218,8 @@ All three examples share the same stop-condition machinery with no additional
175
218
  plumbing.
176
219
 
177
220
  Built-in convergence stops report `OptimizationResult.stop_reason = "convergence"`.
221
+ Semantic saturation reports
222
+ `OptimizationResult.stop_reason = "semantic_saturation"`.
178
223
  Custom stop-condition instances still report the generic `"condition"` reason
179
224
  unless they are explicitly mapped into the public `StopReason` contract.
180
225
 
@@ -186,6 +231,11 @@ Unit coverage lives under:
186
231
  - Max-trial threshold (including invalid inputs).
187
232
  - Plateau detection, weight handling, reset semantics, and parameter validation.
188
233
  - Metric-limit enforcement, compatibility fallback, and pruned-trial filtering.
234
+ - Stop-condition exports include semantic saturation.
235
+ * `tests/unit/core/test_semantic_saturation_stop_condition.py` – verifies:
236
+ - Stable vectors, boolean scores, aggregate-flat no-stop behavior, repeated
237
+ config warmup, cost-improving continuation, schema-valid result metadata,
238
+ and the privacy boundary.
189
239
  * `tests/unit/core/test_orchestrator.py` – integration tests for plateau and metric limit
190
240
  within the orchestrator, ensuring early termination and reasonable counts in
191
241
  sequential runs.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "traigent"
7
- version = "0.18.1.dev10"
7
+ version = "0.19.1"
8
8
  authors = [
9
9
  {name = "Traigent Team", email = "opensource@traigent.ai"},
10
10
  ]
@@ -137,7 +137,7 @@ mcp = [
137
137
 
138
138
  # Internal schema validation support for DTO strict-validation paths.
139
139
  internal_schema = [
140
- "traigent-schema==4.1.0",
140
+ "traigent-schema==4.7.1",
141
141
  ]
142
142
 
143
143
  # Testing dependencies
@@ -199,7 +199,9 @@ ml = [
199
199
  "scipy>=1.7.0",
200
200
  ]
201
201
 
202
- # DeepEval integration (LLM evaluation metrics as optimization objectives)
202
+ # DeepEval integration (LLM evaluation metrics as optimization objectives).
203
+ # Explicit opt-in only while Aikido/deepeval#2497 telemetry exfiltration remains
204
+ # unfixed upstream; Traigent applies telemetry and TracerProvider guards at import.
203
205
  deepeval = [
204
206
  "deepeval>=1.0.0",
205
207
  ]
@@ -153,12 +153,12 @@ class LocalExecutionAdapter(ExecutionAdapter):
153
153
  }
154
154
 
155
155
  except Exception as e:
156
- logger.error(f"Edge Analytics execution failed: {str(e)}")
156
+ logger.error(f"Local execution failed: {str(e)}")
157
157
  raise
158
158
 
159
159
  async def get_execution_mode(self) -> str:
160
160
  """Get execution mode."""
161
- return ExecutionMode.EDGE_ANALYTICS.value
161
+ return ExecutionMode.LOCAL.value
162
162
 
163
163
  def _evaluate_output(
164
164
  self,
@@ -760,18 +760,6 @@ class PerformanceForecaster:
760
760
  else:
761
761
  avg_score = 0.5
762
762
 
763
- # Check for missing metrics and add warnings
764
- warnings = {}
765
- if (
766
- isinstance(config_or_config_history, dict)
767
- and "metrics" in config_or_config_history
768
- ):
769
- metrics = config_or_config_history["metrics"]
770
- expected_metrics = ["accuracy", "cost", "latency"]
771
- missing = [m for m in expected_metrics if m not in metrics]
772
- if missing:
773
- warnings["missing_metrics"] = missing
774
-
775
763
  result = {
776
764
  "expected_improvement": 0.05,
777
765
  "confidence": 0.7,
@@ -780,9 +768,6 @@ class PerformanceForecaster:
780
768
  "predicted_score": avg_score,
781
769
  }
782
770
 
783
- if warnings:
784
- result["warnings"] = warnings
785
-
786
771
  return result
787
772
 
788
773
 
@@ -19,6 +19,7 @@ optional dependency (``pip install 'traigent[analytics]'`` or
19
19
 
20
20
  from __future__ import annotations
21
21
 
22
+ import math
22
23
  from pathlib import Path
23
24
  from typing import Any, Literal
24
25
 
@@ -92,7 +93,7 @@ def _as_float(value: Any) -> float | None:
92
93
  else:
93
94
  return None
94
95
  # Reject NaN/inf so matplotlib never plots a meaningless point.
95
- if result != result or result in (float("inf"), float("-inf")):
96
+ if not math.isfinite(result):
96
97
  return None
97
98
  return result
98
99
 
@@ -163,14 +163,6 @@ class ConfigurationBuilder:
163
163
  """Clear global configuration."""
164
164
  self.global_config.clear()
165
165
 
166
- @staticmethod
167
- def _normalize_execution_mode(execution_mode: str) -> str:
168
- """Normalize execution mode labels (deprecated)."""
169
- return resolve_execution_policy(
170
- execution_mode=execution_mode,
171
- source_hint="config_builder.normalize_execution_mode",
172
- ).legacy_execution_mode.value
173
-
174
166
 
175
167
  # Module-level functions for backward compatibility
176
168
  def build_optimize_configuration(