traigent 0.18.1.dev3__tar.gz → 0.18.1.dev5__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.dev3/traigent.egg-info → traigent-0.18.1.dev5}/PKG-INFO +1 -1
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/pyproject.toml +1 -1
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/decorators.py +109 -3
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/analytics_client.py +77 -4
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/service.py +34 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/session_operations.py +251 -37
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/api_keys.py +11 -2
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/backend_session_manager.py +13 -3
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/optimized_function.py +17 -4
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/session_types.py +24 -1
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/framework_override.py +67 -19
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/huggingface_plugin.py +6 -3
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/mappings.py +132 -7
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/providers.py +39 -3
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/providers/validation.py +139 -16
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tvl/models.py +4 -3
- traigent-0.18.1.dev5/traigent/tvl/promotion_gate.py +731 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/env_config.py +13 -4
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/results_table.py +17 -1
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5/traigent.egg-info}/PKG-INFO +1 -1
- traigent-0.18.1.dev3/traigent/tvl/promotion_gate.py +0 -530
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/CHANGELOG.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/COMMERCIAL-LICENSE.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/CONTRIBUTING.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/CONTRIBUTOR-LICENSING.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/DISCLAIMER.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/LICENSE +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/MANIFEST.in +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/NOTICE +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/README.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/SECURITY.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/LOCAL_CI_GATE.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/README.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/SYNC_MAP.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/agent-skill.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/api-reference/complete-function-specification.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/api-reference/decorator-reference.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/api-reference/enterprise-beta-api.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/api-reference/interactive_optimizer.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/api-reference/telemetry.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/api-reference/thread-pool-examples.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/architecture/ARCHITECTURE.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/architecture/cost-architecture-validation.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/architecture/execution_mode_follow_up.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/architecture/integrations-inventory.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/architecture/plugin_architecture.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/architecture/project-structure.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/architecture/stop_conditions.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/concepts/composite-knob-ir.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/concepts/composite-knobs.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/concepts/guided-generation.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/contributing/CONTRIBUTING.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/contributing/README.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/contributing/SECURITY.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/contributing/aikido_triage.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/contributing/code_review_instructions.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/contributing/test-quality-guide.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/demos/README.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/examples/API_PATTERNS.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/examples/LEARNING_ROADMAP.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/examples/QUICK_REFERENCE.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/examples/README.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/examples/START_HERE.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/examples/TROUBLESHOOTING.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/fake-completion-tracking.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/feature_matrices/README.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/README.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/authentication.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/constraint-dsl.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/dataflow-detection.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/framework_override_enhanced_features.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/mcp-server.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/observability-spans.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/onboarding.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/prompt_management.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/recommendations.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/safety-gates.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/seamless_injection.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/strategy-presets.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/features/strict_metrics_nulls.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/getting-started/GETTING_STARTED.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/getting-started/README.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/getting-started/installation.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/getting-started/minimal-integration.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/getting-started/testing.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/guides/evaluation.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/guides/execution-mode-migration.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/guides/execution-modes.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/guides/js-bridge.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/guides/llm_plugin_migration_guide.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/guides/parallel-configuration.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/guides/secrets_management.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/hybrid-mode-api-contract.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/hybrid-mode-client-guide.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/operations/azure_openai.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/operations/bedrock.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/operations/google_gemini.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/security/trust_model.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/traceability/concepts/composite-knob-ir.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/traceability/concepts/composite-knobs.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/traceability/concepts/guided-generation.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/traceability/schema.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/traceability/tagging_tracking.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/traceability/taxonomy_reference.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/user-guide/README.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/user-guide/agent_optimization.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/user-guide/choosing_optimization_model.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/user-guide/configuration-spaces.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/user-guide/evaluation_guide.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/user-guide/injection_modes.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/user-guide/interactive_optimization.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/user-guide/smart_optimization.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/user-guide/tuned_variables.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/docs/walkthrough.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements-all.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements-analytics.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements-bayesian.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements-chroma.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements-dev.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements-hybrid.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements-integrations.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements-security.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements-test.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/requirements/requirements.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/setup.cfg +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/_version.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/adapters/execution_adapter.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/admin/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/admin/client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/admin/config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/admin/dtos.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/agents/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/agents/config_mapper.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/agents/executor.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/agents/platforms.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/agents/specification_generator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/anomaly.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/cost_optimization.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/example_insights.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/intelligence.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/meta_learning.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/next_steps.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/optimization_plan.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/predictive.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/render.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics/scheduling.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics_mcp/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics_mcp/server.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/analytics_mcp/tools.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/agent_inference.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/config_builder.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/config_space.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/constraint_builders.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/constraints.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/functions.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/parameter_ranges.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/parameter_validator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/safety.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/strategy_presets.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/types.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/api/validation_protocol.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/auth_commands.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/detect_tvars_command.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/function_discovery.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/generate_config_command.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/hooks_commands.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/local_commands.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/main.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/next_steps_command.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/onboard_commands.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/optimization_validator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/plan_command.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/playbook_commands.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/sync_commands.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cli/validation_types.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/_aiohttp_compat.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/agent_dtos.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/analytics_auth.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/api_key_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/api_operations.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/async_batch_transport.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/auth.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/backend_bridges.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/backend_client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/backend_components.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/backend_synchronizer.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/benchmark_client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/billing.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/cloud_operations.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/credential_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/credential_resolver.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/dataset_converter.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/dtos.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/governance.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/integration_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/models.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/optimizer_client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/password_auth_handler.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/privacy_operations.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/production_mcp_client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/remote_guidance.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/resilient_client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/session_types.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/sessions.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/subset_selection.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/sync_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/token_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/trial_operations.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/trial_tracker.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/url_security.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/user_agent.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/cloud/validators.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/ast_transformer.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/backend_config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/context.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/feature_flags.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/models.yaml +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/parallel.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/project.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/providers.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/runtime_injector.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/tenant.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config/types.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/agent_classifier.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/apply.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/catalog.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/llm_backend.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/pipeline.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/presets/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/presets/constraint_templates.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/presets/range_presets.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/recommendations.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/subsystems/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/subsystems/benchmarks.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/subsystems/objectives.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/config_generator/types.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/best_config_runtime.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/cache_policy.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/ci_approval.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/config_state_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/constants.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/cost_enforcement.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/cost_estimator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/evaluator_wrapper.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/exception_handler.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/execution_policy_runtime.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/license.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/logger_facade.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/mandatory_metrics.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/meta_types.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/metadata_helpers.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/metric_registry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/metrics_aggregator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/namespace.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/objectives.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/optimization_pipeline.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/orchestrator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/orchestrator_helpers.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/parallel_execution_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/progress_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/result_selection.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/sample_budget.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/samplers/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/samplers/random_sampler.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/session_context.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/stat_significance.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/stop_condition_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/stop_conditions.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/trace_env.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/tracing.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/trial_context.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/trial_lifecycle.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/trial_result_factory.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/types.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/types_ext.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/utils.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core/workflow_trace_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core_metrics/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core_metrics/client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core_metrics/config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/core_metrics/dtos.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/defaults.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/effectuation/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/effectuation/contracts.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/effectuation/strategies/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/effectuation/strategies/framework_param.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/effectuation/strategies/self_consistency.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluation/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluation/client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluation/config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluation/dtos.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/base.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/catalog_loader.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/dataset_registry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/hybrid_api.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/local.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/metrics.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/metrics_tracker.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/evaluators/recommendations.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/_bootstrap.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/_demo.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/anthropic.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/aws.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/azure.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/gcp.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/gemini.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/groq.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/litellm_any.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/manifest.json +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/openai.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/openrouter.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/providers/qa_samples.jsonl +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/quickstart/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/quickstart/__main__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/quickstart/_env.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/quickstart/publish_and_verify.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/examples/tutorial_bootstrap.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/backend_provider.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/example_synth.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/llm_provider.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/loop.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/models.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/options.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/prompt_rewriter.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/artifacts.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/buffer.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/document.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/edits.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/prompts.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/reflection.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/schedule.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/slow_update.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/splits.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/trainer.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/skill_train/trainer_result.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/generation/validators.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/guaranteed_modes.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hooks/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hooks/config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hooks/installer.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hooks/validator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hybrid/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hybrid/discovery.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hybrid/http_transport.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hybrid/lifecycle.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hybrid/mcp_transport.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hybrid/protocol.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/hybrid/transport.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/activation.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/base.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/base_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/bedrock_client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/dspy_adapter.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/langchain/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/langchain/handler.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/langfuse/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/langfuse/callback.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/langfuse/client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/langfuse/tracker.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/anthropic_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/base_llm_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/bedrock_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/cohere_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/gemini_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/langchain/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/langchain/base.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/langchain_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/litellm_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/mistral_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/openai.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/llms/openai_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/model_discovery/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/model_discovery/base.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/model_discovery/cache.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/model_discovery/registry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/observability/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/observability/mlflow.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/observability/wandb.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/observability/workflow_traces.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/plugin_registry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/pydantic_ai/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/pydantic_ai/_types.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/pydantic_ai/handler.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/pydantic_ai/plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/utils/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/utils/discovery.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/utils/message_coercion.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/utils/mock_adapter.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/utils/parameter_normalizer.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/utils/response_wrapper.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/utils/validation.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/utils/version_compat.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/vector_stores/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/vector_stores/base.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/integrations/wrappers.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/invokers/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/invokers/base.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/invokers/batch.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/invokers/local.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/invokers/streaming.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/adapters.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/bindings.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/canonical.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/cascade.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/certificates.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/composites.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/kinds.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/patterns.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/resolution.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/resolver.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/runtime.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/signals.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/knobs/telemetry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/mcp/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/mcp/server.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/mcp/tools.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/metrics/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/metrics/agent_metrics.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/metrics/content_features.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/metrics/deepeval_metrics.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/metrics/ragas_metrics.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/metrics/registry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/observability/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/observability/agent_spans.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/observability/client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/observability/config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/observability/decorators.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/observability/dtos.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/base.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/batch_optimizers.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/cloud_optimizer.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/grid.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/interactive_optimizer.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/random.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/registry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/remote.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/remote_services.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/optimizers/results.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/playbook/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/playbook/loader.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/playbook/model.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/playbook/scaffold.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/playbook/staleness.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/playbook/validator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/plugins/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/plugins/registry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/projects/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/projects/client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/projects/config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/projects/dtos.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/prompts/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/prompts/client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/prompts/config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/prompts/dtos.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/providers/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/py.typed +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/reporting/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/reporting/example_map.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/audit.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/auth/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/auth/helpers.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/auth/mfa.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/auth/models.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/auth/oidc.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/auth/saml.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/auth/sms.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/auth/totp.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/config.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/credentials.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/crypto_utils.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/deployment.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/encryption.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/enterprise.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/headers.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/input_validation.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/jwt_validator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/rate_limiter.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/redaction.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/session_manager.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/security/tenant.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-debugging/SKILL.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-decorator-setup/SKILL.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-integrations/SKILL.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-run-optimization/SKILL.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/storage/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/storage/local_storage.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/testing/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/traigent_client.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/traigent_integration.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tuned_variables/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tuned_variables/dataflow_strategy.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tuned_variables/detection_strategies.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tuned_variables/detection_types.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tuned_variables/detector.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tuned_variables/discovery.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tuned_variables/observation.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tuned_variables/py.typed +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tvl/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tvl/__main__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tvl/objectives.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tvl/options.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tvl/registry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tvl/spec_loader.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tvl/spec_validator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/tvl/statistics.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/artifact_fingerprints.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/batch_optimizer_utils.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/batch_processing.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/callbacks.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/console.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/constraints.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/cost_calculator.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/diagnostics.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/discrete_domains.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/error_handler.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/example_id.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/exceptions.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/file_versioning.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/function_identity.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/hashing.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/importance.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/incentives.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/insights.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/langchain_interceptor.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/litellm_interceptor.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/llm_response_parsing.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/local_analytics.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/logging.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/multi_objective.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/numpy_compat.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/objectives.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/optimization_analyzer.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/optimization_logger.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/pagination.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/persistence.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/retry.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/secure_path.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/url_security.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/utils/validation.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/visualization/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/visualization/plots.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/wrapper/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/wrapper/errors.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/wrapper/server.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent/wrapper/service.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent.egg-info/SOURCES.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent.egg-info/dependency_links.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent.egg-info/entry_points.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent.egg-info/requires.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent.egg-info/top_level.txt +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent_validation/__init__.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent_validation/base.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent_validation/plugins.py +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/traigent_validation/py.typed +0 -0
- {traigent-0.18.1.dev3 → traigent-0.18.1.dev5}/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.
|
|
3
|
+
Version: 0.18.1.dev5
|
|
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
|
|
@@ -43,6 +43,7 @@ Examples:
|
|
|
43
43
|
from __future__ import annotations
|
|
44
44
|
|
|
45
45
|
import inspect
|
|
46
|
+
import os
|
|
46
47
|
from collections.abc import Callable, Collection, Mapping
|
|
47
48
|
from dataclasses import dataclass, field
|
|
48
49
|
from pathlib import Path
|
|
@@ -2011,6 +2012,79 @@ def _suggest_detected_tvars(
|
|
|
2011
2012
|
return None
|
|
2012
2013
|
|
|
2013
2014
|
|
|
2015
|
+
def _build_default_experiment_name(
|
|
2016
|
+
func_name: str,
|
|
2017
|
+
resolved_schema: ObjectiveSchema | None,
|
|
2018
|
+
resolved_configuration_space: dict[str, Any] | None,
|
|
2019
|
+
*,
|
|
2020
|
+
max_knobs: int = 4,
|
|
2021
|
+
max_total_length: int = 120,
|
|
2022
|
+
) -> str:
|
|
2023
|
+
"""Build a self-describing default experiment name when none is provided.
|
|
2024
|
+
|
|
2025
|
+
Combines the function name, objective names, and tuned-variable (knob) names
|
|
2026
|
+
into a concise, deterministic, human-meaningful string. Format::
|
|
2027
|
+
|
|
2028
|
+
<func_name>[<obj1>,<obj2>,...][<knob1>,<knob2>,...]
|
|
2029
|
+
|
|
2030
|
+
Args:
|
|
2031
|
+
func_name: The decorated function's ``__name__``.
|
|
2032
|
+
resolved_schema: Resolved objective schema (from ``_resolve_objective_schema``).
|
|
2033
|
+
resolved_configuration_space: Normalized configuration-space dict whose keys
|
|
2034
|
+
are the tuned-variable names.
|
|
2035
|
+
max_knobs: Maximum number of knob names to display before appending ``,...``.
|
|
2036
|
+
max_total_length: Hard cap on the final string length (excess is truncated).
|
|
2037
|
+
|
|
2038
|
+
Returns:
|
|
2039
|
+
A deterministic, human-readable default experiment name.
|
|
2040
|
+
"""
|
|
2041
|
+
# Build the objective suffix — always preserved in the output.
|
|
2042
|
+
obj_suffix = ""
|
|
2043
|
+
if resolved_schema is not None:
|
|
2044
|
+
obj_names = [obj.name for obj in resolved_schema.objectives]
|
|
2045
|
+
obj_suffix = f"[{','.join(obj_names)}]"
|
|
2046
|
+
|
|
2047
|
+
# Build the knob suffix; cap list length to avoid excessively long names.
|
|
2048
|
+
knob_suffix = ""
|
|
2049
|
+
if resolved_configuration_space:
|
|
2050
|
+
knob_names = list(resolved_configuration_space.keys())
|
|
2051
|
+
if len(knob_names) > max_knobs:
|
|
2052
|
+
displayed = knob_names[:max_knobs]
|
|
2053
|
+
knob_suffix = f"[{','.join(displayed)},...]"
|
|
2054
|
+
else:
|
|
2055
|
+
knob_suffix = f"[{','.join(knob_names)}]"
|
|
2056
|
+
|
|
2057
|
+
# Invariant: the objectives + knob sections are the self-describing payload
|
|
2058
|
+
# and must never be sacrificed to the length cap. Truncate only the
|
|
2059
|
+
# function-name prefix (appending "~" to signal the cut), never the suffix.
|
|
2060
|
+
suffix = obj_suffix + knob_suffix
|
|
2061
|
+
func_budget = max_total_length - len(suffix)
|
|
2062
|
+
|
|
2063
|
+
if func_budget <= 0:
|
|
2064
|
+
# Suffix alone meets or exceeds the cap — omit the function-name prefix.
|
|
2065
|
+
if len(suffix) <= max_total_length:
|
|
2066
|
+
return suffix
|
|
2067
|
+
# Extreme edge case: even the suffix is over budget. Preserve at least
|
|
2068
|
+
# the objectives and one knob name by trimming the knob list.
|
|
2069
|
+
if resolved_configuration_space:
|
|
2070
|
+
knob_names_list = list(resolved_configuration_space.keys())
|
|
2071
|
+
min_knob_suffix = f"[{knob_names_list[0]}]"
|
|
2072
|
+
combined = obj_suffix + min_knob_suffix
|
|
2073
|
+
if len(combined) <= max_total_length:
|
|
2074
|
+
return combined
|
|
2075
|
+
return obj_suffix[:max_total_length]
|
|
2076
|
+
|
|
2077
|
+
# Fit the function name into the remaining budget, marking any cut with "~".
|
|
2078
|
+
if len(func_name) <= func_budget:
|
|
2079
|
+
func_part = func_name
|
|
2080
|
+
elif func_budget >= 2:
|
|
2081
|
+
func_part = func_name[: func_budget - 1] + "~"
|
|
2082
|
+
else:
|
|
2083
|
+
func_part = func_name[:func_budget]
|
|
2084
|
+
|
|
2085
|
+
return func_part + suffix
|
|
2086
|
+
|
|
2087
|
+
|
|
2014
2088
|
def optimize( # NOSONAR(S107)
|
|
2015
2089
|
*,
|
|
2016
2090
|
objectives: list[str] | ObjectiveSchema | None = None,
|
|
@@ -2760,6 +2834,36 @@ def optimize( # NOSONAR(S107)
|
|
|
2760
2834
|
config_param,
|
|
2761
2835
|
)
|
|
2762
2836
|
|
|
2837
|
+
# Experiment name resolution (#1422).
|
|
2838
|
+
#
|
|
2839
|
+
# _experiment_name on OptimizedFunction stores ONLY the explicit decorator value
|
|
2840
|
+
# so the getter can lazily check TRAIGENT_EXPERIMENT_NAME at each access —
|
|
2841
|
+
# callers that set the env var AFTER decoration must see it take effect.
|
|
2842
|
+
#
|
|
2843
|
+
# The self-describing default (func name + objectives + knobs) is precomputed
|
|
2844
|
+
# here because the inputs are fully resolved at decoration time; it is stored
|
|
2845
|
+
# in _default_experiment_name and used by the getter as the last resort, after
|
|
2846
|
+
# the explicit value and the env var are both absent.
|
|
2847
|
+
#
|
|
2848
|
+
# Priority resolved in OptimizedFunction.experiment_name getter (highest → lowest):
|
|
2849
|
+
# 1. Explicit experiment_name decorator argument → _experiment_name (not None).
|
|
2850
|
+
# 2. TRAIGENT_EXPERIMENT_NAME env var — checked at ACCESS time (not decoration time).
|
|
2851
|
+
# 3. Self-describing default → _default_experiment_name.
|
|
2852
|
+
# 4. Bare func.__name__ (if no objectives/knobs were registered).
|
|
2853
|
+
default_experiment_name: str | None = None
|
|
2854
|
+
if experiment_name_value is None:
|
|
2855
|
+
default_experiment_name = _build_default_experiment_name(
|
|
2856
|
+
func.__name__, resolved_schema, resolved_configuration_space
|
|
2857
|
+
)
|
|
2858
|
+
|
|
2859
|
+
# Approximate resolved name for the creation log (decoration-time snapshot only).
|
|
2860
|
+
effective_experiment_name = (
|
|
2861
|
+
experiment_name_value
|
|
2862
|
+
or os.environ.get("TRAIGENT_EXPERIMENT_NAME")
|
|
2863
|
+
or default_experiment_name
|
|
2864
|
+
or func.__name__
|
|
2865
|
+
)
|
|
2866
|
+
|
|
2763
2867
|
optimized_func: OptimizedFunction[_P, _R] = OptimizedFunction( # type: ignore[assignment]
|
|
2764
2868
|
func=func,
|
|
2765
2869
|
eval_dataset=eval_dataset,
|
|
@@ -2819,8 +2923,11 @@ def optimize( # NOSONAR(S107)
|
|
|
2819
2923
|
# Optimizer limits (extracted from combined_settings)
|
|
2820
2924
|
max_trials=max_trials_value,
|
|
2821
2925
|
_max_trials_explicit=max_trials_explicit,
|
|
2822
|
-
# Experiment display name
|
|
2926
|
+
# Experiment display name: only the explicit value goes into _experiment_name
|
|
2927
|
+
# so that TRAIGENT_EXPERIMENT_NAME is checked lazily at access time.
|
|
2928
|
+
# The precomputed self-describing default is stored separately.
|
|
2823
2929
|
experiment_name=experiment_name_value,
|
|
2930
|
+
_default_experiment_name=default_experiment_name,
|
|
2824
2931
|
# Warm-start: seed this run from a prior experiment's learned configs.
|
|
2825
2932
|
warm_start_from=warm_start_from_value,
|
|
2826
2933
|
# Guided-generation defaults (consumed by optimize_with_guidance)
|
|
@@ -2834,9 +2941,8 @@ def optimize( # NOSONAR(S107)
|
|
|
2834
2941
|
optimized_func.hybrid_api_options = hybrid_api_options
|
|
2835
2942
|
optimized_func.offline = execution_policy.offline
|
|
2836
2943
|
|
|
2837
|
-
effective_name = experiment_name_value or func.__name__
|
|
2838
2944
|
logger.info(
|
|
2839
|
-
f"Created optimizable function: {func.__name__} (experiment_name={
|
|
2945
|
+
f"Created optimizable function: {func.__name__} (experiment_name={effective_experiment_name!r})"
|
|
2840
2946
|
)
|
|
2841
2947
|
|
|
2842
2948
|
# cast so mypy sees OptimizedFunction[_P, _R] rather than
|
|
@@ -143,6 +143,32 @@ _EXAMPLE_INSIGHT_RECOMMENDED_ACTIONS = frozenset(
|
|
|
143
143
|
}
|
|
144
144
|
)
|
|
145
145
|
|
|
146
|
+
# Allowlists for nested aggregate fields in get_example_insights() — derived from
|
|
147
|
+
# BackendAnalyticsClient's RunExampleInsights Pydantic schema (ExampleInsightsSummary,
|
|
148
|
+
# ExampleInsightsCohort, ExampleInsightsRecommendation, ExampleInsightsRedactions in
|
|
149
|
+
# shared_infrastructure/schemas/run_analytics.py) and from the extended fixture in
|
|
150
|
+
# tests/unit/cloud/test_analytics_client.py (which documents count keys that the backend
|
|
151
|
+
# schema will expose in subsequent releases). All fields are coarse-aggregated, backend-
|
|
152
|
+
# redacted, and contain no proprietary per-example signals.
|
|
153
|
+
_EXAMPLE_INSIGHTS_SUMMARY_KEYS: frozenset[str] = frozenset(
|
|
154
|
+
{
|
|
155
|
+
"example_count",
|
|
156
|
+
"weak_example_count",
|
|
157
|
+
"unstable_example_count",
|
|
158
|
+
"suspicious_example_count",
|
|
159
|
+
"notable_example_count",
|
|
160
|
+
"stable_example_count",
|
|
161
|
+
"dataset_quality",
|
|
162
|
+
}
|
|
163
|
+
)
|
|
164
|
+
_EXAMPLE_INSIGHTS_COHORT_KEYS: frozenset[str] = frozenset(
|
|
165
|
+
{"kind", "count", "impact", "safe_example_refs", "recommendation"}
|
|
166
|
+
)
|
|
167
|
+
_EXAMPLE_INSIGHTS_RECOMMENDATION_KEYS: frozenset[str] = frozenset({"action", "reason"})
|
|
168
|
+
_EXAMPLE_INSIGHTS_REDACTIONS_KEYS: frozenset[str] = frozenset(
|
|
169
|
+
{"raw_proprietary_signals_hidden", "raw_prompt_text_hidden_by_default"}
|
|
170
|
+
)
|
|
171
|
+
|
|
146
172
|
|
|
147
173
|
class AnalyticsClientError(RuntimeError):
|
|
148
174
|
"""Raised when the analytics backend returns a malformed response.
|
|
@@ -237,6 +263,21 @@ def _project_example_insight_row(row: Any, *, index: int) -> dict[str, Any]:
|
|
|
237
263
|
}
|
|
238
264
|
|
|
239
265
|
|
|
266
|
+
def _project_aggregate(data: Any, keys: frozenset[str], *, what: str) -> dict[str, Any]:
|
|
267
|
+
"""Project a mapping to its known-safe keys, dropping unknown/raw keys.
|
|
268
|
+
|
|
269
|
+
Unknown nested keys can carry proprietary signals or raw backend state.
|
|
270
|
+
This function is the nested-aggregate counterpart of the per-row construction
|
|
271
|
+
in :func:`_project_example_insight_row`: both rebuild output by allowlist so
|
|
272
|
+
nothing unknown can pass through regardless of what the backend sends.
|
|
273
|
+
"""
|
|
274
|
+
if not isinstance(data, dict):
|
|
275
|
+
raise AnalyticsClientError(
|
|
276
|
+
f"Malformed example insights response: {what} must be an object."
|
|
277
|
+
)
|
|
278
|
+
return {k: v for k, v in data.items() if k in keys}
|
|
279
|
+
|
|
280
|
+
|
|
240
281
|
def _quote_segment(value: str, *, field: str) -> str:
|
|
241
282
|
"""URL-encode a path segment, rejecting empty values up front.
|
|
242
283
|
|
|
@@ -666,18 +707,50 @@ class BackendAnalyticsClient:
|
|
|
666
707
|
"Malformed example insights response: example_rows must contain "
|
|
667
708
|
"at most 100 rows."
|
|
668
709
|
)
|
|
710
|
+
cohorts_raw = payload["cohorts"]
|
|
711
|
+
if not isinstance(cohorts_raw, list):
|
|
712
|
+
raise AnalyticsClientError(
|
|
713
|
+
"Malformed example insights response: cohorts must be a list."
|
|
714
|
+
)
|
|
715
|
+
recommendations_raw = payload["recommendations"]
|
|
716
|
+
if not isinstance(recommendations_raw, list):
|
|
717
|
+
raise AnalyticsClientError(
|
|
718
|
+
"Malformed example insights response: recommendations must be a list."
|
|
719
|
+
)
|
|
669
720
|
|
|
670
721
|
return {
|
|
671
722
|
"run_id": payload["run_id"],
|
|
672
723
|
"privacy_mode": payload["privacy_mode"],
|
|
673
|
-
"summary":
|
|
724
|
+
"summary": _project_aggregate(
|
|
725
|
+
payload["summary"],
|
|
726
|
+
_EXAMPLE_INSIGHTS_SUMMARY_KEYS,
|
|
727
|
+
what="summary",
|
|
728
|
+
),
|
|
674
729
|
"example_rows": [
|
|
675
730
|
_project_example_insight_row(row, index=index)
|
|
676
731
|
for index, row in enumerate(rows)
|
|
677
732
|
],
|
|
678
|
-
"cohorts":
|
|
679
|
-
|
|
680
|
-
|
|
733
|
+
"cohorts": [
|
|
734
|
+
_project_aggregate(
|
|
735
|
+
cohort,
|
|
736
|
+
_EXAMPLE_INSIGHTS_COHORT_KEYS,
|
|
737
|
+
what=f"cohorts[{i}]",
|
|
738
|
+
)
|
|
739
|
+
for i, cohort in enumerate(cohorts_raw)
|
|
740
|
+
],
|
|
741
|
+
"recommendations": [
|
|
742
|
+
_project_aggregate(
|
|
743
|
+
rec,
|
|
744
|
+
_EXAMPLE_INSIGHTS_RECOMMENDATION_KEYS,
|
|
745
|
+
what=f"recommendations[{i}]",
|
|
746
|
+
)
|
|
747
|
+
for i, rec in enumerate(recommendations_raw)
|
|
748
|
+
],
|
|
749
|
+
"redactions": _project_aggregate(
|
|
750
|
+
payload["redactions"],
|
|
751
|
+
_EXAMPLE_INSIGHTS_REDACTIONS_KEYS,
|
|
752
|
+
what="redactions",
|
|
753
|
+
),
|
|
681
754
|
}
|
|
682
755
|
|
|
683
756
|
|
|
@@ -94,6 +94,40 @@ class TraigentCloudService:
|
|
|
94
94
|
if not request.configuration_space:
|
|
95
95
|
raise ValidationException("configuration_space must not be empty")
|
|
96
96
|
|
|
97
|
+
# Detect boolean values before any network or compute work.
|
|
98
|
+
# bool is a subclass of int in Python; use type(v) is bool so that
|
|
99
|
+
# real ints/floats (including 0/1) are NOT mistakenly rejected.
|
|
100
|
+
# Catches booleans in ALL supported value shapes:
|
|
101
|
+
# - scalar bool: {"flag": True}
|
|
102
|
+
# - list/tuple of values: {"flag": [True, False]}
|
|
103
|
+
# - typed param dict: {"flag": {"type": "categorical", "choices": [True, False]}}
|
|
104
|
+
def _cs_value_contains_bool(value: Any) -> bool:
|
|
105
|
+
if type(value) is bool:
|
|
106
|
+
return True
|
|
107
|
+
if isinstance(value, (list, tuple)):
|
|
108
|
+
return any(type(v) is bool for v in value)
|
|
109
|
+
if isinstance(value, dict):
|
|
110
|
+
for _key in ("choices", "values"):
|
|
111
|
+
seq = value.get(_key)
|
|
112
|
+
if isinstance(seq, (list, tuple)) and any(
|
|
113
|
+
type(v) is bool for v in seq
|
|
114
|
+
):
|
|
115
|
+
return True
|
|
116
|
+
return False
|
|
117
|
+
|
|
118
|
+
_bool_knobs = [
|
|
119
|
+
key
|
|
120
|
+
for key, value in request.configuration_space.items()
|
|
121
|
+
if _cs_value_contains_bool(value)
|
|
122
|
+
]
|
|
123
|
+
if _bool_knobs:
|
|
124
|
+
_field_refs = ", ".join(f'"{k}"' for k in _bool_knobs)
|
|
125
|
+
raise ValidationException(
|
|
126
|
+
f"configuration_space[{_field_refs}]: boolean values are not "
|
|
127
|
+
f"supported by the cloud session API — encode as strings "
|
|
128
|
+
f'(e.g. "true"/"false") or 0/1'
|
|
129
|
+
)
|
|
130
|
+
|
|
97
131
|
validate_or_raise(
|
|
98
132
|
CoreValidators.validate_list(
|
|
99
133
|
request.objectives,
|