traigent 0.18.1.dev7__tar.gz → 0.18.1.dev9__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.dev7/traigent.egg-info → traigent-0.18.1.dev9}/PKG-INFO +1 -1
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/pyproject.toml +1 -1
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/orchestrator.py +5 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/trial_lifecycle.py +5 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/base.py +242 -24
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/interactive_optimizer.py +64 -33
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9/traigent.egg-info}/PKG-INFO +1 -1
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/CHANGELOG.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/COMMERCIAL-LICENSE.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/CONTRIBUTING.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/CONTRIBUTOR-LICENSING.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/DISCLAIMER.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/LICENSE +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/MANIFEST.in +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/NOTICE +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/README.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/SECURITY.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/LOCAL_CI_GATE.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/README.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/SYNC_MAP.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/agent-skill.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/complete-function-specification.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/decorator-reference.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/enterprise-beta-api.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/interactive_optimizer.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/telemetry.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/thread-pool-examples.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/ARCHITECTURE.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/cost-architecture-validation.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/execution_mode_follow_up.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/integrations-inventory.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/plugin_architecture.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/project-structure.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/stop_conditions.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/concepts/composite-knob-ir.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/concepts/composite-knobs.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/concepts/guided-generation.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/CONTRIBUTING.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/README.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/SECURITY.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/aikido_triage.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/code_review_instructions.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/contributing/test-quality-guide.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/demos/README.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/API_PATTERNS.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/LEARNING_ROADMAP.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/QUICK_REFERENCE.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/README.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/START_HERE.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/examples/TROUBLESHOOTING.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/fake-completion-tracking.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/feature_matrices/README.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/README.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/authentication.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/constraint-dsl.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/dataflow-detection.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/framework_override_enhanced_features.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/mcp-server.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/observability-spans.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/onboarding.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/prompt_management.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/recommendations.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/safety-gates.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/seamless_injection.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/strategy-presets.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/features/strict_metrics_nulls.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/GETTING_STARTED.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/README.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/installation.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/minimal-integration.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/getting-started/testing.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/evaluation.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/execution-mode-migration.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/execution-modes.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/js-bridge.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/llm_plugin_migration_guide.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/parallel-configuration.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/guides/secrets_management.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/hybrid-mode-api-contract.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/hybrid-mode-client-guide.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/operations/azure_openai.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/operations/bedrock.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/operations/google_gemini.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/security/trust_model.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/concepts/composite-knob-ir.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/concepts/composite-knobs.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/concepts/guided-generation.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/schema.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/tagging_tracking.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/traceability/taxonomy_reference.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/README.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/agent_optimization.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/choosing_optimization_model.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/configuration-spaces.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/evaluation_guide.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/injection_modes.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/interactive_optimization.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/smart_optimization.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/user-guide/tuned_variables.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/walkthrough.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-all.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-analytics.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-bayesian.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-chroma.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-dev.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-hybrid.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-integrations.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-security.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements-test.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/requirements/requirements.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/setup.cfg +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/_version.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/adapters/execution_adapter.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/admin/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/admin/client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/admin/config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/admin/dtos.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/config_mapper.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/executor.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/platforms.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/agents/specification_generator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/anomaly.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/cost_optimization.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/example_insights.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/intelligence.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/meta_learning.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/next_steps.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/optimization_plan.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/predictive.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/render.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics/scheduling.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics_mcp/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics_mcp/server.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/analytics_mcp/tools.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/agent_inference.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/config_builder.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/config_space.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/constraint_builders.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/constraints.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/decorators.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/functions.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/parameter_ranges.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/parameter_validator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/safety.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/strategy_presets.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/api/validation_protocol.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/auth_commands.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/detect_tvars_command.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/function_discovery.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/generate_config_command.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/hooks_commands.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/local_commands.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/main.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/next_steps_command.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/onboard_commands.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/optimization_validator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/plan_command.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/playbook_commands.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/sync_commands.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cli/validation_types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/_aiohttp_compat.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/agent_dtos.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/analytics_auth.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/analytics_client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/api_key_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/api_operations.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/async_batch_transport.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/auth.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/backend_bridges.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/backend_client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/backend_components.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/backend_synchronizer.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/benchmark_client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/billing.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/cloud_operations.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/credential_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/credential_resolver.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/dataset_converter.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/dtos.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/governance.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/integration_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/models.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/optimizer_client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/password_auth_handler.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/privacy_operations.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/production_mcp_client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/remote_guidance.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/resilient_client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/service.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/session_operations.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/session_types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/sessions.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/smart_pruning.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/subset_selection.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/sync_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/token_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/trial_operations.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/trial_tracker.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/url_security.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/user_agent.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/cloud/validators.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/api_keys.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/ast_transformer.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/backend_config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/context.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/feature_flags.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/models.yaml +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/parallel.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/project.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/provider_support.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/providers.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/runtime_injector.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/tenant.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config/types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/agent_classifier.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/apply.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/catalog.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/llm_backend.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/pipeline.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/constraint_templates.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/presets/range_presets.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/recommendations.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/benchmarks.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/objectives.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/config_generator/types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/backend_session_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/best_config_runtime.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/cache_policy.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/ci_approval.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/config_state_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/constants.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/cost_enforcement.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/cost_estimator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/evaluator_wrapper.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/exception_handler.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/execution_policy_runtime.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/license.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/logger_facade.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/mandatory_metrics.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/meta_types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/metadata_helpers.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/metric_registry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/metrics_aggregator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/namespace.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/objectives.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/optimization_pipeline.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/optimized_function.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/orchestrator_helpers.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/parallel_execution_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/progress_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/result_selection.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/sample_budget.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/samplers/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/samplers/random_sampler.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/session_context.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/session_types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/stat_significance.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/stop_condition_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/stop_conditions.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/trace_env.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/tracing.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/trial_context.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/trial_result_factory.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/types_ext.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/utils.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core/workflow_trace_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core_metrics/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core_metrics/client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core_metrics/config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/core_metrics/dtos.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/defaults.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/contracts.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/strategies/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/strategies/framework_param.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/effectuation/strategies/self_consistency.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluation/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluation/client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluation/config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluation/dtos.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/catalog_loader.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/dataset_registry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/hybrid_api.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/local.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/metrics.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/metrics_tracker.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/evaluators/recommendations.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/_bootstrap.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/_demo.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/anthropic.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/aws.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/azure.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/gcp.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/gemini.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/groq.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/litellm_any.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/manifest.json +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/openai.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/openrouter.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/providers/qa_samples.jsonl +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/__main__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/_env.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/publish_and_verify.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/examples/tutorial_bootstrap.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/backend_provider.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/example_synth.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/llm_provider.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/loop.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/models.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/options.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/prompt_rewriter.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/artifacts.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/buffer.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/document.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/edits.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/prompts.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/reflection.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/schedule.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/slow_update.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/splits.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/trainer.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/skill_train/trainer_result.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/generation/validators.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/guaranteed_modes.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hooks/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hooks/config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hooks/installer.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hooks/validator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/discovery.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/http_transport.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/lifecycle.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/mcp_transport.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/protocol.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/hybrid/transport.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/activation.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/base.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/base_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/bedrock_client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/dspy_adapter.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/framework_override.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langchain/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langchain/handler.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/callback.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/langfuse/tracker.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/anthropic_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/base_llm_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/bedrock_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/cohere_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/gemini_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/huggingface_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/langchain/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/langchain/base.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/langchain_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/litellm_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/mistral_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/openai.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/llms/openai_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/mappings.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/base.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/cache.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/model_discovery/registry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/observability/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/observability/mlflow.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/observability/wandb.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/observability/workflow_traces.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/plugin_registry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/providers.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/_types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/handler.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/pydantic_ai/plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/discovery.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/message_coercion.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/mock_adapter.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/parameter_normalizer.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/response_wrapper.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/validation.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/utils/version_compat.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/base.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/integrations/wrappers.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/base.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/batch.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/local.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/invokers/streaming.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/adapters.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/bindings.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/canonical.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/cascade.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/certificates.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/composites.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/kinds.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/patterns.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/resolution.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/resolver.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/runtime.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/signals.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/knobs/telemetry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/mcp/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/mcp/server.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/mcp/tools.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/agent_metrics.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/content_features.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/deepeval_metrics.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/ragas_metrics.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/metrics/registry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/agent_spans.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/decorators.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/observability/dtos.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/base.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/batch_optimizers.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/cloud_optimizer.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/grid.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/random.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/registry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/remote.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/remote_services.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/optimizers/results.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/loader.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/model.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/scaffold.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/staleness.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/playbook/validator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/plugins/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/plugins/registry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/projects/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/projects/client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/projects/config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/projects/dtos.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/prompts/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/prompts/client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/prompts/config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/prompts/dtos.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/providers/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/providers/validation.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/py.typed +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/reporting/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/reporting/example_map.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/audit.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/helpers.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/mfa.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/models.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/oidc.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/saml.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/sms.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/auth/totp.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/credentials.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/crypto_utils.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/deployment.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/encryption.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/enterprise.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/headers.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/input_validation.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/jwt_validator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/rate_limiter.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/redaction.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/session_manager.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/security/tenant.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/SKILL.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/SKILL.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/SKILL.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/SKILL.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/storage/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/storage/local_storage.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/testing/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/traigent_client.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/traigent_integration.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/dataflow_strategy.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/detection_strategies.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/detection_types.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/detector.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/discovery.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/observation.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tuned_variables/py.typed +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/__main__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/models.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/objectives.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/options.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/promotion_gate.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/registry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/spec_loader.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/spec_validator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/tvl/statistics.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/artifact_fingerprints.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/batch_optimizer_utils.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/batch_processing.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/callbacks.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/console.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/constraints.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/cost_calculator.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/diagnostics.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/discrete_domains.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/env_config.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/error_handler.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/example_id.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/exceptions.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/file_versioning.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/function_identity.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/hashing.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/importance.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/incentives.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/insights.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/langchain_interceptor.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/litellm_interceptor.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/llm_response_parsing.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/local_analytics.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/logging.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/multi_objective.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/numpy_compat.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/objectives.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/optimization_analyzer.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/optimization_logger.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/pagination.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/persistence.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/results_table.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/retry.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/secure_path.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/url_security.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/utils/validation.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/visualization/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/visualization/plots.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/wrapper/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/wrapper/errors.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/wrapper/server.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent/wrapper/service.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/SOURCES.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/dependency_links.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/entry_points.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/requires.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent.egg-info/top_level.txt +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent_validation/__init__.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent_validation/base.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent_validation/plugins.py +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/traigent_validation/py.typed +0 -0
- {traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/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.dev9
|
|
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
|
|
@@ -101,6 +101,7 @@ from traigent.core.workflow_trace_manager import WorkflowTraceManager
|
|
|
101
101
|
from traigent.evaluators.base import BaseEvaluator, Dataset
|
|
102
102
|
from traigent.metrics.registry import clone_registry
|
|
103
103
|
from traigent.optimizers.base import BaseOptimizer
|
|
104
|
+
from traigent.optimizers.interactive_optimizer import CloudBrainOptimizationComplete
|
|
104
105
|
from traigent.tvl.promotion_gate import PromotionGate
|
|
105
106
|
from traigent.utils.callbacks import CallbackManager, OptimizationCallback, ProgressInfo
|
|
106
107
|
from traigent.utils.env_config import ( # noqa: F401
|
|
@@ -2588,6 +2589,10 @@ class OptimizationOrchestrator:
|
|
|
2588
2589
|
self._stop_reason = "vendor_error"
|
|
2589
2590
|
return trial_count, "break"
|
|
2590
2591
|
return trial_count, "continue" # User chose to resume
|
|
2592
|
+
except CloudBrainOptimizationComplete as complete:
|
|
2593
|
+
self._stop_reason = cast(StopReason, complete.stop_reason)
|
|
2594
|
+
logger.info("Cloud brain completed optimization: %s", complete.reason)
|
|
2595
|
+
return trial_count, "break"
|
|
2591
2596
|
|
|
2592
2597
|
@staticmethod
|
|
2593
2598
|
def _vendor_retry_settings() -> tuple[int, float]:
|
|
@@ -761,6 +761,11 @@ class TrialLifecycle:
|
|
|
761
761
|
decision = report(payload) if callable(report) else {}
|
|
762
762
|
if isinstance(decision, dict) and decision.get("prune") is True:
|
|
763
763
|
reason = decision.get("prune_reason") or "cloud smart pruning"
|
|
764
|
+
logger.info(
|
|
765
|
+
"Cloud smart pruning requested trial pruning after %s examples: %s",
|
|
766
|
+
state["evaluated"],
|
|
767
|
+
reason,
|
|
768
|
+
)
|
|
764
769
|
raise TrialPrunedError(str(reason), step=int(state["evaluated"]))
|
|
765
770
|
|
|
766
771
|
return _progress_callback, state
|
|
@@ -1610,7 +1610,10 @@ class BaseEvaluator(ABC):
|
|
|
1610
1610
|
|
|
1611
1611
|
if progress_callback:
|
|
1612
1612
|
progress_callback(
|
|
1613
|
-
index,
|
|
1613
|
+
index,
|
|
1614
|
+
self._build_non_detailed_progress_payload(
|
|
1615
|
+
example, index, output, error
|
|
1616
|
+
),
|
|
1614
1617
|
)
|
|
1615
1618
|
|
|
1616
1619
|
return output, error
|
|
@@ -1643,6 +1646,7 @@ class BaseEvaluator(ABC):
|
|
|
1643
1646
|
config,
|
|
1644
1647
|
example,
|
|
1645
1648
|
i,
|
|
1649
|
+
dataset,
|
|
1646
1650
|
executor=None,
|
|
1647
1651
|
progress_callback=progress_callback,
|
|
1648
1652
|
)
|
|
@@ -1727,6 +1731,7 @@ class BaseEvaluator(ABC):
|
|
|
1727
1731
|
detailed: bool,
|
|
1728
1732
|
progress_callback: Callable[[int, dict[str, Any]], Any] | None,
|
|
1729
1733
|
index: int,
|
|
1734
|
+
example: EvaluationExample,
|
|
1730
1735
|
outputs: list[Any],
|
|
1731
1736
|
errors: list[str | None],
|
|
1732
1737
|
example_results: list[ExampleResult | None],
|
|
@@ -1742,7 +1747,10 @@ class BaseEvaluator(ABC):
|
|
|
1742
1747
|
errors.append(error)
|
|
1743
1748
|
if progress_callback:
|
|
1744
1749
|
progress_callback(
|
|
1745
|
-
index,
|
|
1750
|
+
index,
|
|
1751
|
+
self._build_non_detailed_progress_payload(
|
|
1752
|
+
example, index, output, error
|
|
1753
|
+
),
|
|
1746
1754
|
)
|
|
1747
1755
|
|
|
1748
1756
|
async def _handle_task_result(
|
|
@@ -1813,6 +1821,7 @@ class BaseEvaluator(ABC):
|
|
|
1813
1821
|
result,
|
|
1814
1822
|
detailed,
|
|
1815
1823
|
progress_callback,
|
|
1824
|
+
examples[index],
|
|
1816
1825
|
outputs_by_index,
|
|
1817
1826
|
errors_by_index,
|
|
1818
1827
|
example_results_by_index,
|
|
@@ -1845,6 +1854,7 @@ class BaseEvaluator(ABC):
|
|
|
1845
1854
|
result: Any,
|
|
1846
1855
|
detailed: bool,
|
|
1847
1856
|
progress_callback: Callable[[int, dict[str, Any]], Any] | None,
|
|
1857
|
+
example: EvaluationExample,
|
|
1848
1858
|
outputs_by_index: dict[int, Any],
|
|
1849
1859
|
errors_by_index: dict[int, str | None],
|
|
1850
1860
|
example_results_by_index: dict[int, ExampleResult | None],
|
|
@@ -1864,7 +1874,9 @@ class BaseEvaluator(ABC):
|
|
|
1864
1874
|
# Note: This is sync in the original, we handle exceptions elsewhere
|
|
1865
1875
|
progress_callback(
|
|
1866
1876
|
index,
|
|
1867
|
-
|
|
1877
|
+
self._build_non_detailed_progress_payload(
|
|
1878
|
+
example, index, output, error
|
|
1879
|
+
),
|
|
1868
1880
|
)
|
|
1869
1881
|
|
|
1870
1882
|
async def _safe_progress_callback(
|
|
@@ -1998,6 +2010,7 @@ class BaseEvaluator(ABC):
|
|
|
1998
2010
|
consumed, exhausted = await self._run_concurrent_tasks(
|
|
1999
2011
|
func,
|
|
2000
2012
|
config,
|
|
2013
|
+
dataset,
|
|
2001
2014
|
examples,
|
|
2002
2015
|
sample_lease,
|
|
2003
2016
|
detailed,
|
|
@@ -2032,6 +2045,7 @@ class BaseEvaluator(ABC):
|
|
|
2032
2045
|
self,
|
|
2033
2046
|
func: Callable[..., Any],
|
|
2034
2047
|
config: dict[str, Any],
|
|
2048
|
+
dataset: Dataset,
|
|
2035
2049
|
examples: list[EvaluationExample],
|
|
2036
2050
|
sample_lease: SampleBudgetLease | None,
|
|
2037
2051
|
detailed: bool,
|
|
@@ -2055,6 +2069,7 @@ class BaseEvaluator(ABC):
|
|
|
2055
2069
|
config,
|
|
2056
2070
|
example,
|
|
2057
2071
|
idx,
|
|
2072
|
+
dataset,
|
|
2058
2073
|
executor=None,
|
|
2059
2074
|
progress_callback=progress_callback,
|
|
2060
2075
|
)
|
|
@@ -2227,37 +2242,239 @@ class BaseEvaluator(ABC):
|
|
|
2227
2242
|
result: ExampleResult,
|
|
2228
2243
|
config: dict[str, Any],
|
|
2229
2244
|
error: str | None,
|
|
2245
|
+
dataset: Dataset,
|
|
2246
|
+
example_index: int,
|
|
2230
2247
|
) -> dict[str, Any]:
|
|
2231
2248
|
"""Build progress callback payload with metrics."""
|
|
2232
|
-
metrics_payload: dict[str, float] = {}
|
|
2233
|
-
|
|
2234
|
-
if error is None and example.expected_output is not None:
|
|
2235
|
-
try:
|
|
2236
|
-
metrics_payload["accuracy"] = (
|
|
2237
|
-
1.0
|
|
2238
|
-
if _accuracy_values_match(
|
|
2239
|
-
result.actual_output, example.expected_output
|
|
2240
|
-
)
|
|
2241
|
-
else 0.0
|
|
2242
|
-
)
|
|
2243
|
-
except Exception as exc:
|
|
2244
|
-
logger.warning(
|
|
2245
|
-
"Failed to compute accuracy metric for example %s: %s",
|
|
2246
|
-
example_id,
|
|
2247
|
-
exc,
|
|
2248
|
-
)
|
|
2249
|
-
|
|
2250
2249
|
metrics_update, _ = self._extract_response_metrics(
|
|
2251
2250
|
example_id, example, result, config
|
|
2252
2251
|
)
|
|
2252
|
+
llm_metrics = dict(result.metrics or metrics_update)
|
|
2253
|
+
|
|
2254
|
+
metrics_payload = self._build_progress_objective_metrics(
|
|
2255
|
+
example=example,
|
|
2256
|
+
result=result,
|
|
2257
|
+
config=config,
|
|
2258
|
+
error=error,
|
|
2259
|
+
dataset=dataset,
|
|
2260
|
+
example_index=example_index,
|
|
2261
|
+
llm_metrics=llm_metrics or None,
|
|
2262
|
+
)
|
|
2263
|
+
if not metrics_payload and not self._has_configured_progress_objective():
|
|
2264
|
+
metrics_payload = self._build_progress_accuracy_metrics(
|
|
2265
|
+
output=result.actual_output,
|
|
2266
|
+
expected_output=example.expected_output,
|
|
2267
|
+
error=error,
|
|
2268
|
+
example_id=example_id,
|
|
2269
|
+
)
|
|
2253
2270
|
metrics_payload.update(metrics_update)
|
|
2254
2271
|
|
|
2255
|
-
|
|
2272
|
+
payload: dict[str, Any] = {
|
|
2256
2273
|
"success": result.success,
|
|
2257
2274
|
"error": result.error_message,
|
|
2258
|
-
"metrics": metrics_payload,
|
|
2259
2275
|
"output": result.actual_output,
|
|
2260
2276
|
}
|
|
2277
|
+
if metrics_payload:
|
|
2278
|
+
payload["metrics"] = metrics_payload
|
|
2279
|
+
return payload
|
|
2280
|
+
|
|
2281
|
+
def _has_configured_progress_objective(self) -> bool:
|
|
2282
|
+
"""Return True when callers configured a custom per-example objective."""
|
|
2283
|
+
return bool(
|
|
2284
|
+
getattr(self, "metric_functions", None)
|
|
2285
|
+
or getattr(self, "scoring_function", None)
|
|
2286
|
+
)
|
|
2287
|
+
|
|
2288
|
+
def _build_progress_objective_metrics(
|
|
2289
|
+
self,
|
|
2290
|
+
*,
|
|
2291
|
+
example: EvaluationExample,
|
|
2292
|
+
result: ExampleResult,
|
|
2293
|
+
config: dict[str, Any],
|
|
2294
|
+
error: str | None,
|
|
2295
|
+
dataset: Dataset,
|
|
2296
|
+
example_index: int,
|
|
2297
|
+
llm_metrics: dict[str, Any] | None,
|
|
2298
|
+
) -> dict[str, float]:
|
|
2299
|
+
"""Return configured per-example objective metrics for detailed progress."""
|
|
2300
|
+
if error is not None:
|
|
2301
|
+
return {}
|
|
2302
|
+
|
|
2303
|
+
metric_functions = getattr(self, "metric_functions", None) or {}
|
|
2304
|
+
if metric_functions:
|
|
2305
|
+
metrics = self._call_progress_metric_functions(
|
|
2306
|
+
metric_functions=metric_functions,
|
|
2307
|
+
output=result.actual_output,
|
|
2308
|
+
example=example,
|
|
2309
|
+
config=config,
|
|
2310
|
+
dataset=dataset,
|
|
2311
|
+
example_index=example_index,
|
|
2312
|
+
llm_metrics=llm_metrics,
|
|
2313
|
+
)
|
|
2314
|
+
if metrics:
|
|
2315
|
+
return metrics
|
|
2316
|
+
|
|
2317
|
+
scoring_function = getattr(self, "scoring_function", None)
|
|
2318
|
+
if scoring_function is not None:
|
|
2319
|
+
metrics = self._call_progress_scoring_function(
|
|
2320
|
+
output=result.actual_output,
|
|
2321
|
+
example=example,
|
|
2322
|
+
config=config,
|
|
2323
|
+
dataset=dataset,
|
|
2324
|
+
example_index=example_index,
|
|
2325
|
+
llm_metrics=llm_metrics,
|
|
2326
|
+
)
|
|
2327
|
+
if metrics:
|
|
2328
|
+
return metrics
|
|
2329
|
+
|
|
2330
|
+
return {}
|
|
2331
|
+
|
|
2332
|
+
def _call_progress_metric_functions(
|
|
2333
|
+
self,
|
|
2334
|
+
*,
|
|
2335
|
+
metric_functions: Mapping[str, Callable[..., Any]],
|
|
2336
|
+
output: Any,
|
|
2337
|
+
example: EvaluationExample,
|
|
2338
|
+
config: dict[str, Any],
|
|
2339
|
+
dataset: Dataset,
|
|
2340
|
+
example_index: int,
|
|
2341
|
+
llm_metrics: dict[str, Any] | None,
|
|
2342
|
+
) -> dict[str, float]:
|
|
2343
|
+
"""Call configured metric functions using the evaluator's scoring helper."""
|
|
2344
|
+
call_metric_functions = getattr(self, "_call_metric_functions", None)
|
|
2345
|
+
if callable(call_metric_functions):
|
|
2346
|
+
return self._coerce_progress_metrics(
|
|
2347
|
+
call_metric_functions(
|
|
2348
|
+
output, example, config, dataset, example_index, llm_metrics
|
|
2349
|
+
)
|
|
2350
|
+
)
|
|
2351
|
+
|
|
2352
|
+
invoke_metric = getattr(self, "_invoke_metric_function", None)
|
|
2353
|
+
if callable(invoke_metric):
|
|
2354
|
+
metrics: dict[str, float] = {}
|
|
2355
|
+
for metric_name, metric_func in metric_functions.items():
|
|
2356
|
+
value = invoke_metric(
|
|
2357
|
+
metric_func,
|
|
2358
|
+
metric_name,
|
|
2359
|
+
output,
|
|
2360
|
+
example,
|
|
2361
|
+
config,
|
|
2362
|
+
llm_metrics or {},
|
|
2363
|
+
example_index,
|
|
2364
|
+
)
|
|
2365
|
+
if isinstance(value, Mapping):
|
|
2366
|
+
metrics.update(self._coerce_progress_metrics(value))
|
|
2367
|
+
elif value is not None:
|
|
2368
|
+
try:
|
|
2369
|
+
metrics[metric_name] = float(value)
|
|
2370
|
+
except (TypeError, ValueError):
|
|
2371
|
+
logger.warning(
|
|
2372
|
+
"Metric function %s returned non-numeric progress value "
|
|
2373
|
+
"for example %s",
|
|
2374
|
+
metric_name,
|
|
2375
|
+
getattr(example, "example_id", None) or example_index,
|
|
2376
|
+
)
|
|
2377
|
+
return metrics
|
|
2378
|
+
|
|
2379
|
+
return {}
|
|
2380
|
+
|
|
2381
|
+
def _call_progress_scoring_function(
|
|
2382
|
+
self,
|
|
2383
|
+
*,
|
|
2384
|
+
output: Any,
|
|
2385
|
+
example: EvaluationExample,
|
|
2386
|
+
config: dict[str, Any],
|
|
2387
|
+
dataset: Dataset,
|
|
2388
|
+
example_index: int,
|
|
2389
|
+
llm_metrics: dict[str, Any] | None,
|
|
2390
|
+
) -> dict[str, float]:
|
|
2391
|
+
"""Call configured scoring function using the evaluator's scoring helper."""
|
|
2392
|
+
compute_example_metrics = getattr(self, "_compute_example_metrics", None)
|
|
2393
|
+
if callable(compute_example_metrics):
|
|
2394
|
+
try:
|
|
2395
|
+
return self._coerce_progress_metrics(
|
|
2396
|
+
compute_example_metrics(
|
|
2397
|
+
output, example, config, dataset, example_index, llm_metrics
|
|
2398
|
+
)
|
|
2399
|
+
)
|
|
2400
|
+
except TypeError:
|
|
2401
|
+
logger.debug(
|
|
2402
|
+
"Evaluator _compute_example_metrics signature does not support "
|
|
2403
|
+
"detailed progress scoring; trying scoring helper",
|
|
2404
|
+
exc_info=True,
|
|
2405
|
+
)
|
|
2406
|
+
|
|
2407
|
+
call_scoring_function = getattr(self, "_call_scoring_function", None)
|
|
2408
|
+
if callable(call_scoring_function):
|
|
2409
|
+
return self._coerce_progress_metrics(
|
|
2410
|
+
call_scoring_function(output, example, llm_metrics)
|
|
2411
|
+
)
|
|
2412
|
+
|
|
2413
|
+
return {}
|
|
2414
|
+
|
|
2415
|
+
@staticmethod
|
|
2416
|
+
def _coerce_progress_metrics(values: Mapping[str, Any] | None) -> dict[str, float]:
|
|
2417
|
+
"""Keep only finite numeric metrics for the progress payload."""
|
|
2418
|
+
metrics: dict[str, float] = {}
|
|
2419
|
+
if not values:
|
|
2420
|
+
return metrics
|
|
2421
|
+
for name, value in values.items():
|
|
2422
|
+
if isinstance(value, bool) or value is None:
|
|
2423
|
+
continue
|
|
2424
|
+
try:
|
|
2425
|
+
number = float(value)
|
|
2426
|
+
except (TypeError, ValueError):
|
|
2427
|
+
continue
|
|
2428
|
+
if math.isfinite(number):
|
|
2429
|
+
metrics[str(name)] = number
|
|
2430
|
+
return metrics
|
|
2431
|
+
|
|
2432
|
+
def _build_progress_accuracy_metrics(
|
|
2433
|
+
self,
|
|
2434
|
+
*,
|
|
2435
|
+
output: Any,
|
|
2436
|
+
expected_output: Any,
|
|
2437
|
+
error: str | None,
|
|
2438
|
+
example_id: str,
|
|
2439
|
+
) -> dict[str, float]:
|
|
2440
|
+
"""Return per-example accuracy using the same comparator as aggregate accuracy."""
|
|
2441
|
+
if error is not None or _is_empty_expected_output(expected_output):
|
|
2442
|
+
return {}
|
|
2443
|
+
try:
|
|
2444
|
+
return {
|
|
2445
|
+
"accuracy": (
|
|
2446
|
+
1.0 if _accuracy_values_match(output, expected_output) else 0.0
|
|
2447
|
+
)
|
|
2448
|
+
}
|
|
2449
|
+
except Exception as exc:
|
|
2450
|
+
logger.warning(
|
|
2451
|
+
"Failed to compute accuracy metric for example %s: %s",
|
|
2452
|
+
example_id,
|
|
2453
|
+
exc,
|
|
2454
|
+
)
|
|
2455
|
+
return {}
|
|
2456
|
+
|
|
2457
|
+
def _build_non_detailed_progress_payload(
|
|
2458
|
+
self,
|
|
2459
|
+
example: EvaluationExample,
|
|
2460
|
+
index: int,
|
|
2461
|
+
output: Any,
|
|
2462
|
+
error: str | None,
|
|
2463
|
+
) -> dict[str, Any]:
|
|
2464
|
+
payload: dict[str, Any] = {
|
|
2465
|
+
"success": error is None,
|
|
2466
|
+
"output": output,
|
|
2467
|
+
"error": error,
|
|
2468
|
+
}
|
|
2469
|
+
metrics_payload = self._build_progress_accuracy_metrics(
|
|
2470
|
+
output=output,
|
|
2471
|
+
expected_output=example.expected_output,
|
|
2472
|
+
error=error,
|
|
2473
|
+
example_id=_example_correlation_key(example, index),
|
|
2474
|
+
)
|
|
2475
|
+
if metrics_payload:
|
|
2476
|
+
payload["metrics"] = metrics_payload
|
|
2477
|
+
return payload
|
|
2261
2478
|
|
|
2262
2479
|
def _record_example_trace(
|
|
2263
2480
|
self,
|
|
@@ -2386,6 +2603,7 @@ class BaseEvaluator(ABC):
|
|
|
2386
2603
|
config: dict[str, Any],
|
|
2387
2604
|
example: EvaluationExample,
|
|
2388
2605
|
example_index: int,
|
|
2606
|
+
dataset: Dataset,
|
|
2389
2607
|
executor: Any | None = None,
|
|
2390
2608
|
progress_callback: Callable[[int, dict[str, Any]], Any] | None = None,
|
|
2391
2609
|
) -> ExampleResult:
|
|
@@ -2452,7 +2670,7 @@ class BaseEvaluator(ABC):
|
|
|
2452
2670
|
|
|
2453
2671
|
if progress_callback:
|
|
2454
2672
|
progress_payload = self._build_progress_payload(
|
|
2455
|
-
example_id, example, result, config, error
|
|
2673
|
+
example_id, example, result, config, error, dataset, example_index
|
|
2456
2674
|
)
|
|
2457
2675
|
try:
|
|
2458
2676
|
progress_callback(example_index, progress_payload)
|
|
@@ -11,7 +11,7 @@ from __future__ import annotations
|
|
|
11
11
|
|
|
12
12
|
import time
|
|
13
13
|
from datetime import UTC, datetime
|
|
14
|
-
from typing import TYPE_CHECKING, Any, Protocol, TypeAlias
|
|
14
|
+
from typing import TYPE_CHECKING, Any, Protocol, TypeAlias, cast
|
|
15
15
|
|
|
16
16
|
from traigent.api.types import TrialResult
|
|
17
17
|
from traigent.api.types import TrialStatus as SDKTrialStatus
|
|
@@ -94,7 +94,7 @@ def _coerce_trial_status(status: TrialStatusLike) -> Any:
|
|
|
94
94
|
|
|
95
95
|
def _is_completed_status(status: TrialStatusLike) -> bool:
|
|
96
96
|
"""Check completion across SDK and cloud status enums."""
|
|
97
|
-
return getattr(status, "value", status) == "completed"
|
|
97
|
+
return bool(getattr(status, "value", status) == "completed")
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
def _string_sequence(value: Any) -> tuple[str, ...]:
|
|
@@ -104,6 +104,23 @@ def _string_sequence(value: Any) -> tuple[str, ...]:
|
|
|
104
104
|
return tuple(str(item) for item in value if item)
|
|
105
105
|
|
|
106
106
|
|
|
107
|
+
class CloudBrainOptimizationComplete(RuntimeError):
|
|
108
|
+
"""Normal cloud-brain terminal signal from the next-trial API."""
|
|
109
|
+
|
|
110
|
+
def __init__(self, reason: str | None = None) -> None:
|
|
111
|
+
self.reason = reason or "cloud brain completed optimization"
|
|
112
|
+
super().__init__(self.reason)
|
|
113
|
+
|
|
114
|
+
@property
|
|
115
|
+
def stop_reason(self) -> str:
|
|
116
|
+
normalized = self.reason.lower().replace("-", "_").replace(" ", "_")
|
|
117
|
+
if "max" in normalized and "trial" in normalized:
|
|
118
|
+
return "max_trials_reached"
|
|
119
|
+
if "conver" in normalized:
|
|
120
|
+
return "convergence"
|
|
121
|
+
return "optimizer"
|
|
122
|
+
|
|
123
|
+
|
|
107
124
|
class RemoteGuidanceService(Protocol):
|
|
108
125
|
"""Protocol for remote guidance services."""
|
|
109
126
|
|
|
@@ -185,6 +202,7 @@ class InteractiveOptimizer(BaseOptimizer):
|
|
|
185
202
|
self._pending_trials: dict[str, TrialSuggestion] = {}
|
|
186
203
|
self._completed_trials: list[TrialResultSubmission] = []
|
|
187
204
|
self._start_time: float | None = None
|
|
205
|
+
self._completion_reason: str | None = None
|
|
188
206
|
|
|
189
207
|
async def initialize_session(
|
|
190
208
|
self,
|
|
@@ -271,42 +289,52 @@ class InteractiveOptimizer(BaseOptimizer):
|
|
|
271
289
|
if not self.session_id:
|
|
272
290
|
raise OptimizationError("No active session. Call initialize_session first.")
|
|
273
291
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
)
|
|
292
|
+
request = NextTrialRequest(
|
|
293
|
+
session_id=self.session_id,
|
|
294
|
+
previous_results=previous_results or self._completed_trials[-5:],
|
|
295
|
+
request_metadata={
|
|
296
|
+
"dataset_size": dataset_size,
|
|
297
|
+
"completed_trials": len(self._completed_trials),
|
|
298
|
+
},
|
|
299
|
+
)
|
|
283
300
|
|
|
301
|
+
try:
|
|
284
302
|
response = await self.remote_service.get_next_trial(request)
|
|
303
|
+
except Exception as e:
|
|
304
|
+
logger.error(f"Failed to get next suggestion: {e}")
|
|
305
|
+
raise OptimizationError(f"Failed to get suggestion: {e}") from e
|
|
285
306
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
307
|
+
# Update local session status
|
|
308
|
+
if self.session:
|
|
309
|
+
self.session.status = response.session_status
|
|
289
310
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
311
|
+
if not response.should_continue:
|
|
312
|
+
self._completion_reason = (
|
|
313
|
+
response.stop_reason
|
|
314
|
+
or response.reason
|
|
315
|
+
or "cloud brain completed optimization"
|
|
316
|
+
)
|
|
317
|
+
logger.info(f"Optimization complete: {self._completion_reason}")
|
|
318
|
+
return None
|
|
293
319
|
|
|
294
|
-
|
|
320
|
+
if not response.suggestion:
|
|
321
|
+
raise OptimizationError(
|
|
322
|
+
"Cloud brain returned no suggestion while should_continue=True"
|
|
323
|
+
)
|
|
295
324
|
|
|
296
|
-
|
|
297
|
-
|
|
325
|
+
self._completion_reason = None
|
|
326
|
+
suggestion = response.suggestion
|
|
298
327
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
f"{suggestion.exploration_type} with "
|
|
302
|
-
f"{len(suggestion.dataset_subset.indices)} examples"
|
|
303
|
-
)
|
|
328
|
+
# Store pending trial
|
|
329
|
+
self._pending_trials[suggestion.trial_id] = suggestion
|
|
304
330
|
|
|
305
|
-
|
|
331
|
+
logger.info(
|
|
332
|
+
f"Got suggestion {suggestion.trial_id}: "
|
|
333
|
+
f"{suggestion.exploration_type} with "
|
|
334
|
+
f"{len(suggestion.dataset_subset.indices)} examples"
|
|
335
|
+
)
|
|
306
336
|
|
|
307
|
-
|
|
308
|
-
logger.error(f"Failed to get next suggestion: {e}")
|
|
309
|
-
raise OptimizationError(f"Failed to get suggestion: {e}") from e
|
|
337
|
+
return suggestion
|
|
310
338
|
|
|
311
339
|
async def suggest_next_trial_async(
|
|
312
340
|
self,
|
|
@@ -323,7 +351,7 @@ class InteractiveOptimizer(BaseOptimizer):
|
|
|
323
351
|
dataset_size=max(dataset_size, 1),
|
|
324
352
|
)
|
|
325
353
|
if suggestion is None:
|
|
326
|
-
raise
|
|
354
|
+
raise CloudBrainOptimizationComplete(self._completion_reason)
|
|
327
355
|
|
|
328
356
|
config = dict(suggestion.config or {})
|
|
329
357
|
config["_traigent_backend_trial_id"] = suggestion.trial_id
|
|
@@ -509,8 +537,8 @@ class InteractiveOptimizer(BaseOptimizer):
|
|
|
509
537
|
# Simple comparison on primary objective
|
|
510
538
|
if self.objectives and self.objectives[0] in metrics:
|
|
511
539
|
primary = self.objectives[0]
|
|
512
|
-
current = metrics.get(primary, 0)
|
|
513
|
-
best = self.session.best_metrics.get(primary, 0)
|
|
540
|
+
current = float(metrics.get(primary, 0.0))
|
|
541
|
+
best = float(self.session.best_metrics.get(primary, 0.0))
|
|
514
542
|
|
|
515
543
|
# Assume higher is better for now
|
|
516
544
|
return current > best
|
|
@@ -568,7 +596,10 @@ class InteractiveOptimizer(BaseOptimizer):
|
|
|
568
596
|
),
|
|
569
597
|
effectuation_events=result_metadata.get("effectuation_events"),
|
|
570
598
|
)
|
|
571
|
-
return
|
|
599
|
+
return cast(
|
|
600
|
+
dict[str, Any],
|
|
601
|
+
merge_tvar_observation_metadata(result_metadata, observation),
|
|
602
|
+
)
|
|
572
603
|
except Exception as exc:
|
|
573
604
|
logger.debug(
|
|
574
605
|
"Skipping TVAR observation metadata for trial %s: %s",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: traigent
|
|
3
|
-
Version: 0.18.1.
|
|
3
|
+
Version: 0.18.1.dev9
|
|
4
4
|
Summary: Enterprise-grade LLM optimization platform with advanced analytics and AI-powered insights
|
|
5
5
|
Author-email: Traigent Team <opensource@traigent.ai>
|
|
6
6
|
License-Expression: AGPL-3.0-only OR LicenseRef-Traigent-Commercial
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/api-reference/complete-function-specification.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{traigent-0.18.1.dev7 → traigent-0.18.1.dev9}/docs/architecture/cost-architecture-validation.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|