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