traigent 0.18.1.dev5__tar.gz → 0.18.1.dev7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. {traigent-0.18.1.dev5/traigent.egg-info → traigent-0.18.1.dev7}/PKG-INFO +1 -1
  2. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/pyproject.toml +1 -1
  3. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/decorators.py +31 -2
  4. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/api_operations.py +81 -0
  5. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/backend_client.py +32 -6
  6. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/client.py +86 -8
  7. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/models.py +37 -0
  8. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/session_operations.py +8 -2
  9. traigent-0.18.1.dev7/traigent/cloud/smart_pruning.py +85 -0
  10. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/api_keys.py +13 -23
  11. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/models.yaml +23 -3
  12. traigent-0.18.1.dev7/traigent/config/provider_support.py +407 -0
  13. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/backend_session_manager.py +106 -12
  14. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/optimized_function.py +18 -10
  15. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/orchestrator.py +20 -9
  16. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/trial_lifecycle.py +140 -6
  17. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/base.py +21 -7
  18. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/model_discovery/registry.py +8 -1
  19. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/providers.py +34 -3
  20. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/providers/validation.py +28 -0
  21. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/env_config.py +23 -19
  22. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7/traigent.egg-info}/PKG-INFO +1 -1
  23. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent.egg-info/SOURCES.txt +2 -0
  24. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/CHANGELOG.md +0 -0
  25. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/COMMERCIAL-LICENSE.md +0 -0
  26. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/CONTRIBUTING.md +0 -0
  27. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/CONTRIBUTOR-LICENSING.md +0 -0
  28. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/DISCLAIMER.md +0 -0
  29. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/LICENSE +0 -0
  30. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/MANIFEST.in +0 -0
  31. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/NOTICE +0 -0
  32. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/README.md +0 -0
  33. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/SECURITY.md +0 -0
  34. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/LOCAL_CI_GATE.md +0 -0
  35. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/README.md +0 -0
  36. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/SYNC_MAP.md +0 -0
  37. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/agent-skill.md +0 -0
  38. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/api-reference/complete-function-specification.md +0 -0
  39. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/api-reference/decorator-reference.md +0 -0
  40. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/api-reference/enterprise-beta-api.md +0 -0
  41. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/api-reference/interactive_optimizer.md +0 -0
  42. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/api-reference/telemetry.md +0 -0
  43. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/api-reference/thread-pool-examples.md +0 -0
  44. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/architecture/ARCHITECTURE.md +0 -0
  45. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/architecture/cost-architecture-validation.md +0 -0
  46. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/architecture/execution_mode_follow_up.md +0 -0
  47. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/architecture/integrations-inventory.md +0 -0
  48. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/architecture/plugin_architecture.md +0 -0
  49. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/architecture/project-structure.md +0 -0
  50. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/architecture/stop_conditions.md +0 -0
  51. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/concepts/composite-knob-ir.md +0 -0
  52. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/concepts/composite-knobs.md +0 -0
  53. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/concepts/guided-generation.md +0 -0
  54. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
  55. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
  56. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/contributing/CONTRIBUTING.md +0 -0
  57. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
  58. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/contributing/README.md +0 -0
  59. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/contributing/SECURITY.md +0 -0
  60. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/contributing/aikido_triage.md +0 -0
  61. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/contributing/code_review_instructions.md +0 -0
  62. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/contributing/test-quality-guide.md +0 -0
  63. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
  64. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/demos/README.md +0 -0
  65. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/examples/API_PATTERNS.md +0 -0
  66. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/examples/LEARNING_ROADMAP.md +0 -0
  67. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/examples/QUICK_REFERENCE.md +0 -0
  68. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/examples/README.md +0 -0
  69. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/examples/START_HERE.md +0 -0
  70. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/examples/TROUBLESHOOTING.md +0 -0
  71. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/fake-completion-tracking.md +0 -0
  72. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/feature_matrices/README.md +0 -0
  73. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/README.md +0 -0
  74. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/authentication.md +0 -0
  75. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/constraint-dsl.md +0 -0
  76. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/dataflow-detection.md +0 -0
  77. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/framework_override_enhanced_features.md +0 -0
  78. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/mcp-server.md +0 -0
  79. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/observability-spans.md +0 -0
  80. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/onboarding.md +0 -0
  81. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/prompt_management.md +0 -0
  82. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/recommendations.md +0 -0
  83. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/safety-gates.md +0 -0
  84. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/seamless_injection.md +0 -0
  85. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/strategy-presets.md +0 -0
  86. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/features/strict_metrics_nulls.md +0 -0
  87. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/getting-started/GETTING_STARTED.md +0 -0
  88. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/getting-started/README.md +0 -0
  89. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/getting-started/installation.md +0 -0
  90. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/getting-started/minimal-integration.md +0 -0
  91. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
  92. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/getting-started/testing.md +0 -0
  93. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
  94. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/guides/evaluation.md +0 -0
  95. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/guides/execution-mode-migration.md +0 -0
  96. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/guides/execution-modes.md +0 -0
  97. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/guides/js-bridge.md +0 -0
  98. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/guides/llm_plugin_migration_guide.md +0 -0
  99. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/guides/parallel-configuration.md +0 -0
  100. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/guides/secrets_management.md +0 -0
  101. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/hybrid-mode-api-contract.md +0 -0
  102. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/hybrid-mode-client-guide.md +0 -0
  103. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/operations/azure_openai.md +0 -0
  104. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/operations/bedrock.md +0 -0
  105. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/operations/google_gemini.md +0 -0
  106. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/security/trust_model.md +0 -0
  107. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
  108. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/traceability/concepts/composite-knob-ir.md +0 -0
  109. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/traceability/concepts/composite-knobs.md +0 -0
  110. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/traceability/concepts/guided-generation.md +0 -0
  111. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/traceability/schema.md +0 -0
  112. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/traceability/tagging_tracking.md +0 -0
  113. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/traceability/taxonomy_reference.md +0 -0
  114. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
  115. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/user-guide/README.md +0 -0
  116. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/user-guide/agent_optimization.md +0 -0
  117. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/user-guide/choosing_optimization_model.md +0 -0
  118. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/user-guide/configuration-spaces.md +0 -0
  119. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/user-guide/evaluation_guide.md +0 -0
  120. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/user-guide/injection_modes.md +0 -0
  121. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/user-guide/interactive_optimization.md +0 -0
  122. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/user-guide/smart_optimization.md +0 -0
  123. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/user-guide/tuned_variables.md +0 -0
  124. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/docs/walkthrough.md +0 -0
  125. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements-all.txt +0 -0
  126. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements-analytics.txt +0 -0
  127. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements-bayesian.txt +0 -0
  128. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements-chroma.txt +0 -0
  129. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements-dev.txt +0 -0
  130. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements-hybrid.txt +0 -0
  131. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements-integrations.txt +0 -0
  132. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements-security.txt +0 -0
  133. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements-test.txt +0 -0
  134. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/requirements/requirements.txt +0 -0
  135. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/setup.cfg +0 -0
  136. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/__init__.py +0 -0
  137. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/_version.py +0 -0
  138. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/adapters/execution_adapter.py +0 -0
  139. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/admin/__init__.py +0 -0
  140. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/admin/client.py +0 -0
  141. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/admin/config.py +0 -0
  142. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/admin/dtos.py +0 -0
  143. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/agents/__init__.py +0 -0
  144. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/agents/config_mapper.py +0 -0
  145. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/agents/executor.py +0 -0
  146. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/agents/platforms.py +0 -0
  147. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/agents/specification_generator.py +0 -0
  148. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/__init__.py +0 -0
  149. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/anomaly.py +0 -0
  150. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/cost_optimization.py +0 -0
  151. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/example_insights.py +0 -0
  152. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/intelligence.py +0 -0
  153. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/meta_learning.py +0 -0
  154. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/next_steps.py +0 -0
  155. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/optimization_plan.py +0 -0
  156. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/predictive.py +0 -0
  157. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/render.py +0 -0
  158. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics/scheduling.py +0 -0
  159. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics_mcp/__init__.py +0 -0
  160. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics_mcp/server.py +0 -0
  161. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/analytics_mcp/tools.py +0 -0
  162. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/__init__.py +0 -0
  163. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/agent_inference.py +0 -0
  164. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/config_builder.py +0 -0
  165. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/config_space.py +0 -0
  166. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/constraint_builders.py +0 -0
  167. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/constraints.py +0 -0
  168. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/functions.py +0 -0
  169. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/parameter_ranges.py +0 -0
  170. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/parameter_validator.py +0 -0
  171. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/safety.py +0 -0
  172. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/strategy_presets.py +0 -0
  173. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/types.py +0 -0
  174. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/api/validation_protocol.py +0 -0
  175. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/__init__.py +0 -0
  176. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/auth_commands.py +0 -0
  177. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/detect_tvars_command.py +0 -0
  178. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/function_discovery.py +0 -0
  179. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/generate_config_command.py +0 -0
  180. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/hooks_commands.py +0 -0
  181. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/local_commands.py +0 -0
  182. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/main.py +0 -0
  183. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/next_steps_command.py +0 -0
  184. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/onboard_commands.py +0 -0
  185. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/optimization_validator.py +0 -0
  186. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/plan_command.py +0 -0
  187. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/playbook_commands.py +0 -0
  188. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/sync_commands.py +0 -0
  189. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cli/validation_types.py +0 -0
  190. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/__init__.py +0 -0
  191. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/_aiohttp_compat.py +0 -0
  192. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/agent_dtos.py +0 -0
  193. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/analytics_auth.py +0 -0
  194. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/analytics_client.py +0 -0
  195. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/api_key_manager.py +0 -0
  196. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/async_batch_transport.py +0 -0
  197. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/auth.py +0 -0
  198. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/backend_bridges.py +0 -0
  199. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/backend_components.py +0 -0
  200. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/backend_synchronizer.py +0 -0
  201. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/benchmark_client.py +0 -0
  202. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/billing.py +0 -0
  203. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/cloud_operations.py +0 -0
  204. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/credential_manager.py +0 -0
  205. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/credential_resolver.py +0 -0
  206. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/dataset_converter.py +0 -0
  207. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/dtos.py +0 -0
  208. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/governance.py +0 -0
  209. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/integration_manager.py +0 -0
  210. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/optimizer_client.py +0 -0
  211. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/password_auth_handler.py +0 -0
  212. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/privacy_operations.py +0 -0
  213. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/production_mcp_client.py +0 -0
  214. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/remote_guidance.py +0 -0
  215. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/resilient_client.py +0 -0
  216. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/service.py +0 -0
  217. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/session_types.py +0 -0
  218. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/sessions.py +0 -0
  219. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/subset_selection.py +0 -0
  220. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/sync_manager.py +0 -0
  221. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/token_manager.py +0 -0
  222. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/trial_operations.py +0 -0
  223. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/trial_tracker.py +0 -0
  224. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/url_security.py +0 -0
  225. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/user_agent.py +0 -0
  226. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/cloud/validators.py +0 -0
  227. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/__init__.py +0 -0
  228. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/ast_transformer.py +0 -0
  229. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/backend_config.py +0 -0
  230. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/context.py +0 -0
  231. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/feature_flags.py +0 -0
  232. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/parallel.py +0 -0
  233. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/project.py +0 -0
  234. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/providers.py +0 -0
  235. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/runtime_injector.py +0 -0
  236. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/tenant.py +0 -0
  237. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config/types.py +0 -0
  238. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/__init__.py +0 -0
  239. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/agent_classifier.py +0 -0
  240. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/apply.py +0 -0
  241. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
  242. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
  243. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
  244. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
  245. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/catalog.py +0 -0
  246. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/llm_backend.py +0 -0
  247. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/pipeline.py +0 -0
  248. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/presets/__init__.py +0 -0
  249. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
  250. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
  251. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/presets/constraint_templates.py +0 -0
  252. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/presets/range_presets.py +0 -0
  253. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/recommendations.py +0 -0
  254. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/subsystems/__init__.py +0 -0
  255. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/subsystems/benchmarks.py +0 -0
  256. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/subsystems/objectives.py +0 -0
  257. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
  258. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
  259. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
  260. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
  261. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/config_generator/types.py +0 -0
  262. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/__init__.py +0 -0
  263. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/best_config_runtime.py +0 -0
  264. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/cache_policy.py +0 -0
  265. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/ci_approval.py +0 -0
  266. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/config_state_manager.py +0 -0
  267. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/constants.py +0 -0
  268. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/cost_enforcement.py +0 -0
  269. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/cost_estimator.py +0 -0
  270. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/evaluator_wrapper.py +0 -0
  271. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/exception_handler.py +0 -0
  272. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/execution_policy_runtime.py +0 -0
  273. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/license.py +0 -0
  274. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/logger_facade.py +0 -0
  275. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/mandatory_metrics.py +0 -0
  276. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/meta_types.py +0 -0
  277. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/metadata_helpers.py +0 -0
  278. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/metric_registry.py +0 -0
  279. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/metrics_aggregator.py +0 -0
  280. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/namespace.py +0 -0
  281. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/objectives.py +0 -0
  282. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/optimization_pipeline.py +0 -0
  283. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/orchestrator_helpers.py +0 -0
  284. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/parallel_execution_manager.py +0 -0
  285. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/progress_manager.py +0 -0
  286. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/result_selection.py +0 -0
  287. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/sample_budget.py +0 -0
  288. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/samplers/__init__.py +0 -0
  289. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/samplers/random_sampler.py +0 -0
  290. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/session_context.py +0 -0
  291. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/session_types.py +0 -0
  292. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/stat_significance.py +0 -0
  293. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/stop_condition_manager.py +0 -0
  294. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/stop_conditions.py +0 -0
  295. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/trace_env.py +0 -0
  296. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/tracing.py +0 -0
  297. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/trial_context.py +0 -0
  298. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/trial_result_factory.py +0 -0
  299. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/types.py +0 -0
  300. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/types_ext.py +0 -0
  301. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/utils.py +0 -0
  302. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core/workflow_trace_manager.py +0 -0
  303. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core_metrics/__init__.py +0 -0
  304. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core_metrics/client.py +0 -0
  305. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core_metrics/config.py +0 -0
  306. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/core_metrics/dtos.py +0 -0
  307. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/defaults.py +0 -0
  308. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/effectuation/__init__.py +0 -0
  309. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/effectuation/contracts.py +0 -0
  310. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/effectuation/strategies/__init__.py +0 -0
  311. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/effectuation/strategies/framework_param.py +0 -0
  312. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/effectuation/strategies/self_consistency.py +0 -0
  313. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluation/__init__.py +0 -0
  314. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluation/client.py +0 -0
  315. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluation/config.py +0 -0
  316. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluation/dtos.py +0 -0
  317. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/__init__.py +0 -0
  318. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
  319. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
  320. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/catalog_loader.py +0 -0
  321. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/dataset_registry.py +0 -0
  322. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/hybrid_api.py +0 -0
  323. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/local.py +0 -0
  324. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/metrics.py +0 -0
  325. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/metrics_tracker.py +0 -0
  326. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/evaluators/recommendations.py +0 -0
  327. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/__init__.py +0 -0
  328. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/__init__.py +0 -0
  329. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/_bootstrap.py +0 -0
  330. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/_demo.py +0 -0
  331. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/anthropic.py +0 -0
  332. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/aws.py +0 -0
  333. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/azure.py +0 -0
  334. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/gcp.py +0 -0
  335. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/gemini.py +0 -0
  336. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/groq.py +0 -0
  337. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/litellm_any.py +0 -0
  338. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/manifest.json +0 -0
  339. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/openai.py +0 -0
  340. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/openrouter.py +0 -0
  341. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/providers/qa_samples.jsonl +0 -0
  342. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/quickstart/__init__.py +0 -0
  343. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/quickstart/__main__.py +0 -0
  344. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/quickstart/_env.py +0 -0
  345. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/quickstart/publish_and_verify.py +0 -0
  346. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
  347. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/examples/tutorial_bootstrap.py +0 -0
  348. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/__init__.py +0 -0
  349. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/backend_provider.py +0 -0
  350. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/example_synth.py +0 -0
  351. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/llm_provider.py +0 -0
  352. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/loop.py +0 -0
  353. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/models.py +0 -0
  354. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/options.py +0 -0
  355. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/prompt_rewriter.py +0 -0
  356. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/__init__.py +0 -0
  357. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/artifacts.py +0 -0
  358. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/buffer.py +0 -0
  359. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/document.py +0 -0
  360. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/edits.py +0 -0
  361. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/prompts.py +0 -0
  362. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/reflection.py +0 -0
  363. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/schedule.py +0 -0
  364. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/slow_update.py +0 -0
  365. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/splits.py +0 -0
  366. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/trainer.py +0 -0
  367. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/skill_train/trainer_result.py +0 -0
  368. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/generation/validators.py +0 -0
  369. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/guaranteed_modes.py +0 -0
  370. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hooks/__init__.py +0 -0
  371. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hooks/config.py +0 -0
  372. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hooks/installer.py +0 -0
  373. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hooks/validator.py +0 -0
  374. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hybrid/__init__.py +0 -0
  375. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hybrid/discovery.py +0 -0
  376. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hybrid/http_transport.py +0 -0
  377. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hybrid/lifecycle.py +0 -0
  378. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hybrid/mcp_transport.py +0 -0
  379. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hybrid/protocol.py +0 -0
  380. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/hybrid/transport.py +0 -0
  381. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/__init__.py +0 -0
  382. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/activation.py +0 -0
  383. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/base.py +0 -0
  384. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/base_plugin.py +0 -0
  385. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/bedrock_client.py +0 -0
  386. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/config.py +0 -0
  387. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/dspy_adapter.py +0 -0
  388. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/framework_override.py +0 -0
  389. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/langchain/__init__.py +0 -0
  390. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/langchain/handler.py +0 -0
  391. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/langfuse/__init__.py +0 -0
  392. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/langfuse/callback.py +0 -0
  393. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/langfuse/client.py +0 -0
  394. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/langfuse/tracker.py +0 -0
  395. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/__init__.py +0 -0
  396. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/anthropic_plugin.py +0 -0
  397. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
  398. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/base_llm_plugin.py +0 -0
  399. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/bedrock_plugin.py +0 -0
  400. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/cohere_plugin.py +0 -0
  401. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/gemini_plugin.py +0 -0
  402. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/huggingface_plugin.py +0 -0
  403. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/langchain/__init__.py +0 -0
  404. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/langchain/base.py +0 -0
  405. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/langchain_plugin.py +0 -0
  406. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/litellm_plugin.py +0 -0
  407. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
  408. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/mistral_plugin.py +0 -0
  409. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/openai.py +0 -0
  410. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/llms/openai_plugin.py +0 -0
  411. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/mappings.py +0 -0
  412. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/model_discovery/__init__.py +0 -0
  413. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
  414. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
  415. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/model_discovery/base.py +0 -0
  416. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/model_discovery/cache.py +0 -0
  417. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
  418. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
  419. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
  420. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/observability/__init__.py +0 -0
  421. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/observability/mlflow.py +0 -0
  422. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/observability/wandb.py +0 -0
  423. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/observability/workflow_traces.py +0 -0
  424. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/plugin_registry.py +0 -0
  425. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/pydantic_ai/__init__.py +0 -0
  426. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/pydantic_ai/_types.py +0 -0
  427. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/pydantic_ai/handler.py +0 -0
  428. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/pydantic_ai/plugin.py +0 -0
  429. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/utils/__init__.py +0 -0
  430. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/utils/discovery.py +0 -0
  431. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/utils/message_coercion.py +0 -0
  432. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/utils/mock_adapter.py +0 -0
  433. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/utils/parameter_normalizer.py +0 -0
  434. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/utils/response_wrapper.py +0 -0
  435. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/utils/validation.py +0 -0
  436. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/utils/version_compat.py +0 -0
  437. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/vector_stores/__init__.py +0 -0
  438. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/vector_stores/base.py +0 -0
  439. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
  440. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
  441. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
  442. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/integrations/wrappers.py +0 -0
  443. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/invokers/__init__.py +0 -0
  444. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/invokers/base.py +0 -0
  445. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/invokers/batch.py +0 -0
  446. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/invokers/local.py +0 -0
  447. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/invokers/streaming.py +0 -0
  448. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/__init__.py +0 -0
  449. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/adapters.py +0 -0
  450. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/bindings.py +0 -0
  451. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/canonical.py +0 -0
  452. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/cascade.py +0 -0
  453. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/certificates.py +0 -0
  454. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/composites.py +0 -0
  455. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/kinds.py +0 -0
  456. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/patterns.py +0 -0
  457. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/resolution.py +0 -0
  458. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/resolver.py +0 -0
  459. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/runtime.py +0 -0
  460. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/signals.py +0 -0
  461. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/knobs/telemetry.py +0 -0
  462. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/mcp/__init__.py +0 -0
  463. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/mcp/server.py +0 -0
  464. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/mcp/tools.py +0 -0
  465. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/metrics/__init__.py +0 -0
  466. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/metrics/agent_metrics.py +0 -0
  467. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/metrics/content_features.py +0 -0
  468. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/metrics/deepeval_metrics.py +0 -0
  469. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/metrics/ragas_metrics.py +0 -0
  470. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/metrics/registry.py +0 -0
  471. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/observability/__init__.py +0 -0
  472. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/observability/agent_spans.py +0 -0
  473. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/observability/client.py +0 -0
  474. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/observability/config.py +0 -0
  475. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/observability/decorators.py +0 -0
  476. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/observability/dtos.py +0 -0
  477. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/__init__.py +0 -0
  478. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/base.py +0 -0
  479. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/batch_optimizers.py +0 -0
  480. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/cloud_optimizer.py +0 -0
  481. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/grid.py +0 -0
  482. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/interactive_optimizer.py +0 -0
  483. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/random.py +0 -0
  484. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/registry.py +0 -0
  485. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/remote.py +0 -0
  486. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/remote_services.py +0 -0
  487. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/optimizers/results.py +0 -0
  488. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/playbook/__init__.py +0 -0
  489. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/playbook/loader.py +0 -0
  490. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/playbook/model.py +0 -0
  491. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/playbook/scaffold.py +0 -0
  492. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
  493. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/playbook/staleness.py +0 -0
  494. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/playbook/validator.py +0 -0
  495. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/plugins/__init__.py +0 -0
  496. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/plugins/registry.py +0 -0
  497. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/projects/__init__.py +0 -0
  498. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/projects/client.py +0 -0
  499. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/projects/config.py +0 -0
  500. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/projects/dtos.py +0 -0
  501. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/prompts/__init__.py +0 -0
  502. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/prompts/client.py +0 -0
  503. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/prompts/config.py +0 -0
  504. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/prompts/dtos.py +0 -0
  505. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/providers/__init__.py +0 -0
  506. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/py.typed +0 -0
  507. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/reporting/__init__.py +0 -0
  508. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/reporting/example_map.py +0 -0
  509. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/__init__.py +0 -0
  510. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/audit.py +0 -0
  511. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/auth/__init__.py +0 -0
  512. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/auth/helpers.py +0 -0
  513. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/auth/mfa.py +0 -0
  514. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/auth/models.py +0 -0
  515. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/auth/oidc.py +0 -0
  516. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/auth/saml.py +0 -0
  517. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/auth/sms.py +0 -0
  518. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/auth/totp.py +0 -0
  519. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/config.py +0 -0
  520. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/credentials.py +0 -0
  521. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/crypto_utils.py +0 -0
  522. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/deployment.py +0 -0
  523. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/encryption.py +0 -0
  524. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/enterprise.py +0 -0
  525. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/headers.py +0 -0
  526. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/input_validation.py +0 -0
  527. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/jwt_validator.py +0 -0
  528. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/rate_limiter.py +0 -0
  529. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/redaction.py +0 -0
  530. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/session_manager.py +0 -0
  531. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/security/tenant.py +0 -0
  532. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
  533. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
  534. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
  535. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
  536. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
  537. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
  538. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-debugging/SKILL.md +0 -0
  539. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
  540. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
  541. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
  542. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-decorator-setup/SKILL.md +0 -0
  543. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
  544. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
  545. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
  546. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-integrations/SKILL.md +0 -0
  547. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
  548. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
  549. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
  550. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
  551. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
  552. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
  553. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-run-optimization/SKILL.md +0 -0
  554. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
  555. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
  556. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
  557. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/storage/__init__.py +0 -0
  558. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/storage/local_storage.py +0 -0
  559. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/testing/__init__.py +0 -0
  560. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/traigent_client.py +0 -0
  561. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/traigent_integration.py +0 -0
  562. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tuned_variables/__init__.py +0 -0
  563. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tuned_variables/dataflow_strategy.py +0 -0
  564. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tuned_variables/detection_strategies.py +0 -0
  565. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tuned_variables/detection_types.py +0 -0
  566. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tuned_variables/detector.py +0 -0
  567. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tuned_variables/discovery.py +0 -0
  568. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tuned_variables/observation.py +0 -0
  569. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tuned_variables/py.typed +0 -0
  570. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/__init__.py +0 -0
  571. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/__main__.py +0 -0
  572. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/models.py +0 -0
  573. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/objectives.py +0 -0
  574. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/options.py +0 -0
  575. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/promotion_gate.py +0 -0
  576. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/registry.py +0 -0
  577. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/spec_loader.py +0 -0
  578. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/spec_validator.py +0 -0
  579. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/tvl/statistics.py +0 -0
  580. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/__init__.py +0 -0
  581. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/artifact_fingerprints.py +0 -0
  582. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/batch_optimizer_utils.py +0 -0
  583. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/batch_processing.py +0 -0
  584. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/callbacks.py +0 -0
  585. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/console.py +0 -0
  586. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/constraints.py +0 -0
  587. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/cost_calculator.py +0 -0
  588. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/diagnostics.py +0 -0
  589. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/discrete_domains.py +0 -0
  590. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/error_handler.py +0 -0
  591. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/example_id.py +0 -0
  592. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/exceptions.py +0 -0
  593. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/file_versioning.py +0 -0
  594. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/function_identity.py +0 -0
  595. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/hashing.py +0 -0
  596. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/importance.py +0 -0
  597. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/incentives.py +0 -0
  598. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/insights.py +0 -0
  599. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/langchain_interceptor.py +0 -0
  600. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/litellm_interceptor.py +0 -0
  601. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/llm_response_parsing.py +0 -0
  602. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/local_analytics.py +0 -0
  603. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/logging.py +0 -0
  604. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/multi_objective.py +0 -0
  605. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/numpy_compat.py +0 -0
  606. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/objectives.py +0 -0
  607. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/optimization_analyzer.py +0 -0
  608. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/optimization_logger.py +0 -0
  609. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/pagination.py +0 -0
  610. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/persistence.py +0 -0
  611. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/results_table.py +0 -0
  612. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/retry.py +0 -0
  613. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/secure_path.py +0 -0
  614. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/url_security.py +0 -0
  615. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/utils/validation.py +0 -0
  616. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/visualization/__init__.py +0 -0
  617. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/visualization/plots.py +0 -0
  618. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/wrapper/__init__.py +0 -0
  619. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/wrapper/errors.py +0 -0
  620. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/wrapper/server.py +0 -0
  621. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent/wrapper/service.py +0 -0
  622. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent.egg-info/dependency_links.txt +0 -0
  623. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent.egg-info/entry_points.txt +0 -0
  624. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent.egg-info/requires.txt +0 -0
  625. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent.egg-info/top_level.txt +0 -0
  626. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent_validation/__init__.py +0 -0
  627. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent_validation/base.py +0 -0
  628. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent_validation/plugins.py +0 -0
  629. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/traigent_validation/py.typed +0 -0
  630. {traigent-0.18.1.dev5 → traigent-0.18.1.dev7}/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.dev5
