agentops-accelerator 0.4.2__tar.gz → 0.4.4__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.
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/copilot-instructions.md +1 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/AGENTS.md +9 -4
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/CHANGELOG.md +49 -14
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/PKG-INFO +9 -4
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/README.md +8 -3
- agentops_accelerator-0.4.2/docs/tutorial-prompt-agent-quickstart.md → agentops_accelerator-0.4.4/docs/tutorial-prompt-agent.md +20 -20
- {agentops_accelerator-0.4.2/src/agentops/templates → agentops_accelerator-0.4.4/plugins/agentops}/skills/agentops-eval/SKILL.md +26 -2
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/cli/app.py +149 -1
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/agentops_config.py +95 -3
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/invocations.py +162 -8
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/prompt_deploy.py +169 -1
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/azd_eval_init.py +112 -133
- {agentops_accelerator-0.4.2/plugins/agentops → agentops_accelerator-0.4.4/src/agentops/templates}/skills/agentops-eval/SKILL.md +26 -2
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/PKG-INFO +9 -4
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/SOURCES.txt +2 -1
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agentops_config.py +54 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azd_eval_init.py +18 -181
- agentops_accelerator-0.4.4/tests/unit/test_http_streaming.py +234 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_prompt_deploy.py +209 -1
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.claude-plugin/marketplace.json +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.gitattributes +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/actions/azure-oidc-login/action.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/code-quality-py.instructions.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/dependabot.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/extensions/agentops-skills/extension.mjs +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/plugin/marketplace.json +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/skills/release-management/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/_build.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/agentops-watchdog.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/ci.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/cut-release.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/e2e.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/release.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/staging.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.gitignore +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.pre-commit-config.yaml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.vscode/launch.json +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.vscode/settings.json +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.vscode/tasks.json +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/CONTRIBUTING.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/LICENSE +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/SECURITY.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/bundles.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/ci-github-actions.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/concepts.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/doctor-checks.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/doctor-explained.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/e2e-live-architecture.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/e2e-live-setup.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/foundry-evaluation-sdk-built-in-evaluators.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/how-it-works.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/media/agentops-diagrams.vsdx +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/media/foundry-control-plane.png +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/release-process.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/tutorial-end-to-end.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/tutorial-hosted-agent-quickstart.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/examples/flat-quickstart/README.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/examples/flat-quickstart/agentops.yaml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/examples/flat-quickstart/dataset.jsonl +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/icon.png +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/agent-app/Dockerfile +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/agent-app/app.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/agent-app/requirements.txt +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/bootstrap.bicep +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/bootstrap.parameters.example.json +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/perrun.bicep +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/launch.json +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/media/foundry.svg +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/media/quickstart.gif +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/.vscodeignore +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/LICENSE +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/README.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/package.json +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/plugin.json +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-agent/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-config/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-dataset/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-governance/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-report/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-workflow/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/pyproject.toml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/create_support_agent.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/cut-release.ps1 +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/cut-release.sh +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_aggregate_summary.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_data/basic.jsonl +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_data/rag.jsonl +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_data/tools.jsonl +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_demo.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_hosted_agent.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_make_transcript.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_render_config.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/release.ps1 +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/release.sh +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/setup-e2e-new-tenant.ps1 +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/staging.ps1 +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/staging.sh +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/sync-skills.ps1 +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/sync-skills.sh +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/setup.cfg +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/__main__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/_legacy_ids.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/analyzer.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/_rbac_authorization.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/catalog.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/errors.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/foundry_config.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/governance.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/latency.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/observability.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/opex.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/opex_workspace.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/content_filter.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/diagnostics.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/local_auth.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/managed_identity.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/network.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/rbac_openai_data_plane.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/regression.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/release_readiness.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/safety.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/spec_conformance.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/cockpit.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/config.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/findings.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/history.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/knowledge/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/knowledge/waf-checklist.csv +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_base.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_bundle_rule.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_client.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_dataset_rules.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_engine.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_prompt_rules.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_spec_rules.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/production_telemetry.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/report.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/app.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/auth.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/chat.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/protocol.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/_credentials.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/azure_monitor.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/azure_resources.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/foundry_control.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/results_history.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/spec_detectors/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/spec_detectors/_base.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/spec_detectors/agents_md.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/spec_detectors/spec_kit.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/time_range.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/cli/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/azd_eval.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/config_loader.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/evaluators.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/governance.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/release_evidence.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/results.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/mcp/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/mcp/server.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/azd_runner.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/cloud_results.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/cloud_runner.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/comparison.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/diagnostics.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/official_eval.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/orchestrator.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/publisher.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/reporter.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/runtime.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/thresholds.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/assert_runner.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/cicd.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/eval_analysis.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/evidence_pack.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/initializer.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/preflight.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/redteam_runner.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/setup_wizard.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/skills.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/trace_promotion.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/workflow_analysis.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/.gitignore +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agent-server/Dockerfile +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agent-server/README.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agent-server/main.bicep +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agent.yaml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agentops.yaml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/foundry.svg +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/icon.png +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev-azd.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod-azd.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prompt-agent.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa-azd.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-pr-prompt-agent.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-pr.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-watchdog.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/project.gitignore +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/sample-traces.jsonl +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-agent/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-config/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-dataset/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-governance/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-report/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-workflow/SKILL.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/smoke.jsonl +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/waf-checklist.README.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/waf-checklist.csv +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-dev-azd.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-dev.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-prod-azd.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-prod.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-prompt-agent.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-qa-azd.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-qa.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-pr-prompt-agent.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-pr.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-watchdog.yml +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/__init__.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/azd_env.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/azure_endpoints.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/colors.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/dotenv_loader.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/foundry_discovery.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/logging.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/telemetry.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/yaml.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/dependency_links.txt +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/entry_points.txt +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/requires.txt +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/top_level.txt +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/TESTING.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/fixtures/fake_adapter.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/fixtures/fake_eval_runner.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/integration/.gitkeep +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/integration/test_cli_flat_schema.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/integration/test_pipeline_smoke.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/.gitkeep +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_analyzer.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_categories.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_errors.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_foundry_config.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_observability.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_opex.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_opex_workspace.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_rbac_openai_data_plane.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_regression.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_safety.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_spec_conformance.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_cli.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_config.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_findings.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_history.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_opex_workspace_check.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_posture_rules.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_results_history.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_server.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_assert_and_redteam_runners.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azd_env.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azd_eval.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azd_runner.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azure_endpoints.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azure_resources_discovery.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cicd.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cli_cockpit_connection_summary.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cli_cockpit_port_conflict.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cli_commands.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cli_explain.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cloud_results.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cloud_runner.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cockpit.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_diagnostics.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_doctor_catalog.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_doctor_cli_explain.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_dotenv_loader.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_e2e_render.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_eval_analysis.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_eval_run_grader_errors.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_evaluators.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_foundry_discovery.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_governance.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_init_command.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_initializer.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_invocations.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_knowledge_loader.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_llm_assist.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_llm_assist_spec_rules.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_mcp_server.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_official_eval.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_pipeline_publisher.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_pipeline_reporter.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_preflight.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_production_telemetry.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_release_evidence.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_runtime_conversation.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_runtime_model_config.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_setup_wizard.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_shared_credentials.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_skills.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_skills_sync.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_telemetry.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_time_range.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_trace_promotion.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_workflow_analysis.py +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tombstones/vscode/CDN_DEPRECATION_REQUEST.md +0 -0
- {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/uv.lock +0 -0
|
@@ -19,6 +19,7 @@ Read these first for detailed architecture and product context:
|
|
|
19
19
|
- `agentops explain [COMMAND...] [--no-pager] [--format text|markdown|html] [--out PATH] [--open]`
|
|
20
20
|
- `agentops init [--force] [--dir PATH] [--no-prompt] [--no-appinsights] [--azd-env NAME] [--project-endpoint URL] [--agent REF] [--dataset PATH] [--appinsights-connection-string STR]`
|
|
21
21
|
- `agentops init show [--dir PATH] [--reveal-secrets]`
|
|
22
|
+
- `agentops prompt pull [--config PATH] [--out PATH] [--project-endpoint URL] [--force] [--update-config|--no-update-config]`
|
|
22
23
|
- `agentops eval analyze [--dir PATH] [--format text|markdown|json] [--out PATH]`
|
|
23
24
|
- `agentops eval run [--config PATH] [--baseline PATH] [--output DIR]`
|
|
24
25
|
- `agentops eval promote-traces --source PATH [--out PATH] [--max-rows N] [--label-mode self-similarity|pending] [--apply]`
|
|
@@ -40,6 +40,7 @@ Public CLI contract:
|
|
|
40
40
|
- `agentops init [--force] [--dir PATH] [--no-prompt] [--no-appinsights] [--azd-env NAME] [--project-endpoint URL] [--agent REF] [--dataset PATH] [--appinsights-connection-string STR]`
|
|
41
41
|
- `agentops init show [--dir PATH] [--reveal-secrets]`
|
|
42
42
|
- `agentops init explain [--no-pager] [--format text|markdown|html] [--out PATH] [--open]`
|
|
43
|
+
- `agentops prompt pull [--config PATH] [--out PATH] [--project-endpoint URL] [--force] [--update-config|--no-update-config]`
|
|
43
44
|
- `agentops eval analyze [--dir PATH] [--format text|markdown|json] [--out PATH]`
|
|
44
45
|
- `agentops eval init [--dir PATH] [--force]`
|
|
45
46
|
- `agentops eval run [--config PATH] [--baseline PATH] [--output DIR]`
|
|
@@ -222,9 +223,9 @@ Coverage highlights:
|
|
|
222
223
|
docs/
|
|
223
224
|
├── concepts.md # Core concepts and evaluation scenarios
|
|
224
225
|
├── how-it-works.md # Architecture and request flow
|
|
225
|
-
├── tutorial-prompt-agent
|
|
226
|
-
├── tutorial-hosted-agent
|
|
227
|
-
├── tutorial-end-to-end.md #
|
|
226
|
+
├── tutorial-prompt-agent.md # Tutorial for Foundry Prompt Agents
|
|
227
|
+
├── tutorial-hosted-agent.md # Tutorial for Foundry hosted / HTTP agents
|
|
228
|
+
├── tutorial-end-to-end.md # Full end-to-end release-readiness tutorial (Foundry + AgentOps)
|
|
228
229
|
├── doctor-explained.md # Doctor checks, history, and operations model
|
|
229
230
|
├── ci-github-actions.md # CI/CD setup
|
|
230
231
|
├── release-process.md # Release and versioning
|
|
@@ -334,7 +335,11 @@ Full schema:
|
|
|
334
335
|
| `response_field` | no | HTTP / invocations only. Dot-path to extract the response text (default: `text`). |
|
|
335
336
|
| `tool_calls_field` | no | HTTP / invocations only. Dot-path to extract tool calls for agent-workflow evaluators. |
|
|
336
337
|
| `headers` | no | HTTP / invocations only. Static extra HTTP headers. |
|
|
337
|
-
| `auth_header_env` | no | HTTP / invocations only. Environment variable that holds
|
|
338
|
+
| `auth_header_env` | no | HTTP / invocations only. Environment variable that holds the auth token. |
|
|
339
|
+
| `auth_header_name` | no | HTTP / invocations only. Header name for the auth token (default: `Authorization`). |
|
|
340
|
+
| `auth_value_template` | no | HTTP / invocations only. Template for the auth header value; `{token}` is replaced by the `auth_header_env` value (default: `Bearer {token}`). |
|
|
341
|
+
| `response_mode` | no | HTTP / invocations only. `json` (default, single `json.loads` of the body), `sse` (parse `data:` lines), or `text` (concatenate raw streamed text). |
|
|
342
|
+
| `stream` | no | HTTP / invocations only. Streaming aggregation block for `response_mode: sse|text`: `text_field` (dot-path to token text in JSON `data:` lines), `done_marker` (stop token, e.g. `[DONE]`), `strip_leading_token` (drop the first whitespace-delimited token, e.g. a `conversation_id` prefix). |
|
|
338
343
|
| `assert_path` | no | Optional ASSERT policy/results file or directory referenced by Doctor/evidence. AgentOps does not execute ASSERT. |
|
|
339
344
|
| `acs_path` | no | Optional Agent Control Specification contract file or directory referenced by Doctor/evidence. AgentOps does not apply ACS controls. |
|
|
340
345
|
| `redteam_path` | no | Optional red-team plan/results evidence path. AgentOps records metadata and never exposes payload text. |
|
|
@@ -5,21 +5,56 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
-
## [0.4.
|
|
8
|
+
## [0.4.4] - 2026-06-18
|
|
9
9
|
|
|
10
|
-
###
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
10
|
+
### Added
|
|
11
|
+
- **Streaming HTTP targets.** The `http_json` target now understands streaming
|
|
12
|
+
responses so AgentOps can evaluate SSE/streaming agents (such as the
|
|
13
|
+
gpt-rag-orchestrator `/orchestrator` endpoint) directly, without a manual
|
|
14
|
+
adapter. A new `response_mode: json|sse|text` field selects the response
|
|
15
|
+
parser (`json` is the default and preserves the existing single-`json.loads`
|
|
16
|
+
behavior exactly). For `sse`/`text`, an optional `stream` block configures
|
|
17
|
+
aggregation: `text_field` (dotted path to the token text when each SSE
|
|
18
|
+
`data:` line is JSON), `done_marker` (stop token, e.g. `[DONE]`), and
|
|
19
|
+
`strip_leading_token` (drop the leading whitespace-delimited token, e.g. the
|
|
20
|
+
orchestrator's `conversation_id` prefix). The auth header is now configurable
|
|
21
|
+
via `auth_header_name` (default `Authorization`) and `auth_value_template`
|
|
22
|
+
(default `Bearer {token}`, where `{token}` is replaced by the
|
|
23
|
+
`auth_header_env` value), so targets gated by a shared secret such as
|
|
24
|
+
`X-API-KEY` are supported without hardcoding the secret in `agentops.yaml`.
|
|
25
|
+
Streaming uses the same stdlib (`urllib`) transport and 3-try backoff as the
|
|
26
|
+
JSON path. When a JSON parse fails on a `text/event-stream` response, the
|
|
27
|
+
error now suggests setting `response_mode: sse|text`.
|
|
28
|
+
|
|
29
|
+
## [0.4.3] - 2026-06-17
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
- **Prompt-agent tutorials no longer require manual portal copy/paste.**
|
|
33
|
+
`agentops prompt pull` reads the configured Foundry prompt agent
|
|
34
|
+
(`agent: name:version`), validates that the Foundry definition is actually a
|
|
35
|
+
prompt agent, and writes the reviewed Sandbox instructions to
|
|
36
|
+
`.agentops/prompts/<agent-name>.prompt.md` by default. Before writing, the CLI
|
|
37
|
+
prints the resolved agent, endpoint, endpoint source, and destination file so
|
|
38
|
+
operators can catch the wrong environment early. Changed prompt files are
|
|
39
|
+
protected by default and require `--force` to overwrite reviewed local edits.
|
|
40
|
+
The command updates `prompt_file` in `agentops.yaml` unless
|
|
41
|
+
`--no-update-config` is passed, and it can resolve the endpoint from
|
|
42
|
+
`--project-endpoint`, `agentops.yaml`, `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT`, or
|
|
43
|
+
the active `.azure/<env>/.env`. The prompt-agent tutorial and packaged
|
|
44
|
+
`agentops-eval` skill now use this command instead of a manual here-string.
|
|
45
|
+
([#322](https://github.com/Azure/agentops/issues/322))
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
- **`agentops eval init` now recommends evaluators from the agent and dataset
|
|
49
|
+
shape.** The azd bootstrap path now reuses the same AgentOps evaluator
|
|
50
|
+
catalog as `agentops eval run`: free-form answer datasets get answer-quality
|
|
51
|
+
checks, RAG-shaped datasets get groundedness / relevance / retrieval checks,
|
|
52
|
+
and tool-use datasets get tool-call / intent / task-adherence checks while
|
|
53
|
+
avoiding literal-answer similarity metrics. Explicit `evaluators:` entries in
|
|
54
|
+
`agentops.yaml` still win. The CLI prints the recommendation source, detected
|
|
55
|
+
signals, and selected azd built-ins before reporting the generated
|
|
56
|
+
`eval.yaml`, so users can see why those evaluators were chosen.
|
|
57
|
+
([#323](https://github.com/Azure/agentops/issues/323))
|
|
23
58
|
|
|
24
59
|
## [0.4.1] - 2026-06-15
|
|
25
60
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentops-accelerator
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
4
4
|
Summary: Release readiness gates and evidence for Microsoft Foundry agents
|
|
5
5
|
License: MIT License
|
|
6
6
|
|
|
@@ -81,11 +81,16 @@ AgentOps Accelerator helps Microsoft Foundry agent teams evaluate quality, prepa
|
|
|
81
81
|
```powershell
|
|
82
82
|
python -m pip install agentops-accelerator
|
|
83
83
|
agentops init
|
|
84
|
-
agentops eval analyze
|
|
85
|
-
agentops eval run
|
|
86
|
-
agentops doctor --evidence-pack
|
|
87
84
|
```
|
|
88
85
|
|
|
86
|
+
`agentops init` starts a guided setup that creates your `agentops.yaml` and
|
|
87
|
+
`.agentops/` workspace.
|
|
88
|
+
|
|
89
|
+
Next, follow the tutorial that matches your agent type:
|
|
90
|
+
|
|
91
|
+
- [Prompt Agent tutorial](https://azure.github.io/agentops/tutorial-prompt-agent/)
|
|
92
|
+
- [Hosted or HTTP Agent tutorial](https://azure.github.io/agentops/tutorial-hosted-agent/)
|
|
93
|
+
|
|
89
94
|
## What it helps you do
|
|
90
95
|
|
|
91
96
|
Use AgentOps Accelerator when you need to:
|
|
@@ -28,11 +28,16 @@ AgentOps Accelerator helps Microsoft Foundry agent teams evaluate quality, prepa
|
|
|
28
28
|
```powershell
|
|
29
29
|
python -m pip install agentops-accelerator
|
|
30
30
|
agentops init
|
|
31
|
-
agentops eval analyze
|
|
32
|
-
agentops eval run
|
|
33
|
-
agentops doctor --evidence-pack
|
|
34
31
|
```
|
|
35
32
|
|
|
33
|
+
`agentops init` starts a guided setup that creates your `agentops.yaml` and
|
|
34
|
+
`.agentops/` workspace.
|
|
35
|
+
|
|
36
|
+
Next, follow the tutorial that matches your agent type:
|
|
37
|
+
|
|
38
|
+
- [Prompt Agent tutorial](https://azure.github.io/agentops/tutorial-prompt-agent/)
|
|
39
|
+
- [Hosted or HTTP Agent tutorial](https://azure.github.io/agentops/tutorial-hosted-agent/)
|
|
40
|
+
|
|
36
41
|
## What it helps you do
|
|
37
42
|
|
|
38
43
|
Use AgentOps Accelerator when you need to:
|
|
@@ -130,7 +130,7 @@ cd agentops-prompt-quickstart
|
|
|
130
130
|
python -m venv .venv
|
|
131
131
|
.\.venv\Scripts\Activate.ps1
|
|
132
132
|
python -m pip install -U pip
|
|
133
|
-
python -m pip install
|
|
133
|
+
python -m pip install agentops-accelerator
|
|
134
134
|
agentops --version
|
|
135
135
|
```
|
|
136
136
|
|
|
@@ -139,7 +139,7 @@ path, install the aligned reference branch so the CLI, generated
|
|
|
139
139
|
workflows, and tutorial steps stay in sync:
|
|
140
140
|
|
|
141
141
|
```powershell
|
|
142
|
-
python -m pip install "agentops-accelerator
|
|
142
|
+
python -m pip install "agentops-accelerator @ git+https://github.com/Azure/agentops.git@develop"
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
## 2. Install the AgentOps Copilot skills
|
|
@@ -426,7 +426,7 @@ In the **sandbox** project only:
|
|
|
426
426
|
> next-version flow.
|
|
427
427
|
|
|
428
428
|
> **Prompt-as-code captures only the instructions.** Later in the
|
|
429
|
-
> tutorial you will commit `.agentops/prompts/travel-agent.md` to git
|
|
429
|
+
> tutorial you will commit `.agentops/prompts/travel-agent.prompt.md` to git
|
|
430
430
|
> and let CI use it as the prompt source. That file does not capture
|
|
431
431
|
> the model deployment, parameters (temperature, top-p), tools, or
|
|
432
432
|
> other agent settings — those come from `prompt_agent_bootstrap` on
|
|
@@ -709,31 +709,31 @@ evaluates and deploys comes from this file in git, not from manual edits
|
|
|
709
709
|
in the Foundry portal.
|
|
710
710
|
|
|
711
711
|
```powershell
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
You are Travel Agent, a concise travel planning assistant.
|
|
712
|
+
agentops prompt pull
|
|
713
|
+
```
|
|
715
714
|
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
715
|
+
AgentOps reads `agent: travel-agent:2`, resolves the current Foundry
|
|
716
|
+
endpoint, validates that the Foundry definition is a prompt agent, and
|
|
717
|
+
writes the instructions to `.agentops/prompts/travel-agent.prompt.md`.
|
|
718
|
+
Before writing, it prints the resolved agent, endpoint, endpoint source,
|
|
719
|
+
and destination file so you can catch the wrong environment before the
|
|
720
|
+
prompt is saved.
|
|
721
721
|
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
722
|
+
By default, the command refuses to overwrite a changed prompt file. Use
|
|
723
|
+
`--force` only when you intentionally want to replace reviewed local
|
|
724
|
+
prompt edits with the current Sandbox version. Use `--out <path>` if you
|
|
725
|
+
need a different file name, but keep prompt source under
|
|
726
|
+
`.agentops/prompts/` unless your repository has a stronger convention.
|
|
727
727
|
|
|
728
|
-
Then
|
|
729
|
-
|
|
730
|
-
|
|
728
|
+
Then add `prompt_agent_bootstrap` so CI can auto-create the agent in dev
|
|
729
|
+
(and later qa / prod) on the first deploy. `agentops prompt pull` writes
|
|
730
|
+
`prompt_file` for you when it is missing:
|
|
731
731
|
|
|
732
732
|
```yaml
|
|
733
733
|
version: 1
|
|
734
734
|
agent: travel-agent:2
|
|
735
735
|
dataset: .agentops/data/travel-smoke.jsonl
|
|
736
|
-
prompt_file: .agentops/prompts/travel-agent.md
|
|
736
|
+
prompt_file: .agentops/prompts/travel-agent.prompt.md
|
|
737
737
|
prompt_agent_bootstrap:
|
|
738
738
|
model: gpt-4o-mini
|
|
739
739
|
description: "Helps plan short trips and explains tradeoffs."
|
|
@@ -93,7 +93,7 @@ done
|
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
PowerShell equivalent: replace `$(...)` with the PowerShell variable
|
|
96
|
-
assignments shown in `docs/tutorial-prompt-agent
|
|
96
|
+
assignments shown in `docs/tutorial-prompt-agent.md`.
|
|
97
97
|
|
|
98
98
|
If the user has not run `az login` yet, do that first. If
|
|
99
99
|
`az cognitiveservices account list` returns an empty RG, the AI Services
|
|
@@ -143,6 +143,23 @@ for the `agent:` field of `agentops.yaml`:
|
|
|
143
143
|
|
|
144
144
|
If nothing is found, ask the user once for the agent identifier.
|
|
145
145
|
|
|
146
|
+
For Foundry Prompt Agents authored in the Sandbox portal, do not copy/paste the
|
|
147
|
+
instructions into a file manually. After `agentops.yaml` contains `agent:
|
|
148
|
+
name:version` and the correct project endpoint is available from
|
|
149
|
+
`agentops.yaml`, `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT`, or the active
|
|
150
|
+
`.azure/<env>/.env`, run:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
agentops prompt pull
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
This writes `.agentops/prompts/<agent-name>.prompt.md` by default, updates
|
|
157
|
+
`prompt_file` in `agentops.yaml` when needed, prints the resolved endpoint and
|
|
158
|
+
agent version before writing, validates that the Foundry definition is a prompt
|
|
159
|
+
agent, and refuses to overwrite changed prompt files unless `--force` is used.
|
|
160
|
+
Use `--out` only when the repository already has a stronger prompt-file
|
|
161
|
+
convention.
|
|
162
|
+
|
|
146
163
|
## Step 3 - Make sure the dataset exists
|
|
147
164
|
|
|
148
165
|
`agentops.yaml` points to a JSONL file (default
|
|
@@ -284,4 +301,11 @@ dataset reference.
|
|
|
284
301
|
```
|
|
285
302
|
- For HTTP/JSON agents that need auth, set
|
|
286
303
|
`auth_header_env: MY_TOKEN_VAR` and AgentOps adds
|
|
287
|
-
`Authorization: Bearer $MY_TOKEN_VAR`.
|
|
304
|
+
`Authorization: Bearer $MY_TOKEN_VAR`. For a shared-secret gate, override the
|
|
305
|
+
header with `auth_header_name: X-API-KEY` and `auth_value_template: "{token}"`.
|
|
306
|
+
- For streaming HTTP agents (e.g. an SSE `text/event-stream` endpoint), set
|
|
307
|
+
`response_mode: sse` (each `data:` line) or `response_mode: text` (raw
|
|
308
|
+
streamed text). Use the optional `stream:` block to tune aggregation:
|
|
309
|
+
`text_field` (dot-path to the token text when `data:` lines are JSON),
|
|
310
|
+
`done_marker` (e.g. `[DONE]`), and `strip_leading_token: true` (drop a leading
|
|
311
|
+
`conversation_id` prefix). `response_mode: json` (default) is unchanged.
|
|
@@ -36,6 +36,7 @@ eval_app = typer.Typer(
|
|
|
36
36
|
report_app = typer.Typer(help="Reporting commands.")
|
|
37
37
|
workflow_app = typer.Typer(help="CI/CD workflow commands.")
|
|
38
38
|
skills_app = typer.Typer(help="Coding agent skills management.")
|
|
39
|
+
prompt_app = typer.Typer(help="Foundry prompt-agent source control commands.")
|
|
39
40
|
mcp_app = typer.Typer(help="MCP (Model Context Protocol) server commands.")
|
|
40
41
|
agent_app = typer.Typer(
|
|
41
42
|
help=(
|
|
@@ -79,6 +80,7 @@ app.add_typer(eval_app, name="eval")
|
|
|
79
80
|
app.add_typer(report_app, name="report")
|
|
80
81
|
app.add_typer(workflow_app, name="workflow")
|
|
81
82
|
app.add_typer(skills_app, name="skills")
|
|
83
|
+
app.add_typer(prompt_app, name="prompt")
|
|
82
84
|
app.add_typer(mcp_app, name="mcp")
|
|
83
85
|
app.add_typer(agent_app, name="agent")
|
|
84
86
|
app.add_typer(doctor_app, name="doctor")
|
|
@@ -485,7 +487,7 @@ EXPLAIN_PAGES: dict[tuple[str, ...], ExplainPage] = {
|
|
|
485
487
|
"agentops explain eval run --open",
|
|
486
488
|
"agentops explain cockpit --format markdown --out cockpit.md",
|
|
487
489
|
),
|
|
488
|
-
children=("init", "eval", "report", "workflow", "skills", "mcp", "agent", "doctor", "cockpit", "assert", "redteam"),
|
|
490
|
+
children=("init", "eval", "report", "workflow", "skills", "prompt", "mcp", "agent", "doctor", "cockpit", "assert", "redteam"),
|
|
489
491
|
),
|
|
490
492
|
("init",): ExplainPage(
|
|
491
493
|
title="Initialize workspace and configure endpoints",
|
|
@@ -609,6 +611,7 @@ EXPLAIN_PAGES: dict[tuple[str, ...], ExplainPage] = {
|
|
|
609
611
|
),
|
|
610
612
|
how_it_works=(
|
|
611
613
|
"Checks that azd and the `azure.ai.agents` extension are available.",
|
|
614
|
+
"Reads `agentops.yaml`, classifies the target, samples the dataset shape, and recommends built-in azd evaluators from the same AgentOps catalog used by `agentops eval run`. Explicit `evaluators:` entries in `agentops.yaml` still win.",
|
|
612
615
|
"Runs `azd ai agent eval init` in the workspace unless an eval recipe already exists.",
|
|
613
616
|
"Discovers the generated `eval.yaml` and writes `eval_recipe:` plus `execution: azd` to `agentops.yaml`.",
|
|
614
617
|
),
|
|
@@ -617,6 +620,55 @@ EXPLAIN_PAGES: dict[tuple[str, ...], ExplainPage] = {
|
|
|
617
620
|
examples=("agentops eval init", "agentops eval init --dataset .agentops/data/golden.jsonl", "agentops eval init --force"),
|
|
618
621
|
see_also=("agentops explain eval run", "agentops explain doctor"),
|
|
619
622
|
),
|
|
623
|
+
("prompt",): ExplainPage(
|
|
624
|
+
title="Prompt-agent source control commands",
|
|
625
|
+
command="agentops prompt",
|
|
626
|
+
synopsis=("agentops prompt pull [--config PATH] [--out PATH] [--force]", "agentops prompt explain"),
|
|
627
|
+
summary=(
|
|
628
|
+
"Pulls tested Foundry prompt-agent instructions into a source-controlled prompt file.",
|
|
629
|
+
"Use this after iterating in the Foundry Sandbox so git becomes the source of truth without manual portal copy/paste.",
|
|
630
|
+
),
|
|
631
|
+
children=("pull",),
|
|
632
|
+
examples=("agentops prompt pull", "agentops prompt pull --out .agentops/prompts/travel-agent.prompt.md"),
|
|
633
|
+
see_also=("agentops explain workflow generate", "agentops explain eval run"),
|
|
634
|
+
),
|
|
635
|
+
("prompt", "pull"): ExplainPage(
|
|
636
|
+
title="Pull a Foundry prompt into git",
|
|
637
|
+
command="agentops prompt pull",
|
|
638
|
+
synopsis=(
|
|
639
|
+
"agentops prompt pull [--config agentops.yaml] [--project-endpoint URL]",
|
|
640
|
+
"agentops prompt pull [--out .agentops/prompts/<agent-name>.prompt.md] [--force]",
|
|
641
|
+
"agentops prompt pull [--no-update-config]",
|
|
642
|
+
),
|
|
643
|
+
summary=(
|
|
644
|
+
"Fetches the `agent: name:version` Foundry prompt-agent definition from the configured project and writes its instructions to a local `.prompt.md` file.",
|
|
645
|
+
"The command prints the resolved endpoint, endpoint source, agent version, and destination before writing so users can catch wrong-environment pulls.",
|
|
646
|
+
"It never overwrites changed local prompt files unless `--force` is provided.",
|
|
647
|
+
),
|
|
648
|
+
how_it_works=(
|
|
649
|
+
"Reads `agentops.yaml` and requires `agent` to be a Foundry prompt agent in `name:version` form.",
|
|
650
|
+
"Resolves the project endpoint from `--project-endpoint`, then `agentops.yaml project_endpoint`, then `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT`, then the active `.azure/<env>/.env`.",
|
|
651
|
+
"Fetches the Foundry agent version, validates that `definition.kind` is `prompt`, and extracts `definition.instructions` through the same normalization helpers used by prompt deploy.",
|
|
652
|
+
"Writes to `prompt_file` when already configured, otherwise to `.agentops/prompts/<agent-name>.prompt.md`.",
|
|
653
|
+
"Updates `prompt_file` in `agentops.yaml` by default; pass `--no-update-config` to leave config unchanged.",
|
|
654
|
+
),
|
|
655
|
+
inputs=(
|
|
656
|
+
"`agentops.yaml` with `agent: <name>:<version>`.",
|
|
657
|
+
"A Foundry project endpoint in `--project-endpoint`, `project_endpoint`, `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT`, or the active `.azure/<env>/.env`.",
|
|
658
|
+
"Azure credentials that can read the Foundry agent definition.",
|
|
659
|
+
),
|
|
660
|
+
outputs=(
|
|
661
|
+
"Source-controlled prompt file, default `.agentops/prompts/<agent-name>.prompt.md`.",
|
|
662
|
+
"`agentops.yaml prompt_file` update unless `--no-update-config` is passed.",
|
|
663
|
+
),
|
|
664
|
+
examples=(
|
|
665
|
+
"agentops prompt pull",
|
|
666
|
+
"agentops prompt pull --project-endpoint https://acct.services.ai.azure.com/api/projects/sandbox",
|
|
667
|
+
"agentops prompt pull --out .agentops/prompts/travel-agent.prompt.md --force",
|
|
668
|
+
"agentops prompt pull --no-update-config",
|
|
669
|
+
),
|
|
670
|
+
see_also=("agentops explain workflow generate", "agentops explain eval run"),
|
|
671
|
+
),
|
|
620
672
|
("eval", "run"): ExplainPage(
|
|
621
673
|
title="Run evaluation",
|
|
622
674
|
command="agentops eval run",
|
|
@@ -1407,6 +1459,7 @@ eval_app.command("explain")(_make_group_explain(("eval",)))
|
|
|
1407
1459
|
report_app.command("explain")(_make_group_explain(("report",)))
|
|
1408
1460
|
workflow_app.command("explain")(_make_group_explain(("workflow",)))
|
|
1409
1461
|
skills_app.command("explain")(_make_group_explain(("skills",)))
|
|
1462
|
+
prompt_app.command("explain")(_make_group_explain(("prompt",)))
|
|
1410
1463
|
mcp_app.command("explain")(_make_group_explain(("mcp",)))
|
|
1411
1464
|
agent_app.command("explain")(_make_group_explain(("agent",)))
|
|
1412
1465
|
|
|
@@ -2098,6 +2151,11 @@ def cmd_eval_init(
|
|
|
2098
2151
|
typer.echo(f"{_cli_label('azd eval init')}: completed")
|
|
2099
2152
|
else:
|
|
2100
2153
|
typer.echo(f"{_cli_label('azd eval init')}: existing recipe reused")
|
|
2154
|
+
if result.evaluators:
|
|
2155
|
+
typer.echo(f"{_cli_label('Evaluator recommendation')}: {result.evaluator_source}")
|
|
2156
|
+
for signal in result.evaluator_signals:
|
|
2157
|
+
typer.echo(f" {style('-', 'dim')} {signal}")
|
|
2158
|
+
typer.echo(f"{_cli_label('Evaluators')}: {', '.join(result.evaluators)}")
|
|
2101
2159
|
typer.echo(f"{_cli_label('eval.yaml')}: {_cli_path(result.recipe_path)}")
|
|
2102
2160
|
if result.config_updated:
|
|
2103
2161
|
typer.echo(_cli_updated(result.config_path))
|
|
@@ -3415,6 +3473,96 @@ def cmd_skills_install(
|
|
|
3415
3473
|
_print_registration_result(reg_result)
|
|
3416
3474
|
|
|
3417
3475
|
|
|
3476
|
+
# ---------------------------------------------------------------------------
|
|
3477
|
+
# agentops prompt pull
|
|
3478
|
+
# ---------------------------------------------------------------------------
|
|
3479
|
+
|
|
3480
|
+
|
|
3481
|
+
@prompt_app.command("pull")
|
|
3482
|
+
def cmd_prompt_pull(
|
|
3483
|
+
config: Annotated[
|
|
3484
|
+
Path,
|
|
3485
|
+
typer.Option("--config", "-c", help="Path to agentops.yaml."),
|
|
3486
|
+
] = Path("agentops.yaml"),
|
|
3487
|
+
out: Annotated[
|
|
3488
|
+
Path | None,
|
|
3489
|
+
typer.Option(
|
|
3490
|
+
"--out",
|
|
3491
|
+
"-o",
|
|
3492
|
+
help="Prompt file to write.",
|
|
3493
|
+
),
|
|
3494
|
+
] = None,
|
|
3495
|
+
project_endpoint: Annotated[
|
|
3496
|
+
str | None,
|
|
3497
|
+
typer.Option(
|
|
3498
|
+
"--project-endpoint",
|
|
3499
|
+
help="Foundry project endpoint. Overrides config and environment.",
|
|
3500
|
+
),
|
|
3501
|
+
] = None,
|
|
3502
|
+
force: Annotated[
|
|
3503
|
+
bool,
|
|
3504
|
+
typer.Option(
|
|
3505
|
+
"--force",
|
|
3506
|
+
help="Overwrite the prompt file when local content differs.",
|
|
3507
|
+
),
|
|
3508
|
+
] = False,
|
|
3509
|
+
update_config: Annotated[
|
|
3510
|
+
bool,
|
|
3511
|
+
typer.Option(
|
|
3512
|
+
"--update-config/--no-update-config",
|
|
3513
|
+
help="Update agentops.yaml prompt_file to the pulled prompt path.",
|
|
3514
|
+
),
|
|
3515
|
+
] = True,
|
|
3516
|
+
explain: Annotated[str | None, typer.Argument(hidden=True)] = None,
|
|
3517
|
+
) -> None:
|
|
3518
|
+
"""Pull Foundry prompt-agent instructions into a prompt file."""
|
|
3519
|
+
if _maybe_explain_leaf(("prompt", "pull"), explain):
|
|
3520
|
+
return
|
|
3521
|
+
|
|
3522
|
+
from agentops.pipeline.prompt_deploy import pull_prompt_agent_instructions
|
|
3523
|
+
|
|
3524
|
+
def _before_write(details: dict[str, str]) -> None:
|
|
3525
|
+
typer.echo(f"{_cli_label('Agent')}: {details['agent']}")
|
|
3526
|
+
typer.echo(f"{_cli_label('Endpoint')}: {details['endpoint']}")
|
|
3527
|
+
typer.echo(f"{_cli_label('Endpoint source')}: {details['endpoint_source']}")
|
|
3528
|
+
typer.echo(f"{_cli_label('Prompt file')}: {_cli_path(details['prompt_file'])}")
|
|
3529
|
+
if details["endpoint_source"] == "AZURE_AI_FOUNDRY_PROJECT_ENDPOINT":
|
|
3530
|
+
typer.echo(
|
|
3531
|
+
f"{_cli_warn('Warning')}: using endpoint from environment variable. "
|
|
3532
|
+
"Pass --project-endpoint or set project_endpoint in agentops.yaml "
|
|
3533
|
+
"to make this deterministic.",
|
|
3534
|
+
err=True,
|
|
3535
|
+
)
|
|
3536
|
+
|
|
3537
|
+
try:
|
|
3538
|
+
result = pull_prompt_agent_instructions(
|
|
3539
|
+
config_path=config,
|
|
3540
|
+
output_path=out,
|
|
3541
|
+
force=force,
|
|
3542
|
+
update_config=update_config,
|
|
3543
|
+
project_endpoint=project_endpoint,
|
|
3544
|
+
before_write=_before_write,
|
|
3545
|
+
)
|
|
3546
|
+
except FileExistsError as exc:
|
|
3547
|
+
typer.echo(f"{_cli_error('Error')}: {exc}", err=True)
|
|
3548
|
+
raise typer.Exit(code=1) from exc
|
|
3549
|
+
except (FileNotFoundError, ValueError, RuntimeError) as exc:
|
|
3550
|
+
typer.echo(f"{_cli_error('Error')}: {exc}", err=True)
|
|
3551
|
+
raise typer.Exit(code=1) from exc
|
|
3552
|
+
except Exception as exc:
|
|
3553
|
+
typer.echo(f"{_cli_error('Error')}: failed to pull prompt: {exc}", err=True)
|
|
3554
|
+
raise typer.Exit(code=1) from exc
|
|
3555
|
+
|
|
3556
|
+
if result.action == "created":
|
|
3557
|
+
typer.echo(_cli_created(result.prompt_file))
|
|
3558
|
+
elif result.action == "overwritten":
|
|
3559
|
+
typer.echo(_cli_overwritten(result.prompt_file))
|
|
3560
|
+
else:
|
|
3561
|
+
typer.echo(_cli_skipped(result.prompt_file, " (unchanged)"))
|
|
3562
|
+
if result.config_updated:
|
|
3563
|
+
typer.echo(_cli_updated(result.config_path))
|
|
3564
|
+
|
|
3565
|
+
|
|
3418
3566
|
# ---------------------------------------------------------------------------
|
|
3419
3567
|
# agentops mcp serve
|
|
3420
3568
|
# ---------------------------------------------------------------------------
|
{agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/agentops_config.py
RENAMED
|
@@ -39,6 +39,14 @@ from pydantic import BaseModel, ConfigDict, Field, field_validator, model_valida
|
|
|
39
39
|
#: Wire protocol for hosted / HTTP targets.
|
|
40
40
|
Protocol = Literal["responses", "invocations", "http-json"]
|
|
41
41
|
|
|
42
|
+
#: How AgentOps reads an ``http-json`` response body.
|
|
43
|
+
#:
|
|
44
|
+
#: - ``json`` (default): parse a single JSON document. Preserves the exact
|
|
45
|
+
#: behavior of every existing ``http_json`` config.
|
|
46
|
+
#: - ``sse``: parse a Server-Sent Events body, concatenating ``data:`` lines.
|
|
47
|
+
#: - ``text``: concatenate a raw streamed text body.
|
|
48
|
+
ResponseMode = Literal["json", "sse", "text"]
|
|
49
|
+
|
|
42
50
|
#: How thresholds compare against measured metric values.
|
|
43
51
|
Criteria = Literal[">=", ">", "<=", "<", "==", "true", "false"]
|
|
44
52
|
|
|
@@ -540,6 +548,41 @@ class RedTeamRunConfig(BaseModel):
|
|
|
540
548
|
model_config = ConfigDict(extra="forbid")
|
|
541
549
|
|
|
542
550
|
|
|
551
|
+
class StreamConfig(BaseModel):
|
|
552
|
+
"""Streaming aggregation options for ``http-json`` targets.
|
|
553
|
+
|
|
554
|
+
Only meaningful when ``response_mode`` is ``"sse"`` or ``"text"``. These
|
|
555
|
+
fields control how a streamed response body is parsed and reassembled into
|
|
556
|
+
a single answer string.
|
|
557
|
+
"""
|
|
558
|
+
|
|
559
|
+
text_field: Optional[str] = Field(
|
|
560
|
+
None,
|
|
561
|
+
description=(
|
|
562
|
+
"For SSE where each 'data:' line is a JSON object, the dotted path "
|
|
563
|
+
"to the token text (e.g. 'delta.content'). Omit (None) when each "
|
|
564
|
+
"'data:' line is already raw text."
|
|
565
|
+
),
|
|
566
|
+
)
|
|
567
|
+
done_marker: Optional[str] = Field(
|
|
568
|
+
None,
|
|
569
|
+
description=(
|
|
570
|
+
"Optional sentinel (e.g. '[DONE]'); aggregation stops when a "
|
|
571
|
+
"'data:' line equals this value."
|
|
572
|
+
),
|
|
573
|
+
)
|
|
574
|
+
strip_leading_token: bool = Field(
|
|
575
|
+
False,
|
|
576
|
+
description=(
|
|
577
|
+
"Drop the first whitespace-delimited token from the aggregated "
|
|
578
|
+
"text. Use for endpoints that prefix the stream with an id (e.g. "
|
|
579
|
+
"the gpt-rag orchestrator emits '<conversation_id> ' first)."
|
|
580
|
+
),
|
|
581
|
+
)
|
|
582
|
+
|
|
583
|
+
model_config = ConfigDict(extra="forbid")
|
|
584
|
+
|
|
585
|
+
|
|
543
586
|
# ---------------------------------------------------------------------------
|
|
544
587
|
# Top-level config
|
|
545
588
|
# ---------------------------------------------------------------------------
|
|
@@ -600,7 +643,20 @@ class AgentOpsConfig(BaseModel):
|
|
|
600
643
|
|
|
601
644
|
``headers`` / ``auth_header_env``
|
|
602
645
|
Optional HTTP request configuration for ``http-json`` and
|
|
603
|
-
``invocations`` targets.
|
|
646
|
+
``invocations`` targets. ``auth_header_env`` names the environment
|
|
647
|
+
variable that holds the secret.
|
|
648
|
+
|
|
649
|
+
``response_mode`` / ``stream``
|
|
650
|
+
``http-json`` only. ``response_mode`` selects how the response body is
|
|
651
|
+
read: ``"json"`` (default, single JSON document), ``"sse"`` (Server-Sent
|
|
652
|
+
Events), or ``"text"`` (raw streamed text). The ``stream`` block tunes
|
|
653
|
+
SSE/text aggregation (``text_field``, ``done_marker``,
|
|
654
|
+
``strip_leading_token``).
|
|
655
|
+
|
|
656
|
+
``auth_header_name`` / ``auth_value_template``
|
|
657
|
+
``http-json`` only. Decouple the auth header from the default
|
|
658
|
+
``Authorization: Bearer {token}``. For a shared-secret endpoint set
|
|
659
|
+
``auth_header_name: X-API-KEY`` and ``auth_value_template: "{token}"``.
|
|
604
660
|
|
|
605
661
|
``evaluators``
|
|
606
662
|
Optional escape hatch: explicit list of evaluator names that overrides
|
|
@@ -696,6 +752,37 @@ class AgentOpsConfig(BaseModel):
|
|
|
696
752
|
tool_calls_field: Optional[str] = None
|
|
697
753
|
headers: Dict[str, str] = Field(default_factory=dict)
|
|
698
754
|
auth_header_env: Optional[str] = None
|
|
755
|
+
response_mode: ResponseMode = Field(
|
|
756
|
+
"json",
|
|
757
|
+
description=(
|
|
758
|
+
"How to read the HTTP/JSON response body. 'json' (default) parses "
|
|
759
|
+
"a single JSON document and preserves existing behavior. 'sse' "
|
|
760
|
+
"parses Server-Sent Events 'data:' lines; 'text' concatenates a "
|
|
761
|
+
"raw streamed text body. Only valid for http-json targets."
|
|
762
|
+
),
|
|
763
|
+
)
|
|
764
|
+
stream: Optional[StreamConfig] = Field(
|
|
765
|
+
None,
|
|
766
|
+
description=(
|
|
767
|
+
"Streaming aggregation options, used only when response_mode is "
|
|
768
|
+
"'sse' or 'text'."
|
|
769
|
+
),
|
|
770
|
+
)
|
|
771
|
+
auth_header_name: Optional[str] = Field(
|
|
772
|
+
None,
|
|
773
|
+
description=(
|
|
774
|
+
"HTTP header that carries the secret read from auth_header_env. "
|
|
775
|
+
"Defaults to 'Authorization' when unset."
|
|
776
|
+
),
|
|
777
|
+
)
|
|
778
|
+
auth_value_template: Optional[str] = Field(
|
|
779
|
+
None,
|
|
780
|
+
description=(
|
|
781
|
+
"Template for the auth header value; '{token}' is replaced by the "
|
|
782
|
+
"auth_header_env value. Defaults to 'Bearer {token}' when unset. "
|
|
783
|
+
"Use '{token}' alone for a raw shared-secret header like X-API-KEY."
|
|
784
|
+
),
|
|
785
|
+
)
|
|
699
786
|
|
|
700
787
|
evaluators: Optional[List[EvaluatorOverride]] = None
|
|
701
788
|
rubrics: List[RubricConfig] = Field(
|
|
@@ -850,6 +937,10 @@ class AgentOpsConfig(BaseModel):
|
|
|
850
937
|
or self.tool_calls_field
|
|
851
938
|
or self.headers
|
|
852
939
|
or self.auth_header_env
|
|
940
|
+
or self.response_mode != "json"
|
|
941
|
+
or self.stream is not None
|
|
942
|
+
or self.auth_header_name
|
|
943
|
+
or self.auth_value_template
|
|
853
944
|
):
|
|
854
945
|
# Foundry hosted (responses/invocations) defines its own wire
|
|
855
946
|
# format. HTTP-only request/response shaping is invalid there.
|
|
@@ -859,8 +950,9 @@ class AgentOpsConfig(BaseModel):
|
|
|
859
950
|
else:
|
|
860
951
|
raise ValueError(
|
|
861
952
|
"request_field / response_field / tool_calls_field / "
|
|
862
|
-
"headers / auth_header_env
|
|
863
|
-
"
|
|
953
|
+
"headers / auth_header_env / response_mode / stream / "
|
|
954
|
+
"auth_header_name / auth_value_template are only valid for "
|
|
955
|
+
"HTTP/JSON or Foundry hosted (invocations) targets"
|
|
864
956
|
)
|
|
865
957
|
return self
|
|
866
958
|
|