traigent 0.18.1.dev4__tar.gz → 0.18.1.dev6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {traigent-0.18.1.dev4/traigent.egg-info → traigent-0.18.1.dev6}/PKG-INFO +1 -1
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/pyproject.toml +1 -1
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/decorators.py +109 -3
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/client.py +76 -5
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/models.py +34 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/optimized_function.py +17 -4
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/results_table.py +17 -1
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6/traigent.egg-info}/PKG-INFO +1 -1
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/CHANGELOG.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/COMMERCIAL-LICENSE.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/CONTRIBUTING.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/CONTRIBUTOR-LICENSING.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/DISCLAIMER.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/LICENSE +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/MANIFEST.in +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/NOTICE +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/README.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/SECURITY.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/LOCAL_CI_GATE.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/README.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/SYNC_MAP.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/agent-skill.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/complete-function-specification.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/decorator-reference.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/enterprise-beta-api.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/interactive_optimizer.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/telemetry.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/api-reference/thread-pool-examples.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/ARCHITECTURE.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/cost-architecture-validation.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/execution_mode_follow_up.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/integrations-inventory.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/plugin_architecture.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/project-structure.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/architecture/stop_conditions.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/concepts/composite-knob-ir.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/concepts/composite-knobs.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/concepts/guided-generation.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/CONTRIBUTING.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/README.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/SECURITY.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/aikido_triage.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/code_review_instructions.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/contributing/test-quality-guide.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/demos/README.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/API_PATTERNS.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/LEARNING_ROADMAP.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/QUICK_REFERENCE.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/README.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/START_HERE.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/examples/TROUBLESHOOTING.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/fake-completion-tracking.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/feature_matrices/README.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/README.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/authentication.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/constraint-dsl.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/dataflow-detection.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/framework_override_enhanced_features.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/mcp-server.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/observability-spans.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/onboarding.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/prompt_management.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/recommendations.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/safety-gates.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/seamless_injection.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/strategy-presets.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/strict_metrics_nulls.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/GETTING_STARTED.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/README.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/installation.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/minimal-integration.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/testing.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/evaluation.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/execution-mode-migration.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/execution-modes.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/js-bridge.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/llm_plugin_migration_guide.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/parallel-configuration.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/guides/secrets_management.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/hybrid-mode-api-contract.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/hybrid-mode-client-guide.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/operations/azure_openai.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/operations/bedrock.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/operations/google_gemini.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/security/trust_model.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/concepts/composite-knob-ir.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/concepts/composite-knobs.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/concepts/guided-generation.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/schema.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/tagging_tracking.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/taxonomy_reference.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/README.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/agent_optimization.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/choosing_optimization_model.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/configuration-spaces.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/evaluation_guide.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/injection_modes.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/interactive_optimization.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/smart_optimization.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/user-guide/tuned_variables.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/walkthrough.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-all.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-analytics.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-bayesian.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-chroma.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-dev.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-hybrid.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-integrations.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-security.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements-test.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/requirements/requirements.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/setup.cfg +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/_version.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/adapters/execution_adapter.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/admin/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/admin/client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/admin/config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/admin/dtos.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/config_mapper.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/executor.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/platforms.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/agents/specification_generator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/anomaly.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/cost_optimization.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/example_insights.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/intelligence.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/meta_learning.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/next_steps.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/optimization_plan.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/predictive.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/render.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics/scheduling.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics_mcp/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics_mcp/server.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/analytics_mcp/tools.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/agent_inference.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/config_builder.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/config_space.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/constraint_builders.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/constraints.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/functions.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/parameter_ranges.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/parameter_validator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/safety.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/strategy_presets.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/api/validation_protocol.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/auth_commands.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/detect_tvars_command.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/function_discovery.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/generate_config_command.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/hooks_commands.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/local_commands.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/main.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/next_steps_command.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/onboard_commands.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/optimization_validator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/plan_command.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/playbook_commands.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/sync_commands.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cli/validation_types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/_aiohttp_compat.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/agent_dtos.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/analytics_auth.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/analytics_client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/api_key_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/api_operations.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/async_batch_transport.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/auth.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/backend_bridges.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/backend_client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/backend_components.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/backend_synchronizer.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/benchmark_client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/billing.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/cloud_operations.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/credential_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/credential_resolver.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/dataset_converter.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/dtos.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/governance.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/integration_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/optimizer_client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/password_auth_handler.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/privacy_operations.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/production_mcp_client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/remote_guidance.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/resilient_client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/service.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/session_operations.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/session_types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/sessions.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/subset_selection.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/sync_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/token_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/trial_operations.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/trial_tracker.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/url_security.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/user_agent.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/cloud/validators.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/api_keys.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/ast_transformer.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/backend_config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/context.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/feature_flags.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/models.yaml +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/parallel.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/project.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/providers.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/runtime_injector.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/tenant.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config/types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/agent_classifier.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/apply.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/catalog.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/llm_backend.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/pipeline.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/constraint_templates.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/presets/range_presets.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/recommendations.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/benchmarks.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/objectives.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/config_generator/types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/backend_session_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/best_config_runtime.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/cache_policy.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/ci_approval.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/config_state_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/constants.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/cost_enforcement.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/cost_estimator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/evaluator_wrapper.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/exception_handler.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/execution_policy_runtime.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/license.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/logger_facade.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/mandatory_metrics.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/meta_types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/metadata_helpers.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/metric_registry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/metrics_aggregator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/namespace.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/objectives.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/optimization_pipeline.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/orchestrator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/orchestrator_helpers.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/parallel_execution_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/progress_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/result_selection.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/sample_budget.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/samplers/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/samplers/random_sampler.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/session_context.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/session_types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/stat_significance.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/stop_condition_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/stop_conditions.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/trace_env.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/tracing.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/trial_context.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/trial_lifecycle.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/trial_result_factory.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/types_ext.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/utils.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core/workflow_trace_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core_metrics/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core_metrics/client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core_metrics/config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/core_metrics/dtos.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/defaults.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/contracts.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/strategies/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/strategies/framework_param.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/effectuation/strategies/self_consistency.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluation/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluation/client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluation/config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluation/dtos.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/base.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/catalog_loader.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/dataset_registry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/hybrid_api.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/local.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/metrics.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/metrics_tracker.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/evaluators/recommendations.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/_bootstrap.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/_demo.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/anthropic.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/aws.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/azure.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/gcp.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/gemini.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/groq.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/litellm_any.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/manifest.json +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/openai.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/openrouter.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/providers/qa_samples.jsonl +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/__main__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/_env.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/publish_and_verify.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/examples/tutorial_bootstrap.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/backend_provider.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/example_synth.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/llm_provider.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/loop.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/models.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/options.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/prompt_rewriter.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/artifacts.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/buffer.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/document.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/edits.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/prompts.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/reflection.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/schedule.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/slow_update.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/splits.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/trainer.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/skill_train/trainer_result.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/generation/validators.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/guaranteed_modes.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hooks/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hooks/config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hooks/installer.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hooks/validator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/discovery.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/http_transport.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/lifecycle.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/mcp_transport.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/protocol.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/hybrid/transport.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/activation.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/base.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/base_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/bedrock_client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/dspy_adapter.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/framework_override.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langchain/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langchain/handler.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langfuse/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langfuse/callback.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langfuse/client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/langfuse/tracker.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/anthropic_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/base_llm_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/bedrock_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/cohere_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/gemini_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/huggingface_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/langchain/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/langchain/base.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/langchain_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/litellm_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/mistral_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/openai.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/llms/openai_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/mappings.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/base.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/cache.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/model_discovery/registry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/observability/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/observability/mlflow.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/observability/wandb.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/observability/workflow_traces.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/plugin_registry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/providers.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/pydantic_ai/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/pydantic_ai/_types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/pydantic_ai/handler.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/pydantic_ai/plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/discovery.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/message_coercion.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/mock_adapter.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/parameter_normalizer.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/response_wrapper.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/validation.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/utils/version_compat.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/base.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/integrations/wrappers.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/base.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/batch.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/local.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/invokers/streaming.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/adapters.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/bindings.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/canonical.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/cascade.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/certificates.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/composites.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/kinds.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/patterns.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/resolution.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/resolver.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/runtime.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/signals.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/knobs/telemetry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/mcp/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/mcp/server.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/mcp/tools.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/agent_metrics.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/content_features.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/deepeval_metrics.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/ragas_metrics.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/metrics/registry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/agent_spans.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/decorators.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/observability/dtos.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/base.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/batch_optimizers.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/cloud_optimizer.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/grid.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/interactive_optimizer.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/random.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/registry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/remote.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/remote_services.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/optimizers/results.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/loader.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/model.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/scaffold.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/staleness.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/playbook/validator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/plugins/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/plugins/registry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/projects/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/projects/client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/projects/config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/projects/dtos.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/prompts/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/prompts/client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/prompts/config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/prompts/dtos.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/providers/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/providers/validation.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/py.typed +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/reporting/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/reporting/example_map.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/audit.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/helpers.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/mfa.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/models.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/oidc.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/saml.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/sms.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/auth/totp.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/credentials.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/crypto_utils.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/deployment.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/encryption.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/enterprise.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/headers.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/input_validation.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/jwt_validator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/rate_limiter.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/redaction.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/session_manager.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/security/tenant.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-debugging/SKILL.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-decorator-setup/SKILL.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-integrations/SKILL.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-run-optimization/SKILL.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/storage/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/storage/local_storage.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/testing/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/traigent_client.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/traigent_integration.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/dataflow_strategy.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/detection_strategies.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/detection_types.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/detector.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/discovery.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/observation.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tuned_variables/py.typed +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/__main__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/models.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/objectives.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/options.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/promotion_gate.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/registry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/spec_loader.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/spec_validator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/tvl/statistics.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/artifact_fingerprints.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/batch_optimizer_utils.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/batch_processing.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/callbacks.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/console.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/constraints.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/cost_calculator.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/diagnostics.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/discrete_domains.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/env_config.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/error_handler.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/example_id.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/exceptions.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/file_versioning.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/function_identity.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/hashing.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/importance.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/incentives.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/insights.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/langchain_interceptor.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/litellm_interceptor.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/llm_response_parsing.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/local_analytics.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/logging.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/multi_objective.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/numpy_compat.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/objectives.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/optimization_analyzer.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/optimization_logger.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/pagination.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/persistence.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/retry.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/secure_path.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/url_security.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/utils/validation.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/visualization/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/visualization/plots.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/wrapper/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/wrapper/errors.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/wrapper/server.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent/wrapper/service.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/SOURCES.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/dependency_links.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/entry_points.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/requires.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent.egg-info/top_level.txt +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent_validation/__init__.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent_validation/base.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent_validation/plugins.py +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent_validation/py.typed +0 -0
- {traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/traigent_validation/validators.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: traigent
|
|
3
|
-
Version: 0.18.1.
|
|
3
|
+
Version: 0.18.1.dev6
|
|
4
4
|
Summary: Enterprise-grade LLM optimization platform with advanced analytics and AI-powered insights
|
|
5
5
|
Author-email: Traigent Team <opensource@traigent.ai>
|
|
6
6
|
License-Expression: AGPL-3.0-only OR LicenseRef-Traigent-Commercial
|
|
@@ -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
|
|
@@ -33,13 +33,13 @@ else: # pragma: no cover - minimal environments without aiohttp
|
|
|
33
33
|
|
|
34
34
|
from traigent.config.backend_config import BackendConfig
|
|
35
35
|
from traigent.evaluators.base import Dataset
|
|
36
|
-
from traigent.utils.env_config import is_backend_offline
|
|
37
|
-
from traigent.utils.error_handler import OfflineModeError
|
|
38
|
-
from traigent.utils.error_handler import TraigentError as HelpfulTraigentError
|
|
39
36
|
from traigent.utils.artifact_fingerprints import (
|
|
40
37
|
artifact_fingerprints_to_wire,
|
|
41
38
|
fingerprint_meta_to_wire,
|
|
42
39
|
)
|
|
40
|
+
from traigent.utils.env_config import is_backend_offline
|
|
41
|
+
from traigent.utils.error_handler import OfflineModeError
|
|
42
|
+
from traigent.utils.error_handler import TraigentError as HelpfulTraigentError
|
|
43
43
|
from traigent.utils.exceptions import ValidationError as ValidationException
|
|
44
44
|
from traigent.utils.logging import get_logger
|
|
45
45
|
from traigent.utils.retry import NetworkError, RateLimitError, retry_http_request
|
|
@@ -62,6 +62,7 @@ from .models import (
|
|
|
62
62
|
SessionCreationRequest,
|
|
63
63
|
SessionCreationResponse,
|
|
64
64
|
SessionObjectiveDefinition,
|
|
65
|
+
SessionSummary,
|
|
65
66
|
TrialResultSubmission,
|
|
66
67
|
TrialSuggestion,
|
|
67
68
|
)
|
|
@@ -1517,8 +1518,16 @@ class TraigentCloudClient(BaseTraigentClient):
|
|
|
1517
1518
|
f"Failed to finalize session: {e}", "session_finalization", e
|
|
1518
1519
|
) from e
|
|
1519
1520
|
|
|
1520
|
-
async def delete_session(self, session_id: str, cascade: bool =
|
|
1521
|
-
"""Delete a session
|
|
1521
|
+
async def delete_session(self, session_id: str, cascade: bool = False) -> bool:
|
|
1522
|
+
"""Delete a session via ``DELETE /api/v1/sessions/<id>``.
|
|
1523
|
+
|
|
1524
|
+
Non-destructive by default (``cascade=False``), matching the backend
|
|
1525
|
+
default: only the session and its run artifacts are removed. Pass
|
|
1526
|
+
``cascade=True`` to additionally hard-delete the parent experiment when
|
|
1527
|
+
the deleted session was its last run. Use this with
|
|
1528
|
+
:meth:`list_sessions` to enumerate and clean up orphaned / zombie
|
|
1529
|
+
"running" sessions from the client.
|
|
1530
|
+
"""
|
|
1522
1531
|
if not session_id:
|
|
1523
1532
|
raise ValueError("session_id is required")
|
|
1524
1533
|
|
|
@@ -1556,6 +1565,68 @@ class TraigentCloudClient(BaseTraigentClient):
|
|
|
1556
1565
|
f"Failed to delete session: {exc}", "session_delete", exc
|
|
1557
1566
|
) from exc
|
|
1558
1567
|
|
|
1568
|
+
async def list_sessions(
|
|
1569
|
+
self,
|
|
1570
|
+
status: str | None = None,
|
|
1571
|
+
pattern: str | None = None,
|
|
1572
|
+
limit: int | None = None,
|
|
1573
|
+
) -> list[SessionSummary]:
|
|
1574
|
+
"""List sessions via ``GET /api/v1/sessions``.
|
|
1575
|
+
|
|
1576
|
+
Enumerates the caller's optimization sessions so orphaned / zombie
|
|
1577
|
+
"running" sessions can be found and cleaned up with
|
|
1578
|
+
:meth:`delete_session`. Returns typed :class:`SessionSummary` objects.
|
|
1579
|
+
|
|
1580
|
+
Args:
|
|
1581
|
+
status: Optional lifecycle filter (server-side ``status`` query param).
|
|
1582
|
+
pattern: Optional session-id match (server-side ``pattern`` query
|
|
1583
|
+
param).
|
|
1584
|
+
limit: Optional cap on the number of summaries returned. The backend
|
|
1585
|
+
does not support a server-side limit, so this is applied
|
|
1586
|
+
client-side after the response is received.
|
|
1587
|
+
|
|
1588
|
+
Returns:
|
|
1589
|
+
A list of :class:`SessionSummary` (empty when there are none).
|
|
1590
|
+
"""
|
|
1591
|
+
self._raise_if_backend_egress_disabled("list sessions")
|
|
1592
|
+
await self._ensure_session()
|
|
1593
|
+
if self._aio_session is None:
|
|
1594
|
+
raise CloudServiceError(_SESSION_NOT_INITIALIZED)
|
|
1595
|
+
|
|
1596
|
+
params: dict[str, str] = {}
|
|
1597
|
+
if status is not None:
|
|
1598
|
+
params["status"] = str(status)
|
|
1599
|
+
if pattern is not None:
|
|
1600
|
+
params["pattern"] = str(pattern)
|
|
1601
|
+
|
|
1602
|
+
url = f"{self.api_base_url}/sessions"
|
|
1603
|
+
try:
|
|
1604
|
+
async with self._aio_session.get(url, params=params) as response:
|
|
1605
|
+
if response.status != 200:
|
|
1606
|
+
error_text = await response.text()
|
|
1607
|
+
raise CloudServiceError(
|
|
1608
|
+
f"Failed to list sessions: status={response.status} "
|
|
1609
|
+
f"body={error_text[:200]}"
|
|
1610
|
+
)
|
|
1611
|
+
data = await response.json()
|
|
1612
|
+
except aiohttp.ClientError as exc:
|
|
1613
|
+
await self._reset_http_session("list_sessions network error")
|
|
1614
|
+
raise StandardizedClientError(
|
|
1615
|
+
f"Failed to list sessions: {exc}", "session_list", exc
|
|
1616
|
+
) from exc
|
|
1617
|
+
|
|
1618
|
+
raw_sessions = data.get("sessions") if isinstance(data, dict) else None
|
|
1619
|
+
if not isinstance(raw_sessions, list):
|
|
1620
|
+
raw_sessions = []
|
|
1621
|
+
summaries = [
|
|
1622
|
+
SessionSummary.from_dict(item)
|
|
1623
|
+
for item in raw_sessions
|
|
1624
|
+
if isinstance(item, dict)
|
|
1625
|
+
]
|
|
1626
|
+
if limit is not None and limit >= 0:
|
|
1627
|
+
summaries = summaries[:limit]
|
|
1628
|
+
return summaries
|
|
1629
|
+
|
|
1559
1630
|
# Stateful optimization methods for interactive model
|
|
1560
1631
|
|
|
1561
1632
|
async def create_optimization_session(
|
|
@@ -139,6 +139,40 @@ class OptimizationSession:
|
|
|
139
139
|
)
|
|
140
140
|
|
|
141
141
|
|
|
142
|
+
@dataclass
|
|
143
|
+
class SessionSummary:
|
|
144
|
+
"""Lightweight summary of a session from ``GET /api/v1/sessions``.
|
|
145
|
+
|
|
146
|
+
Returned by :meth:`traigent.cloud.client.TraigentCloudClient.list_sessions`.
|
|
147
|
+
Maps the backend session-list contract
|
|
148
|
+
(``optimization/optimization_session_list_response_schema.json``):
|
|
149
|
+
``session_id`` and
|
|
150
|
+
``status`` are always present; ``created_at`` / ``progress`` when the server
|
|
151
|
+
provides them. Forward-compatible — any additional server fields are kept in
|
|
152
|
+
``extra`` rather than dropped, so the SDK can enumerate and clean up orphaned
|
|
153
|
+
sessions without a release per new field.
|
|
154
|
+
"""
|
|
155
|
+
|
|
156
|
+
session_id: str
|
|
157
|
+
status: str
|
|
158
|
+
created_at: str | None = None
|
|
159
|
+
progress: dict[str, Any] | None = None
|
|
160
|
+
extra: dict[str, Any] = field(default_factory=dict)
|
|
161
|
+
|
|
162
|
+
@classmethod
|
|
163
|
+
def from_dict(cls, data: dict[str, Any]) -> SessionSummary:
|
|
164
|
+
"""Build a summary from one backend session object, tolerating extras."""
|
|
165
|
+
known = {"session_id", "status", "created_at", "progress"}
|
|
166
|
+
progress = data.get("progress")
|
|
167
|
+
return cls(
|
|
168
|
+
session_id=str(data.get("session_id", "")),
|
|
169
|
+
status=str(data.get("status", "")),
|
|
170
|
+
created_at=data.get("created_at"),
|
|
171
|
+
progress=progress if isinstance(progress, dict) else None,
|
|
172
|
+
extra={k: v for k, v in data.items() if k not in known},
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
|
|
142
176
|
@dataclass
|
|
143
177
|
class DatasetSubsetIndices:
|
|
144
178
|
"""Indices for selecting a subset of the dataset."""
|
|
@@ -615,8 +615,16 @@ class OptimizedFunction(Generic[_P, _R]):
|
|
|
615
615
|
self.max_trials = kwargs.pop("max_trials", DEFAULT_MAX_TRIALS)
|
|
616
616
|
kwargs["max_trials"] = self.max_trials
|
|
617
617
|
|
|
618
|
-
# Experiment display name: decorator param > TRAIGENT_EXPERIMENT_NAME > func.__name__
|
|
618
|
+
# Experiment display name: decorator param > TRAIGENT_EXPERIMENT_NAME > self-describing default > func.__name__
|
|
619
|
+
# _experiment_name holds ONLY the explicit decorator value (None when absent).
|
|
620
|
+
# _default_experiment_name holds the precomputed self-describing default string
|
|
621
|
+
# (func name + objectives + knobs) that decorators.py computed at decoration time.
|
|
622
|
+
# The experiment_name getter resolves lazily so TRAIGENT_EXPERIMENT_NAME can be
|
|
623
|
+
# changed AFTER decoration and still take effect.
|
|
619
624
|
self._experiment_name: str | None = kwargs.pop("experiment_name", None)
|
|
625
|
+
self._default_experiment_name: str | None = kwargs.pop(
|
|
626
|
+
"_default_experiment_name", None
|
|
627
|
+
)
|
|
620
628
|
|
|
621
629
|
self.timeout = kwargs.pop("timeout", None)
|
|
622
630
|
kwargs["timeout"] = self.timeout
|
|
@@ -3479,15 +3487,20 @@ Remediation:
|
|
|
3479
3487
|
"""Resolved experiment display name for portal/storage.
|
|
3480
3488
|
|
|
3481
3489
|
Resolution order (highest to lowest priority):
|
|
3482
|
-
1. ``experiment_name`` passed to ``@traigent.optimize()``
|
|
3483
|
-
2. ``TRAIGENT_EXPERIMENT_NAME`` environment variable
|
|
3484
|
-
|
|
3490
|
+
1. ``experiment_name`` passed to ``@traigent.optimize()`` — stored in ``_experiment_name``.
|
|
3491
|
+
2. ``TRAIGENT_EXPERIMENT_NAME`` environment variable — checked at access time, so
|
|
3492
|
+
setting it after decoration still takes effect.
|
|
3493
|
+
3. Self-describing default precomputed at decoration time (func name + objectives + knobs)
|
|
3494
|
+
— stored in ``_default_experiment_name``.
|
|
3495
|
+
4. Decorated function's ``__name__`` (bare fallback when no objectives/knobs exist).
|
|
3485
3496
|
"""
|
|
3486
3497
|
if self._experiment_name is not None:
|
|
3487
3498
|
return self._experiment_name
|
|
3488
3499
|
env_name = os.environ.get("TRAIGENT_EXPERIMENT_NAME")
|
|
3489
3500
|
if env_name:
|
|
3490
3501
|
return env_name
|
|
3502
|
+
if self._default_experiment_name is not None:
|
|
3503
|
+
return self._default_experiment_name
|
|
3491
3504
|
return self.__name__
|
|
3492
3505
|
|
|
3493
3506
|
@property
|
|
@@ -111,12 +111,28 @@ def _format_config_value(val: Any) -> str:
|
|
|
111
111
|
return str(val)
|
|
112
112
|
|
|
113
113
|
|
|
114
|
+
def _format_percent_metric(val: float) -> str:
|
|
115
|
+
"""Format a quality metric (accuracy / score / ...) as a percent string.
|
|
116
|
+
|
|
117
|
+
Metrics reach the table on either a 0-1 fraction scale or an already-percent
|
|
118
|
+
0-100 scale (e.g. a 0-100 ``accuracy`` of 79.16). Mirror the frontend rule
|
|
119
|
+
(``percentFormatting``): a value ``> 1`` is already a percent and is rendered
|
|
120
|
+
as-is (79.16 -> ``"79.2%"``); a value ``<= 1`` is a fraction and scaled
|
|
121
|
+
(0.79 -> ``"79.0%"``). This never double-scales, so a 0-100 metric can no
|
|
122
|
+
longer render as ">100%" (the prior ``f"{val:.1%}"`` turned 79.16 into
|
|
123
|
+
"7916.2%").
|
|
124
|
+
"""
|
|
125
|
+
if val > 1.0:
|
|
126
|
+
return f"{val:.1f}%"
|
|
127
|
+
return f"{val:.1%}"
|
|
128
|
+
|
|
129
|
+
|
|
114
130
|
def _format_metric_value(metric: str, val: float) -> str:
|
|
115
131
|
if metric == "cost":
|
|
116
132
|
return f"${val:.5f}"
|
|
117
133
|
if metric == "latency":
|
|
118
134
|
return f"{val:.3f}s"
|
|
119
|
-
return
|
|
135
|
+
return _format_percent_metric(val)
|
|
120
136
|
|
|
121
137
|
|
|
122
138
|
def _coerce_float(value: Any) -> float | None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: traigent
|
|
3
|
-
Version: 0.18.1.
|
|
3
|
+
Version: 0.18.1.dev6
|
|
4
4
|
Summary: Enterprise-grade LLM optimization platform with advanced analytics and AI-powered insights
|
|
5
5
|
Author-email: Traigent Team <opensource@traigent.ai>
|
|
6
6
|
License-Expression: AGPL-3.0-only OR LicenseRef-Traigent-Commercial
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev4 → traigent-0.18.1.dev6}/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.dev4 → traigent-0.18.1.dev6}/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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/features/framework_override_enhanced_features.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
|
|
File without changes
|
|
File without changes
|
{traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/getting-started/portal-dev-laptop-agent.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/concepts/composite-knob-ir.md
RENAMED
|
File without changes
|
|
File without changes
|
{traigent-0.18.1.dev4 → traigent-0.18.1.dev6}/docs/traceability/concepts/guided-generation.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|