traigent 0.21.0.dev1__tar.gz → 0.21.0.dev3__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.21.0.dev1/traigent.egg-info → traigent-0.21.0.dev3}/PKG-INFO +1 -1
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/pyproject.toml +1 -1
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/sync_manager.py +161 -69
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3/traigent.egg-info}/PKG-INFO +1 -1
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/CHANGELOG.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/COMMERCIAL-LICENSE.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/CONTRIBUTING.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/CONTRIBUTOR-LICENSING.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/DISCLAIMER.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/LICENSE +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/MANIFEST.in +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/NOTICE +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/README.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/SECURITY.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/LOCAL_CI_GATE.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/README.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/SYNC_MAP.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/agent-skill.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/api-reference/complete-function-specification.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/api-reference/decorator-reference.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/api-reference/enterprise-beta-api.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/api-reference/interactive_optimizer.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/api-reference/telemetry.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/api-reference/thread-pool-examples.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/architecture/ARCHITECTURE.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/architecture/cost-architecture-validation.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/architecture/execution_mode_follow_up.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/architecture/integrations-inventory.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/architecture/plugin_architecture.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/architecture/project-structure.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/architecture/stop_conditions.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/concepts/composite-knob-ir.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/concepts/composite-knobs.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/concepts/guided-generation.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/contributing/CONTRIBUTING.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/contributing/README.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/contributing/SECURITY.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/contributing/aikido_triage.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/contributing/code_review_instructions.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/contributing/test-quality-guide.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/demos/README.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/examples/API_PATTERNS.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/examples/LEARNING_ROADMAP.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/examples/QUICK_REFERENCE.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/examples/README.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/examples/START_HERE.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/examples/TROUBLESHOOTING.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/fake-completion-tracking.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/feature_matrices/README.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/README.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/authentication.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/constraint-dsl.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/dataflow-detection.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/framework_override_enhanced_features.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/mcp-server.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/observability-spans.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/onboarding.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/prompt_management.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/recommendations.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/safety-gates.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/seamless_injection.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/strategy-presets.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/features/strict_metrics_nulls.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/getting-started/GETTING_STARTED.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/getting-started/README.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/getting-started/installation.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/getting-started/minimal-integration.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/getting-started/portal-dev-laptop-agent.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/getting-started/testing.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/guides/evaluation.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/guides/execution-mode-migration.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/guides/execution-modes.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/guides/js-bridge.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/guides/llm_plugin_migration_guide.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/guides/parallel-configuration.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/guides/secrets_management.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/hybrid-mode-api-contract.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/hybrid-mode-client-guide.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/operations/azure_openai.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/operations/bedrock.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/operations/google_gemini.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/security/trust_model.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/traceability/concepts/composite-knob-ir.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/traceability/concepts/composite-knobs.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/traceability/concepts/guided-generation.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/traceability/schema.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/traceability/tagging_tracking.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/traceability/taxonomy_reference.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/README.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/agent_optimization.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/choosing_optimization_model.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/configuration-spaces.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/evaluation_guide.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/injection_modes.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/interactive_optimization.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/smart_optimization.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/tuned_variables.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/walkthrough.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements-all.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements-analytics.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements-bayesian.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements-chroma.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements-dev.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements-hybrid.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements-integrations.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements-security.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements-test.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/requirements/requirements.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/setup.cfg +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/_version.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/adapters/execution_adapter.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/admin/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/admin/client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/admin/config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/admin/dtos.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/agents/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/agents/config_mapper.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/agents/executor.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/agents/platforms.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/agents/specification_generator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/anomaly.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/cost_optimization.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/example_insights.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/intelligence.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/meta_learning.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/next_steps.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/optimization_plan.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/predictive.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/render.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics/scheduling.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics_mcp/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics_mcp/server.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/analytics_mcp/tools.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/agent_inference.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/config_builder.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/config_space.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/constraint_builders.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/constraints.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/decorators.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/functions.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/parameter_ranges.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/parameter_validator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/safety.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/strategy_presets.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/api/validation_protocol.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/auth_commands.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/detect_tvars_command.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/function_discovery.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/generate_config_command.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/hooks_commands.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/local_commands.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/main.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/next_steps_command.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/onboard_commands.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/optimization_validator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/plan_command.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/playbook_commands.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/sync_commands.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cli/validation_types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/_aiohttp_compat.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/agent_dtos.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/analytics_auth.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/analytics_client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/api_key_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/api_operations.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/async_batch_transport.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/auth.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/backend_bridges.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/backend_client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/backend_components.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/backend_synchronizer.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/benchmark_client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/billing.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/cloud_operations.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/credential_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/credential_resolver.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/dataset_converter.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/dtos.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/governance.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/integration_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/models.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/optimizer_client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/password_auth_handler.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/privacy_operations.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/production_mcp_client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/remote_guidance.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/resilient_client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/service.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/session_operations.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/session_types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/sessions.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/smart_pruning.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/subset_selection.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/token_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/trial_operations.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/trial_tracker.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/url_security.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/user_agent.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/cloud/validators.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/api_keys.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/ast_transformer.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/backend_config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/context.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/feature_flags.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/models.yaml +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/parallel.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/project.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/provider_support.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/providers.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/runtime_injector.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/tenant.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config/types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/agent_classifier.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/apply.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/catalog.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/llm_backend.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/pipeline.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/presets/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/presets/constraint_templates.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/presets/range_presets.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/recommendations.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/subsystems/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/subsystems/benchmarks.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/subsystems/objectives.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/config_generator/types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/backend_session_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/best_config_runtime.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/cache_policy.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/ci_approval.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/config_state_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/constants.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/cost_enforcement.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/cost_estimator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/evaluator_wrapper.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/exception_handler.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/execution_policy_runtime.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/license.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/logger_facade.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/mandatory_metrics.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/meta_types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/metadata_helpers.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/metric_registry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/metrics_aggregator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/namespace.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/objectives.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/optimization_pipeline.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/optimized_function.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/orchestrator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/orchestrator_helpers.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/parallel_execution_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/progress_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/result_selection.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/sample_budget.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/samplers/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/samplers/random_sampler.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/session_context.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/session_types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/stat_significance.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/stop_condition_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/stop_conditions.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/trace_env.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/tracing.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/trial_context.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/trial_lifecycle.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/trial_result_factory.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/types_ext.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/utils.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core/workflow_trace_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core_metrics/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core_metrics/client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core_metrics/config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/core_metrics/dtos.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/defaults.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/effectuation/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/effectuation/contracts.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/effectuation/strategies/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/effectuation/strategies/framework_param.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/effectuation/strategies/self_consistency.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluation/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluation/client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluation/config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluation/dtos.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/base.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/catalog/metric_eval_catalog.v1.json +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/catalog/schemas/metric_eval_catalog_entry_schema.json +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/catalog_loader.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/dataset_registry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/hybrid_api.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/local.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/metrics.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/metrics_tracker.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/evaluators/recommendations.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/_portal.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/_bootstrap.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/_demo.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/anthropic.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/aws.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/azure.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/gcp.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/gemini.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/groq.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/litellm_any.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/manifest.json +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/openai.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/openrouter.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/providers/qa_samples.jsonl +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/quickstart/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/quickstart/__main__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/quickstart/_env.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/quickstart/publish_and_verify.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/examples/tutorial_bootstrap.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/backend_provider.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/example_synth.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/llm_provider.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/loop.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/models.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/options.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/prompt_rewriter.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/_deterministic_indices.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/artifacts.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/buffer.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/document.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/edits.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/prompts.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/reflection.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/schedule.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/slow_update.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/splits.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/trainer.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/skill_train/trainer_result.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/generation/validators.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/guaranteed_modes.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hooks/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hooks/config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hooks/installer.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hooks/validator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hybrid/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hybrid/discovery.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hybrid/http_transport.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hybrid/lifecycle.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hybrid/mcp_transport.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hybrid/protocol.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/hybrid/transport.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/activation.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/base.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/base_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/bedrock_client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/dspy_adapter.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/framework_override.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/langchain/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/langchain/handler.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/langfuse/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/langfuse/callback.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/langfuse/client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/langfuse/tracker.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/anthropic_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/base_llm_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/bedrock_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/cohere_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/gemini_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/huggingface_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/langchain/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/langchain/base.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/langchain_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/litellm_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/mistral_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/openai.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/llms/openai_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/mappings.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/model_discovery/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/model_discovery/base.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/model_discovery/cache.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/model_discovery/registry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/observability/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/observability/mlflow.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/observability/wandb.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/observability/workflow_traces.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/plugin_registry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/providers.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/pydantic_ai/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/pydantic_ai/_types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/pydantic_ai/handler.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/pydantic_ai/plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/utils/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/utils/discovery.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/utils/message_coercion.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/utils/mock_adapter.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/utils/parameter_normalizer.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/utils/response_wrapper.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/utils/validation.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/utils/version_compat.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/vector_stores/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/vector_stores/base.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/integrations/wrappers.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/invokers/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/invokers/base.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/invokers/batch.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/invokers/local.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/invokers/streaming.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/adapters.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/bindings.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/canonical.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/cascade.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/certificates.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/composites.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/kinds.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/patterns.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/resolution.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/resolver.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/runtime.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/signals.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/knobs/telemetry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/mcp/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/mcp/server.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/mcp/tools.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/metrics/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/metrics/agent_metrics.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/metrics/content_features.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/metrics/deepeval_metrics.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/metrics/ragas_metrics.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/metrics/registry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/observability/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/observability/agent_spans.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/observability/client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/observability/config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/observability/decorators.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/observability/dtos.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/base.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/batch_optimizers.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/cloud_optimizer.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/grid.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/interactive_optimizer.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/random.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/registry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/remote.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/remote_services.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/optimizers/results.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/playbook/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/playbook/loader.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/playbook/model.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/playbook/scaffold.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/playbook/schemas/agent_playbook_schema.json +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/playbook/staleness.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/playbook/validator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/plugins/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/plugins/registry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/projects/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/projects/client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/projects/config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/projects/dtos.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/prompts/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/prompts/client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/prompts/config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/prompts/dtos.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/providers/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/providers/validation.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/py.typed +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/reporting/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/reporting/example_map.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/audit.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/auth/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/auth/helpers.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/auth/mfa.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/auth/models.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/auth/oidc.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/auth/saml.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/auth/sms.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/auth/totp.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/credentials.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/crypto_utils.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/deployment.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/encryption.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/enterprise.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/headers.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/input_validation.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/jwt_validator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/rate_limiter.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/redaction.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/session_manager.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/security/tenant.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-analyze-results/SKILL.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-configuration-space/SKILL.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-debugging/SKILL.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-debugging/references/error-reference.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-debugging/references/logging-config.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-debugging/references/mock-mode.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-decorator-setup/SKILL.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-integrations/SKILL.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-integrations/references/dspy.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-integrations/references/langchain.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-integrations/references/litellm.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-quickstart/SKILL.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-quickstart/references/environment-variables.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-quickstart/references/installation-extras.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-run-optimization/SKILL.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-run-optimization/references/cost-management.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/storage/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/storage/local_storage.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/testing/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/traigent_client.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/traigent_integration.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tuned_variables/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tuned_variables/dataflow_strategy.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tuned_variables/detection_strategies.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tuned_variables/detection_types.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tuned_variables/detector.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tuned_variables/discovery.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tuned_variables/observation.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tuned_variables/py.typed +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/__main__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/models.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/objectives.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/options.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/promotion_gate.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/registry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/spec_loader.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/spec_validator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/tvl/statistics.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/artifact_fingerprints.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/batch_optimizer_utils.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/batch_processing.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/callbacks.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/console.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/constraints.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/cost_calculator.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/diagnostics.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/discrete_domains.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/env_config.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/error_handler.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/example_id.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/exceptions.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/file_versioning.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/function_identity.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/hashing.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/importance.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/incentives.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/insights.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/langchain_interceptor.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/litellm_interceptor.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/llm_response_parsing.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/local_analytics.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/logging.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/multi_objective.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/numpy_compat.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/objectives.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/optimization_analyzer.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/optimization_logger.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/pagination.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/persistence.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/results_table.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/retry.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/secure_path.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/url_security.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/utils/validation.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/visualization/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/visualization/plots.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/wrapper/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/wrapper/errors.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/wrapper/server.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent/wrapper/service.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent.egg-info/SOURCES.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent.egg-info/dependency_links.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent.egg-info/entry_points.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent.egg-info/requires.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent.egg-info/top_level.txt +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent_validation/__init__.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent_validation/base.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent_validation/plugins.py +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent_validation/py.typed +0 -0
- {traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/traigent_validation/validators.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: traigent
|
|
3
|
-
Version: 0.21.0.
|
|
3
|
+
Version: 0.21.0.dev3
|
|
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
|
|
@@ -294,13 +294,15 @@ class SyncManager:
|
|
|
294
294
|
Convert a local session to the content-free typed-session payload.
|
|
295
295
|
|
|
296
296
|
Offline sync imports historical runs through the same content-free
|
|
297
|
-
typed-session endpoints the live SDK uses (``POST /sessions`` ->
|
|
298
|
-
|
|
299
|
-
/sessions/{id}/finalize``). The
|
|
300
|
-
``tracking_mode=
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
297
|
+
typed-session endpoints the live SDK uses (``POST /sessions`` -> per
|
|
298
|
+
trial ``POST /sessions/{id}/next-trial`` then ``POST
|
|
299
|
+
/sessions/{id}/results`` -> ``POST /sessions/{id}/finalize``). The
|
|
300
|
+
session is created with ``tracking_mode=backend_guided`` (shared-RDB
|
|
301
|
+
session state, so it works across the backend's multiple workers) and
|
|
302
|
+
binds NO benchmark, so the empty-dataset guard hits its documented
|
|
303
|
+
no-dataset pass-through and a run whose server-side dataset would have
|
|
304
|
+
zero examples imports cleanly. No prompt/output content egresses: the
|
|
305
|
+
dataset is represented only by a
|
|
304
306
|
content-free label (name + size).
|
|
305
307
|
|
|
306
308
|
Args:
|
|
@@ -318,6 +320,12 @@ class SyncManager:
|
|
|
318
320
|
session.trials or []
|
|
319
321
|
)
|
|
320
322
|
objectives = self._derive_objectives(opt_config, configuration_runs)
|
|
323
|
+
# Guard: the backend rejects a COMPLETED trial whose metrics lack any
|
|
324
|
+
# declared objective. Backfill each completed trial's measures so every
|
|
325
|
+
# objective is present as a number (prefer its own ``score``, else 0.0),
|
|
326
|
+
# so a real user-declared objective missing from one trial can't 400 the
|
|
327
|
+
# whole sync.
|
|
328
|
+
self._backfill_objective_measures(configuration_runs, objectives)
|
|
321
329
|
|
|
322
330
|
# Content-free dataset label: name + size only, never example content.
|
|
323
331
|
# The typed path validates dataset_metadata.size as a positive int
|
|
@@ -345,13 +353,19 @@ class SyncManager:
|
|
|
345
353
|
"privacy_mode": True,
|
|
346
354
|
},
|
|
347
355
|
"max_trials": max(len(configuration_runs), 1),
|
|
348
|
-
#
|
|
349
|
-
#
|
|
350
|
-
#
|
|
351
|
-
#
|
|
356
|
+
# backend_guided: the backend allocates each trial slot (POST
|
|
357
|
+
# /next-trial) and persists session state to the SHARED Optuna RDB,
|
|
358
|
+
# so a create on one worker is visible to the /results submit on any
|
|
359
|
+
# other worker. native_local keeps session state in a process-local
|
|
360
|
+
# in-memory dict, which 404s across api-dev's multiple workers
|
|
361
|
+
# (backend gap — see BE issue). backend_guided is the production-
|
|
362
|
+
# proven live path. It still binds NO benchmark, so the EMPTY_DATASET
|
|
363
|
+
# guard never fires (the original empty-dataset sync fix is intact).
|
|
364
|
+
# The backend suggests configs, but we ignore them and attest the
|
|
365
|
+
# real per-trial config in each /results body (config-binding).
|
|
352
366
|
"optimization_strategy": {
|
|
353
367
|
"algorithm": "optuna",
|
|
354
|
-
"tracking_mode": "
|
|
368
|
+
"tracking_mode": "backend_guided",
|
|
355
369
|
},
|
|
356
370
|
"metadata": {
|
|
357
371
|
"function_name": session.function_name,
|
|
@@ -369,30 +383,67 @@ class SyncManager:
|
|
|
369
383
|
def _derive_objectives(
|
|
370
384
|
opt_config: dict[str, Any], configuration_runs: list[dict[str, Any]]
|
|
371
385
|
) -> list[str]:
|
|
372
|
-
"""Derive objective names for the typed
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
386
|
+
"""Derive the session's objective names for the typed create payload.
|
|
387
|
+
|
|
388
|
+
The backend requires EVERY declared objective to be present as a numeric
|
|
389
|
+
metric on EVERY completed trial (an Optuna objective must be a scalar it
|
|
390
|
+
can ``tell()``). So the objective set must be MINIMAL and universally
|
|
391
|
+
present, NOT the union of every incidental per-trial measure — declaring
|
|
392
|
+
the union makes run-level overlays (``run_trials_completed``,
|
|
393
|
+
``duration``, tokens, cost, ...) "required objectives" that not every
|
|
394
|
+
trial reports, and each such trial's /results then 400s
|
|
395
|
+
("Completed trial is missing numeric metric ...").
|
|
396
|
+
|
|
397
|
+
Prefer the run's real optimization objectives; otherwise fall back to
|
|
398
|
+
``["score"]`` — ``score`` is written on every trial by
|
|
399
|
+
``_convert_trials_to_results``, so it is guaranteed present. The caller
|
|
400
|
+
additionally backfills any declared objective missing from a completed
|
|
401
|
+
trial (see ``convert_session_to_traigent_format``). Content-free: only
|
|
402
|
+
objective *names* are emitted.
|
|
377
403
|
"""
|
|
378
404
|
raw_objectives = opt_config.get("objectives")
|
|
379
405
|
if isinstance(raw_objectives, (list, tuple)):
|
|
380
406
|
names = [str(name) for name in raw_objectives if name]
|
|
381
407
|
if names:
|
|
382
408
|
return names
|
|
383
|
-
return
|
|
409
|
+
return ["score"]
|
|
410
|
+
|
|
411
|
+
@staticmethod
|
|
412
|
+
def _backfill_objective_measures(
|
|
413
|
+
configuration_runs: list[dict[str, Any]], objectives: list[str]
|
|
414
|
+
) -> None:
|
|
415
|
+
"""Ensure every COMPLETED trial reports each declared objective numerically.
|
|
416
|
+
|
|
417
|
+
The backend requires a numeric value for every objective on a completed
|
|
418
|
+
trial (Optuna ``tell``). If a trial's measures omit one (or it is
|
|
419
|
+
non-numeric), backfill it with the trial's ``score`` when available, else
|
|
420
|
+
``0.0``. Only completed trials are guarded — failed trials skip the
|
|
421
|
+
objective check server-side. Mutates ``configuration_runs`` in place.
|
|
422
|
+
"""
|
|
423
|
+
for configuration_run in configuration_runs:
|
|
424
|
+
if str(configuration_run.get("status", "")).upper() != "COMPLETED":
|
|
425
|
+
continue
|
|
426
|
+
measures = configuration_run.setdefault("measures", {})
|
|
427
|
+
fallback = measures.get("score")
|
|
428
|
+
if not isinstance(fallback, (int, float)) or isinstance(fallback, bool):
|
|
429
|
+
fallback = 0.0
|
|
430
|
+
for objective in objectives:
|
|
431
|
+
value = measures.get(objective)
|
|
432
|
+
if not isinstance(value, (int, float)) or isinstance(value, bool):
|
|
433
|
+
measures[objective] = fallback
|
|
384
434
|
|
|
385
435
|
def _convert_trials_to_configuration_runs(
|
|
386
436
|
self, trials: list[Any]
|
|
387
437
|
) -> list[dict[str, Any]]:
|
|
388
438
|
"""Reshape local trial results into per-trial result payloads.
|
|
389
439
|
|
|
390
|
-
Each entry carries ``
|
|
391
|
-
backend
|
|
392
|
-
``experiment_parameters`` (the trial config), content-free numeric
|
|
440
|
+
Each entry carries ``experiment_parameters`` (the trial config, bound to
|
|
441
|
+
the backend-allocated trial at submit time), content-free numeric
|
|
393
442
|
``measures``, and the trial's REAL terminal status (``COMPLETED`` or
|
|
394
443
|
``FAILED`` — never masked to COMPLETED; the session results endpoint
|
|
395
|
-
accepts failed trials).
|
|
444
|
+
accepts failed trials). ``trial_id`` (the local id) is carried for
|
|
445
|
+
provenance but the submitted result binds to the backend-minted slot id,
|
|
446
|
+
not this one.
|
|
396
447
|
"""
|
|
397
448
|
configuration_runs: list[dict[str, Any]] = []
|
|
398
449
|
|
|
@@ -400,9 +451,9 @@ class SyncManager:
|
|
|
400
451
|
measures = self._configuration_run_measures(result)
|
|
401
452
|
experiment_parameters = result.get("experiment_parameters") or {}
|
|
402
453
|
if not experiment_parameters:
|
|
403
|
-
#
|
|
404
|
-
#
|
|
405
|
-
#
|
|
454
|
+
# The backend binds each trial to a non-empty config; fall back
|
|
455
|
+
# to a config recorded in the trial metadata (if any) before
|
|
456
|
+
# giving up.
|
|
406
457
|
metadata = result.get("metadata")
|
|
407
458
|
if isinstance(metadata, Mapping):
|
|
408
459
|
metadata_config = metadata.get("config")
|
|
@@ -444,19 +495,6 @@ class SyncManager:
|
|
|
444
495
|
"""Return True for JSON numeric values while excluding booleans."""
|
|
445
496
|
return isinstance(value, (int, float)) and not isinstance(value, bool)
|
|
446
497
|
|
|
447
|
-
@staticmethod
|
|
448
|
-
def _derive_experiment_measures(
|
|
449
|
-
configuration_runs: list[dict[str, Any]],
|
|
450
|
-
) -> list[str]:
|
|
451
|
-
"""Derive the experiment-level measure list from trial payloads."""
|
|
452
|
-
measures: list[str] = []
|
|
453
|
-
for configuration_run in configuration_runs:
|
|
454
|
-
for measure_name in configuration_run.get("measures", {}):
|
|
455
|
-
if measure_name not in measures:
|
|
456
|
-
measures.append(measure_name)
|
|
457
|
-
|
|
458
|
-
return measures or ["score"]
|
|
459
|
-
|
|
460
498
|
def _convert_trials_to_results(self, trials: list[Any]) -> list[dict[str, Any]]:
|
|
461
499
|
"""Convert local trials to Traigent configuration_run format."""
|
|
462
500
|
results = []
|
|
@@ -664,12 +702,12 @@ class SyncManager:
|
|
|
664
702
|
) -> None:
|
|
665
703
|
"""Import a converted session through the content-free session endpoints.
|
|
666
704
|
|
|
667
|
-
Three steps: create a
|
|
668
|
-
backend's EMPTY_DATASET guard never fires), submit one result
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
a failed step.
|
|
705
|
+
Three steps: create a backend_guided typed session (no benchmark, so the
|
|
706
|
+
backend's EMPTY_DATASET guard never fires), submit one result per trial
|
|
707
|
+
(each bound to a backend-allocated trial slot), then finalize. When
|
|
708
|
+
``resume`` is True, reuses any cloud ids a prior attempt already created
|
|
709
|
+
so a retry resumes rather than minting a duplicate session. Mutates
|
|
710
|
+
``sync_result`` in place and returns early on a failed step.
|
|
673
711
|
"""
|
|
674
712
|
reuse = resume
|
|
675
713
|
configuration_runs = traigent_data["configuration_runs"]
|
|
@@ -927,7 +965,7 @@ class SyncManager:
|
|
|
927
965
|
}
|
|
928
966
|
|
|
929
967
|
def _sync_create_session(self, session_create: dict[str, Any]) -> dict[str, Any]:
|
|
930
|
-
"""Create the content-free
|
|
968
|
+
"""Create the content-free backend_guided typed session.
|
|
931
969
|
|
|
932
970
|
POSTs the typed contract to ``/sessions`` (content-free: function name,
|
|
933
971
|
typed configuration space, objective names, and a dataset *label* only).
|
|
@@ -992,6 +1030,47 @@ class SyncManager:
|
|
|
992
1030
|
normalized = str(value).strip()
|
|
993
1031
|
return normalized or None
|
|
994
1032
|
|
|
1033
|
+
def _sync_next_trial(self, session_id: str) -> dict[str, Any]:
|
|
1034
|
+
"""Allocate a backend-minted trial slot for a backend_guided session.
|
|
1035
|
+
|
|
1036
|
+
The backend mints configuration_run ids only through
|
|
1037
|
+
``POST /sessions/{id}/next-trial``; a result POST must be bound to the
|
|
1038
|
+
session by the id the backend itself minted (a client id 404s). We
|
|
1039
|
+
ignore the backend's suggested config — the real per-trial config is
|
|
1040
|
+
attested in the /results body (config-binding). Mirrors the live SDK's
|
|
1041
|
+
``TrialOperations.request_trial_slot`` request/response contract.
|
|
1042
|
+
|
|
1043
|
+
Returns ``{success, trial_id, complete, error}``: ``trial_id`` set when a
|
|
1044
|
+
slot was granted; ``complete=True`` when the backend returned
|
|
1045
|
+
``should_continue=False`` with no slot (optimization budget reached).
|
|
1046
|
+
"""
|
|
1047
|
+
self._raise_if_backend_egress_disabled("sync next trial")
|
|
1048
|
+
try:
|
|
1049
|
+
response = self._session.post(
|
|
1050
|
+
f"{self.base_url}/sessions/{session_id}/next-trial",
|
|
1051
|
+
json={"session_id": session_id, "previous_results": []},
|
|
1052
|
+
timeout=self._request_timeout,
|
|
1053
|
+
)
|
|
1054
|
+
except Exception as exc:
|
|
1055
|
+
return {"success": False, "error": str(exc)}
|
|
1056
|
+
if response.status_code not in (200, 201):
|
|
1057
|
+
return {
|
|
1058
|
+
"success": False,
|
|
1059
|
+
"error": f"HTTP {response.status_code}: {response.text}",
|
|
1060
|
+
}
|
|
1061
|
+
payload = self._response_json(response)
|
|
1062
|
+
if not isinstance(payload, Mapping):
|
|
1063
|
+
return {"success": False, "error": "next-trial response was not JSON"}
|
|
1064
|
+
suggestion = payload.get("suggestion")
|
|
1065
|
+
trial_id = (
|
|
1066
|
+
suggestion.get("trial_id") if isinstance(suggestion, Mapping) else None
|
|
1067
|
+
)
|
|
1068
|
+
if isinstance(trial_id, str) and trial_id:
|
|
1069
|
+
return {"success": True, "trial_id": trial_id}
|
|
1070
|
+
if payload.get("should_continue") is False:
|
|
1071
|
+
return {"success": True, "complete": True}
|
|
1072
|
+
return {"success": False, "error": "next-trial returned no trial slot"}
|
|
1073
|
+
|
|
995
1074
|
def _sync_session_results(
|
|
996
1075
|
self,
|
|
997
1076
|
session_id: str,
|
|
@@ -1000,19 +1079,23 @@ class SyncManager:
|
|
|
1000
1079
|
already_synced_keys: set[str] | None = None,
|
|
1001
1080
|
on_synced: Callable[[str, str | None], None] | None = None,
|
|
1002
1081
|
) -> dict[str, Any]:
|
|
1003
|
-
"""Submit one trial result per configuration run.
|
|
1082
|
+
"""Submit one trial result per configuration run (backend_guided).
|
|
1083
|
+
|
|
1084
|
+
Per trial: allocate a backend trial slot (``POST /next-trial``), then
|
|
1085
|
+
POST the content-free result bound to that backend-minted id. The
|
|
1086
|
+
backend persists session state to the shared RDB, so this works across
|
|
1087
|
+
api-dev's multiple workers.
|
|
1004
1088
|
|
|
1005
1089
|
Idempotent across resumes: each result carries a stable key
|
|
1006
1090
|
(``_config_run_key`` of its zero-based position). Runs whose key is in
|
|
1007
|
-
``already_synced_keys`` are SKIPPED (
|
|
1008
|
-
not dedup result creates, so re-POSTing would
|
|
1009
|
-
``on_synced(key, result_id)`` is invoked immediately
|
|
1010
|
-
successful POST so progress is persisted incrementally
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
(COMPLETED or FAILED).
|
|
1091
|
+
``already_synced_keys`` are SKIPPED (never re-POSTed and no new slot is
|
|
1092
|
+
minted) -- the backend does not dedup result creates, so re-POSTing would
|
|
1093
|
+
duplicate rows. ``on_synced(key, result_id)`` is invoked immediately
|
|
1094
|
+
after each successful POST so progress is persisted incrementally
|
|
1095
|
+
(crash-safe). The /results payload is ``{trial_id, config, status,
|
|
1096
|
+
metrics}`` -- ``config`` is REQUIRED (and must be non-empty) because the
|
|
1097
|
+
backend binds it to the allocated trial; ``status`` is the trial's real
|
|
1098
|
+
terminal status (COMPLETED or FAILED).
|
|
1016
1099
|
"""
|
|
1017
1100
|
self._raise_if_backend_egress_disabled("sync session results")
|
|
1018
1101
|
already_synced_keys = already_synced_keys or set()
|
|
@@ -1024,7 +1107,7 @@ class SyncManager:
|
|
|
1024
1107
|
for index, configuration_run in enumerate(configuration_runs):
|
|
1025
1108
|
key = self._config_run_key(index)
|
|
1026
1109
|
# Skip results a prior attempt already uploaded so a resume never
|
|
1027
|
-
# creates duplicate rows.
|
|
1110
|
+
# creates duplicate rows (and never mints a wasted trial slot).
|
|
1028
1111
|
if key in already_synced_keys:
|
|
1029
1112
|
skipped += 1
|
|
1030
1113
|
continue
|
|
@@ -1033,22 +1116,31 @@ class SyncManager:
|
|
|
1033
1116
|
ordinal = index + 1
|
|
1034
1117
|
trial_config = configuration_run.get("experiment_parameters") or {}
|
|
1035
1118
|
if not trial_config:
|
|
1036
|
-
#
|
|
1037
|
-
#
|
|
1038
|
-
#
|
|
1119
|
+
# The backend binds the submitted config to the allocated trial;
|
|
1120
|
+
# an empty config is rejected. Surface a clear SDK-side error
|
|
1121
|
+
# instead of the raw backend message, and don't burn a slot.
|
|
1039
1122
|
errors.append(
|
|
1040
1123
|
f"trial {ordinal}: trial has an empty config, which the "
|
|
1041
|
-
"content-free session import cannot submit (
|
|
1042
|
-
"
|
|
1043
|
-
|
|
1124
|
+
"content-free session import cannot submit (the backend "
|
|
1125
|
+
"binds each trial to its config); this trial was skipped"
|
|
1126
|
+
)
|
|
1127
|
+
continue
|
|
1128
|
+
|
|
1129
|
+
# Allocate the backend-minted trial id this result must bind to.
|
|
1130
|
+
slot = self._sync_next_trial(session_id)
|
|
1131
|
+
if not slot.get("success") or not slot.get("trial_id"):
|
|
1132
|
+
detail = (
|
|
1133
|
+
"backend reported the optimization budget was reached"
|
|
1134
|
+
if slot.get("complete")
|
|
1135
|
+
else (slot.get("error") or "no trial slot returned")
|
|
1136
|
+
)
|
|
1137
|
+
errors.append(
|
|
1138
|
+
f"trial {ordinal}: could not allocate a backend trial slot "
|
|
1139
|
+
f"({detail})"
|
|
1044
1140
|
)
|
|
1045
1141
|
continue
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
# here. Fall back to the stable positional key when a trial somehow
|
|
1049
|
-
# carries no id, so native_local can still materialize the trial.
|
|
1050
|
-
raw_trial_id = configuration_run.get("trial_id")
|
|
1051
|
-
trial_id = str(raw_trial_id) if raw_trial_id is not None else key
|
|
1142
|
+
trial_id = slot["trial_id"]
|
|
1143
|
+
|
|
1052
1144
|
result_payload = {
|
|
1053
1145
|
"trial_id": trial_id,
|
|
1054
1146
|
"config": trial_config,
|
|
@@ -1067,7 +1159,7 @@ class SyncManager:
|
|
|
1067
1159
|
|
|
1068
1160
|
if response.status_code in (200, 201):
|
|
1069
1161
|
synced += 1
|
|
1070
|
-
result_id = self._extract_response_id(response)
|
|
1162
|
+
result_id = self._extract_response_id(response) or trial_id
|
|
1071
1163
|
if result_id:
|
|
1072
1164
|
configuration_run_ids.append(result_id)
|
|
1073
1165
|
# Persist this result as synced RIGHT NOW (before the next POST)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: traigent
|
|
3
|
-
Version: 0.21.0.
|
|
3
|
+
Version: 0.21.0.dev3
|
|
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.21.0.dev1 → traigent-0.21.0.dev3}/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.21.0.dev1 → traigent-0.21.0.dev3}/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.21.0.dev1 → traigent-0.21.0.dev3}/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.21.0.dev1 → traigent-0.21.0.dev3}/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.21.0.dev1 → traigent-0.21.0.dev3}/docs/traceability/concepts/composite-knob-ir.md
RENAMED
|
File without changes
|
|
File without changes
|
{traigent-0.21.0.dev1 → traigent-0.21.0.dev3}/docs/traceability/concepts/guided-generation.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.21.0.dev1 → traigent-0.21.0.dev3}/docs/user-guide/choosing_optimization_model.md
RENAMED
|
File without changes
|
|
File without changes
|