3
+ Version: 0.18.1.dev7
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.dev5"
7
+ version = "0.18.1.dev7"
8
8
  authors = [
9
9
  {name = "Traigent Team", email = "opensource@traigent.ai"},
10
10
  ]
@@ -70,6 +70,10 @@ from traigent.api.strategy_presets import (
70
70
  normalize_strategy_preset,
71
71
  )
72
72
  from traigent.api.types import AgentDefinition
73
+ from traigent.cloud.smart_pruning import SmartPruningOptions
74
+ from traigent.cloud.smart_pruning import (
75
+ normalize_smart_pruning_options as _normalize_smart_pruning_options,
76
+ )
73
77
  from traigent.config.parallel import (
74
78
  ParallelConfig,
75
79
  coerce_parallel_config,
@@ -111,6 +115,7 @@ __all__ = [
111
115
  "HybridAPIOptions",
112
116
  "ExternalServiceEvaluator",
113
117
  "ExecutionOptions",
118
+ "SmartPruningOptions",
114
119
  "MockModeOptions",
115
120
  "optimize",
116
121
  ]
@@ -215,6 +220,9 @@ class ExecutionOptions(BaseModel):
215
220
  parallel_config: Configuration for parallel execution.
216
221
  max_total_examples: Maximum total examples across all trials.
217
222
  samples_include_pruned: Whether to include pruned trials in sample count.
223
+ smart_pruning: Optional cloud-side pruning profile. When configured on a
224
+ managed/cloud run, the SDK reports content-free per-example progress
225
+ to the backend and honors prune decisions.
218
226
  reps_per_trial: Number of repetitions per configuration for statistical
219
227
  stability. Only the default ``1`` (no repetition) is available in the
220
228
  OSS SDK; passing any other value raises ``pydantic.ValidationError`` at
@@ -248,6 +256,7 @@ class ExecutionOptions(BaseModel):
248
256
  parallel_config: ParallelConfig | dict[str, Any] | None = None
249
257
  max_total_examples: int | None = None
250
258
  samples_include_pruned: bool = True
259
+ smart_pruning: SmartPruningOptions | dict[str, Any] | None = None
251
260
  reps_per_trial: int = 1
252
261
  reps_aggregation: str = "mean"
253
262
 
@@ -295,7 +304,7 @@ class ExecutionOptions(BaseModel):
295
304
  @field_validator("algorithm")
296
305
  @classmethod
297
306
  def _validate_algorithm(cls, v: str) -> str:
298
- return validate_algorithm_name(v)
307
+ return cast(str, validate_algorithm_name(v))
299
308
 
300
309
  @field_validator("offline")
301
310
  @classmethod
@@ -556,6 +565,7 @@ _OPTIMIZE_DEFAULTS: dict[str, Any] = {
556
565
  "parallel_config": None,
557
566
  "max_total_examples": None,
558
567
  "samples_include_pruned": True,
568
+ "smart_pruning": None,
559
569
  "mock_mode_config": None,
560
570
  "custom_evaluator": None,
561
571
  "scoring_function": None,
@@ -1258,6 +1268,7 @@ class ResolvedExecutionOptions:
1258
1268
  parallel_config: Any
1259
1269
  max_total_examples: Any
1260
1270
  samples_include_pruned: Any
1271
+ smart_pruning: Any
1261
1272
  legacy_options: dict[str, Any] = field(default_factory=dict)
1262
1273
 
1263
1274
 
@@ -1352,6 +1363,12 @@ def _resolve_execution_bundle_options(
1352
1363
  execution_bundle.samples_include_pruned,
1353
1364
  defaults,
1354
1365
  ),
1366
+ smart_pruning=_resolve_option(
1367
+ "smart_pruning",
1368
+ base_options.smart_pruning,
1369
+ execution_bundle.smart_pruning,
1370
+ defaults,
1371
+ ),
1355
1372
  legacy_options=legacy_options,
1356
1373
  )
1357
1374
 
@@ -1546,7 +1563,7 @@ def _runtime_algorithm_for_policy(
1546
1563
  policy.intent is ExecutionIntent.LOCAL_ONLY or external_evaluator is not None
1547
1564
  ):
1548
1565
  return "random"
1549
- return policy.algorithm
1566
+ return cast(str, policy.algorithm)
1550
1567
 
1551
1568
 
1552
1569
  def _runtime_execution_mode_for_policy(
@@ -2107,6 +2124,7 @@ def optimize( # NOSONAR(S107)
2107
2124
  offline: bool = False,
2108
2125
  strategy: str | None = None,
2109
2126
  strategy_params: Mapping[str, Any] | None = None,
2127
+ smart_pruning: SmartPruningOptions | dict[str, Any] | None = None,
2110
2128
  # Multi-agent configuration
2111
2129
  agents: dict[str, AgentDefinition] | None = None,
2112
2130
  agent_prefixes: list[str] | None = None,
@@ -2235,6 +2253,11 @@ def optimize( # NOSONAR(S107)
2235
2253
  or dict). Preferred path for controlling concurrency.
2236
2254
  max_total_examples: Global sample budget across all trials.
2237
2255
  samples_include_pruned: Whether pruned trials count toward the sample budget.
2256
+ smart_pruning: Optional cloud smart-pruning profile. Accepts a dict or
2257
+ ``SmartPruningOptions`` matching
2258
+ ``optimization/smart_pruning_schema.json``. The SDK sends it on
2259
+ session creation and emits content-free intermediate reports only
2260
+ for managed/cloud runs.
2238
2261
 
2239
2262
  Mock mode options:
2240
2263
  mock: Grouped mock-mode preferences (MockModeOptions or dict).
@@ -2438,6 +2461,7 @@ def optimize( # NOSONAR(S107)
2438
2461
  "mock": mock,
2439
2462
  "algorithm": algorithm,
2440
2463
  "offline": offline,
2464
+ "smart_pruning": smart_pruning,
2441
2465
  "agents": agents,
2442
2466
  "agent_prefixes": agent_prefixes,
2443
2467
  "agent_measures": agent_measures,
@@ -2529,6 +2553,7 @@ def optimize( # NOSONAR(S107)
2529
2553
  parallel_config = combined_settings["parallel_config"]
2530
2554
  max_total_examples = combined_settings["max_total_examples"]
2531
2555
  samples_include_pruned = combined_settings["samples_include_pruned"]
2556
+ smart_pruning_value = combined_settings["smart_pruning"]
2532
2557
  mock_mode_config = combined_settings["mock_mode_config"]
2533
2558
  custom_evaluator = combined_settings["custom_evaluator"]
2534
2559
  scoring_function = combined_settings["scoring_function"]
@@ -2639,6 +2664,7 @@ def optimize( # NOSONAR(S107)
2639
2664
  parallel_config=parallel_config,
2640
2665
  max_total_examples=max_total_examples,
2641
2666
  samples_include_pruned=samples_include_pruned,
2667
+ smart_pruning=smart_pruning_value,
2642
2668
  legacy_options=legacy_execution_options,
2643
2669
  )
2644
2670
  resolved_execution = _resolve_execution_bundle_options(
@@ -2656,7 +2682,9 @@ def optimize( # NOSONAR(S107)
2656
2682
  parallel_config = resolved_execution.parallel_config
2657
2683
  max_total_examples = resolved_execution.max_total_examples
2658
2684
  samples_include_pruned = resolved_execution.samples_include_pruned
2685
+ smart_pruning_value = resolved_execution.smart_pruning
2659
2686
  legacy_execution_options = resolved_execution.legacy_options
2687
+ smart_pruning_config = _normalize_smart_pruning_options(smart_pruning_value)
2660
2688
  external_service_evaluator = _resolve_external_service_evaluator(
2661
2689
  evaluator_value,
2662
2690
  legacy_execution_options,
@@ -2894,6 +2922,7 @@ def optimize( # NOSONAR(S107)
2894
2922
  minimal_logging=minimal_logging,
2895
2923
  max_total_examples=max_total_examples,
2896
2924
  samples_include_pruned=samples_include_pruned,
2925
+ smart_pruning=smart_pruning_config,
2897
2926
  parallel_config=combined_parallel_config,
2898
2927
  mock_mode_config=mock_mode_config,
2899
2928
  custom_evaluator=custom_evaluator,
@@ -30,6 +30,10 @@ from traigent.cloud.models import (
30
30
  SessionCreationResponse,
31
31
  TrialResultSubmission,
32
32
  )
33
+ from traigent.cloud.smart_pruning import (
34
+ normalize_intermediate_report_payload,
35
+ normalize_smart_pruning_options,
36
+ )
33
37
  from traigent.config.backend_config import BackendConfig
34
38
  from traigent.core.session_types import (
35
39
  SessionCreationFailureDetail,
@@ -661,6 +665,10 @@ class ApiOperations:
661
665
  payload["tvl_governance"] = wire_governance
662
666
  if getattr(session_request, "warm_start_from", None):
663
667
  payload["warm_start_from"] = session_request.warm_start_from
668
+ smart_pruning = getattr(session_request, "smart_pruning", None)
669
+ wire_smart_pruning = normalize_smart_pruning_options(smart_pruning)
670
+ if wire_smart_pruning:
671
+ payload["smart_pruning"] = wire_smart_pruning
664
672
  self._attach_artifact_fingerprint_payload(payload, session_request)
665
673
  return payload
666
674
 
@@ -705,6 +713,10 @@ class ApiOperations:
705
713
  # BE may not consume it yet; the SDK must still forward it.
706
714
  if getattr(session_request, "warm_start_from", None):
707
715
  payload["warm_start_from"] = session_request.warm_start_from
716
+ smart_pruning = getattr(session_request, "smart_pruning", None)
717
+ wire_smart_pruning = normalize_smart_pruning_options(smart_pruning)
718
+ if wire_smart_pruning:
719
+ payload["smart_pruning"] = wire_smart_pruning
708
720
  self._attach_artifact_fingerprint_payload(payload, session_request)
709
721
  return payload
710
722
 
@@ -797,6 +809,75 @@ class ApiOperations:
797
809
  normalized = str(value).strip()
798
810
  return normalized or None
799
811
 
812
+ async def report_intermediate_progress(
813
+ self, payload: dict[str, Any]
814
+ ) -> dict[str, Any]:
815
+ """Report per-trial intermediate progress for cloud smart pruning."""
816
+ wire_payload = normalize_intermediate_report_payload(payload)
817
+ session_id = str(wire_payload.get("session_id", "")).strip()
818
+ trial_id = str(wire_payload.get("trial_id", "")).strip()
819
+ if not session_id or not trial_id:
820
+ return {"prune": False, "prune_reason": None}
821
+ if is_backend_offline():
822
+ logger.debug(
823
+ "Offline mode: skipping intermediate report for session %s trial %s",
824
+ session_id,
825
+ trial_id,
826
+ )
827
+ return {"prune": False, "prune_reason": None}
828
+
829
+ self._raise_if_backend_egress_disabled("intermediate report")
830
+ if not AIOHTTP_AVAILABLE:
831
+ logger.debug("aiohttp not available, skipping intermediate report")
832
+ return {"prune": False, "prune_reason": None}
833
+
834
+ try:
835
+ headers = await self.client.auth_manager.augment_headers(
836
+ {"Content-Type": _JSON_CONTENT_TYPE}
837
+ )
838
+ async with cast(Any, aiohttp).ClientSession(
839
+ connector=self._build_connector()
840
+ ) as session:
841
+ api_base = (
842
+ self.client.backend_config.api_base_url
843
+ or BackendConfig.get_backend_api_url()
844
+ )
845
+ url = f"{api_base}/sessions/{session_id}/intermediate-report"
846
+ timeout = cast(Any, aiohttp).ClientTimeout(total=10)
847
+ async with session.post(
848
+ url,
849
+ json=wire_payload,
850
+ headers=headers,
851
+ timeout=timeout,
852
+ ) as response:
853
+ if response.status == 200:
854
+ decision = await response.json()
855
+ if isinstance(decision, dict):
856
+ return {
857
+ "prune": bool(decision.get("prune", False)),
858
+ "prune_reason": decision.get("prune_reason"),
859
+ }
860
+ return {"prune": False, "prune_reason": None}
861
+
862
+ error_msg = await response.text()
863
+ logger.debug(
864
+ "Intermediate report rejected for session %s trial %s: "
865
+ "HTTP %s %s",
866
+ session_id,
867
+ trial_id,
868
+ response.status,
869
+ error_msg[:300],
870
+ )
871
+ return {"prune": False, "prune_reason": None}
872
+ except aiohttp.ClientError as exc:
873
+ logger.debug(
874
+ "Network error sending intermediate report for session %s trial %s: %s",
875
+ session_id,
876
+ trial_id,
877
+ exc,
878
+ )
879
+ return {"prune": False, "prune_reason": None}
880
+
800
881
  def _handle_session_error(self, status_code: int, error_msg: str) -> None:
801
882
  """Raise structured exceptions for non-success HTTP responses.
802
883
 
@@ -584,6 +584,7 @@ class BackendIntegratedClient:
584
584
 
585
585
  self.enable_fallback = enable_fallback
586
586
  self.no_egress = bool(no_egress)
587
+ self.cloud_egress_intent = False
587
588
  self._api_key_fallback = api_key
588
589
  self.enable_rate_limiting = enable_rate_limiting
589
590
  self.rate_limit_calls = rate_limit_calls
@@ -1285,8 +1286,11 @@ class BackendIntegratedClient:
1285
1286
  ) -> TrialSuggestion | None:
1286
1287
  """Get next trial suggestion for privacy-first optimization.
1287
1288
  Delegates to privacy_operations module."""
1288
- return await self._privacy_ops.get_next_privacy_trial(
1289
- session_id, previous_results
1289
+ return cast(
1290
+ TrialSuggestion | None,
1291
+ await self._privacy_ops.get_next_privacy_trial(
1292
+ session_id, previous_results
1293
+ ),
1290
1294
  )
1291
1295
 
1292
1296
  async def submit_privacy_trial_results(
@@ -1319,8 +1323,16 @@ class BackendIntegratedClient:
1319
1323
  ) -> AgentOptimizationResponse:
1320
1324
  """Start reserved cloud agent optimization.
1321
1325
  Delegates to cloud_operations module."""
1322
- return await self._cloud_ops.start_agent_optimization(
1323
- agent_spec, dataset, configuration_space, objectives, max_trials, user_id
1326
+ return cast(
1327
+ AgentOptimizationResponse,
1328
+ await self._cloud_ops.start_agent_optimization(
1329
+ agent_spec,
1330
+ dataset,
1331
+ configuration_space,
1332
+ objectives,
1333
+ max_trials,
1334
+ user_id,
1335
+ ),
1324
1336
  )
1325
1337
 
1326
1338
  async def execute_agent(
@@ -1331,8 +1343,11 @@ class BackendIntegratedClient:
1331
1343
  ) -> AgentExecutionResponse:
1332
1344
  """Execute agent through the reserved cloud path.
1333
1345
  Delegates to cloud_operations module."""
1334
- return await self._cloud_ops.execute_agent(
1335
- agent_spec, input_data, config_overrides
1346
+ return cast(
1347
+ AgentExecutionResponse,
1348
+ await self._cloud_ops.execute_agent(
1349
+ agent_spec, input_data, config_overrides
1350
+ ),
1336
1351
  )
1337
1352
 
1338
1353
  # Session Operations
@@ -1348,6 +1363,7 @@ class BackendIntegratedClient:
1348
1363
  warm_start_from: str | None = None,
1349
1364
  artifact_fingerprints: dict[str, str | None] | None = None,
1350
1365
  fingerprint_meta: dict[str, Any] | None = None,
1366
+ smart_pruning: dict[str, Any] | None = None,
1351
1367
  ) -> SessionCreationResult:
1352
1368
  """Synchronous wrapper for creating a session.
1353
1369
  Delegates to session_operations module. Phase 8: objectives are
@@ -1364,6 +1380,7 @@ class BackendIntegratedClient:
1364
1380
  warm_start_from=warm_start_from,
1365
1381
  artifact_fingerprints=artifact_fingerprints,
1366
1382
  fingerprint_meta=fingerprint_meta,
1383
+ smart_pruning=smart_pruning,
1367
1384
  )
1368
1385
 
1369
1386
  async def create_hybrid_session(
@@ -2059,6 +2076,15 @@ class BackendIntegratedClient:
2059
2076
  await self._api_ops.update_config_run_status(config_run_id, status),
2060
2077
  )
2061
2078
 
2079
+ async def _report_intermediate_progress(
2080
+ self, payload: dict[str, Any]
2081
+ ) -> dict[str, Any]:
2082
+ """Report intermediate trial progress for smart pruning."""
2083
+ return cast(
2084
+ dict[str, Any],
2085
+ await self._api_ops.report_intermediate_progress(payload),
2086
+ )
2087
+
2062
2088
  async def _update_config_run_measures(
2063
2089
  self,
2064
2090
  config_run_id: str,
@@ -10,7 +10,7 @@ import os
10
10
  import time
11
11
  import weakref
12
12
  from abc import ABC, abstractmethod
13
- from collections.abc import Callable, Mapping, Sequence
13
+ from collections.abc import Awaitable, Callable, Mapping, Sequence
14
14
  from dataclasses import dataclass
15
15
  from importlib import import_module
16
16
  from typing import Any, NoReturn, cast
@@ -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,9 +62,11 @@ from .models import (
62
62
  SessionCreationRequest,
63
63
  SessionCreationResponse,
64
64
  SessionObjectiveDefinition,
65
+ SessionSummary,
65
66
  TrialResultSubmission,
66
67
  TrialSuggestion,
67
68
  )
69
+ from .smart_pruning import normalize_smart_pruning_options
68
70
  from .subset_selection import SmartSubsetSelector
69
71
  from .url_security import validate_cloud_base_url
70
72
 
@@ -130,7 +132,7 @@ def _session_is_closed(session: Any) -> bool:
130
132
  return False
131
133
 
132
134
 
133
- def _log_finalizer_close_task_result(task: asyncio.Task[Any], owner: str) -> None:
135
+ def _log_finalizer_close_task_result(task: asyncio.Future[Any], owner: str) -> None:
134
136
  try:
135
137
  task.result()
136
138
  except asyncio.CancelledError:
@@ -162,7 +164,10 @@ def _schedule_aiohttp_session_close(
162
164
  try:
163
165
  close_result = close_method()
164
166
  if inspect.isawaitable(close_result):
165
- task = loop.create_task(close_result)
167
+ task: asyncio.Future[Any] = asyncio.ensure_future(
168
+ cast(Awaitable[Any], close_result),
169
+ loop=loop,
170
+ )
166
171
  task.add_done_callback(
167
172
  lambda done_task: _log_finalizer_close_task_result(done_task, owner)
168
173
  )
@@ -1517,8 +1522,16 @@ class TraigentCloudClient(BaseTraigentClient):
1517
1522
  f"Failed to finalize session: {e}", "session_finalization", e
1518
1523
  ) from e
1519
1524
 
1520
- async def delete_session(self, session_id: str, cascade: bool = True) -> bool:
1521
- """Delete a session using the backend cleanup endpoint."""
1525
+ async def delete_session(self, session_id: str, cascade: bool = False) -> bool:
1526
+ """Delete a session via ``DELETE /api/v1/sessions/<id>``.
1527
+
1528
+ Non-destructive by default (``cascade=False``), matching the backend
1529
+ default: only the session and its run artifacts are removed. Pass
1530
+ ``cascade=True`` to additionally hard-delete the parent experiment when
1531
+ the deleted session was its last run. Use this with
1532
+ :meth:`list_sessions` to enumerate and clean up orphaned / zombie
1533
+ "running" sessions from the client.
1534
+ """
1522
1535
  if not session_id:
1523
1536
  raise ValueError("session_id is required")
1524
1537
 
@@ -1556,6 +1569,68 @@ class TraigentCloudClient(BaseTraigentClient):
1556
1569
  f"Failed to delete session: {exc}", "session_delete", exc
1557
1570
  ) from exc
1558
1571
 
1572
+ async def list_sessions(
1573
+ self,
1574
+ status: str | None = None,
1575
+ pattern: str | None = None,
1576
+ limit: int | None = None,
1577
+ ) -> list[SessionSummary]:
1578
+ """List sessions via ``GET /api/v1/sessions``.
1579
+
1580
+ Enumerates the caller's optimization sessions so orphaned / zombie
1581
+ "running" sessions can be found and cleaned up with
1582
+ :meth:`delete_session`. Returns typed :class:`SessionSummary` objects.
1583
+
1584
+ Args:
1585
+ status: Optional lifecycle filter (server-side ``status`` query param).
1586
+ pattern: Optional session-id match (server-side ``pattern`` query
1587
+ param).
1588
+ limit: Optional cap on the number of summaries returned. The backend
1589
+ does not support a server-side limit, so this is applied
1590
+ client-side after the response is received.
1591
+
1592
+ Returns:
1593
+ A list of :class:`SessionSummary` (empty when there are none).
1594
+ """
1595
+ self._raise_if_backend_egress_disabled("list sessions")
1596
+ await self._ensure_session()
1597
+ if self._aio_session is None:
1598
+ raise CloudServiceError(_SESSION_NOT_INITIALIZED)
1599
+
1600
+ params: dict[str, str] = {}
1601
+ if status is not None:
1602
+ params["status"] = str(status)
1603
+ if pattern is not None:
1604
+ params["pattern"] = str(pattern)
1605
+
1606
+ url = f"{self.api_base_url}/sessions"
1607
+ try:
1608
+ async with self._aio_session.get(url, params=params) as response:
1609
+ if response.status != 200:
1610
+ error_text = await response.text()
1611
+ raise CloudServiceError(
1612
+ f"Failed to list sessions: status={response.status} "
1613
+ f"body={error_text[:200]}"
1614
+ )
1615
+ data = await response.json()
1616
+ except aiohttp.ClientError as exc:
1617
+ await self._reset_http_session("list_sessions network error")
1618
+ raise StandardizedClientError(
1619
+ f"Failed to list sessions: {exc}", "session_list", exc
1620
+ ) from exc
1621
+
1622
+ raw_sessions = data.get("sessions") if isinstance(data, dict) else None
1623
+ if not isinstance(raw_sessions, list):
1624
+ raw_sessions = []
1625
+ summaries = [
1626
+ SessionSummary.from_dict(item)
1627
+ for item in raw_sessions
1628
+ if isinstance(item, dict)
1629
+ ]
1630
+ if limit is not None and limit >= 0:
1631
+ summaries = summaries[:limit]
1632
+ return summaries
1633
+
1559
1634
  # Stateful optimization methods for interactive model
1560
1635
 
1561
1636
  async def create_optimization_session(
@@ -1865,6 +1940,9 @@ class TraigentCloudClient(BaseTraigentClient):
1865
1940
  # Warm-start: prior experiment id (empty string treated as absent).
1866
1941
  if request.warm_start_from:
1867
1942
  payload["warm_start_from"] = request.warm_start_from
1943
+ smart_pruning = normalize_smart_pruning_options(request.smart_pruning)
1944
+ if smart_pruning:
1945
+ payload["smart_pruning"] = smart_pruning
1868
1946
  artifact_fingerprints = artifact_fingerprints_to_wire(
1869
1947
  getattr(request, "artifact_fingerprints", None)
1870
1948
  )
@@ -19,6 +19,7 @@ from typing import Any
19
19
  # enum lives in ``traigent.api.types``. Re-export it here so the cloud layer and
20
20
  # the public API can never drift into two disagreeing ``TrialStatus`` enums.
21
21
  from traigent.api.types import TrialStatus as TrialStatus
22
+ from traigent.cloud.smart_pruning import normalize_smart_pruning_options
22
23
  from traigent.evaluators.base import Dataset
23
24
 
24
25
 
@@ -139,6 +140,40 @@ class OptimizationSession:
139
140
  )
140
141
 
141
142
 
143
+ @dataclass
144
+ class SessionSummary:
145
+ """Lightweight summary of a session from ``GET /api/v1/sessions``.
146
+
147
+ Returned by :meth:`traigent.cloud.client.TraigentCloudClient.list_sessions`.
148
+ Maps the backend session-list contract
149
+ (``optimization/optimization_session_list_response_schema.json``):
150
+ ``session_id`` and
151
+ ``status`` are always present; ``created_at`` / ``progress`` when the server
152
+ provides them. Forward-compatible — any additional server fields are kept in
153
+ ``extra`` rather than dropped, so the SDK can enumerate and clean up orphaned
154
+ sessions without a release per new field.
155
+ """
156
+
157
+ session_id: str
158
+ status: str
159
+ created_at: str | None = None
160
+ progress: dict[str, Any] | None = None
161
+ extra: dict[str, Any] = field(default_factory=dict)
162
+
163
+ @classmethod
164
+ def from_dict(cls, data: dict[str, Any]) -> SessionSummary:
165
+ """Build a summary from one backend session object, tolerating extras."""
166
+ known = {"session_id", "status", "created_at", "progress"}
167
+ progress = data.get("progress")
168
+ return cls(
169
+ session_id=str(data.get("session_id", "")),
170
+ status=str(data.get("status", "")),
171
+ created_at=data.get("created_at"),
172
+ progress=progress if isinstance(progress, dict) else None,
173
+ extra={k: v for k, v in data.items() if k not in known},
174
+ )
175
+
176
+
142
177
  @dataclass
143
178
  class DatasetSubsetIndices:
144
179
  """Indices for selecting a subset of the dataset."""
@@ -194,6 +229,7 @@ class SessionCreationRequest:
194
229
  constraints: dict[str, Any] | None = None
195
230
  default_config: dict[str, Any] | None = None
196
231
  warm_start_from: str | None = None
232
+ smart_pruning: dict[str, Any] | None = None
197
233
  promotion_policy: dict[str, Any] | None = None
198
234
  # Content-free TVL governance summary (RFC 0001 P8): cvar names/types/
199
235
  # governed flags only — built by traigent.cloud.governance, never ad hoc.
@@ -217,6 +253,7 @@ class SessionCreationRequest:
217
253
  self.objectives: list[Any] = []
218
254
  if self.dataset_metadata is None:
219
255
  self.dataset_metadata: dict[str, Any] = {"size": 100, "type": "test"}
256
+ self.smart_pruning = normalize_smart_pruning_options(self.smart_pruning)
220
257
  # Ensure max_trials is never None
221
258
  if self.max_trials is None:
222
259
  self.max_trials = 10
@@ -33,6 +33,7 @@ from traigent.cloud.session_types import (
33
33
  SessionCreationFailureReason,
34
34
  SessionCreationResult,
35
35
  )
36
+ from traigent.cloud.smart_pruning import normalize_smart_pruning_options
36
37
  from traigent.config.backend_config import BackendConfig
37
38
  from traigent.utils.env_config import is_backend_offline, resolve_environment_label
38
39
  from traigent.utils.exceptions import ValidationError as ValidationException
@@ -367,7 +368,7 @@ class SessionOperations:
367
368
  },
368
369
  )
369
370
  logger.debug("Created local fallback session: %s", session_id)
370
- return session_id
371
+ return cast(str, session_id)
371
372
  except Exception as storage_e:
372
373
  logger.debug("Local storage fallback failed: %s", storage_e)
373
374
 
@@ -498,6 +499,7 @@ class SessionOperations:
498
499
  promotion_policy: dict[str, Any] | None = None,
499
500
  tvl_governance: dict[str, Any] | None = None,
500
501
  warm_start_from: str | None = None,
502
+ smart_pruning: dict[str, Any] | None = None,
501
503
  artifact_fingerprints: dict[str, str | None] | None = None,
502
504
  fingerprint_meta: dict[str, Any] | None = None,
503
505
  ) -> SessionCreationResult:
@@ -521,6 +523,7 @@ class SessionOperations:
521
523
  self._validate_non_empty_string(optimization_goal, "optimization_goal")
522
524
  if metadata is not None and not isinstance(metadata, dict):
523
525
  raise ValidationException("metadata must be a dictionary if provided")
526
+ normalized_smart_pruning = normalize_smart_pruning_options(smart_pruning)
524
527
 
525
528
  # Phase 8 (review round 2): the local-availability fallback is for
526
529
  # NON-governed sessions only. A governed/strict session that cannot
@@ -629,6 +632,7 @@ class SessionOperations:
629
632
  # reading objectives[0] as its optimization_goal).
630
633
  objectives=list(objectives) if objectives else [optimization_goal],
631
634
  warm_start_from=warm_start_from or None,
635
+ smart_pruning=normalized_smart_pruning,
632
636
  dataset_metadata={
633
637
  "size": metadata.get("dataset_size", 0) if metadata else 0,
634
638
  # Carry the dataset label (content is not submitted) so the
@@ -1587,7 +1591,9 @@ class SessionOperations:
1587
1591
  def get_active_sessions(self) -> dict[str, OptimizationSession]:
1588
1592
  """Get all active optimization sessions."""
1589
1593
  with self.client._active_sessions_lock:
1590
- return self.client._active_sessions.copy()
1594
+ return cast(
1595
+ dict[str, OptimizationSession], self.client._active_sessions.copy()
1596
+ )
1591
1597
 
1592
1598
  def get_session_mapping(self, session_id: str) -> SessionExperimentMapping | None:
1593
1599
  """Get session to experiment mapping."""