traigent 0.18.1.dev4__tar.gz → 0.18.1.dev6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. {traigent-0.18.1.dev4/traigent.egg-info → traigent-0.18.1.dev6}/PKG-INFO +1 -1
  2. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/pyproject.toml +1 -1
  3. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/decorators.py +109 -3
  4. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/client.py +76 -5
  5. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/models.py +34 -0
  6. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/optimized_function.py +17 -4
  7. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/results_table.py +17 -1
  8. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6/traigent.egg-info}/PKG-INFO +1 -1
  9. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/CHANGELOG.md +0 -0
  10. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/COMMERCIAL-LICENSE.md +0 -0
  11. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/CONTRIBUTING.md +0 -0
  12. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/CONTRIBUTOR-LICENSING.md +0 -0
  13. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/DISCLAIMER.md +0 -0
  14. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/LICENSE +0 -0
  15. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/MANIFEST.in +0 -0
  16. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/NOTICE +0 -0
  17. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/README.md +0 -0
  18. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/SECURITY.md +0 -0
  19. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/LOCAL_CI_GATE.md +0 -0
  20. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/README.md +0 -0
  21. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/SYNC_MAP.md +0 -0
  22. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/agent-skill.md +0 -0
  23. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/complete-function-specification.md +0 -0
  24. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/decorator-reference.md +0 -0
  25. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/enterprise-beta-api.md +0 -0
  26. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/interactive_optimizer.md +0 -0
  27. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/telemetry.md +0 -0
  28. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/thread-pool-examples.md +0 -0
  29. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/ARCHITECTURE.md +0 -0
  30. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/cost-architecture-validation.md +0 -0
  31. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/execution_mode_follow_up.md +0 -0
  32. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/integrations-inventory.md +0 -0
  33. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/plugin_architecture.md +0 -0
  34. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/project-structure.md +0 -0
  35. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/stop_conditions.md +0 -0
  36. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/concepts/composite-knob-ir.md +0 -0
  37. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/concepts/composite-knobs.md +0 -0
  38. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/concepts/guided-generation.md +0 -0
  39. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
  40. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
  41. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/CONTRIBUTING.md +0 -0
  42. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
  43. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/README.md +0 -0
  44. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/SECURITY.md +0 -0
  45. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/aikido_triage.md +0 -0
  46. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/code_review_instructions.md +0 -0
  47. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/test-quality-guide.md +0 -0
  48. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
  49. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/demos/README.md +0 -0
  50. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/API_PATTERNS.md +0 -0
  51. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/LEARNING_ROADMAP.md +0 -0
  52. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/QUICK_REFERENCE.md +0 -0
  53. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/README.md +0 -0
  54. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/START_HERE.md +0 -0
  55. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/TROUBLESHOOTING.md +0 -0
  56. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/fake-completion-tracking.md +0 -0
  57. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/feature_matrices/README.md +0 -0
  58. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/README.md +0 -0
  59. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/authentication.md +0 -0
  60. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/constraint-dsl.md +0 -0
  61. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/dataflow-detection.md +0 -0
  62. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/framework_override_enhanced_features.md +0 -0
  63. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/mcp-server.md +0 -0
  64. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/observability-spans.md +0 -0
  65. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/onboarding.md +0 -0
  66. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/prompt_management.md +0 -0
  67. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/recommendations.md +0 -0
  68. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/safety-gates.md +0 -0
  69. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/seamless_injection.md +0 -0
  70. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/strategy-presets.md +0 -0
  71. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/strict_metrics_nulls.md +0 -0
  72. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/GETTING_STARTED.md +0 -0
  73. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/README.md +0 -0
  74. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/installation.md +0 -0
  75. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/minimal-integration.md +0 -0
  76. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
  77. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/testing.md +0 -0
  78. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
  79. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/evaluation.md +0 -0
  80. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/execution-mode-migration.md +0 -0
  81. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/execution-modes.md +0 -0
  82. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/js-bridge.md +0 -0
  83. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/llm_plugin_migration_guide.md +0 -0
  84. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/parallel-configuration.md +0 -0
  85. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/secrets_management.md +0 -0
  86. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/hybrid-mode-api-contract.md +0 -0
  87. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/hybrid-mode-client-guide.md +0 -0
  88. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/operations/azure_openai.md +0 -0
  89. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/operations/bedrock.md +0 -0
  90. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/operations/google_gemini.md +0 -0
  91. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/security/trust_model.md +0 -0
  92. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
  93. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/concepts/composite-knob-ir.md +0 -0
  94. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/concepts/composite-knobs.md +0 -0
  95. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/concepts/guided-generation.md +0 -0
  96. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/schema.md +0 -0
  97. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/tagging_tracking.md +0 -0
  98. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/taxonomy_reference.md +0 -0
  99. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
  100. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/README.md +0 -0
  101. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/agent_optimization.md +0 -0
  102. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/choosing_optimization_model.md +0 -0
  103. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/configuration-spaces.md +0 -0
  104. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/evaluation_guide.md +0 -0
  105. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/injection_modes.md +0 -0
  106. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/interactive_optimization.md +0 -0
  107. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/smart_optimization.md +0 -0
  108. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/tuned_variables.md +0 -0
  109. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/walkthrough.md +0 -0
  110. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-all.txt +0 -0
  111. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-analytics.txt +0 -0
  112. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-bayesian.txt +0 -0
  113. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-chroma.txt +0 -0
  114. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-dev.txt +0 -0
  115. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-hybrid.txt +0 -0
  116. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-integrations.txt +0 -0
  117. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-security.txt +0 -0
  118. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-test.txt +0 -0
  119. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements.txt +0 -0
  120. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/setup.cfg +0 -0
  121. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/__init__.py +0 -0
  122. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/_version.py +0 -0
  123. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/adapters/execution_adapter.py +0 -0
  124. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/admin/__init__.py +0 -0
  125. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/admin/client.py +0 -0
  126. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/admin/config.py +0 -0
  127. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/admin/dtos.py +0 -0
  128. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/__init__.py +0 -0
  129. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/config_mapper.py +0 -0
  130. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/executor.py +0 -0
  131. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/platforms.py +0 -0
  132. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/specification_generator.py +0 -0
  133. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/__init__.py +0 -0
  134. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/anomaly.py +0 -0
  135. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/cost_optimization.py +0 -0
  136. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/example_insights.py +0 -0
  137. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/intelligence.py +0 -0
  138. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/meta_learning.py +0 -0
  139. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/next_steps.py +0 -0
  140. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/optimization_plan.py +0 -0
  141. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/predictive.py +0 -0
  142. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/render.py +0 -0
  143. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/scheduling.py +0 -0
  144. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics_mcp/__init__.py +0 -0
  145. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics_mcp/server.py +0 -0
  146. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics_mcp/tools.py +0 -0
  147. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/__init__.py +0 -0
  148. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/agent_inference.py +0 -0
  149. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/config_builder.py +0 -0
  150. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/config_space.py +0 -0
  151. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/constraint_builders.py +0 -0
  152. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/constraints.py +0 -0
  153. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/functions.py +0 -0
  154. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/parameter_ranges.py +0 -0
  155. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/parameter_validator.py +0 -0
  156. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/safety.py +0 -0
  157. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/strategy_presets.py +0 -0
  158. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/types.py +0 -0
  159. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/validation_protocol.py +0 -0
  160. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/__init__.py +0 -0
  161. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/auth_commands.py +0 -0
  162. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/detect_tvars_command.py +0 -0
  163. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/function_discovery.py +0 -0
  164. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/generate_config_command.py +0 -0
  165. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/hooks_commands.py +0 -0
  166. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/local_commands.py +0 -0
  167. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/main.py +0 -0
  168. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/next_steps_command.py +0 -0
  169. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/onboard_commands.py +0 -0
  170. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/optimization_validator.py +0 -0
  171. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/plan_command.py +0 -0
  172. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/playbook_commands.py +0 -0
  173. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/sync_commands.py +0 -0
  174. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/validation_types.py +0 -0
  175. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/__init__.py +0 -0
  176. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/_aiohttp_compat.py +0 -0
  177. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/agent_dtos.py +0 -0
  178. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/analytics_auth.py +0 -0
  179. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/analytics_client.py +0 -0
  180. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/api_key_manager.py +0 -0
  181. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/api_operations.py +0 -0
  182. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/async_batch_transport.py +0 -0
  183. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/auth.py +0 -0
  184. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/backend_bridges.py +0 -0
  185. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/backend_client.py +0 -0
  186. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/backend_components.py +0 -0
  187. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/backend_synchronizer.py +0 -0
  188. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/benchmark_client.py +0 -0
  189. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/billing.py +0 -0
  190. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/cloud_operations.py +0 -0
  191. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/credential_manager.py +0 -0
  192. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/credential_resolver.py +0 -0
  193. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/dataset_converter.py +0 -0
  194. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/dtos.py +0 -0
  195. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/governance.py +0 -0
  196. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/integration_manager.py +0 -0
  197. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/optimizer_client.py +0 -0
  198. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/password_auth_handler.py +0 -0
  199. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/privacy_operations.py +0 -0
  200. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/production_mcp_client.py +0 -0
  201. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/remote_guidance.py +0 -0
  202. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/resilient_client.py +0 -0
  203. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/service.py +0 -0
  204. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/session_operations.py +0 -0
  205. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/session_types.py +0 -0
  206. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/sessions.py +0 -0
  207. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/subset_selection.py +0 -0
  208. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/sync_manager.py +0 -0
  209. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/token_manager.py +0 -0
  210. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/trial_operations.py +0 -0
  211. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/trial_tracker.py +0 -0
  212. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/url_security.py +0 -0
  213. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/user_agent.py +0 -0
  214. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/validators.py +0 -0
  215. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/__init__.py +0 -0
  216. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/api_keys.py +0 -0
  217. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/ast_transformer.py +0 -0
  218. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/backend_config.py +0 -0
  219. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/context.py +0 -0
  220. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/feature_flags.py +0 -0
  221. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/models.yaml +0 -0
  222. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/parallel.py +0 -0
  223. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/project.py +0 -0
  224. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/providers.py +0 -0
  225. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/runtime_injector.py +0 -0
  226. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/tenant.py +0 -0
  227. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/types.py +0 -0
  228. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/__init__.py +0 -0
  229. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/agent_classifier.py +0 -0
  230. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/apply.py +0 -0
  231. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
  232. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
  233. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
  234. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
  235. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog.py +0 -0
  236. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/llm_backend.py +0 -0
  237. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/pipeline.py +0 -0
  238. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/__init__.py +0 -0
  239. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
  240. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
  241. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/constraint_templates.py +0 -0
  242. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/range_presets.py +0 -0
  243. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/recommendations.py +0 -0
  244. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/__init__.py +0 -0
  245. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/benchmarks.py +0 -0
  246. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/objectives.py +0 -0
  247. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
  248. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
  249. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
  250. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
  251. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/types.py +0 -0
  252. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/__init__.py +0 -0
  253. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/backend_session_manager.py +0 -0
  254. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/best_config_runtime.py +0 -0
  255. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/cache_policy.py +0 -0
  256. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/ci_approval.py +0 -0
  257. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/config_state_manager.py +0 -0
  258. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/constants.py +0 -0
  259. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/cost_enforcement.py +0 -0
  260. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/cost_estimator.py +0 -0
  261. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/evaluator_wrapper.py +0 -0
  262. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/exception_handler.py +0 -0
  263. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/execution_policy_runtime.py +0 -0
  264. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/license.py +0 -0
  265. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/logger_facade.py +0 -0
  266. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/mandatory_metrics.py +0 -0
  267. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/meta_types.py +0 -0
  268. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/metadata_helpers.py +0 -0
  269. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/metric_registry.py +0 -0
  270. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/metrics_aggregator.py +0 -0
  271. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/namespace.py +0 -0
  272. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/objectives.py +0 -0
  273. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/optimization_pipeline.py +0 -0
  274. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/orchestrator.py +0 -0
  275. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/orchestrator_helpers.py +0 -0
  276. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/parallel_execution_manager.py +0 -0
  277. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/progress_manager.py +0 -0
  278. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/result_selection.py +0 -0
  279. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/sample_budget.py +0 -0
  280. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/samplers/__init__.py +0 -0
  281. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/samplers/random_sampler.py +0 -0
  282. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/session_context.py +0 -0
  283. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/session_types.py +0 -0
  284. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/stat_significance.py +0 -0
  285. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/stop_condition_manager.py +0 -0
  286. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/stop_conditions.py +0 -0
  287. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/trace_env.py +0 -0
  288. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/tracing.py +0 -0
  289. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/trial_context.py +0 -0
  290. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/trial_lifecycle.py +0 -0
  291. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/trial_result_factory.py +0 -0
  292. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/types.py +0 -0
  293. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/types_ext.py +0 -0
  294. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/utils.py +0 -0
  295. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/workflow_trace_manager.py +0 -0
  296. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core_metrics/__init__.py +0 -0
  297. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core_metrics/client.py +0 -0
  298. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core_metrics/config.py +0 -0
  299. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core_metrics/dtos.py +0 -0
  300. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/defaults.py +0 -0
  301. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/__init__.py +0 -0
  302. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/contracts.py +0 -0
  303. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/strategies/__init__.py +0 -0
  304. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/strategies/framework_param.py +0 -0
  305. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/strategies/self_consistency.py +0 -0
  306. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluation/__init__.py +0 -0
  307. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluation/client.py +0 -0
  308. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluation/config.py +0 -0
  309. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluation/dtos.py +0 -0
  310. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/__init__.py +0 -0
  311. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/base.py +0 -0
  312. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
  313. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
  314. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/catalog_loader.py +0 -0
  315. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/dataset_registry.py +0 -0
  316. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/hybrid_api.py +0 -0
  317. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/local.py +0 -0
  318. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/metrics.py +0 -0
  319. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/metrics_tracker.py +0 -0
  320. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/recommendations.py +0 -0
  321. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/__init__.py +0 -0
  322. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/__init__.py +0 -0
  323. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/_bootstrap.py +0 -0
  324. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/_demo.py +0 -0
  325. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/anthropic.py +0 -0
  326. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/aws.py +0 -0
  327. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/azure.py +0 -0
  328. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/gcp.py +0 -0
  329. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/gemini.py +0 -0
  330. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/groq.py +0 -0
  331. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/litellm_any.py +0 -0
  332. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/manifest.json +0 -0
  333. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/openai.py +0 -0
  334. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/openrouter.py +0 -0
  335. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/qa_samples.jsonl +0 -0
  336. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/__init__.py +0 -0
  337. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/__main__.py +0 -0
  338. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/_env.py +0 -0
  339. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/publish_and_verify.py +0 -0
  340. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
  341. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/tutorial_bootstrap.py +0 -0
  342. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/__init__.py +0 -0
  343. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/backend_provider.py +0 -0
  344. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/example_synth.py +0 -0
  345. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/llm_provider.py +0 -0
  346. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/loop.py +0 -0
  347. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/models.py +0 -0
  348. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/options.py +0 -0
  349. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/prompt_rewriter.py +0 -0
  350. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/__init__.py +0 -0
  351. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/artifacts.py +0 -0
  352. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/buffer.py +0 -0
  353. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/document.py +0 -0
  354. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/edits.py +0 -0
  355. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/prompts.py +0 -0
  356. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/reflection.py +0 -0
  357. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/schedule.py +0 -0
  358. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/slow_update.py +0 -0
  359. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/splits.py +0 -0
  360. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/trainer.py +0 -0
  361. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/trainer_result.py +0 -0
  362. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/validators.py +0 -0
  363. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/guaranteed_modes.py +0 -0
  364. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hooks/__init__.py +0 -0
  365. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hooks/config.py +0 -0
  366. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hooks/installer.py +0 -0
  367. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hooks/validator.py +0 -0
  368. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/__init__.py +0 -0
  369. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/discovery.py +0 -0
  370. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/http_transport.py +0 -0
  371. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/lifecycle.py +0 -0
  372. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/mcp_transport.py +0 -0
  373. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/protocol.py +0 -0
  374. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/transport.py +0 -0
  375. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/__init__.py +0 -0
  376. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/activation.py +0 -0
  377. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/base.py +0 -0
  378. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/base_plugin.py +0 -0
  379. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/bedrock_client.py +0 -0
  380. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/config.py +0 -0
  381. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/dspy_adapter.py +0 -0
  382. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/framework_override.py +0 -0
  383. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langchain/__init__.py +0 -0
  384. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langchain/handler.py +0 -0
  385. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langfuse/__init__.py +0 -0
  386. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langfuse/callback.py +0 -0
  387. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langfuse/client.py +0 -0
  388. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langfuse/tracker.py +0 -0
  389. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/__init__.py +0 -0
  390. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/anthropic_plugin.py +0 -0
  391. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
  392. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/base_llm_plugin.py +0 -0
  393. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/bedrock_plugin.py +0 -0
  394. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/cohere_plugin.py +0 -0
  395. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/gemini_plugin.py +0 -0
  396. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/huggingface_plugin.py +0 -0
  397. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/langchain/__init__.py +0 -0
  398. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/langchain/base.py +0 -0
  399. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/langchain_plugin.py +0 -0
  400. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/litellm_plugin.py +0 -0
  401. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
  402. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/mistral_plugin.py +0 -0
  403. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/openai.py +0 -0
  404. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/openai_plugin.py +0 -0
  405. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/mappings.py +0 -0
  406. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/__init__.py +0 -0
  407. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
  408. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
  409. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/base.py +0 -0
  410. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/cache.py +0 -0
  411. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
  412. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
  413. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
  414. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/registry.py +0 -0
  415. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/observability/__init__.py +0 -0
  416. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/observability/mlflow.py +0 -0
  417. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/observability/wandb.py +0 -0
  418. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/observability/workflow_traces.py +0 -0
  419. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/plugin_registry.py +0 -0
  420. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/providers.py +0 -0
  421. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/pydantic_ai/__init__.py +0 -0
  422. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/pydantic_ai/_types.py +0 -0
  423. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/pydantic_ai/handler.py +0 -0
  424. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/pydantic_ai/plugin.py +0 -0
  425. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/__init__.py +0 -0
  426. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/discovery.py +0 -0
  427. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/message_coercion.py +0 -0
  428. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/mock_adapter.py +0 -0
  429. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/parameter_normalizer.py +0 -0
  430. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/response_wrapper.py +0 -0
  431. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/validation.py +0 -0
  432. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/version_compat.py +0 -0
  433. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/__init__.py +0 -0
  434. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/base.py +0 -0
  435. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
  436. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
  437. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
  438. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/wrappers.py +0 -0
  439. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/__init__.py +0 -0
  440. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/base.py +0 -0
  441. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/batch.py +0 -0
  442. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/local.py +0 -0
  443. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/streaming.py +0 -0
  444. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/__init__.py +0 -0
  445. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/adapters.py +0 -0
  446. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/bindings.py +0 -0
  447. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/canonical.py +0 -0
  448. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/cascade.py +0 -0
  449. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/certificates.py +0 -0
  450. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/composites.py +0 -0
  451. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/kinds.py +0 -0
  452. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/patterns.py +0 -0
  453. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/resolution.py +0 -0
  454. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/resolver.py +0 -0
  455. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/runtime.py +0 -0
  456. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/signals.py +0 -0
  457. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/telemetry.py +0 -0
  458. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/mcp/__init__.py +0 -0
  459. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/mcp/server.py +0 -0
  460. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/mcp/tools.py +0 -0
  461. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/__init__.py +0 -0
  462. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/agent_metrics.py +0 -0
  463. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/content_features.py +0 -0
  464. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/deepeval_metrics.py +0 -0
  465. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/ragas_metrics.py +0 -0
  466. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/registry.py +0 -0
  467. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/__init__.py +0 -0
  468. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/agent_spans.py +0 -0
  469. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/client.py +0 -0
  470. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/config.py +0 -0
  471. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/decorators.py +0 -0
  472. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/dtos.py +0 -0
  473. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/__init__.py +0 -0
  474. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/base.py +0 -0
  475. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/batch_optimizers.py +0 -0
  476. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/cloud_optimizer.py +0 -0
  477. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/grid.py +0 -0
  478. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/interactive_optimizer.py +0 -0
  479. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/random.py +0 -0
  480. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/registry.py +0 -0
  481. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/remote.py +0 -0
  482. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/remote_services.py +0 -0
  483. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/results.py +0 -0
  484. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/__init__.py +0 -0
  485. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/loader.py +0 -0
  486. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/model.py +0 -0
  487. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/scaffold.py +0 -0
  488. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
  489. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/staleness.py +0 -0
  490. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/validator.py +0 -0
  491. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/plugins/__init__.py +0 -0
  492. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/plugins/registry.py +0 -0
  493. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/projects/__init__.py +0 -0
  494. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/projects/client.py +0 -0
  495. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/projects/config.py +0 -0
  496. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/projects/dtos.py +0 -0
  497. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/prompts/__init__.py +0 -0
  498. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/prompts/client.py +0 -0
  499. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/prompts/config.py +0 -0
  500. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/prompts/dtos.py +0 -0
  501. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/providers/__init__.py +0 -0
  502. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/providers/validation.py +0 -0
  503. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/py.typed +0 -0
  504. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/reporting/__init__.py +0 -0
  505. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/reporting/example_map.py +0 -0
  506. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/__init__.py +0 -0
  507. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/audit.py +0 -0
  508. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/__init__.py +0 -0
  509. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/helpers.py +0 -0
  510. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/mfa.py +0 -0
  511. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/models.py +0 -0
  512. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/oidc.py +0 -0
  513. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/saml.py +0 -0
  514. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/sms.py +0 -0
  515. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/totp.py +0 -0
  516. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/config.py +0 -0
  517. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/credentials.py +0 -0
  518. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/crypto_utils.py +0 -0
  519. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/deployment.py +0 -0
  520. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/encryption.py +0 -0
  521. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/enterprise.py +0 -0
  522. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/headers.py +0 -0
  523. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/input_validation.py +0 -0
  524. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/jwt_validator.py +0 -0
  525. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/rate_limiter.py +0 -0
  526. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/redaction.py +0 -0
  527. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/session_manager.py +0 -0
  528. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/tenant.py +0 -0
  529. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
  530. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
  531. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
  532. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
  533. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
  534. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
  535. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-debugging/SKILL.md +0 -0
  536. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
  537. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
  538. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
  539. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-decorator-setup/SKILL.md +0 -0
  540. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
  541. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
  542. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
  543. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-integrations/SKILL.md +0 -0
  544. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
  545. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
  546. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
  547. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
  548. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
  549. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
  550. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-run-optimization/SKILL.md +0 -0
  551. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
  552. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
  553. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
  554. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/storage/__init__.py +0 -0
  555. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/storage/local_storage.py +0 -0
  556. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/testing/__init__.py +0 -0
  557. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/traigent_client.py +0 -0
  558. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/traigent_integration.py +0 -0
  559. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/__init__.py +0 -0
  560. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/dataflow_strategy.py +0 -0
  561. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/detection_strategies.py +0 -0
  562. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/detection_types.py +0 -0
  563. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/detector.py +0 -0
  564. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/discovery.py +0 -0
  565. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/observation.py +0 -0
  566. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/py.typed +0 -0
  567. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/__init__.py +0 -0
  568. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/__main__.py +0 -0
  569. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/models.py +0 -0
  570. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/objectives.py +0 -0
  571. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/options.py +0 -0
  572. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/promotion_gate.py +0 -0
  573. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/registry.py +0 -0
  574. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/spec_loader.py +0 -0
  575. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/spec_validator.py +0 -0
  576. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/statistics.py +0 -0
  577. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/__init__.py +0 -0
  578. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/artifact_fingerprints.py +0 -0
  579. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/batch_optimizer_utils.py +0 -0
  580. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/batch_processing.py +0 -0
  581. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/callbacks.py +0 -0
  582. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/console.py +0 -0
  583. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/constraints.py +0 -0
  584. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/cost_calculator.py +0 -0
  585. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/diagnostics.py +0 -0
  586. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/discrete_domains.py +0 -0
  587. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/env_config.py +0 -0
  588. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/error_handler.py +0 -0
  589. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/example_id.py +0 -0
  590. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/exceptions.py +0 -0
  591. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/file_versioning.py +0 -0
  592. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/function_identity.py +0 -0
  593. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/hashing.py +0 -0
  594. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/importance.py +0 -0
  595. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/incentives.py +0 -0
  596. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/insights.py +0 -0
  597. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/langchain_interceptor.py +0 -0
  598. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/litellm_interceptor.py +0 -0
  599. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/llm_response_parsing.py +0 -0
  600. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/local_analytics.py +0 -0
  601. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/logging.py +0 -0
  602. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/multi_objective.py +0 -0
  603. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/numpy_compat.py +0 -0
  604. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/objectives.py +0 -0
  605. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/optimization_analyzer.py +0 -0
  606. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/optimization_logger.py +0 -0
  607. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/pagination.py +0 -0
  608. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/persistence.py +0 -0
  609. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/retry.py +0 -0
  610. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/secure_path.py +0 -0
  611. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/url_security.py +0 -0
  612. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/validation.py +0 -0
  613. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/visualization/__init__.py +0 -0
  614. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/visualization/plots.py +0 -0
  615. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/wrapper/__init__.py +0 -0
  616. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/wrapper/errors.py +0 -0
  617. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/wrapper/server.py +0 -0
  618. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/wrapper/service.py +0 -0
  619. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/SOURCES.txt +0 -0
  620. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/dependency_links.txt +0 -0
  621. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/entry_points.txt +0 -0
  622. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/requires.txt +0 -0
  623. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/top_level.txt +0 -0
  624. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent_validation/__init__.py +0 -0
  625. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent_validation/base.py +0 -0
  626. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent_validation/plugins.py +0 -0
  627. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent_validation/py.typed +0 -0
  628. {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/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.dev4
3
+ Version: 0.18.1.dev6
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.dev4"
7
+ version = "0.18.1.dev6"
8
8
  authors = [
9
9
  {name = "Traigent Team", email = "opensource@traigent.ai"},
10
10
  ]
@@ -43,6 +43,7 @@ Examples:
43
43
  from __future__ import annotations
44
44
 
45
45
  import inspect
46
+ import os
46
47
  from collections.abc import Callable, Collection, Mapping
47
48
  from dataclasses import dataclass, field
48
49
  from pathlib import Path
@@ -2011,6 +2012,79 @@ def _suggest_detected_tvars(
2011
2012
  return None
2012
2013
 
2013
2014
 
2015
+ def _build_default_experiment_name(
2016
+ func_name: str,
2017
+ resolved_schema: ObjectiveSchema | None,
2018
+ resolved_configuration_space: dict[str, Any] | None,
2019
+ *,
2020
+ max_knobs: int = 4,
2021
+ max_total_length: int = 120,
2022
+ ) -> str:
2023
+ """Build a self-describing default experiment name when none is provided.
2024
+
2025
+ Combines the function name, objective names, and tuned-variable (knob) names
2026
+ into a concise, deterministic, human-meaningful string. Format::
2027
+
2028
+ <func_name>[<obj1>,<obj2>,...][<knob1>,<knob2>,...]
2029
+
2030
+ Args:
2031
+ func_name: The decorated function's ``__name__``.
2032
+ resolved_schema: Resolved objective schema (from ``_resolve_objective_schema``).
2033
+ resolved_configuration_space: Normalized configuration-space dict whose keys
2034
+ are the tuned-variable names.
2035
+ max_knobs: Maximum number of knob names to display before appending ``,...``.
2036
+ max_total_length: Hard cap on the final string length (excess is truncated).
2037
+
2038
+ Returns:
2039
+ A deterministic, human-readable default experiment name.
2040
+ """
2041
+ # Build the objective suffix — always preserved in the output.
2042
+ obj_suffix = ""
2043
+ if resolved_schema is not None:
2044
+ obj_names = [obj.name for obj in resolved_schema.objectives]
2045
+ obj_suffix = f"[{','.join(obj_names)}]"
2046
+
2047
+ # Build the knob suffix; cap list length to avoid excessively long names.
2048
+ knob_suffix = ""
2049
+ if resolved_configuration_space:
2050
+ knob_names = list(resolved_configuration_space.keys())
2051
+ if len(knob_names) > max_knobs:
2052
+ displayed = knob_names[:max_knobs]
2053
+ knob_suffix = f"[{','.join(displayed)},...]"
2054
+ else:
2055
+ knob_suffix = f"[{','.join(knob_names)}]"
2056
+
2057
+ # Invariant: the objectives + knob sections are the self-describing payload
2058
+ # and must never be sacrificed to the length cap. Truncate only the
2059
+ # function-name prefix (appending "~" to signal the cut), never the suffix.
2060
+ suffix = obj_suffix + knob_suffix
2061
+ func_budget = max_total_length - len(suffix)
2062
+
2063
+ if func_budget <= 0:
2064
+ # Suffix alone meets or exceeds the cap — omit the function-name prefix.
2065
+ if len(suffix) <= max_total_length:
2066
+ return suffix
2067
+ # Extreme edge case: even the suffix is over budget. Preserve at least
2068
+ # the objectives and one knob name by trimming the knob list.
2069
+ if resolved_configuration_space:
2070
+ knob_names_list = list(resolved_configuration_space.keys())
2071
+ min_knob_suffix = f"[{knob_names_list[0]}]"
2072
+ combined = obj_suffix + min_knob_suffix
2073
+ if len(combined) <= max_total_length:
2074
+ return combined
2075
+ return obj_suffix[:max_total_length]
2076
+
2077
+ # Fit the function name into the remaining budget, marking any cut with "~".
2078
+ if len(func_name) <= func_budget:
2079
+ func_part = func_name
2080
+ elif func_budget >= 2:
2081
+ func_part = func_name[: func_budget - 1] + "~"
2082
+ else:
2083
+ func_part = func_name[:func_budget]
2084
+
2085
+ return func_part + suffix
2086
+
2087
+
2014
2088
  def optimize( # NOSONAR(S107)
2015
2089
  *,
2016
2090
  objectives: list[str] | ObjectiveSchema | None = None,
@@ -2760,6 +2834,36 @@ def optimize( # NOSONAR(S107)
2760
2834
  config_param,
2761
2835
  )
2762
2836
 
2837
+ # Experiment name resolution (#1422).
2838
+ #
2839
+ # _experiment_name on OptimizedFunction stores ONLY the explicit decorator value
2840
+ # so the getter can lazily check TRAIGENT_EXPERIMENT_NAME at each access —
2841
+ # callers that set the env var AFTER decoration must see it take effect.
2842
+ #
2843
+ # The self-describing default (func name + objectives + knobs) is precomputed
2844
+ # here because the inputs are fully resolved at decoration time; it is stored
2845
+ # in _default_experiment_name and used by the getter as the last resort, after
2846
+ # the explicit value and the env var are both absent.
2847
+ #
2848
+ # Priority resolved in OptimizedFunction.experiment_name getter (highest → lowest):
2849
+ # 1. Explicit experiment_name decorator argument → _experiment_name (not None).
2850
+ # 2. TRAIGENT_EXPERIMENT_NAME env var — checked at ACCESS time (not decoration time).
2851
+ # 3. Self-describing default → _default_experiment_name.
2852
+ # 4. Bare func.__name__ (if no objectives/knobs were registered).
2853
+ default_experiment_name: str | None = None
2854
+ if experiment_name_value is None:
2855
+ default_experiment_name = _build_default_experiment_name(
2856
+ func.__name__, resolved_schema, resolved_configuration_space
2857
+ )
2858
+
2859
+ # Approximate resolved name for the creation log (decoration-time snapshot only).
2860
+ effective_experiment_name = (
2861
+ experiment_name_value
2862
+ or os.environ.get("TRAIGENT_EXPERIMENT_NAME")
2863
+ or default_experiment_name
2864
+ or func.__name__
2865
+ )
2866
+
2763
2867
  optimized_func: OptimizedFunction[_P, _R] = OptimizedFunction( # type: ignore[assignment]
2764
2868
  func=func,
2765
2869
  eval_dataset=eval_dataset,
@@ -2819,8 +2923,11 @@ def optimize( # NOSONAR(S107)
2819
2923
  # Optimizer limits (extracted from combined_settings)
2820
2924
  max_trials=max_trials_value,
2821
2925
  _max_trials_explicit=max_trials_explicit,
2822
- # Experiment display name (overrides func.__name__ in portal/storage)
2926
+ # Experiment display name: only the explicit value goes into _experiment_name
2927
+ # so that TRAIGENT_EXPERIMENT_NAME is checked lazily at access time.
2928
+ # The precomputed self-describing default is stored separately.
2823
2929
  experiment_name=experiment_name_value,
2930
+ _default_experiment_name=default_experiment_name,
2824
2931
  # Warm-start: seed this run from a prior experiment's learned configs.
2825
2932
  warm_start_from=warm_start_from_value,
2826
2933
  # Guided-generation defaults (consumed by optimize_with_guidance)
@@ -2834,9 +2941,8 @@ def optimize( # NOSONAR(S107)
2834
2941
  optimized_func.hybrid_api_options = hybrid_api_options
2835
2942
  optimized_func.offline = execution_policy.offline
2836
2943
 
2837
- effective_name = experiment_name_value or func.__name__
2838
2944
  logger.info(
2839
- f"Created optimizable function: {func.__name__} (experiment_name={effective_name!r})"
2945
+ f"Created optimizable function: {func.__name__} (experiment_name={effective_experiment_name!r})"
2840
2946
  )
2841
2947
 
2842
2948
  # cast so mypy sees OptimizedFunction[_P, _R] rather than
@@ -33,13 +33,13 @@ else: # pragma: no cover - minimal environments without aiohttp
33
33
 
34
34
  from traigent.config.backend_config import BackendConfig
35
35
  from traigent.evaluators.base import Dataset
36
- from traigent.utils.env_config import is_backend_offline
37
- from traigent.utils.error_handler import OfflineModeError
38
- from traigent.utils.error_handler import TraigentError as HelpfulTraigentError
39
36
  from traigent.utils.artifact_fingerprints import (
40
37
  artifact_fingerprints_to_wire,
41
38
  fingerprint_meta_to_wire,
42
39
  )
40
+ from traigent.utils.env_config import is_backend_offline
41
+ from traigent.utils.error_handler import OfflineModeError
42
+ from traigent.utils.error_handler import TraigentError as HelpfulTraigentError
43
43
  from traigent.utils.exceptions import ValidationError as ValidationException
44
44
  from traigent.utils.logging import get_logger
45
45
  from traigent.utils.retry import NetworkError, RateLimitError, retry_http_request
@@ -62,6 +62,7 @@ from .models import (
62
62
  SessionCreationRequest,
63
63
  SessionCreationResponse,
64
64
  SessionObjectiveDefinition,
65
+ SessionSummary,
65
66
  TrialResultSubmission,
66
67
  TrialSuggestion,
67
68
  )
@@ -1517,8 +1518,16 @@ class TraigentCloudClient(BaseTraigentClient):
1517
1518
  f"Failed to finalize session: {e}", "session_finalization", e
1518
1519
  ) from e
1519
1520
 
1520
- async def delete_session(self, session_id: str, cascade: bool = True) -> bool:
1521
- """Delete a session using the backend cleanup endpoint."""
1521
+ async def delete_session(self, session_id: str, cascade: bool = False) -> bool:
1522
+ """Delete a session via ``DELETE /api/v1/sessions/<id>``.
1523
+
1524
+ Non-destructive by default (``cascade=False``), matching the backend
1525
+ default: only the session and its run artifacts are removed. Pass
1526
+ ``cascade=True`` to additionally hard-delete the parent experiment when
1527
+ the deleted session was its last run. Use this with
1528
+ :meth:`list_sessions` to enumerate and clean up orphaned / zombie
1529
+ "running" sessions from the client.
1530
+ """
1522
1531
  if not session_id:
1523
1532
  raise ValueError("session_id is required")
1524
1533
 
@@ -1556,6 +1565,68 @@ class TraigentCloudClient(BaseTraigentClient):
1556
1565
  f"Failed to delete session: {exc}", "session_delete", exc
1557
1566
  ) from exc
1558
1567
 
1568
+ async def list_sessions(
1569
+ self,
1570
+ status: str | None = None,
1571
+ pattern: str | None = None,
1572
+ limit: int | None = None,
1573
+ ) -> list[SessionSummary]:
1574
+ """List sessions via ``GET /api/v1/sessions``.
1575
+
1576
+ Enumerates the caller's optimization sessions so orphaned / zombie
1577
+ "running" sessions can be found and cleaned up with
1578
+ :meth:`delete_session`. Returns typed :class:`SessionSummary` objects.
1579
+
1580
+ Args:
1581
+ status: Optional lifecycle filter (server-side ``status`` query param).
1582
+ pattern: Optional session-id match (server-side ``pattern`` query
1583
+ param).
1584
+ limit: Optional cap on the number of summaries returned. The backend
1585
+ does not support a server-side limit, so this is applied
1586
+ client-side after the response is received.
1587
+
1588
+ Returns:
1589
+ A list of :class:`SessionSummary` (empty when there are none).
1590
+ """
1591
+ self._raise_if_backend_egress_disabled("list sessions")
1592
+ await self._ensure_session()
1593
+ if self._aio_session is None:
1594
+ raise CloudServiceError(_SESSION_NOT_INITIALIZED)
1595
+
1596
+ params: dict[str, str] = {}
1597
+ if status is not None:
1598
+ params["status"] = str(status)
1599
+ if pattern is not None:
1600
+ params["pattern"] = str(pattern)
1601
+
1602
+ url = f"{self.api_base_url}/sessions"
1603
+ try:
1604
+ async with self._aio_session.get(url, params=params) as response:
1605
+ if response.status != 200:
1606
+ error_text = await response.text()
1607
+ raise CloudServiceError(
1608
+ f"Failed to list sessions: status={response.status} "
1609
+ f"body={error_text[:200]}"
1610
+ )
1611
+ data = await response.json()
1612
+ except aiohttp.ClientError as exc:
1613
+ await self._reset_http_session("list_sessions network error")
1614
+ raise StandardizedClientError(
1615
+ f"Failed to list sessions: {exc}", "session_list", exc
1616
+ ) from exc
1617
+
1618
+ raw_sessions = data.get("sessions") if isinstance(data, dict) else None
1619
+ if not isinstance(raw_sessions, list):
1620
+ raw_sessions = []
1621
+ summaries = [
1622
+ SessionSummary.from_dict(item)
1623
+ for item in raw_sessions
1624
+ if isinstance(item, dict)
1625
+ ]
1626
+ if limit is not None and limit >= 0:
1627
+ summaries = summaries[:limit]
1628
+ return summaries
1629
+
1559
1630
  # Stateful optimization methods for interactive model
1560
1631
 
1561
1632
  async def create_optimization_session(
@@ -139,6 +139,40 @@ class OptimizationSession:
139
139
  )
140
140
 
141
141
 
142
+ @dataclass
143
+ class SessionSummary:
144
+ """Lightweight summary of a session from ``GET /api/v1/sessions``.
145
+
146
+ Returned by :meth:`traigent.cloud.client.TraigentCloudClient.list_sessions`.
147
+ Maps the backend session-list contract
148
+ (``optimization/optimization_session_list_response_schema.json``):
149
+ ``session_id`` and
150
+ ``status`` are always present; ``created_at`` / ``progress`` when the server
151
+ provides them. Forward-compatible — any additional server fields are kept in
152
+ ``extra`` rather than dropped, so the SDK can enumerate and clean up orphaned
153
+ sessions without a release per new field.
154
+ """
155
+
156
+ session_id: str
157
+ status: str
158
+ created_at: str | None = None
159
+ progress: dict[str, Any] | None = None
160
+ extra: dict[str, Any] = field(default_factory=dict)
161
+
162
+ @classmethod
163
+ def from_dict(cls, data: dict[str, Any]) -> SessionSummary:
164
+ """Build a summary from one backend session object, tolerating extras."""
165
+ known = {"session_id", "status", "created_at", "progress"}
166
+ progress = data.get("progress")
167
+ return cls(
168
+ session_id=str(data.get("session_id", "")),
169
+ status=str(data.get("status", "")),
170
+ created_at=data.get("created_at"),
171
+ progress=progress if isinstance(progress, dict) else None,
172
+ extra={k: v for k, v in data.items() if k not in known},
173
+ )
174
+
175
+
142
176
  @dataclass
143
177
  class DatasetSubsetIndices:
144
178
  """Indices for selecting a subset of the dataset."""
@@ -615,8 +615,16 @@ class OptimizedFunction(Generic[_P, _R]):
615
615
  self.max_trials = kwargs.pop("max_trials", DEFAULT_MAX_TRIALS)
616
616
  kwargs["max_trials"] = self.max_trials
617
617
 
618
- # Experiment display name: decorator param > TRAIGENT_EXPERIMENT_NAME > func.__name__
618
+ # Experiment display name: decorator param > TRAIGENT_EXPERIMENT_NAME > self-describing default > func.__name__
619
+ # _experiment_name holds ONLY the explicit decorator value (None when absent).
620
+ # _default_experiment_name holds the precomputed self-describing default string
621
+ # (func name + objectives + knobs) that decorators.py computed at decoration time.
622
+ # The experiment_name getter resolves lazily so TRAIGENT_EXPERIMENT_NAME can be
623
+ # changed AFTER decoration and still take effect.
619
624
  self._experiment_name: str | None = kwargs.pop("experiment_name", None)
625
+ self._default_experiment_name: str | None = kwargs.pop(
626
+ "_default_experiment_name", None
627
+ )
620
628
 
621
629
  self.timeout = kwargs.pop("timeout", None)
622
630
  kwargs["timeout"] = self.timeout
@@ -3479,15 +3487,20 @@ Remediation:
3479
3487
  """Resolved experiment display name for portal/storage.
3480
3488
 
3481
3489
  Resolution order (highest to lowest priority):
3482
- 1. ``experiment_name`` passed to ``@traigent.optimize()``
3483
- 2. ``TRAIGENT_EXPERIMENT_NAME`` environment variable
3484
- 3. Decorated function's ``__name__``
3490
+ 1. ``experiment_name`` passed to ``@traigent.optimize()`` — stored in ``_experiment_name``.
3491
+ 2. ``TRAIGENT_EXPERIMENT_NAME`` environment variable — checked at access time, so
3492
+ setting it after decoration still takes effect.
3493
+ 3. Self-describing default precomputed at decoration time (func name + objectives + knobs)
3494
+ — stored in ``_default_experiment_name``.
3495
+ 4. Decorated function's ``__name__`` (bare fallback when no objectives/knobs exist).
3485
3496
  """
3486
3497
  if self._experiment_name is not None:
3487
3498
  return self._experiment_name
3488
3499
  env_name = os.environ.get("TRAIGENT_EXPERIMENT_NAME")
3489
3500
  if env_name:
3490
3501
  return env_name
3502
+ if self._default_experiment_name is not None:
3503
+ return self._default_experiment_name
3491
3504
  return self.__name__
3492
3505
 
3493
3506
  @property
@@ -111,12 +111,28 @@ def _format_config_value(val: Any) -> str:
111
111
  return str(val)
112
112
 
113
113
 
114
+ def _format_percent_metric(val: float) -> str:
115
+ """Format a quality metric (accuracy / score / ...) as a percent string.
116
+
117
+ Metrics reach the table on either a 0-1 fraction scale or an already-percent
118
+ 0-100 scale (e.g. a 0-100 ``accuracy`` of 79.16). Mirror the frontend rule
119
+ (``percentFormatting``): a value ``> 1`` is already a percent and is rendered
120
+ as-is (79.16 -> ``"79.2%"``); a value ``<= 1`` is a fraction and scaled
121
+ (0.79 -> ``"79.0%"``). This never double-scales, so a 0-100 metric can no
122
+ longer render as ">100%" (the prior ``f"{val:.1%}"`` turned 79.16 into
123
+ "7916.2%").
124
+ """
125
+ if val > 1.0:
126
+ return f"{val:.1f}%"
127
+ return f"{val:.1%}"
128
+
129
+
114
130
  def _format_metric_value(metric: str, val: float) -> str:
115
131
  if metric == "cost":
116
132
  return f"${val:.5f}"
117
133
  if metric == "latency":
118
134
  return f"{val:.3f}s"
119
- return f"{val:.1%}"
135
+ return _format_percent_metric(val)
120
136
 
121
137
 
122
138
  def _coerce_float(value: Any) -> float | None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: traigent
3
- Version: 0.18.1.dev4
3
+ Version: 0.18.1.dev6
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