agentops-accelerator 0.3.23__tar.gz → 0.4.2__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.3.23 → agentops_accelerator-0.4.2}/.claude-plugin/marketplace.json +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/plugin/marketplace.json +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/AGENTS.md +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/CHANGELOG.md +69 -0
- agentops_accelerator-0.4.2/PKG-INFO +114 -0
- agentops_accelerator-0.4.2/README.md +61 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/tutorial-prompt-agent-quickstart.md +12 -5
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/README.md +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/package.json +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/plugin.json +1 -1
- {agentops_accelerator-0.3.23/src/agentops/templates → agentops_accelerator-0.4.2/plugins/agentops}/skills/agentops-config/SKILL.md +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-eval/SKILL.md +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/pyproject.toml +8 -8
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/analyzer.py +4 -0
- agentops_accelerator-0.4.2/src/agentops/agent/checks/_rbac_authorization.py +118 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/foundry_config.py +1 -1
- agentops_accelerator-0.4.2/src/agentops/agent/checks/rbac_openai_data_plane.py +235 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/foundry_control.py +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/results_history.py +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/cli/app.py +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/prompt_deploy.py +51 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/runtime.py +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/azd_eval_init.py +127 -35
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/cicd.py +62 -5
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev-azd.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prompt-agent.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa-azd.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-pr-prompt-agent.yml +5 -4
- {agentops_accelerator-0.3.23/plugins/agentops → agentops_accelerator-0.4.2/src/agentops/templates}/skills/agentops-config/SKILL.md +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-eval/SKILL.md +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-dev-azd.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-dev.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-prompt-agent.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-qa-azd.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-qa.yml +1 -1
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-pr-prompt-agent.yml +4 -3
- agentops_accelerator-0.4.2/src/agentops_accelerator.egg-info/PKG-INFO +114 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/SOURCES.txt +3 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/requires.txt +7 -8
- agentops_accelerator-0.4.2/tests/unit/test_agent_checks_rbac_openai_data_plane.py +335 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azd_eval_init.py +175 -2
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cicd.py +77 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_prompt_deploy.py +205 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/uv.lock +136 -104
- agentops_accelerator-0.3.23/PKG-INFO +0 -282
- agentops_accelerator-0.3.23/README.md +0 -229
- agentops_accelerator-0.3.23/src/agentops_accelerator.egg-info/PKG-INFO +0 -282
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.gitattributes +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/actions/azure-oidc-login/action.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/code-quality-py.instructions.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/copilot-instructions.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/dependabot.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/extensions/agentops-skills/extension.mjs +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/skills/release-management/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/_build.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/agentops-watchdog.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/ci.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/cut-release.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/e2e.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/release.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/staging.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.gitignore +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.pre-commit-config.yaml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.vscode/launch.json +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.vscode/settings.json +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.vscode/tasks.json +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/CONTRIBUTING.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/LICENSE +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/SECURITY.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/bundles.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/ci-github-actions.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/concepts.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/doctor-checks.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/doctor-explained.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/e2e-live-architecture.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/e2e-live-setup.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/foundry-evaluation-sdk-built-in-evaluators.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/how-it-works.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/media/agentops-diagrams.vsdx +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/media/foundry-control-plane.png +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/release-process.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/tutorial-end-to-end.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/tutorial-hosted-agent-quickstart.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/examples/flat-quickstart/README.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/examples/flat-quickstart/agentops.yaml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/examples/flat-quickstart/dataset.jsonl +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/icon.png +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/agent-app/Dockerfile +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/agent-app/app.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/agent-app/requirements.txt +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/bootstrap.bicep +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/bootstrap.parameters.example.json +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/perrun.bicep +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/launch.json +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/media/foundry.svg +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/media/quickstart.gif +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/.vscodeignore +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/LICENSE +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-agent/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-dataset/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-governance/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-report/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-workflow/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/create_support_agent.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/cut-release.ps1 +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/cut-release.sh +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_aggregate_summary.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_data/basic.jsonl +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_data/rag.jsonl +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_data/tools.jsonl +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_demo.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_hosted_agent.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_make_transcript.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_render_config.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/release.ps1 +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/release.sh +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/setup-e2e-new-tenant.ps1 +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/staging.ps1 +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/staging.sh +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/sync-skills.ps1 +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/sync-skills.sh +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/setup.cfg +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/__main__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/_legacy_ids.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/catalog.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/errors.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/governance.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/latency.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/observability.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/opex.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/opex_workspace.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/content_filter.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/diagnostics.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/local_auth.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/managed_identity.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/network.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/regression.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/release_readiness.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/safety.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/spec_conformance.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/cockpit.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/config.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/findings.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/history.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/knowledge/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/knowledge/waf-checklist.csv +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_base.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_bundle_rule.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_client.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_dataset_rules.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_engine.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_prompt_rules.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_spec_rules.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/production_telemetry.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/report.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/app.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/auth.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/chat.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/protocol.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/_credentials.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/azure_monitor.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/azure_resources.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/spec_detectors/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/spec_detectors/_base.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/spec_detectors/agents_md.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/spec_detectors/spec_kit.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/time_range.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/cli/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/agentops_config.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/azd_eval.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/config_loader.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/evaluators.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/governance.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/release_evidence.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/results.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/mcp/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/mcp/server.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/azd_runner.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/cloud_results.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/cloud_runner.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/comparison.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/diagnostics.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/invocations.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/official_eval.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/orchestrator.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/publisher.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/reporter.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/thresholds.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/assert_runner.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/eval_analysis.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/evidence_pack.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/initializer.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/preflight.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/redteam_runner.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/setup_wizard.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/skills.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/trace_promotion.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/workflow_analysis.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/.gitignore +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agent-server/Dockerfile +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agent-server/README.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agent-server/main.bicep +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agent.yaml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agentops.yaml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/foundry.svg +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/icon.png +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod-azd.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-pr.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-watchdog.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/project.gitignore +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/sample-traces.jsonl +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-agent/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-dataset/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-governance/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-report/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-workflow/SKILL.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/smoke.jsonl +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/waf-checklist.README.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/waf-checklist.csv +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-prod-azd.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-prod.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-pr.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-watchdog.yml +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/__init__.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/azd_env.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/azure_endpoints.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/colors.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/dotenv_loader.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/foundry_discovery.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/logging.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/telemetry.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/yaml.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/dependency_links.txt +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/entry_points.txt +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/top_level.txt +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/TESTING.md +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/fixtures/fake_adapter.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/fixtures/fake_eval_runner.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/integration/.gitkeep +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/integration/test_cli_flat_schema.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/integration/test_pipeline_smoke.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/.gitkeep +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_analyzer.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_categories.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_errors.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_foundry_config.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_observability.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_opex.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_opex_workspace.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_regression.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_safety.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_spec_conformance.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_cli.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_config.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_findings.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_history.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_opex_workspace_check.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_posture_rules.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_results_history.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_server.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agentops_config.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_assert_and_redteam_runners.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azd_env.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azd_eval.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azd_runner.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azure_endpoints.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azure_resources_discovery.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cli_cockpit_connection_summary.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cli_cockpit_port_conflict.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cli_commands.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cli_explain.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cloud_results.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cloud_runner.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cockpit.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_diagnostics.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_doctor_catalog.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_doctor_cli_explain.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_dotenv_loader.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_e2e_render.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_eval_analysis.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_eval_run_grader_errors.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_evaluators.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_foundry_discovery.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_governance.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_init_command.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_initializer.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_invocations.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_knowledge_loader.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_llm_assist.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_llm_assist_spec_rules.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_mcp_server.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_official_eval.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_pipeline_publisher.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_pipeline_reporter.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_preflight.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_production_telemetry.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_release_evidence.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_runtime_conversation.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_runtime_model_config.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_setup_wizard.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_shared_credentials.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_skills.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_skills_sync.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_telemetry.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_time_range.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_trace_promotion.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_workflow_analysis.py +0 -0
- {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tombstones/vscode/CDN_DEPRECATION_REQUEST.md +0 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"name": "agentops-accelerator",
|
|
14
14
|
"source": "../../plugins/agentops",
|
|
15
15
|
"description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Toolkit and Microsoft Foundry agents.",
|
|
16
|
-
"version": "0.
|
|
16
|
+
"version": "0.4.1",
|
|
17
17
|
"keywords": [
|
|
18
18
|
"agentops",
|
|
19
19
|
"evaluation",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"name": "agentops-accelerator",
|
|
14
14
|
"source": "../../plugins/agentops",
|
|
15
15
|
"description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Toolkit and Microsoft Foundry agents.",
|
|
16
|
-
"version": "0.
|
|
16
|
+
"version": "0.4.1",
|
|
17
17
|
"keywords": [
|
|
18
18
|
"agentops",
|
|
19
19
|
"evaluation",
|
|
@@ -472,7 +472,7 @@ Authentication rule (Windows-friendly):
|
|
|
472
472
|
|
|
473
473
|
Recommended default behavior:
|
|
474
474
|
- Keep Foundry cloud mode as the default for `name:version` agents
|
|
475
|
-
- Install
|
|
475
|
+
- Install AgentOps normally; Foundry runtime dependencies are part of the default package
|
|
476
476
|
- Keep Azure SDK imports inside functions (lazy) in `pipeline/` and `agent/`
|
|
477
477
|
- Do not hardcode `api_version` in `get_openai_client()` — the SDK picks it
|
|
478
478
|
|
|
@@ -5,6 +5,75 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.4.2] - 2026-06-17
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **`agentops eval init` now works with both old and new `azure.ai.agents` azd
|
|
12
|
+
extensions.** Version 0.1.40 of the extension renamed the eval subcommand from
|
|
13
|
+
`azd ai agent eval init` to `azd ai agent eval generate`, which made
|
|
14
|
+
`agentops eval init` hard-fail with `Command "init" is deprecated, use 'azd ai
|
|
15
|
+
agent eval generate' instead`. AgentOps now invokes `generate` first and
|
|
16
|
+
transparently falls back to the legacy `init` subcommand when an older
|
|
17
|
+
extension does not recognise `generate`. The fallback only triggers on
|
|
18
|
+
subcommand-name/deprecation errors; genuine failures (authentication, project
|
|
19
|
+
endpoint, timeouts) are still surfaced immediately and unchanged. All
|
|
20
|
+
previously passed flags (`--project-endpoint`, `--agent`,
|
|
21
|
+
`--gen-instruction-file`, `--eval-model`, `--dataset`, `--evaluator`) and the
|
|
22
|
+
recipe discovery/persistence behaviour are preserved.
|
|
23
|
+
|
|
24
|
+
## [0.4.1] - 2026-06-15
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- **PR-stage Foundry prompt-agent versions are now tagged at the source.** When
|
|
28
|
+
`agentops.pipeline.prompt_deploy stage` runs in a PR context (GitHub Actions
|
|
29
|
+
`pull_request` event or Azure DevOps `BUILD_REASON=PullRequest`), the version
|
|
30
|
+
it creates in the dev Foundry project carries metadata
|
|
31
|
+
`agentops:candidate=true`, `agentops:pr=<number>`, and
|
|
32
|
+
`agentops:created_at=<ISO timestamp>`. Portal viewers can filter the
|
|
33
|
+
Versions tab on `agentops:candidate` to separate abandoned PR candidates
|
|
34
|
+
from deployed-of-record versions, and downstream consumers that resolve
|
|
35
|
+
"latest" can refuse to pick up candidates. Deployed-of-record versions
|
|
36
|
+
(push to `main`/`develop`/`release/**` or `workflow_dispatch`) are not
|
|
37
|
+
tagged, so absence of `agentops:candidate` is the deployed-of-record
|
|
38
|
+
signal. The PR/deploy workflow templates and the prompt-agent quickstart
|
|
39
|
+
tutorial are updated to describe the new contract.
|
|
40
|
+
([#214](https://github.com/Azure/agentops/issues/214))
|
|
41
|
+
|
|
42
|
+
## [0.4.0] - 2026-06-14
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
- **`agentops doctor` now detects missing OpenAI data-plane RBAC on the Foundry
|
|
46
|
+
resource.** A new `security.missing_openai_data_plane_rbac` check resolves the
|
|
47
|
+
signed-in principal (via the `oid` claim of the access token used by
|
|
48
|
+
`DefaultAzureCredential`) and lists role assignments at the Foundry account
|
|
49
|
+
scope using `azure-mgmt-authorization`. When none of *Cognitive Services
|
|
50
|
+
OpenAI User*, *Cognitive Services OpenAI Contributor* or *Cognitive Services
|
|
51
|
+
Contributor* is present (directly or inherited), Doctor surfaces an
|
|
52
|
+
actionable WARNING that includes the exact `az role assignment create`
|
|
53
|
+
command for *Cognitive Services OpenAI User* scoped to the Foundry account.
|
|
54
|
+
The check is read-only and skips silently when the SDK, principal or scope
|
|
55
|
+
cannot be resolved. ([#228](https://github.com/Azure/agentops/issues/228))
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
- **`agentops-pr` workflow templates now auto-detect a committed baseline.**
|
|
59
|
+
Both the GitHub Actions (`.github/workflows/agentops-pr.yml`) and Azure
|
|
60
|
+
DevOps (`.azuredevops/pipelines/agentops-pr.yml`) PR templates emitted by
|
|
61
|
+
`agentops workflow generate` wrap `agentops eval run` with a small bash
|
|
62
|
+
guard. When `.agentops/baseline/results.json` exists in the consumer
|
|
63
|
+
repo, the step automatically passes `--baseline .agentops/baseline/results.json`;
|
|
64
|
+
without the file the behaviour is unchanged. Aligns shipped templates
|
|
65
|
+
with the `tutorial-baseline-comparison.md` "drop a file in your repo"
|
|
66
|
+
promise. Deploy templates (`dev`/`qa`/`prod`) are untouched.
|
|
67
|
+
([#155](https://github.com/Azure/agentops/issues/155))
|
|
68
|
+
|
|
69
|
+
### Fixed
|
|
70
|
+
- **`agentops skills install --platform` help text now lists `cursor`.** The
|
|
71
|
+
CLI option help was advertising only `copilot` and `claude` even though the
|
|
72
|
+
`cursor` platform is fully implemented (registers rules in
|
|
73
|
+
`.cursor/rules/agentops.mdc`). Updated to `Target platform(s): copilot,
|
|
74
|
+
claude, cursor.` so users discover the supported value from `--help`.
|
|
75
|
+
([#157](https://github.com/Azure/agentops/issues/157))
|
|
76
|
+
|
|
8
77
|
## [0.3.23] - 2026-06-12
|
|
9
78
|
|
|
10
79
|
### Fixed
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: agentops-accelerator
|
|
3
|
+
Version: 0.4.2
|
|
4
|
+
Summary: Release readiness gates and evidence for Microsoft Foundry agents
|
|
5
|
+
License: MIT License
|
|
6
|
+
|
|
7
|
+
Copyright (c) Microsoft Corporation.
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in all
|
|
17
|
+
copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
+
SOFTWARE.
|
|
26
|
+
|
|
27
|
+
Requires-Python: >=3.11
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
Requires-Dist: typer<1.0,>=0.12
|
|
31
|
+
Requires-Dist: pydantic<3,>=2
|
|
32
|
+
Requires-Dist: ruamel.yaml<1.0,>=0.18
|
|
33
|
+
Requires-Dist: azure-ai-projects<3.0,>=2.0.1
|
|
34
|
+
Requires-Dist: azure-ai-evaluation<2.0,>=1.0
|
|
35
|
+
Requires-Dist: azure-identity<2.0,>=1.17
|
|
36
|
+
Requires-Dist: azure-monitor-opentelemetry<2.0,>=1.6
|
|
37
|
+
Requires-Dist: pandas<4.0,>=2.0
|
|
38
|
+
Provides-Extra: mcp
|
|
39
|
+
Requires-Dist: mcp<2,>=1.0; extra == "mcp"
|
|
40
|
+
Provides-Extra: agent
|
|
41
|
+
Requires-Dist: fastapi<1.0,>=0.110; extra == "agent"
|
|
42
|
+
Requires-Dist: uvicorn[standard]<1.0,>=0.30; extra == "agent"
|
|
43
|
+
Requires-Dist: httpx<1.0,>=0.27; extra == "agent"
|
|
44
|
+
Requires-Dist: cryptography>=42; extra == "agent"
|
|
45
|
+
Requires-Dist: markdown<4.0,>=3.6; extra == "agent"
|
|
46
|
+
Requires-Dist: azure-monitor-query<3.0,>=1.3; extra == "agent"
|
|
47
|
+
Requires-Dist: azure-monitor-opentelemetry<2.0,>=1.6; extra == "agent"
|
|
48
|
+
Requires-Dist: azure-identity<2.0,>=1.17; extra == "agent"
|
|
49
|
+
Requires-Dist: azure-mgmt-cognitiveservices<15.0,>=13.5; extra == "agent"
|
|
50
|
+
Requires-Dist: azure-mgmt-monitor<7.0,>=6.0; extra == "agent"
|
|
51
|
+
Requires-Dist: azure-mgmt-authorization<5.0,>=4.0; extra == "agent"
|
|
52
|
+
Dynamic: license-file
|
|
53
|
+
|
|
54
|
+
<h1 align="center">AgentOps Accelerator</h1>
|
|
55
|
+
|
|
56
|
+
<p align="center">
|
|
57
|
+
<b>Evaluate. Ship. Observe. Own.</b>
|
|
58
|
+
<br/>
|
|
59
|
+
Continuous evaluation, safety testing, observability, and release readiness for Microsoft Foundry agents.
|
|
60
|
+
</p>
|
|
61
|
+
|
|
62
|
+
<p align="center">
|
|
63
|
+
<a href="https://aka.ms/agentops-accelerator"><b>Documentation</b></a> |
|
|
64
|
+
<a href="https://pypi.org/project/agentops-accelerator/">PyPI</a> |
|
|
65
|
+
<a href="https://marketplace.visualstudio.com/items?itemName=AgentOpsAccelerator.agentops-accelerator">VS Code Extension</a> |
|
|
66
|
+
<a href="https://github.com/Azure/agentops/releases/latest">Latest release</a>
|
|
67
|
+
</p>
|
|
68
|
+
|
|
69
|
+
<p align="center">
|
|
70
|
+
<a href="https://pypi.org/project/agentops-accelerator/"><img alt="PyPI" src="https://img.shields.io/pypi/v/agentops-accelerator.svg?label=PyPI&color=blue"/></a>
|
|
71
|
+
<a href="https://marketplace.visualstudio.com/items?itemName=AgentOpsAccelerator.agentops-accelerator"><img alt="VS Code Extension" src="https://img.shields.io/badge/VS%20Code-Extension-007ACC.svg?logo=visualstudiocode"/></a>
|
|
72
|
+
<a href="https://github.com/Azure/agentops/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Azure/agentops/actions/workflows/ci.yml/badge.svg?branch=develop"/></a>
|
|
73
|
+
<a href="https://github.com/Azure/agentops/actions/workflows/release.yml"><img alt="Release" src="https://github.com/Azure/agentops/actions/workflows/release.yml/badge.svg"/></a>
|
|
74
|
+
<a href="https://github.com/Azure/agentops/blob/main/LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-green.svg"/></a>
|
|
75
|
+
</p>
|
|
76
|
+
|
|
77
|
+
AgentOps Accelerator helps Microsoft Foundry agent teams evaluate quality, prepare releases, monitor behavior, and stay accountable after launch. It gives you a practical starting point for agent operations, with Foundry integration as the default path and deeper setup guidance in the full docs.
|
|
78
|
+
|
|
79
|
+
## Get started
|
|
80
|
+
|
|
81
|
+
```powershell
|
|
82
|
+
python -m pip install agentops-accelerator
|
|
83
|
+
agentops init
|
|
84
|
+
agentops eval analyze
|
|
85
|
+
agentops eval run
|
|
86
|
+
agentops doctor --evidence-pack
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## What it helps you do
|
|
90
|
+
|
|
91
|
+
Use AgentOps Accelerator when you need to:
|
|
92
|
+
|
|
93
|
+
- Evaluate an agent before release
|
|
94
|
+
- Compare changes across versions
|
|
95
|
+
- Capture release evidence
|
|
96
|
+
- Monitor agent quality and regressions
|
|
97
|
+
- Give teams a repeatable way to own agent behavior in production
|
|
98
|
+
|
|
99
|
+
The accelerator keeps the local workflow simple, then points you to the full
|
|
100
|
+
docs when you are ready to configure pipelines, dashboards, and release
|
|
101
|
+
practices.
|
|
102
|
+
|
|
103
|
+
## Learn more
|
|
104
|
+
|
|
105
|
+
For setup guides, tutorials, architecture, CI/CD guidance, Doctor checks, and
|
|
106
|
+
evaluator reference, see:
|
|
107
|
+
|
|
108
|
+
<p align="center">
|
|
109
|
+
<a href="https://aka.ms/agentops-accelerator"><b>https://aka.ms/agentops-accelerator</b></a>
|
|
110
|
+
</p>
|
|
111
|
+
|
|
112
|
+
## Contributing
|
|
113
|
+
|
|
114
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development, testing, and contribution guidance.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<h1 align="center">AgentOps Accelerator</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<b>Evaluate. Ship. Observe. Own.</b>
|
|
5
|
+
<br/>
|
|
6
|
+
Continuous evaluation, safety testing, observability, and release readiness for Microsoft Foundry agents.
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://aka.ms/agentops-accelerator"><b>Documentation</b></a> |
|
|
11
|
+
<a href="https://pypi.org/project/agentops-accelerator/">PyPI</a> |
|
|
12
|
+
<a href="https://marketplace.visualstudio.com/items?itemName=AgentOpsAccelerator.agentops-accelerator">VS Code Extension</a> |
|
|
13
|
+
<a href="https://github.com/Azure/agentops/releases/latest">Latest release</a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="https://pypi.org/project/agentops-accelerator/"><img alt="PyPI" src="https://img.shields.io/pypi/v/agentops-accelerator.svg?label=PyPI&color=blue"/></a>
|
|
18
|
+
<a href="https://marketplace.visualstudio.com/items?itemName=AgentOpsAccelerator.agentops-accelerator"><img alt="VS Code Extension" src="https://img.shields.io/badge/VS%20Code-Extension-007ACC.svg?logo=visualstudiocode"/></a>
|
|
19
|
+
<a href="https://github.com/Azure/agentops/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Azure/agentops/actions/workflows/ci.yml/badge.svg?branch=develop"/></a>
|
|
20
|
+
<a href="https://github.com/Azure/agentops/actions/workflows/release.yml"><img alt="Release" src="https://github.com/Azure/agentops/actions/workflows/release.yml/badge.svg"/></a>
|
|
21
|
+
<a href="https://github.com/Azure/agentops/blob/main/LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-green.svg"/></a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
AgentOps Accelerator helps Microsoft Foundry agent teams evaluate quality, prepare releases, monitor behavior, and stay accountable after launch. It gives you a practical starting point for agent operations, with Foundry integration as the default path and deeper setup guidance in the full docs.
|
|
25
|
+
|
|
26
|
+
## Get started
|
|
27
|
+
|
|
28
|
+
```powershell
|
|
29
|
+
python -m pip install agentops-accelerator
|
|
30
|
+
agentops init
|
|
31
|
+
agentops eval analyze
|
|
32
|
+
agentops eval run
|
|
33
|
+
agentops doctor --evidence-pack
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## What it helps you do
|
|
37
|
+
|
|
38
|
+
Use AgentOps Accelerator when you need to:
|
|
39
|
+
|
|
40
|
+
- Evaluate an agent before release
|
|
41
|
+
- Compare changes across versions
|
|
42
|
+
- Capture release evidence
|
|
43
|
+
- Monitor agent quality and regressions
|
|
44
|
+
- Give teams a repeatable way to own agent behavior in production
|
|
45
|
+
|
|
46
|
+
The accelerator keeps the local workflow simple, then points you to the full
|
|
47
|
+
docs when you are ready to configure pipelines, dashboards, and release
|
|
48
|
+
practices.
|
|
49
|
+
|
|
50
|
+
## Learn more
|
|
51
|
+
|
|
52
|
+
For setup guides, tutorials, architecture, CI/CD guidance, Doctor checks, and
|
|
53
|
+
evaluator reference, see:
|
|
54
|
+
|
|
55
|
+
<p align="center">
|
|
56
|
+
<a href="https://aka.ms/agentops-accelerator"><b>https://aka.ms/agentops-accelerator</b></a>
|
|
57
|
+
</p>
|
|
58
|
+
|
|
59
|
+
## Contributing
|
|
60
|
+
|
|
61
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development, testing, and contribution guidance.
|
{agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/tutorial-prompt-agent-quickstart.md
RENAMED
|
@@ -1370,11 +1370,18 @@ The PR workflow now has two jobs:
|
|
|
1370
1370
|
|
|
1371
1371
|
> **Why does the PR workflow stage in dev, not sandbox?** The PR gate
|
|
1372
1372
|
> must evaluate the same target the deploy workflow will use. Sandbox
|
|
1373
|
-
> is the author's playground and never receives CI traffic.
|
|
1374
|
-
>
|
|
1375
|
-
>
|
|
1376
|
-
>
|
|
1377
|
-
>
|
|
1373
|
+
> is the author's playground and never receives CI traffic.
|
|
1374
|
+
>
|
|
1375
|
+
> Candidate versions created by PR runs are tagged in Foundry with
|
|
1376
|
+
> `agentops:candidate=true` plus `agentops:pr=<number>` and
|
|
1377
|
+
> `agentops:created_at=<ISO timestamp>`. Portal viewers can filter the
|
|
1378
|
+
> Versions tab on `agentops:candidate` to separate "abandoned PR
|
|
1379
|
+
> candidates" from "deployed versions of record". Downstream consumers
|
|
1380
|
+
> that resolve `<agent>` to "latest" should skip versions carrying
|
|
1381
|
+
> `agentops:candidate=true`; the supported pinning mechanism remains
|
|
1382
|
+
> `foundry-agent.json`, which always points at the deployed-of-record
|
|
1383
|
+
> version. AgentOps uses prompt SHAs and git SHAs as the durable
|
|
1384
|
+
> identity, not old candidate version numbers.
|
|
1378
1385
|
|
|
1379
1386
|
The dev deploy workflow stages a candidate (same logic), evaluates it,
|
|
1380
1387
|
summarizes the deployment via `prompt_deploy summarize`, and uploads
|
|
@@ -46,7 +46,7 @@ skills from the extension/plugin.
|
|
|
46
46
|
Run this from the repository where you want skills checked in:
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
python -m pip install "agentops-accelerator
|
|
49
|
+
python -m pip install "agentops-accelerator @ git+https://github.com/Azure/agentops.git@main"
|
|
50
50
|
agentops skills install --platform copilot --force
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "agentops-accelerator",
|
|
3
3
|
"displayName": "AgentOps Accelerator — Skills for GitHub Copilot",
|
|
4
4
|
"description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Accelerator and Microsoft Foundry agents.",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.4.1",
|
|
6
6
|
"publisher": "AgentOpsAccelerator",
|
|
7
7
|
"icon": "icon.png",
|
|
8
8
|
"license": "MIT",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentops-accelerator",
|
|
3
3
|
"description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Accelerator and Microsoft Foundry agents.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.4.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "AgentOps Accelerator",
|
|
7
7
|
"url": "https://github.com/Azure/agentops"
|
|
@@ -17,7 +17,7 @@ then return here once there is a `name:version` or URL.
|
|
|
17
17
|
|
|
18
18
|
## Step 0 - Prerequisites
|
|
19
19
|
|
|
20
|
-
1. `pip install "agentops-accelerator
|
|
20
|
+
1. `pip install "agentops-accelerator @ git+https://github.com/Azure/agentops.git@main"` if `agentops` is missing.
|
|
21
21
|
2. Run `agentops eval analyze` first. If it reports missing or ambiguous
|
|
22
22
|
target/dataset/scenario signals, use this skill to adapt the config.
|
|
23
23
|
3. If `agentops.yaml` does not exist, run `agentops init` first. The init
|
|
@@ -15,7 +15,7 @@ with a `name:version` or URL.
|
|
|
15
15
|
|
|
16
16
|
## Step 0 - Setup
|
|
17
17
|
|
|
18
|
-
1. Install if missing: `pip install "agentops-accelerator
|
|
18
|
+
1. Install if missing: `pip install "agentops-accelerator @ git+https://github.com/Azure/agentops.git@main"`.
|
|
19
19
|
2. If `agentops.yaml` does not exist at the project root, run `agentops init`.
|
|
20
20
|
The init wizard prompts (azd-style) for the Foundry project endpoint,
|
|
21
21
|
agent reference, and dataset path, persists each answer to
|
|
@@ -13,28 +13,27 @@ dependencies = [
|
|
|
13
13
|
"pydantic>=2,<3",
|
|
14
14
|
"ruamel.yaml>=0.18,<1.0",
|
|
15
15
|
"azure-ai-projects>=2.0.1,<3.0",
|
|
16
|
+
"azure-ai-evaluation>=1.0,<2.0",
|
|
17
|
+
"azure-identity>=1.17,<2.0",
|
|
18
|
+
"azure-monitor-opentelemetry>=1.6,<2.0",
|
|
19
|
+
"pandas>=2.0,<4.0",
|
|
16
20
|
]
|
|
17
21
|
license = { file = "LICENSE" }
|
|
18
22
|
|
|
19
23
|
[project.optional-dependencies]
|
|
20
24
|
mcp = ["mcp>=1.0,<2"]
|
|
21
|
-
foundry = [
|
|
22
|
-
"azure-ai-evaluation>=1.0,<2.0",
|
|
23
|
-
"azure-identity>=1.17,<2.0",
|
|
24
|
-
"azure-monitor-opentelemetry>=1.6,<2.0",
|
|
25
|
-
"pandas>=2.0,<3.0",
|
|
26
|
-
]
|
|
27
25
|
agent = [
|
|
28
26
|
"fastapi>=0.110,<1.0",
|
|
29
27
|
"uvicorn[standard]>=0.30,<1.0",
|
|
30
28
|
"httpx>=0.27,<1.0",
|
|
31
29
|
"cryptography>=42",
|
|
32
30
|
"markdown>=3.6,<4.0",
|
|
33
|
-
"azure-monitor-query>=1.3,<
|
|
31
|
+
"azure-monitor-query>=1.3,<3.0",
|
|
34
32
|
"azure-monitor-opentelemetry>=1.6,<2.0",
|
|
35
33
|
"azure-identity>=1.17,<2.0",
|
|
36
|
-
"azure-mgmt-cognitiveservices>=13.5,<
|
|
34
|
+
"azure-mgmt-cognitiveservices>=13.5,<15.0",
|
|
37
35
|
"azure-mgmt-monitor>=6.0,<7.0",
|
|
36
|
+
"azure-mgmt-authorization>=4.0,<5.0",
|
|
38
37
|
]
|
|
39
38
|
|
|
40
39
|
[project.scripts]
|
|
@@ -67,6 +66,7 @@ where = ["src"]
|
|
|
67
66
|
[dependency-groups]
|
|
68
67
|
dev = [
|
|
69
68
|
"azure-ai-evaluation>=1.0,<2.0",
|
|
69
|
+
"azure-mgmt-authorization>=4.0,<5.0",
|
|
70
70
|
"mypy>=1.19.1",
|
|
71
71
|
"pre-commit>=4.0",
|
|
72
72
|
"pytest>=8.0",
|
|
@@ -16,6 +16,9 @@ from agentops.agent.checks.observability import run_observability_check
|
|
|
16
16
|
from agentops.agent.checks.opex_workspace import run_opex_workspace_check
|
|
17
17
|
from agentops.agent.checks.opex import run_opex_check
|
|
18
18
|
from agentops.agent.checks.posture import run_posture_check
|
|
19
|
+
from agentops.agent.checks.rbac_openai_data_plane import (
|
|
20
|
+
run_rbac_openai_data_plane_check,
|
|
21
|
+
)
|
|
19
22
|
from agentops.agent.checks.regression import run_regression_check
|
|
20
23
|
from agentops.agent.checks.release_readiness import run_release_readiness_check
|
|
21
24
|
from agentops.agent.checks.safety import run_safety_check
|
|
@@ -145,6 +148,7 @@ def analyze(
|
|
|
145
148
|
findings.extend(run_errors_check(monitor, foundry, config.checks.errors))
|
|
146
149
|
findings.extend(run_safety_check(history, config.checks.safety, monitor, foundry))
|
|
147
150
|
findings.extend(run_posture_check(resources, posture_config))
|
|
151
|
+
findings.extend(run_rbac_openai_data_plane_check(resources))
|
|
148
152
|
findings.extend(run_opex_workspace_check(workspace))
|
|
149
153
|
findings.extend(run_governance_check(workspace))
|
|
150
154
|
findings.extend(run_observability_check(workspace))
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"""Lazy Azure SDK glue for the ``rbac_openai_data_plane`` Doctor check.
|
|
2
|
+
|
|
3
|
+
Kept in a private module so the parent check can attempt the lazy
|
|
4
|
+
import in a single place and stay silent when ``azure-identity`` /
|
|
5
|
+
``azure-mgmt-authorization`` are not installed. All errors that should
|
|
6
|
+
make the check skip are normalised into :class:`AuthorizationCheckError`.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import logging
|
|
12
|
+
from typing import List
|
|
13
|
+
|
|
14
|
+
log = logging.getLogger(__name__)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class AuthorizationCheckError(RuntimeError):
|
|
18
|
+
"""Raised when the RBAC check cannot run for an environmental reason."""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def resolve_signed_in_principal_object_id() -> str:
|
|
22
|
+
"""Return the ``oid`` claim of the shared Azure credential's access token.
|
|
23
|
+
|
|
24
|
+
Raises :class:`AuthorizationCheckError` when the credential chain cannot
|
|
25
|
+
return a token, or when the token does not expose an ``oid`` claim.
|
|
26
|
+
"""
|
|
27
|
+
try:
|
|
28
|
+
from agentops.agent.sources._credentials import (
|
|
29
|
+
format_source_error,
|
|
30
|
+
get_shared_credential,
|
|
31
|
+
)
|
|
32
|
+
except ImportError as exc: # pragma: no cover - shipped together
|
|
33
|
+
raise AuthorizationCheckError(
|
|
34
|
+
f"shared credential factory unavailable: {exc}"
|
|
35
|
+
) from exc
|
|
36
|
+
|
|
37
|
+
try:
|
|
38
|
+
credential = get_shared_credential(process_timeout=30)
|
|
39
|
+
token = credential.get_token("https://management.azure.com/.default")
|
|
40
|
+
except Exception as exc: # noqa: BLE001 - normalised to skip-error
|
|
41
|
+
raise AuthorizationCheckError(format_source_error(exc)) from exc
|
|
42
|
+
|
|
43
|
+
from agentops.agent.checks.rbac_openai_data_plane import decode_oid_from_jwt
|
|
44
|
+
|
|
45
|
+
oid = decode_oid_from_jwt(getattr(token, "token", "") or "")
|
|
46
|
+
if not oid:
|
|
47
|
+
raise AuthorizationCheckError(
|
|
48
|
+
"access token did not include an 'oid' claim; cannot identify "
|
|
49
|
+
"the signed-in principal"
|
|
50
|
+
)
|
|
51
|
+
return oid
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def list_principal_role_definition_ids(
|
|
55
|
+
*,
|
|
56
|
+
subscription_id: str,
|
|
57
|
+
scope: str,
|
|
58
|
+
principal_object_id: str,
|
|
59
|
+
) -> List[str]:
|
|
60
|
+
"""List role definition GUIDs assigned to the principal at/above scope.
|
|
61
|
+
|
|
62
|
+
Uses ``RoleAssignmentsOperations.list_for_scope`` with the
|
|
63
|
+
``atScopeAndAbove() and assignedTo('<oid>')`` filter so management-plane
|
|
64
|
+
inheritance (subscription, resource group, account) is honoured.
|
|
65
|
+
"""
|
|
66
|
+
try:
|
|
67
|
+
from azure.mgmt.authorization import AuthorizationManagementClient
|
|
68
|
+
except ImportError as exc:
|
|
69
|
+
raise AuthorizationCheckError(
|
|
70
|
+
"azure-mgmt-authorization not installed; install "
|
|
71
|
+
"`agentops-accelerator[agent]` (or add the package directly) to "
|
|
72
|
+
"enable the OpenAI data-plane RBAC check"
|
|
73
|
+
) from exc
|
|
74
|
+
|
|
75
|
+
try:
|
|
76
|
+
from agentops.agent.sources._credentials import (
|
|
77
|
+
format_source_error,
|
|
78
|
+
get_shared_credential,
|
|
79
|
+
)
|
|
80
|
+
except ImportError as exc: # pragma: no cover - shipped together
|
|
81
|
+
raise AuthorizationCheckError(
|
|
82
|
+
f"shared credential factory unavailable: {exc}"
|
|
83
|
+
) from exc
|
|
84
|
+
|
|
85
|
+
try:
|
|
86
|
+
credential = get_shared_credential(process_timeout=30)
|
|
87
|
+
client = AuthorizationManagementClient(
|
|
88
|
+
credential=credential,
|
|
89
|
+
subscription_id=subscription_id,
|
|
90
|
+
)
|
|
91
|
+
except Exception as exc: # noqa: BLE001
|
|
92
|
+
raise AuthorizationCheckError(format_source_error(exc)) from exc
|
|
93
|
+
|
|
94
|
+
try:
|
|
95
|
+
assignments = list(
|
|
96
|
+
client.role_assignments.list_for_scope(
|
|
97
|
+
scope=scope,
|
|
98
|
+
filter=(
|
|
99
|
+
f"atScopeAndAbove() and assignedTo('{principal_object_id}')"
|
|
100
|
+
),
|
|
101
|
+
)
|
|
102
|
+
)
|
|
103
|
+
except Exception as exc: # noqa: BLE001
|
|
104
|
+
raise AuthorizationCheckError(format_source_error(exc)) from exc
|
|
105
|
+
|
|
106
|
+
role_definition_ids: List[str] = []
|
|
107
|
+
for assignment in assignments:
|
|
108
|
+
rd_id = (
|
|
109
|
+
getattr(assignment, "role_definition_id", None)
|
|
110
|
+
or getattr(getattr(assignment, "properties", None), "role_definition_id", None)
|
|
111
|
+
)
|
|
112
|
+
if not rd_id:
|
|
113
|
+
continue
|
|
114
|
+
# role_definition_id is a full ARM id ending in `/<guid>`.
|
|
115
|
+
guid = rd_id.rstrip("/").rsplit("/", 1)[-1]
|
|
116
|
+
if guid:
|
|
117
|
+
role_definition_ids.append(guid)
|
|
118
|
+
return role_definition_ids
|
|
@@ -60,7 +60,7 @@ def _no_foundry_control_finding(diag: dict) -> Finding:
|
|
|
60
60
|
recommendation=(
|
|
61
61
|
"Set `sources.foundry_control.project_endpoint` (or the "
|
|
62
62
|
"`AZURE_AI_FOUNDRY_PROJECT_ENDPOINT` env var) in "
|
|
63
|
-
"`.agentops/agent.yaml`, install
|
|
63
|
+
"`.agentops/agent.yaml`, install AgentOps, "
|
|
64
64
|
"and grant the running identity at least `Reader` on the "
|
|
65
65
|
"Foundry project. If this project does not use Foundry, "
|
|
66
66
|
"set `sources.foundry_control.enabled: false` to opt out "
|