traigent 0.12.0__tar.gz → 0.13.0.dev1__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.12.0 → traigent-0.13.0.dev1}/CHANGELOG.md +27 -0
- {traigent-0.12.0/traigent.egg-info → traigent-0.13.0.dev1}/PKG-INFO +10 -6
- {traigent-0.12.0 → traigent-0.13.0.dev1}/README.md +6 -3
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/README.md +12 -6
- traigent-0.13.0.dev1/docs/agent-skill.md +35 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/api-reference/complete-function-specification.md +131 -10
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/api-reference/decorator-reference.md +48 -10
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/api-reference/telemetry.md +31 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/api-reference/thread-pool-examples.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/architecture/ARCHITECTURE.md +8 -6
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/architecture/cost-architecture-validation.md +19 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/architecture/integrations-inventory.md +23 -31
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/architecture/plugin_architecture.md +8 -17
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/architecture/project-structure.md +4 -7
- traigent-0.13.0.dev1/docs/concepts/composite-knob-ir.md +43 -0
- traigent-0.13.0.dev1/docs/concepts/composite-knobs.md +245 -0
- {traigent-0.12.0/docs/traceability → traigent-0.13.0.dev1/docs}/concepts/guided-generation.md +3 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/contributing/ADDING_NEW_INTEGRATIONS.md +1 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/contributing/CONTRIBUTING.md +2 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/contributing/README.md +8 -3
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/contributing/aikido_triage.md +5 -5
- traigent-0.13.0.dev1/docs/examples/API_PATTERNS.md +208 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/examples/LEARNING_ROADMAP.md +2 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/examples/QUICK_REFERENCE.md +4 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/examples/README.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/examples/START_HERE.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/examples/TROUBLESHOOTING.md +7 -6
- traigent-0.13.0.dev1/docs/features/README.md +29 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/features/authentication.md +4 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/features/constraint-dsl.md +5 -4
- traigent-0.13.0.dev1/docs/features/mcp-server.md +68 -0
- traigent-0.13.0.dev1/docs/features/observability-spans.md +90 -0
- traigent-0.13.0.dev1/docs/features/onboarding.md +84 -0
- traigent-0.13.0.dev1/docs/features/recommendations.md +70 -0
- traigent-0.13.0.dev1/docs/features/safety-gates.md +95 -0
- traigent-0.13.0.dev1/docs/features/strategy-presets.md +74 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/getting-started/GETTING_STARTED.md +21 -7
- traigent-0.13.0.dev1/docs/getting-started/README.md +25 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/getting-started/installation.md +16 -20
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/getting-started/minimal-integration.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/getting-started/portal-dev-laptop-agent.md +0 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/getting-started/testing.md +21 -16
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/guides/evaluation.md +13 -20
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/guides/js-bridge.md +5 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/hybrid-mode-api-contract.md +4 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/hybrid-mode-client-guide.md +4 -3
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/operations/azure_openai.md +3 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/operations/bedrock.md +8 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/operations/google_gemini.md +3 -2
- traigent-0.13.0.dev1/docs/security/trust_model.md +5 -0
- traigent-0.13.0.dev1/docs/traceability/concepts/composite-knob-ir.md +43 -0
- traigent-0.13.0.dev1/docs/traceability/concepts/composite-knobs.md +245 -0
- {traigent-0.12.0/docs → traigent-0.13.0.dev1/docs/traceability}/concepts/guided-generation.md +3 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/user-guide/README.md +8 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/user-guide/agent_optimization.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/user-guide/choosing_optimization_model.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/user-guide/evaluation_guide.md +37 -30
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/user-guide/interactive_optimization.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/user-guide/tuned_variables.md +27 -316
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/walkthrough.md +8 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/pyproject.toml +12 -3
- {traigent-0.12.0 → traigent-0.13.0.dev1}/requirements/requirements-all.txt +5 -4
- traigent-0.13.0.dev1/requirements/requirements-chroma.txt +6 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/requirements/requirements-dev.txt +5 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/requirements/requirements-integrations.txt +0 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/config_builder.py +5 -5
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/decorators.py +7 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/parameter_validator.py +10 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/types.py +29 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/main.py +174 -3
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/api_operations.py +162 -7
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/auth.py +3 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/backend_client.py +38 -7
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/client.py +7 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/dtos.py +8 -1
- traigent-0.13.0.dev1/traigent/cloud/governance.py +254 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/models.py +3 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/session_operations.py +114 -16
- traigent-0.13.0.dev1/traigent/cloud/session_types.py +17 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/sync_manager.py +426 -149
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/trial_operations.py +109 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/backend_config.py +7 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/types.py +43 -19
- traigent-0.13.0.dev1/traigent/config_generator/catalog/tvar_catalog.v1.json +751 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/llm_backend.py +3 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/backend_session_manager.py +303 -53
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/cost_enforcement.py +102 -37
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/cost_estimator.py +18 -6
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/optimized_function.py +98 -13
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/orchestrator.py +192 -18
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/result_selection.py +125 -20
- traigent-0.13.0.dev1/traigent/core/session_types.py +151 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/trial_lifecycle.py +10 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/trial_result_factory.py +80 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/workflow_trace_manager.py +33 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluators/base.py +236 -5
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluators/local.py +145 -23
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluators/metrics_tracker.py +305 -3
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/bedrock_client.py +0 -36
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/utils/mock_adapter.py +4 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/__init__.py +3 -0
- traigent-0.13.0.dev1/traigent/knobs/composites.py +1119 -0
- traigent-0.13.0.dev1/traigent/knobs/patterns.py +969 -0
- traigent-0.13.0.dev1/traigent/knobs/runtime.py +2028 -0
- traigent-0.13.0.dev1/traigent/knobs/telemetry.py +245 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/mcp/server.py +38 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/mcp/tools.py +291 -12
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/credentials.py +24 -5
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-analyze-results/SKILL.md +7 -5
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-analyze-results/references/convergence-patterns.md +2 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-analyze-results/references/optimization-result-api.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-configuration-space/SKILL.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-debugging/SKILL.md +8 -6
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-debugging/references/error-reference.md +4 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-debugging/references/logging-config.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-debugging/references/mock-mode.md +9 -6
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-decorator-setup/SKILL.md +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-decorator-setup/references/evaluation-options.md +43 -16
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-integrations/SKILL.md +7 -5
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-integrations/references/dspy.md +3 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-integrations/references/langchain.md +2 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-integrations/references/litellm.md +6 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-quickstart/SKILL.md +7 -7
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-quickstart/references/environment-variables.md +21 -3
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-quickstart/references/installation-extras.md +17 -8
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-run-optimization/SKILL.md +20 -2
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-run-optimization/references/cost-management.md +30 -9
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/storage/local_storage.py +103 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/testing/__init__.py +6 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/callbacks.py +58 -4
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/constraints.py +2 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/cost_calculator.py +3 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/diagnostics.py +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/env_config.py +6 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/error_handler.py +1 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/litellm_interceptor.py +3 -1
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/local_analytics.py +6 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/logging.py +47 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/results_table.py +247 -46
- {traigent-0.12.0 → traigent-0.13.0.dev1/traigent.egg-info}/PKG-INFO +10 -6
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent.egg-info/SOURCES.txt +17 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent.egg-info/requires.txt +4 -2
- traigent-0.12.0/docs/agent-skill.md +0 -36
- traigent-0.12.0/docs/examples/API_PATTERNS.md +0 -454
- traigent-0.12.0/docs/features/README.md +0 -21
- traigent-0.12.0/docs/getting-started/README.md +0 -17
- traigent-0.12.0/traigent/cloud/session_types.py +0 -8
- traigent-0.12.0/traigent/config_generator/catalog/tvar_catalog.v1.json +0 -357
- traigent-0.12.0/traigent/core/session_types.py +0 -63
- {traigent-0.12.0 → traigent-0.13.0.dev1}/COMMERCIAL-LICENSE.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/CONTRIBUTING.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/CONTRIBUTOR-LICENSING.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/DISCLAIMER.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/LICENSE +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/MANIFEST.in +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/NOTICE +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/SECURITY.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/SYNC_MAP.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/api-reference/enterprise-beta-api.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/api-reference/interactive_optimizer.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/architecture/execution_mode_follow_up.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/architecture/stop_conditions.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/contributing/CODE_OF_CONDUCT.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/contributing/EXAMPLE_TEMPLATE.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/contributing/SECURITY.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/contributing/code_review_instructions.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/contributing/test-quality-guide.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/demos/DEMO_VIDEO_GUIDE.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/demos/README.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/fake-completion-tracking.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/feature_matrices/README.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/features/dataflow-detection.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/features/framework_override_enhanced_features.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/features/prompt_management.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/features/seamless_injection.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/features/strict_metrics_nulls.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/guides/VSCODE_RESTART_GUIDE.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/guides/execution-modes.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/guides/llm_plugin_migration_guide.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/guides/parallel-configuration.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/guides/secrets_management.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/testing/CREATIVE_STRESS_TESTING.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/traceability/schema.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/traceability/tagging_tracking.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/traceability/taxonomy_reference.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/tvl/CONSTRAINT_EXPRESSIONS.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/user-guide/configuration-spaces.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/user-guide/injection_modes.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/docs/user-guide/optuna_integration.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/requirements/requirements-analytics.txt +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/requirements/requirements-bayesian.txt +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/requirements/requirements-hybrid.txt +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/requirements/requirements-security.txt +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/requirements/requirements-test.txt +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/requirements/requirements.txt +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/setup.cfg +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/_version.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/adapters/execution_adapter.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/admin/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/admin/client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/admin/config.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/admin/dtos.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/agents/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/agents/config_mapper.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/agents/executor.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/agents/platforms.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/agents/specification_generator.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/analytics/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/analytics/anomaly.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/analytics/cost_optimization.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/analytics/example_insights.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/analytics/intelligence.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/analytics/meta_learning.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/analytics/predictive.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/analytics/scheduling.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/agent_inference.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/config_space.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/constraint_builders.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/constraints.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/functions.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/parameter_ranges.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/safety.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/strategy_presets.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/api/validation_protocol.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/auth_commands.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/detect_tvars_command.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/function_discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/generate_config_command.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/hooks_commands.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/local_commands.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/onboard_commands.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/optimization_validator.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cli/validation_types.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/_aiohttp_compat.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/agent_dtos.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/api_key_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/async_batch_transport.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/backend_bridges.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/backend_components.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/backend_synchronizer.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/benchmark_client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/billing.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/cloud_operations.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/credential_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/credential_resolver.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/dataset_converter.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/event_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/integration_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/optimizer_client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/password_auth_handler.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/privacy_operations.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/production_mcp_client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/remote_guidance.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/resilient_client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/service.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/sessions.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/subset_selection.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/token_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/trial_tracker.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/url_security.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/cloud/validators.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/api_keys.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/ast_transformer.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/context.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/feature_flags.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/models.yaml +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/parallel.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/project.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/providers.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/runtime_injector.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/seamless_injection.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/seamless_optuna_adapter.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config/tenant.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/agent_classifier.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/apply.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/catalog/schemas/tvar_catalog_entry_schema.json +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/catalog/schemas/tvar_observation_schema.json +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/catalog/schemas/tvar_value_recommendation_schema.json +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/catalog.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/pipeline.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/presets/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/presets/agent_type_catalog.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/presets/benchmark_catalog.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/presets/constraint_templates.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/presets/range_presets.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/recommendations.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/subsystems/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/subsystems/benchmarks.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/subsystems/objectives.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/subsystems/safety_constraints.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/subsystems/structural_constraints.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/subsystems/tvar_ranges.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/subsystems/tvar_recommendations.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/config_generator/types.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/best_config_runtime.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/cache_policy.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/ci_approval.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/config_builder.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/config_state_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/constants.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/evaluator_wrapper.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/exception_handler.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/license.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/llm_processor.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/logger_facade.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/mandatory_metrics.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/meta_types.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/metadata_helpers.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/metric_registry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/metrics_aggregator.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/namespace.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/objectives.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/optimization_pipeline.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/orchestrator_helpers.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/parallel_execution_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/progress_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/pruning_progress_tracker.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/refactoring_utils.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/sample_budget.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/samplers/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/samplers/random_sampler.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/session_context.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/stat_significance.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/stop_condition_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/stop_conditions.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/trace_env.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/tracing.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/trial_context.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/types.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/types_ext.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core/utils.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core_metrics/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core_metrics/client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core_metrics/config.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/core_metrics/dtos.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/effectuation/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/effectuation/contracts.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/effectuation/strategies/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/effectuation/strategies/framework_param.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/effectuation/strategies/self_consistency.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluation/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluation/client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluation/config.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluation/dtos.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluators/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluators/dataset_registry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluators/hybrid_api.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/evaluators/metrics.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/examples/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/examples/quickstart/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/examples/quickstart/__main__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/examples/quickstart/_env.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/examples/quickstart/qa_samples.jsonl +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/examples/tutorial_bootstrap.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/generation/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/generation/backend_provider.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/generation/example_synth.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/generation/llm_provider.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/generation/loop.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/generation/models.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/generation/options.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/generation/prompt_rewriter.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/generation/validators.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/guaranteed_modes.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hooks/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hooks/config.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hooks/installer.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hooks/validator.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hybrid/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hybrid/discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hybrid/http_transport.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hybrid/lifecycle.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hybrid/mcp_transport.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hybrid/protocol.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/hybrid/transport.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/activation.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/base.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/base_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/batch_wrapper.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/config.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/dspy_adapter.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/framework_override.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/langchain/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/langchain/handler.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/langfuse/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/langfuse/callback.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/langfuse/client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/langfuse/tracker.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/anthropic_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/azure_openai_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/base_llm_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/bedrock_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/cohere_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/gemini_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/huggingface_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/langchain/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/langchain/base.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/langchain/discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/langchain_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/litellm_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/llamaindex_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/mistral_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/openai.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/llms/openai_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/mappings.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/model_discovery/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/model_discovery/anthropic_discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/model_discovery/azure_discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/model_discovery/base.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/model_discovery/cache.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/model_discovery/gemini_discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/model_discovery/mistral_discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/model_discovery/openai_discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/model_discovery/registry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/observability/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/observability/mlflow.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/observability/wandb.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/observability/workflow_traces.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/plugin_registry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/providers.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/pydantic_ai/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/pydantic_ai/_types.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/pydantic_ai/handler.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/pydantic_ai/plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/utils/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/utils/discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/utils/message_coercion.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/utils/parameter_normalizer.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/utils/response_wrapper.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/utils/validation.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/utils/version_compat.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/vector_stores/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/vector_stores/base.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/vector_stores/chromadb_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/vector_stores/pinecone_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/vector_stores/weaviate_plugin.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/integrations/wrappers.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/invokers/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/invokers/base.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/invokers/batch.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/invokers/local.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/invokers/streaming.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/adapters.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/bindings.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/canonical.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/cascade.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/certificates.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/kinds.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/resolution.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/resolver.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/knobs/signals.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/mcp/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/metrics/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/metrics/agent_metrics.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/metrics/content_features.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/metrics/deepeval_metrics.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/metrics/ragas_metrics.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/metrics/registry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/observability/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/observability/agent_spans.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/observability/client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/observability/config.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/observability/decorators.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/observability/dtos.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/base.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/batch_optimizers.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/bayesian.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/benchmarking.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/cloud_optimizer.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/grid.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/interactive_optimizer.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/optuna_adapter.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/optuna_checkpoint.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/optuna_coordinator.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/optuna_optimizer.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/optuna_utils.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/pruners.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/random.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/registry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/remote.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/remote_services.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/results.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/optimizers/service_registry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/plugins/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/plugins/registry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/projects/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/projects/client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/projects/config.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/projects/dtos.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/prompts/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/prompts/client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/prompts/config.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/prompts/dtos.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/providers/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/providers/validation.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/py.typed +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/reporting/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/reporting/example_map.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/audit.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/auth/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/auth/helpers.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/auth/mfa.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/auth/models.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/auth/oidc.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/auth/saml.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/auth/sms.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/auth/totp.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/config.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/crypto_utils.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/deployment.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/encryption.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/enterprise.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/headers.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/input_validation.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/jwt_validator.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/rate_limiter.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/redaction.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/session_manager.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/security/tenant.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-configuration-space/references/constraints.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-configuration-space/references/parameter-types.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-decorator-setup/references/execution-modes.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-decorator-setup/references/injection-modes.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-run-optimization/references/algorithms.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/skills/traigent-run-optimization/references/parallel-config.md +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/storage/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/telemetry/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/telemetry/optuna_metrics.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/traigent_client.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/traigent_integration.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tuned_variables/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tuned_variables/dataflow_strategy.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tuned_variables/detection_strategies.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tuned_variables/detection_types.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tuned_variables/detector.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tuned_variables/discovery.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tuned_variables/observation.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tuned_variables/py.typed +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/__main__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/models.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/objectives.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/options.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/promotion_gate.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/registry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/spec_loader.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/spec_validator.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/tvl/statistics.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/batch_optimizer_utils.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/batch_processing.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/example_id.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/exceptions.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/file_versioning.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/function_identity.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/hashing.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/importance.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/incentives.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/insights.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/langchain_interceptor.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/llm_response_parsing.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/multi_objective.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/numpy_compat.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/objectives.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/optimization_analyzer.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/optimization_logger.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/persistence.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/reproducibility.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/retry.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/secure_path.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/url_security.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/user_prompts.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/utils/validation.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/visualization/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/visualization/plots.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/wrapper/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/wrapper/errors.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/wrapper/server.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent/wrapper/service.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent.egg-info/dependency_links.txt +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent.egg-info/entry_points.txt +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent.egg-info/top_level.txt +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent_validation/__init__.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent_validation/base.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent_validation/plugins.py +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent_validation/py.typed +0 -0
- {traigent-0.12.0 → traigent-0.13.0.dev1}/traigent_validation/validators.py +0 -0
|
@@ -6,6 +6,33 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
### Added
|
|
10
|
+
- **Composite telemetry rides the measures channel.** `composite_measures(run)`
|
|
11
|
+
(`traigent.knobs.telemetry`, re-exported from `traigent.knobs`) flattens a composite
|
|
12
|
+
run's RFC 0002 §3.10 content-free telemetry — `escalation_rate`, `stage_selected`, and
|
|
13
|
+
the per-gate `gate_margin_pass_rate` map — into flat, identifier-safe, numeric-only keys
|
|
14
|
+
(e.g. `composite_escalation_rate`, `composite_stage_selected`,
|
|
15
|
+
`composite_gate_0_margin_pass_rate`). Merge it into the metrics your decorated function
|
|
16
|
+
returns and the `composite_*` keys ride the existing per-trial measures wire channel as
|
|
17
|
+
ordinary numeric metrics — no new wire surface. Keys are capped with headroom below the
|
|
18
|
+
backend `MeasuresDict` 50-key ceiling (truncated deterministically with a logged warning,
|
|
19
|
+
never raised mid-trial), and the output is content-free by construction (the adapter reads
|
|
20
|
+
`run.measures` only, never `run.output`). New docs page
|
|
21
|
+
`docs/concepts/composite-knobs.md` covers the pattern catalog, executing a composite,
|
|
22
|
+
certified selection with a `binary_cascade`, and telemetry-to-measures; runnable offline
|
|
23
|
+
example at `examples/advanced/composite-knobs/composite_telemetry.py`.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- **Unpriced models now block instead of warn-and-continue.** When a real run includes
|
|
27
|
+
models with no known pricing, the SDK now requires explicit confirmation: interactive
|
|
28
|
+
terminals get a blocking prompt; non-interactive runs fail closed before any trial.
|
|
29
|
+
Pre-approve with `cost_approved=True` (must be a real boolean) or
|
|
30
|
+
`TRAIGENT_COST_APPROVED=true` (exact value), or supply custom pricing via
|
|
31
|
+
`TRAIGENT_CUSTOM_MODEL_PRICING_JSON`/`_FILE`. `TRAIGENT_STRICT_COST_ACCOUNTING=true`
|
|
32
|
+
still hard-fails without prompting; mock runs are unaffected.
|
|
33
|
+
|
|
34
|
+
## [0.12.0] - 2026-06-06
|
|
35
|
+
|
|
9
36
|
### Added
|
|
10
37
|
- **Content-logging opt-out for optimization logs** (#1069). `TRAIGENT_LOG_EXAMPLE_CONTENT=false`
|
|
11
38
|
(or `OptimizationLogger(..., log_example_content=False)`) keeps per-trial ids and metrics on
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: traigent
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0.dev1
|
|
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
|
|
@@ -54,7 +54,6 @@ Requires-Dist: langchain-core>=1.2.28; extra == "integrations"
|
|
|
54
54
|
Requires-Dist: langchain-community>=0.3.27; extra == "integrations"
|
|
55
55
|
Requires-Dist: langchain-anthropic>=0.2.0; extra == "integrations"
|
|
56
56
|
Requires-Dist: langchain-openai>=1.1.14; extra == "integrations"
|
|
57
|
-
Requires-Dist: langchain-chroma>=0.2.5; extra == "integrations"
|
|
58
57
|
Requires-Dist: langchain-text-splitters>=0.3.8; extra == "integrations"
|
|
59
58
|
Requires-Dist: langchain-google-genai>=2.1.4; extra == "integrations"
|
|
60
59
|
Requires-Dist: openai>=2.0.0; extra == "integrations"
|
|
@@ -69,6 +68,8 @@ Requires-Dist: python-dotenv>=1.2.2; extra == "integrations"
|
|
|
69
68
|
Requires-Dist: boto3>=1.28.0; extra == "integrations"
|
|
70
69
|
Requires-Dist: botocore>=1.31.0; extra == "integrations"
|
|
71
70
|
Requires-Dist: faiss-cpu>=1.7.0; sys_platform != "win32" and extra == "integrations"
|
|
71
|
+
Provides-Extra: chroma
|
|
72
|
+
Requires-Dist: langchain-chroma>=0.2.5; extra == "chroma"
|
|
72
73
|
Provides-Extra: dspy
|
|
73
74
|
Requires-Dist: dspy-ai>=2.5.0; extra == "dspy"
|
|
74
75
|
Provides-Extra: pydanticai
|
|
@@ -126,7 +127,7 @@ Requires-Dist: bandit>=1.7.0; extra == "dev"
|
|
|
126
127
|
Requires-Dist: hypothesis>=6.100.0; extra == "dev"
|
|
127
128
|
Provides-Extra: docs
|
|
128
129
|
Requires-Dist: mkdocs>=1.4.0; extra == "docs"
|
|
129
|
-
Requires-Dist: mkdocs-material>=9.
|
|
130
|
+
Requires-Dist: mkdocs-material>=9.5.0; extra == "docs"
|
|
130
131
|
Requires-Dist: mkdocstrings[python]>=0.22.0; extra == "docs"
|
|
131
132
|
Provides-Extra: ml
|
|
132
133
|
Requires-Dist: traigent[analytics,bayesian]; extra == "ml"
|
|
@@ -316,7 +317,7 @@ Works with any LLM provider — [OpenAI](https://platform.openai.com/docs), [Ant
|
|
|
316
317
|
|
|
317
318
|
## 🚀 Walkthrough — 8 runnable examples
|
|
318
319
|
|
|
319
|
-
The walkthrough examples use local mock mode through the quickstart/testing helpers — no API keys needed.
|
|
320
|
+
The walkthrough examples use local mock mode through the quickstart/testing helpers with cost approval pre-set for dry runs — no provider API keys needed when calls go through LiteLLM or LangChain.
|
|
320
321
|
|
|
321
322
|
<details>
|
|
322
323
|
<summary>Show all 8 walkthrough steps</summary>
|
|
@@ -441,8 +442,11 @@ pip install -e ".[recommended]"
|
|
|
441
442
|
Cost estimates, budgets, limits, alerts, and thresholds are best-effort software controls, not
|
|
442
443
|
provider-side billing guarantees. Actual billing is determined by your LLM/cloud providers, and you
|
|
443
444
|
remain responsible for provider charges. The legacy `TRAIGENT_MOCK_LLM=true` env var is supported
|
|
444
|
-
only for backwards-compatible local scripts and is disabled when `ENVIRONMENT=production`.
|
|
445
|
-
|
|
445
|
+
only for backwards-compatible local scripts and is disabled when `ENVIRONMENT=production`.
|
|
446
|
+
Mock mode skips the optimized-function pricing preflight for supported calls made through
|
|
447
|
+
Traigent's integration/interceptor path; direct provider calls made outside that path should
|
|
448
|
+
be stubbed explicitly for a guaranteed $0 rehearsal. See [DISCLAIMER.md](DISCLAIMER.md)
|
|
449
|
+
for details.
|
|
446
450
|
|
|
447
451
|
### Evaluation
|
|
448
452
|
|
|
@@ -169,7 +169,7 @@ Works with any LLM provider — [OpenAI](https://platform.openai.com/docs), [Ant
|
|
|
169
169
|
|
|
170
170
|
## 🚀 Walkthrough — 8 runnable examples
|
|
171
171
|
|
|
172
|
-
The walkthrough examples use local mock mode through the quickstart/testing helpers — no API keys needed.
|
|
172
|
+
The walkthrough examples use local mock mode through the quickstart/testing helpers with cost approval pre-set for dry runs — no provider API keys needed when calls go through LiteLLM or LangChain.
|
|
173
173
|
|
|
174
174
|
<details>
|
|
175
175
|
<summary>Show all 8 walkthrough steps</summary>
|
|
@@ -294,8 +294,11 @@ pip install -e ".[recommended]"
|
|
|
294
294
|
Cost estimates, budgets, limits, alerts, and thresholds are best-effort software controls, not
|
|
295
295
|
provider-side billing guarantees. Actual billing is determined by your LLM/cloud providers, and you
|
|
296
296
|
remain responsible for provider charges. The legacy `TRAIGENT_MOCK_LLM=true` env var is supported
|
|
297
|
-
only for backwards-compatible local scripts and is disabled when `ENVIRONMENT=production`.
|
|
298
|
-
|
|
297
|
+
only for backwards-compatible local scripts and is disabled when `ENVIRONMENT=production`.
|
|
298
|
+
Mock mode skips the optimized-function pricing preflight for supported calls made through
|
|
299
|
+
Traigent's integration/interceptor path; direct provider calls made outside that path should
|
|
300
|
+
be stubbed explicitly for a guaranteed $0 rehearsal. See [DISCLAIMER.md](DISCLAIMER.md)
|
|
301
|
+
for details.
|
|
299
302
|
|
|
300
303
|
### Evaluation
|
|
301
304
|
|
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
|
|
7
7
|
## 🚀 Quick Start
|
|
8
8
|
|
|
9
|
+
Current release: Traigent SDK 0.12.0. Install with
|
|
10
|
+
`pip install "traigent[recommended]"`, then run `traigent onboard`,
|
|
11
|
+
`traigent auth device-login`, `traigent quickstart`,
|
|
12
|
+
`traigent first-prompt --agent claude|cursor|codex`, `traigent mcp serve`, or
|
|
13
|
+
`traigent recommend` as needed.
|
|
14
|
+
|
|
15
|
+
License: Traigent SDK is dual-licensed under
|
|
16
|
+
`AGPL-3.0-only OR LicenseRef-Traigent-Commercial`.
|
|
17
|
+
|
|
9
18
|
```python
|
|
10
19
|
import litellm
|
|
11
20
|
import traigent
|
|
@@ -82,11 +91,8 @@ Traigent is a **zero-code optimization platform** that automatically finds the b
|
|
|
82
91
|
|
|
83
92
|
## 🌐 Examples Navigator
|
|
84
93
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
- `python -m http.server 8000`
|
|
88
|
-
- Visit `http://localhost:8000/examples/`
|
|
89
|
-
- Run icon: Each code block has a play button that copies a ready-to-run mock-mode command.
|
|
94
|
+
Use [Examples Guide](examples/README.md), [Start Here](examples/START_HERE.md),
|
|
95
|
+
and [Quick Reference](examples/QUICK_REFERENCE.md) for runnable examples.
|
|
90
96
|
|
|
91
97
|
## 🧪 Example Guides
|
|
92
98
|
|
|
@@ -100,7 +106,7 @@ Traigent is a **zero-code optimization platform** that automatically finds the b
|
|
|
100
106
|
|
|
101
107
|
1. **[Install Traigent](getting-started/installation.md)** - Get set up in minutes
|
|
102
108
|
2. **[Follow the Getting Started Guide](getting-started/GETTING_STARTED.md)** - Your first optimization
|
|
103
|
-
3. **
|
|
109
|
+
3. **Use the Example Guides** - Start with [Examples Guide](examples/README.md)
|
|
104
110
|
4. **[Explore User Guides](user-guide/)** - Learn advanced features
|
|
105
111
|
5. **[Check API Reference](api-reference/)** - Detailed technical documentation
|
|
106
112
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# AI Agent Skill
|
|
2
|
+
|
|
3
|
+
Traigent publishes [Agent Skills](https://agentskills.io/) — sets of instructions that teach your AI coding agent how to set up and run Traigent optimizations.
|
|
4
|
+
|
|
5
|
+
When you ask your agent to "optimize this function with Traigent," the skill guides it through a **dry-run-first workflow**: validate the documented Traigent path at zero provider cost in mock mode, then switch to real execution only when you say so. If your code makes provider calls outside Traigent's optimized/evaluated path, stub those calls explicitly before treating the rehearsal as guaranteed $0.
|
|
6
|
+
|
|
7
|
+
## Compatible Agents
|
|
8
|
+
|
|
9
|
+
Works with Claude Code, Cursor, GitHub Copilot, OpenAI Codex, Gemini CLI, Windsurf, and [30+ more](https://agentskills.io/).
|
|
10
|
+
|
|
11
|
+
## Install
|
|
12
|
+
|
|
13
|
+
The canonical SDK skill source is [`Traigent/traigent-skills`](https://github.com/Traigent/traigent-skills). SDK checkouts do not vendor `.agents/` or `.claude/skills/` copies; install from the remote repo so your local agent cache can be updated independently.
|
|
14
|
+
|
|
15
|
+
**Install all SDK skills:**
|
|
16
|
+
```bash
|
|
17
|
+
npx skills add Traigent/traigent-skills --skill '*'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Install only the Python entry points:**
|
|
21
|
+
```bash
|
|
22
|
+
npx skills add Traigent/traigent-skills --skill traigent --skill traigent-quickstart
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## What the Skill Does
|
|
26
|
+
|
|
27
|
+
1. Sets up the `@traigent.optimize()` decorator
|
|
28
|
+
2. Validates your dataset and config space
|
|
29
|
+
3. Runs a mock optimization (zero cost) to verify the full pipeline
|
|
30
|
+
4. Reports results and estimates real costs
|
|
31
|
+
5. Waits for your go-ahead before spending real tokens
|
|
32
|
+
|
|
33
|
+
## View the Skills
|
|
34
|
+
|
|
35
|
+
[Read the canonical skill instructions →](https://github.com/Traigent/traigent-skills/tree/main/skills/traigent)
|
{traigent-0.12.0 → traigent-0.13.0.dev1}/docs/api-reference/complete-function-specification.md
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Traigent SDK API Reference
|
|
2
2
|
|
|
3
|
-
Authoritative reference for Traigent SDK **
|
|
3
|
+
Authoritative reference for Traigent SDK **0.12.0**.
|
|
4
4
|
|
|
5
5
|
## Quick Navigation
|
|
6
6
|
|
|
@@ -22,7 +22,8 @@ def optimize(
|
|
|
22
22
|
objectives: list[str] | ObjectiveSchema | None = None,
|
|
23
23
|
configuration_space: dict[str, Any] | ConfigSpace | None = None,
|
|
24
24
|
default_config: dict[str, Any] | None = None,
|
|
25
|
-
constraints: list[Constraint | Callable[..., Any]] | None = None,
|
|
25
|
+
constraints: list[Constraint | BoolExpr | Callable[..., Any]] | None = None,
|
|
26
|
+
safety_constraints: list[SafetyConstraint | CompoundSafetyConstraint] | None = None,
|
|
26
27
|
# TVL integration
|
|
27
28
|
tvl_spec: str | Path | None = None,
|
|
28
29
|
tvl_environment: str | None = None,
|
|
@@ -30,16 +31,40 @@ def optimize(
|
|
|
30
31
|
# Grouped options (preferred)
|
|
31
32
|
evaluation: EvaluationOptions | dict[str, Any] | None = None,
|
|
32
33
|
injection: InjectionOptions | dict[str, Any] | None = None,
|
|
34
|
+
effectuation: bool = False,
|
|
33
35
|
execution: ExecutionOptions | dict[str, Any] | None = None,
|
|
34
36
|
mock: MockModeOptions | dict[str, Any] | None = None,
|
|
37
|
+
strategy: str | None = None,
|
|
38
|
+
strategy_params: Mapping[str, Any] | None = None,
|
|
39
|
+
# Multi-agent configuration
|
|
40
|
+
agents: dict[str, AgentDefinition] | None = None,
|
|
41
|
+
agent_prefixes: list[str] | None = None,
|
|
42
|
+
agent_measures: dict[str, list[str]] | None = None,
|
|
43
|
+
global_measures: list[str] | None = None,
|
|
44
|
+
# Config persistence
|
|
45
|
+
auto_load_best: bool = False,
|
|
46
|
+
load_from: str | None = None,
|
|
47
|
+
config_id: str | None = None,
|
|
48
|
+
best_config_source: str = "off",
|
|
49
|
+
best_config_strict: bool = False,
|
|
50
|
+
best_config_cache_dir: str | None = None,
|
|
51
|
+
best_config_cache_ttl_seconds: int = 24 * 60 * 60,
|
|
52
|
+
best_config_stale_ok_ttl_seconds: int | None = None,
|
|
53
|
+
enable_auto_load_dev_logs: bool | None = None,
|
|
54
|
+
# Guided generation
|
|
55
|
+
prompt_rewrite: dict[str, Any] | None = None,
|
|
56
|
+
grow_dataset: dict[str, Any] | None = None,
|
|
35
57
|
# Legacy compatibility
|
|
36
58
|
legacy: LegacyOptimizeArgs | dict[str, Any] | None = None,
|
|
37
59
|
**runtime_overrides: Any,
|
|
38
|
-
) ->
|
|
60
|
+
) -> Callable[[Callable[..., Any]], Any]
|
|
39
61
|
```
|
|
40
62
|
|
|
41
63
|
> **New in 0.8.0** – The decorator now uses keyword-only arguments with grouped option bundles. Legacy arguments are supported via the `legacy` parameter or directly in `**runtime_overrides`. Conflicting values between a bundle and a direct keyword raise `TypeError`.
|
|
42
64
|
|
|
65
|
+
`optimize(...)` is a decorator factory. Applying the returned decorator to a
|
|
66
|
+
function returns Traigent's optimized wrapper.
|
|
67
|
+
|
|
43
68
|
**Core Parameters**
|
|
44
69
|
|
|
45
70
|
| Parameter | Type | Default | Description |
|
|
@@ -48,6 +73,13 @@ def optimize(
|
|
|
48
73
|
| `configuration_space` | `dict[str, Any] \| ConfigSpace \| None` | `None` | Search space describing tunable parameters. Lists denote discrete choices; `(min, max)` tuples denote ranges. `Range`, `IntRange`, `LogRange`, `Choices`, and `ConfigSpace` are supported directly. Required for optimization. |
|
|
49
74
|
| `default_config` | `dict[str, Any] \| None` | `None` | Baseline configuration applied before the first trial. Missing keys remain unset unless you provide defaults via `default_config` or parameter defaults (for example `Range(..., default=...)`). |
|
|
50
75
|
| `constraints` | `list[Constraint \| Callable[..., Any]] \| None` | `None` | Hard constraints evaluated before running a trial. Accepts SE-friendly `Constraint` objects and/or callables that take `(config, metrics=None)` and return `True/False`. |
|
|
76
|
+
| `safety_constraints` | `list[SafetyConstraint \| CompoundSafetyConstraint] \| None` | `None` | Safety metric gates evaluated as part of optimization. |
|
|
77
|
+
| `strategy` | `str \| None` | `None` | Optional strategy preset name. 0.12.0 presets are advisory selection rules over completed trials. |
|
|
78
|
+
| `strategy_params` | `Mapping[str, Any] \| None` | `None` | Parameters for the selected strategy preset. |
|
|
79
|
+
| `effectuation` | `bool` | `False` | Enables effectuation tracking for tuned-variable observations. |
|
|
80
|
+
| `agents`, `agent_prefixes`, `agent_measures`, `global_measures` | See signature | `None` | Multi-agent measurement configuration. |
|
|
81
|
+
| Config persistence fields | See signature | See signature | `auto_load_best`, `load_from`, `config_id`, `best_config_*`, and cache TTL controls for persisted best configurations. |
|
|
82
|
+
| Guided-generation fields | `dict[str, Any] \| None` | `None` | `prompt_rewrite` and `grow_dataset` configure guided generation; run it with `.optimize_with_guidance(provider)`. |
|
|
51
83
|
|
|
52
84
|
**SE-friendly tuned variables (first-class)**
|
|
53
85
|
|
|
@@ -87,17 +119,31 @@ def my_agent(question: str) -> str:
|
|
|
87
119
|
| `execution` | `ExecutionOptions \| dict \| None` | Bundle for execution settings including `execution_mode`, `local_storage_path`, `parallel_config`, `privacy_enabled`, and `max_total_examples`. |
|
|
88
120
|
| `mock` | `MockModeOptions \| dict \| None` | **Deprecated — all fields inert.** Retained on the schema for backwards compatibility (config round-trip). Mock mode is enabled by calling `traigent.testing.enable_mock_mode_for_quickstart()` in local tutorial or test code, not via this object. The legacy `TRAIGENT_MOCK_LLM=true` env var remains available outside production for shell fixtures and backwards compatibility but emits `DeprecationWarning` when users set it directly. See issue #874. |
|
|
89
121
|
|
|
90
|
-
**ExecutionOptions Fields**
|
|
122
|
+
**ExecutionOptions Fields**
|
|
91
123
|
|
|
92
124
|
| Field | Type | Default | Description |
|
|
93
125
|
| --- | --- | --- | --- |
|
|
94
|
-
| `execution_mode` | `str` | `"edge_analytics"` | `"edge_analytics"` runs locally. `"hybrid"` runs trials locally and submits sessions/trial metrics to the backend for portal tracking. `"
|
|
126
|
+
| `execution_mode` | `str` | `"edge_analytics"` | `"edge_analytics"` runs locally. `"hybrid"` runs trials locally and submits sessions/trial metrics to the backend for portal tracking. `"hybrid_api"` delegates trial execution to an external service implementing the Traigent Hybrid API contract. `"privacy"` is accepted as a legacy alias for `"hybrid"` and sets `privacy_enabled=True`. `"cloud"` is reserved for future remote execution and fails closed with guidance to use `"hybrid"`. |
|
|
95
127
|
| `local_storage_path` | `str \| None` | `None` | Custom directory for persisted results. Falls back to `TRAIGENT_RESULTS_FOLDER` or `~/.traigent/`. |
|
|
96
128
|
| `minimal_logging` | `bool` | `True` | Suppresses verbose logs in privacy-sensitive modes. |
|
|
97
129
|
| `parallel_config` | `ParallelConfig \| dict \| None` | `None` | Unified concurrency configuration. |
|
|
98
130
|
| `privacy_enabled` | `bool \| None` | `None` | Redacts prompts/responses from telemetry and logs. |
|
|
99
131
|
| `max_total_examples` | `int \| None` | `None` | Global sample budget across all trials (budget guardrail). |
|
|
100
132
|
| `samples_include_pruned` | `bool` | `True` | Whether pruned trials count toward the sample budget. |
|
|
133
|
+
| `reps_per_trial` | `int` | `1` | Number of repetitions per configuration. OSS SDK accepts only `1`; other values raise `pydantic.ValidationError` and require Traigent Enterprise. |
|
|
134
|
+
| `reps_aggregation` | `str` | `"mean"` | Repetition aggregation method. OSS SDK accepts only `"mean"`; other values raise `pydantic.ValidationError` and require Traigent Enterprise. |
|
|
135
|
+
| `hybrid_api_endpoint` | `str \| None` | `None` | External-agent Hybrid API base endpoint. |
|
|
136
|
+
| `tunable_id` | `str \| None` | `None` | Optional Hybrid API tunable identifier. |
|
|
137
|
+
| `hybrid_api_transport` | `Any \| None` | `None` | Custom Hybrid API transport object. |
|
|
138
|
+
| `hybrid_api_transport_type` | `str` | `"auto"` | Hybrid API transport type selector. |
|
|
139
|
+
| `hybrid_api_batch_size` | `int` | `1` | Number of examples per Hybrid API execute request. |
|
|
140
|
+
| `hybrid_api_batch_parallelism` | `int` | `1` | Concurrent Hybrid API batch execution limit. |
|
|
141
|
+
| `hybrid_api_keep_alive` | `bool` | `True` | Reuse Hybrid API HTTP connections. |
|
|
142
|
+
| `hybrid_api_heartbeat_interval` | `float` | `30.0` | Heartbeat interval for Hybrid API transports. |
|
|
143
|
+
| `hybrid_api_timeout` | `float \| None` | `None` | Hybrid API request timeout override. |
|
|
144
|
+
| `hybrid_api_auth_header` | `str \| None` | `None` | Auth token/header value sent as both `Authorization` and `x-api-key`. |
|
|
145
|
+
| `hybrid_api_auto_discover_tvars` | `bool` | `False` | Auto-discover Hybrid API tuned variables when supported. |
|
|
146
|
+
| `cloud_fallback_policy` | `str \| None` | `None` | Legacy/future cloud fallback policy. It does not enable `execution_mode="cloud"` in 0.12.0. |
|
|
101
147
|
|
|
102
148
|
**Legacy Compatibility**
|
|
103
149
|
|
|
@@ -171,6 +217,9 @@ async def optimize(
|
|
|
171
217
|
tvl_spec: str | Path | None = None,
|
|
172
218
|
tvl_environment: str | None = None,
|
|
173
219
|
tvl: TVLOptions | dict[str, Any] | None = None,
|
|
220
|
+
strategy: str | None = None,
|
|
221
|
+
strategy_params: Mapping[str, Any] | None = None,
|
|
222
|
+
progress_bar: bool | None = None,
|
|
174
223
|
**algorithm_kwargs: Any,
|
|
175
224
|
) -> OptimizationResult
|
|
176
225
|
```
|
|
@@ -190,6 +239,9 @@ async def optimize(
|
|
|
190
239
|
| `tvl_spec` | `str \| Path \| None` | `None` | Load TVL spec at runtime. |
|
|
191
240
|
| `tvl_environment` | `str \| None` | `None` | Environment overlay from the TVL spec. |
|
|
192
241
|
| `tvl` | `TVLOptions \| dict \| None` | `None` | Structured TVL options for runtime overrides. |
|
|
242
|
+
| `strategy` | `str \| None` | `None` | Runtime strategy preset override. Preset selections are advisory only. |
|
|
243
|
+
| `strategy_params` | `Mapping[str, Any] \| None` | `None` | Runtime parameters for the strategy preset. |
|
|
244
|
+
| `progress_bar` | `bool \| None` | `None` | Runtime progress-bar override. |
|
|
193
245
|
| `**algorithm_kwargs` | `Any` | – | Extra tuning knobs. See recognised keys below. |
|
|
194
246
|
|
|
195
247
|
**Recognised `algorithm_kwargs`**
|
|
@@ -201,7 +253,7 @@ async def optimize(
|
|
|
201
253
|
| `max_total_examples` | Global sample budget across all trials. |
|
|
202
254
|
| `cache_policy` | One of `"allow_repeats"` (default) or other cache policies. |
|
|
203
255
|
| `cost_limit` | Maximum USD spending for this run. |
|
|
204
|
-
| `cost_approved` | Skip cost approval prompt. |
|
|
256
|
+
| `cost_approved` | Skip cost approval prompt only when passed as real Python `True`; strings such as `"true"` are ignored. Env approval requires exact `TRAIGENT_COST_APPROVED=true`; `1`/`yes` do not approve. |
|
|
205
257
|
| `metric_limit` / `metric_name` / `metric_include_pruned` | Configure soft cumulative-metric early stopping. |
|
|
206
258
|
| `budget_limit` / `budget_metric` / `budget_include_pruned` | Deprecated aliases for metric-limit controls. Use `cost_limit` for hard USD spend control. |
|
|
207
259
|
| `plateau_window` / `plateau_epsilon` | Configure plateau detection stop conditions. |
|
|
@@ -229,13 +281,15 @@ def get_best_config() -> dict[str, Any] | None
|
|
|
229
281
|
```
|
|
230
282
|
|
|
231
283
|
#### `.current_config`
|
|
232
|
-
**Get
|
|
284
|
+
**Get current configuration**
|
|
233
285
|
|
|
234
286
|
```python
|
|
235
287
|
@property
|
|
236
288
|
def current_config() -> dict[str, Any]
|
|
237
289
|
```
|
|
238
290
|
|
|
291
|
+
`current_config` is read-only. Change the active override with `.set_config()`.
|
|
292
|
+
|
|
239
293
|
#### `.set_config()`
|
|
240
294
|
**Set current configuration**
|
|
241
295
|
|
|
@@ -380,6 +434,64 @@ def override_config(
|
|
|
380
434
|
def get_available_strategies() -> dict[str, Any]
|
|
381
435
|
```
|
|
382
436
|
|
|
437
|
+
### Recommendation Catalog and Strategy Presets
|
|
438
|
+
|
|
439
|
+
0.12.0 exposes local catalog helpers and advisory selection presets through
|
|
440
|
+
`traigent.api`.
|
|
441
|
+
|
|
442
|
+
```python
|
|
443
|
+
def list_recommendation_agent_types() -> tuple[str, ...]
|
|
444
|
+
|
|
445
|
+
def recommend_configuration_space(
|
|
446
|
+
agent_type: str,
|
|
447
|
+
*,
|
|
448
|
+
min_impact: str | None = None,
|
|
449
|
+
min_confidence: str | None = None,
|
|
450
|
+
) -> dict[str, Any]
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
`recommend_configuration_space()` returns catalog metadata for supported
|
|
454
|
+
agent/task types: knob names, suggested ranges, impact estimates, evidence
|
|
455
|
+
notes, effectuation status, and apply guidance. It does not call a remote
|
|
456
|
+
service.
|
|
457
|
+
|
|
458
|
+
```python
|
|
459
|
+
VALID_PRESET_NAMES: tuple[str, ...] = (
|
|
460
|
+
"max_accuracy_then_cheapest_within_epsilon",
|
|
461
|
+
"quality_floor_min_cost",
|
|
462
|
+
"pareto_frontier",
|
|
463
|
+
)
|
|
464
|
+
|
|
465
|
+
def normalize_strategy_preset(
|
|
466
|
+
preset_name: str | None,
|
|
467
|
+
params: Mapping[str, Any] | None = None,
|
|
468
|
+
) -> NormalizedStrategyPreset
|
|
469
|
+
|
|
470
|
+
def select_strategy_preset(
|
|
471
|
+
preset: NormalizedStrategyPreset,
|
|
472
|
+
trials: Iterable[TrialResult],
|
|
473
|
+
) -> PresetSelection
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
Strategy presets are advisory selection rules over completed trials. They are
|
|
477
|
+
task-local heuristics and do not provide a statistical certificate.
|
|
478
|
+
|
|
479
|
+
### CLI surfaces in 0.12.0
|
|
480
|
+
|
|
481
|
+
The local CLI includes these onboarding and recommendation entry points:
|
|
482
|
+
|
|
483
|
+
- `traigent onboard`
|
|
484
|
+
- `traigent auth device-login`
|
|
485
|
+
- `traigent first-prompt --agent claude|cursor|codex`
|
|
486
|
+
- `traigent quickstart`
|
|
487
|
+
- `traigent mcp serve`
|
|
488
|
+
- `traigent recommend`
|
|
489
|
+
|
|
490
|
+
The local MCP server in this worktree exposes these tools: `auth_status`,
|
|
491
|
+
`list_recommendation_agent_types`, `recommend_configuration_space`,
|
|
492
|
+
`detect_tvars`, `scaffold_eval`, `validate_dataset`, `estimate_cost`,
|
|
493
|
+
`run_optimization`, `get_results`, and `export_evidence`.
|
|
494
|
+
|
|
383
495
|
### `traigent.get_optimization_insights()`
|
|
384
496
|
|
|
385
497
|
```python
|
|
@@ -398,7 +510,7 @@ def get_optimization_insights(
|
|
|
398
510
|
class OptimizationResult:
|
|
399
511
|
trials: list[TrialResult]
|
|
400
512
|
best_config: dict[str, Any]
|
|
401
|
-
best_score: float
|
|
513
|
+
best_score: float | None
|
|
402
514
|
optimization_id: str
|
|
403
515
|
duration: float
|
|
404
516
|
convergence_info: dict[str, Any]
|
|
@@ -411,11 +523,16 @@ class OptimizationResult:
|
|
|
411
523
|
total_cost: float | None = None
|
|
412
524
|
total_tokens: int | None = None
|
|
413
525
|
metrics: dict[str, Any] = field(default_factory=dict)
|
|
526
|
+
preset_selection: PresetSelection | None = None
|
|
527
|
+
stop_reason: StopReason | None = None
|
|
528
|
+
experiment_id: str | None = None
|
|
529
|
+
cloud_url: str | None = None
|
|
530
|
+
run_label: str | None = None
|
|
414
531
|
```
|
|
415
532
|
|
|
416
533
|
**Properties:**
|
|
417
534
|
- `total_trials`: Total number of trials executed
|
|
418
|
-
- `successful_trials`:
|
|
535
|
+
- `successful_trials`: List of trials that completed successfully
|
|
419
536
|
- `success_rate`: Ratio of successful trials to total trials
|
|
420
537
|
|
|
421
538
|
### TrialResult
|
|
@@ -431,6 +548,7 @@ class TrialResult:
|
|
|
431
548
|
timestamp: datetime
|
|
432
549
|
error_message: str | None = None
|
|
433
550
|
metadata: dict[str, Any] = field(default_factory=dict)
|
|
551
|
+
error: TrialError | None = None
|
|
434
552
|
```
|
|
435
553
|
|
|
436
554
|
**Properties:**
|
|
@@ -443,10 +561,12 @@ class TrialResult:
|
|
|
443
561
|
|
|
444
562
|
```python
|
|
445
563
|
class TrialStatus(Enum):
|
|
564
|
+
NOT_STARTED = "not_started"
|
|
446
565
|
PENDING = "pending"
|
|
447
566
|
RUNNING = "running"
|
|
448
567
|
COMPLETED = "completed"
|
|
449
568
|
FAILED = "failed"
|
|
569
|
+
CANCELLED = "cancelled"
|
|
450
570
|
PRUNED = "pruned"
|
|
451
571
|
```
|
|
452
572
|
|
|
@@ -454,6 +574,7 @@ class TrialStatus(Enum):
|
|
|
454
574
|
|
|
455
575
|
```python
|
|
456
576
|
class OptimizationStatus(Enum):
|
|
577
|
+
NOT_STARTED = "not_started"
|
|
457
578
|
PENDING = "pending"
|
|
458
579
|
RUNNING = "running"
|
|
459
580
|
COMPLETED = "completed"
|
|
@@ -592,4 +713,4 @@ def my_function(input_text: str) -> str:
|
|
|
592
713
|
|
|
593
714
|
---
|
|
594
715
|
|
|
595
|
-
This documentation reflects Traigent SDK
|
|
716
|
+
This documentation reflects Traigent SDK 0.12.0.
|
|
@@ -36,6 +36,7 @@ def optimize(
|
|
|
36
36
|
configuration_space: dict[str, Any] | ConfigSpace | None = None,
|
|
37
37
|
default_config: dict[str, Any] | None = None,
|
|
38
38
|
constraints: list[Constraint | BoolExpr | Callable[..., Any]] | None = None,
|
|
39
|
+
safety_constraints: list[SafetyConstraint | CompoundSafetyConstraint] | None = None,
|
|
39
40
|
|
|
40
41
|
# TVL integration
|
|
41
42
|
tvl_spec: str | Path | None = None,
|
|
@@ -45,8 +46,32 @@ def optimize(
|
|
|
45
46
|
# Grouped option bundles (preferred)
|
|
46
47
|
evaluation: EvaluationOptions | dict[str, Any] | None = None,
|
|
47
48
|
injection: InjectionOptions | dict[str, Any] | None = None,
|
|
49
|
+
effectuation: bool = False,
|
|
48
50
|
execution: ExecutionOptions | dict[str, Any] | None = None,
|
|
49
51
|
mock: MockModeOptions | dict[str, Any] | None = None,
|
|
52
|
+
strategy: str | None = None,
|
|
53
|
+
strategy_params: Mapping[str, Any] | None = None,
|
|
54
|
+
|
|
55
|
+
# Multi-agent configuration
|
|
56
|
+
agents: dict[str, AgentDefinition] | None = None,
|
|
57
|
+
agent_prefixes: list[str] | None = None,
|
|
58
|
+
agent_measures: dict[str, list[str]] | None = None,
|
|
59
|
+
global_measures: list[str] | None = None,
|
|
60
|
+
|
|
61
|
+
# Config persistence
|
|
62
|
+
auto_load_best: bool = False,
|
|
63
|
+
load_from: str | None = None,
|
|
64
|
+
config_id: str | None = None,
|
|
65
|
+
best_config_source: str = "off",
|
|
66
|
+
best_config_strict: bool = False,
|
|
67
|
+
best_config_cache_dir: str | None = None,
|
|
68
|
+
best_config_cache_ttl_seconds: int = 24 * 60 * 60,
|
|
69
|
+
best_config_stale_ok_ttl_seconds: int | None = None,
|
|
70
|
+
enable_auto_load_dev_logs: bool | None = None,
|
|
71
|
+
|
|
72
|
+
# Guided generation
|
|
73
|
+
prompt_rewrite: dict[str, Any] | None = None,
|
|
74
|
+
grow_dataset: dict[str, Any] | None = None,
|
|
50
75
|
|
|
51
76
|
# Legacy compatibility
|
|
52
77
|
legacy: LegacyOptimizeArgs | dict[str, Any] | None = None,
|
|
@@ -424,7 +449,8 @@ def my_function(prompt: str) -> str:
|
|
|
424
449
|
...
|
|
425
450
|
```
|
|
426
451
|
|
|
427
|
-
Complete
|
|
452
|
+
Complete example: see the repository's custom evaluator walkthrough for a full
|
|
453
|
+
LLM-as-Judge implementation.
|
|
428
454
|
|
|
429
455
|
#### `injection`
|
|
430
456
|
|
|
@@ -436,7 +462,7 @@ from traigent.api.decorators import InjectionOptions
|
|
|
436
462
|
|
|
437
463
|
@traigent.optimize(
|
|
438
464
|
injection=InjectionOptions(
|
|
439
|
-
injection_mode="context", # or "parameter", "
|
|
465
|
+
injection_mode="context", # or "parameter", "seamless"
|
|
440
466
|
config_param="config", # required when injection_mode="parameter"
|
|
441
467
|
auto_override_frameworks=True,
|
|
442
468
|
framework_targets=["OpenAI", "Anthropic"],
|
|
@@ -447,7 +473,7 @@ from traigent.api.decorators import InjectionOptions
|
|
|
447
473
|
|
|
448
474
|
**InjectionOptions Fields**:
|
|
449
475
|
|
|
450
|
-
- `injection_mode`: How to inject config ("context", "parameter", "
|
|
476
|
+
- `injection_mode`: How to inject config ("context", "parameter", "seamless")
|
|
451
477
|
- `config_param`: Parameter name when using "parameter" mode
|
|
452
478
|
- `auto_override_frameworks`: Auto-detect framework classes
|
|
453
479
|
- `framework_targets`: Explicit list of framework classes
|
|
@@ -470,6 +496,8 @@ from traigent.config.parallel import ParallelConfig
|
|
|
470
496
|
privacy_enabled=False,
|
|
471
497
|
max_total_examples=1000,
|
|
472
498
|
samples_include_pruned=True,
|
|
499
|
+
reps_per_trial=1,
|
|
500
|
+
reps_aggregation="mean",
|
|
473
501
|
),
|
|
474
502
|
...
|
|
475
503
|
)
|
|
@@ -477,13 +505,17 @@ from traigent.config.parallel import ParallelConfig
|
|
|
477
505
|
|
|
478
506
|
**ExecutionOptions Fields**:
|
|
479
507
|
|
|
480
|
-
- `execution_mode`: "edge_analytics" for local-only runs; "hybrid" for local execution with backend/portal tracking; "cloud" is reserved for future remote execution.
|
|
508
|
+
- `execution_mode`: "edge_analytics" for local-only runs; "hybrid" for local execution with backend/portal tracking; "hybrid_api" for external API-backed trial execution; "privacy" as a legacy alias for "hybrid" with privacy enabled; "cloud" is reserved for future remote execution and fails closed.
|
|
481
509
|
- `local_storage_path`: Custom storage directory
|
|
482
510
|
- `minimal_logging`: Reduce log verbosity
|
|
483
511
|
- `parallel_config`: Concurrency configuration
|
|
484
512
|
- `privacy_enabled`: Redact sensitive data
|
|
485
513
|
- `max_total_examples`: Global sample budget
|
|
486
514
|
- `samples_include_pruned`: Count pruned trials in budget
|
|
515
|
+
- `reps_per_trial`: Repetitions per configuration. OSS SDK accepts only `1`; non-default values raise `pydantic.ValidationError` and require Traigent Enterprise.
|
|
516
|
+
- `reps_aggregation`: Repetition aggregation method. OSS SDK accepts only `"mean"`; non-default values raise `pydantic.ValidationError` and require Traigent Enterprise.
|
|
517
|
+
- `hybrid_api_endpoint`, `tunable_id`, `hybrid_api_transport`, `hybrid_api_transport_type`, `hybrid_api_batch_size`, `hybrid_api_batch_parallelism`, `hybrid_api_keep_alive`, `hybrid_api_heartbeat_interval`, `hybrid_api_timeout`, `hybrid_api_auth_header`, `hybrid_api_auto_discover_tvars`: Hybrid API execution controls.
|
|
518
|
+
- `cloud_fallback_policy`: Legacy/future cloud fallback behavior. It does not enable `execution_mode="cloud"` in 0.12.0.
|
|
487
519
|
|
|
488
520
|
#### `mock`
|
|
489
521
|
|
|
@@ -529,22 +561,28 @@ The `**runtime_overrides` parameter accepts additional settings:
|
|
|
529
561
|
```python
|
|
530
562
|
@traigent.optimize(
|
|
531
563
|
algorithm="optuna", # "grid", "random", "bayesian", "optuna"
|
|
532
|
-
max_trials=50,
|
|
533
|
-
timeout=3600, # seconds
|
|
534
564
|
...
|
|
535
565
|
)
|
|
536
566
|
```
|
|
537
567
|
|
|
568
|
+
Run controls such as `max_trials` and `timeout` are passed to `.optimize()`:
|
|
569
|
+
|
|
570
|
+
```python
|
|
571
|
+
result = await my_agent.optimize(max_trials=50, timeout=3600)
|
|
572
|
+
```
|
|
573
|
+
|
|
538
574
|
**Cost Controls**:
|
|
539
575
|
|
|
540
576
|
```python
|
|
541
|
-
|
|
577
|
+
result = await my_agent.optimize(
|
|
542
578
|
cost_limit=5.00, # USD
|
|
543
|
-
cost_approved=False, #
|
|
544
|
-
...
|
|
579
|
+
cost_approved=False, # Real bool only; strings do not approve
|
|
545
580
|
)
|
|
546
581
|
```
|
|
547
582
|
|
|
583
|
+
Env approval requires exact `TRAIGENT_COST_APPROVED=true`; `1`/`yes` do not
|
|
584
|
+
approve.
|
|
585
|
+
|
|
548
586
|
**Metric-Limit Controls**:
|
|
549
587
|
|
|
550
588
|
```python
|
|
@@ -665,4 +703,4 @@ def my_agent(query: str) -> str:
|
|
|
665
703
|
- [Execution Modes Guide](../guides/execution-modes.md) - Execution mode details
|
|
666
704
|
- [Thread Pool Examples](./thread-pool-examples.md) - Context propagation with threads
|
|
667
705
|
- [Telemetry Documentation](./telemetry.md) - Data collection and privacy
|
|
668
|
-
-
|
|
706
|
+
- Custom evaluator walkthrough in the repository examples - LLM-as-Judge implementation
|
|
@@ -24,7 +24,8 @@ During optimization runs, Traigent collects:
|
|
|
24
24
|
- Algorithm used (grid, random, bayesian, optuna)
|
|
25
25
|
- Number of trials executed
|
|
26
26
|
- Total optimization duration
|
|
27
|
-
- Execution mode (edge_analytics
|
|
27
|
+
- Execution mode (`edge_analytics`, `hybrid`, `hybrid_api`; `privacy` is a
|
|
28
|
+
legacy alias for `hybrid`, and `cloud` is reserved/fails closed)
|
|
28
29
|
- Stop conditions triggered
|
|
29
30
|
- Content-free tuned-variable observations can include knob names, enum/scalar values, numeric metrics, and aggregate effectuation events for backend optimization. Set `TRAIGENT_TVAR_OBSERVATION=off` to disable them, or use `TRAIGENT_TVAR_OBSERVATION=hashed` (default) to hash free-form string values. Only `off` and `hashed` are supported; unsupported values fall back to `hashed`.
|
|
30
31
|
|
|
@@ -80,6 +81,35 @@ The older plural spelling `TRAIGENT_TRACES_ENABLED` remains as a deprecated
|
|
|
80
81
|
alias when the canonical flag is unset; if both are set,
|
|
81
82
|
`TRAIGENT_TRACE_ENABLED` takes precedence.
|
|
82
83
|
|
|
84
|
+
### Agent Workflow Spans
|
|
85
|
+
|
|
86
|
+
0.12.0 exposes a public helper for adding sanitized agent/node spans to the
|
|
87
|
+
active optimization workflow trace:
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
from collections.abc import Mapping
|
|
91
|
+
from typing import Any
|
|
92
|
+
|
|
93
|
+
from traigent.observability import add_agent_span
|
|
94
|
+
|
|
95
|
+
def add_agent_span(
|
|
96
|
+
node_id: str,
|
|
97
|
+
*,
|
|
98
|
+
span_type: str = "agent",
|
|
99
|
+
input_tokens: int | None = None,
|
|
100
|
+
output_tokens: int | None = None,
|
|
101
|
+
cost_usd: float | None = None,
|
|
102
|
+
latency_ms: float | None = None,
|
|
103
|
+
model: str | None = None,
|
|
104
|
+
metadata: Mapping[str, Any] | None = None,
|
|
105
|
+
) -> None
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
The helper is safe to call from user code. If no active optimization trial or
|
|
109
|
+
workflow trace manager exists, it logs at debug level and returns. Metadata is
|
|
110
|
+
limited to safe numeric values, sensitive keys such as prompt/response/output
|
|
111
|
+
are dropped, and model identifiers are validated before emission.
|
|
112
|
+
|
|
83
113
|
## How Telemetry is Used
|
|
84
114
|
|
|
85
115
|
Telemetry data is used for:
|
|
@@ -458,4 +458,4 @@ async def process_items_async(items):
|
|
|
458
458
|
- [API Reference](./complete-function-specification.md) - Full API documentation
|
|
459
459
|
- [Parallel Configuration Guide](../guides/parallel-configuration.md) - Concurrency tuning and precedence
|
|
460
460
|
- [Evaluation Guide](../guides/evaluation.md) - Parallel evaluation and concurrency tips
|
|
461
|
-
-
|
|
461
|
+
- Context management implementation: see `traigent/config/context.py` in the repository source.
|