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.
Files changed (323) hide show
  1. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.claude-plugin/marketplace.json +1 -1
  2. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/plugin/marketplace.json +1 -1
  3. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/AGENTS.md +1 -1
  4. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/CHANGELOG.md +69 -0
  5. agentops_accelerator-0.4.2/PKG-INFO +114 -0
  6. agentops_accelerator-0.4.2/README.md +61 -0
  7. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/tutorial-prompt-agent-quickstart.md +12 -5
  8. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/README.md +1 -1
  9. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/package.json +1 -1
  10. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/plugin.json +1 -1
  11. {agentops_accelerator-0.3.23/src/agentops/templates → agentops_accelerator-0.4.2/plugins/agentops}/skills/agentops-config/SKILL.md +1 -1
  12. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-eval/SKILL.md +1 -1
  13. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/pyproject.toml +8 -8
  14. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/analyzer.py +4 -0
  15. agentops_accelerator-0.4.2/src/agentops/agent/checks/_rbac_authorization.py +118 -0
  16. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/foundry_config.py +1 -1
  17. agentops_accelerator-0.4.2/src/agentops/agent/checks/rbac_openai_data_plane.py +235 -0
  18. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/foundry_control.py +1 -1
  19. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/results_history.py +1 -1
  20. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/cli/app.py +1 -1
  21. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/prompt_deploy.py +51 -1
  22. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/runtime.py +1 -1
  23. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/azd_eval_init.py +127 -35
  24. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/cicd.py +62 -5
  25. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev-azd.yml +1 -1
  26. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev.yml +1 -1
  27. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prompt-agent.yml +1 -1
  28. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa-azd.yml +1 -1
  29. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa.yml +1 -1
  30. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-pr-prompt-agent.yml +5 -4
  31. {agentops_accelerator-0.3.23/plugins/agentops → agentops_accelerator-0.4.2/src/agentops/templates}/skills/agentops-config/SKILL.md +1 -1
  32. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-eval/SKILL.md +1 -1
  33. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-dev-azd.yml +1 -1
  34. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-dev.yml +1 -1
  35. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-prompt-agent.yml +1 -1
  36. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-qa-azd.yml +1 -1
  37. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-qa.yml +1 -1
  38. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-pr-prompt-agent.yml +4 -3
  39. agentops_accelerator-0.4.2/src/agentops_accelerator.egg-info/PKG-INFO +114 -0
  40. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/SOURCES.txt +3 -0
  41. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/requires.txt +7 -8
  42. agentops_accelerator-0.4.2/tests/unit/test_agent_checks_rbac_openai_data_plane.py +335 -0
  43. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azd_eval_init.py +175 -2
  44. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cicd.py +77 -0
  45. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_prompt_deploy.py +205 -0
  46. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/uv.lock +136 -104
  47. agentops_accelerator-0.3.23/PKG-INFO +0 -282
  48. agentops_accelerator-0.3.23/README.md +0 -229
  49. agentops_accelerator-0.3.23/src/agentops_accelerator.egg-info/PKG-INFO +0 -282
  50. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.gitattributes +0 -0
  51. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/actions/azure-oidc-login/action.yml +0 -0
  52. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/code-quality-py.instructions.md +0 -0
  53. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/copilot-instructions.md +0 -0
  54. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/dependabot.yml +0 -0
  55. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/extensions/agentops-skills/extension.mjs +0 -0
  56. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/skills/release-management/SKILL.md +0 -0
  57. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/_build.yml +0 -0
  58. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/agentops-watchdog.yml +0 -0
  59. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/ci.yml +0 -0
  60. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/cut-release.yml +0 -0
  61. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/e2e.yml +0 -0
  62. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/release.yml +0 -0
  63. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.github/workflows/staging.yml +0 -0
  64. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.gitignore +0 -0
  65. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.pre-commit-config.yaml +0 -0
  66. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.vscode/launch.json +0 -0
  67. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.vscode/settings.json +0 -0
  68. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/.vscode/tasks.json +0 -0
  69. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/CONTRIBUTING.md +0 -0
  70. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/LICENSE +0 -0
  71. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/SECURITY.md +0 -0
  72. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/bundles.md +0 -0
  73. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/ci-github-actions.md +0 -0
  74. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/concepts.md +0 -0
  75. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/doctor-checks.md +0 -0
  76. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/doctor-explained.md +0 -0
  77. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/e2e-live-architecture.md +0 -0
  78. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/e2e-live-setup.md +0 -0
  79. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/foundry-evaluation-sdk-built-in-evaluators.md +0 -0
  80. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/how-it-works.md +0 -0
  81. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/media/agentops-diagrams.vsdx +0 -0
  82. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/media/foundry-control-plane.png +0 -0
  83. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/release-process.md +0 -0
  84. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/tutorial-end-to-end.md +0 -0
  85. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/docs/tutorial-hosted-agent-quickstart.md +0 -0
  86. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/examples/flat-quickstart/README.md +0 -0
  87. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/examples/flat-quickstart/agentops.yaml +0 -0
  88. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/examples/flat-quickstart/dataset.jsonl +0 -0
  89. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/icon.png +0 -0
  90. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/agent-app/Dockerfile +0 -0
  91. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/agent-app/app.py +0 -0
  92. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/agent-app/requirements.txt +0 -0
  93. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/bootstrap.bicep +0 -0
  94. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/bootstrap.parameters.example.json +0 -0
  95. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/infra/e2e/perrun.bicep +0 -0
  96. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/launch.json +0 -0
  97. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/media/foundry.svg +0 -0
  98. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/media/quickstart.gif +0 -0
  99. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/.vscodeignore +0 -0
  100. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/LICENSE +0 -0
  101. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-agent/SKILL.md +0 -0
  102. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-dataset/SKILL.md +0 -0
  103. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-governance/SKILL.md +0 -0
  104. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-report/SKILL.md +0 -0
  105. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/plugins/agentops/skills/agentops-workflow/SKILL.md +0 -0
  106. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/create_support_agent.py +0 -0
  107. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/cut-release.ps1 +0 -0
  108. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/cut-release.sh +0 -0
  109. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_aggregate_summary.py +0 -0
  110. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_data/basic.jsonl +0 -0
  111. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_data/rag.jsonl +0 -0
  112. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_data/tools.jsonl +0 -0
  113. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_demo.py +0 -0
  114. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_hosted_agent.py +0 -0
  115. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_make_transcript.py +0 -0
  116. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/e2e_render_config.py +0 -0
  117. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/release.ps1 +0 -0
  118. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/release.sh +0 -0
  119. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/setup-e2e-new-tenant.ps1 +0 -0
  120. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/staging.ps1 +0 -0
  121. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/staging.sh +0 -0
  122. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/sync-skills.ps1 +0 -0
  123. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/scripts/sync-skills.sh +0 -0
  124. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/setup.cfg +0 -0
  125. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/__init__.py +0 -0
  126. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/__main__.py +0 -0
  127. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/__init__.py +0 -0
  128. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/_legacy_ids.py +0 -0
  129. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/__init__.py +0 -0
  130. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/catalog.py +0 -0
  131. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/errors.py +0 -0
  132. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/governance.py +0 -0
  133. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/latency.py +0 -0
  134. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/observability.py +0 -0
  135. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/opex.py +0 -0
  136. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/opex_workspace.py +0 -0
  137. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture.py +0 -0
  138. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/__init__.py +0 -0
  139. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/content_filter.py +0 -0
  140. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/diagnostics.py +0 -0
  141. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/local_auth.py +0 -0
  142. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/managed_identity.py +0 -0
  143. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/posture_rules/network.py +0 -0
  144. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/regression.py +0 -0
  145. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/release_readiness.py +0 -0
  146. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/safety.py +0 -0
  147. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/checks/spec_conformance.py +0 -0
  148. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/cockpit.py +0 -0
  149. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/config.py +0 -0
  150. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/findings.py +0 -0
  151. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/history.py +0 -0
  152. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/knowledge/__init__.py +0 -0
  153. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/knowledge/waf-checklist.csv +0 -0
  154. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/__init__.py +0 -0
  155. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_base.py +0 -0
  156. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_bundle_rule.py +0 -0
  157. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_client.py +0 -0
  158. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_dataset_rules.py +0 -0
  159. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_engine.py +0 -0
  160. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_prompt_rules.py +0 -0
  161. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/llm_assist/_spec_rules.py +0 -0
  162. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/production_telemetry.py +0 -0
  163. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/report.py +0 -0
  164. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/__init__.py +0 -0
  165. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/app.py +0 -0
  166. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/auth.py +0 -0
  167. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/chat.py +0 -0
  168. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/server/protocol.py +0 -0
  169. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/__init__.py +0 -0
  170. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/_credentials.py +0 -0
  171. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/azure_monitor.py +0 -0
  172. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/azure_resources.py +0 -0
  173. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/spec_detectors/__init__.py +0 -0
  174. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/spec_detectors/_base.py +0 -0
  175. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/spec_detectors/agents_md.py +0 -0
  176. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/sources/spec_detectors/spec_kit.py +0 -0
  177. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/agent/time_range.py +0 -0
  178. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/cli/__init__.py +0 -0
  179. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/__init__.py +0 -0
  180. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/agentops_config.py +0 -0
  181. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/azd_eval.py +0 -0
  182. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/config_loader.py +0 -0
  183. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/evaluators.py +0 -0
  184. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/governance.py +0 -0
  185. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/release_evidence.py +0 -0
  186. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/core/results.py +0 -0
  187. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/mcp/__init__.py +0 -0
  188. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/mcp/server.py +0 -0
  189. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/__init__.py +0 -0
  190. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/azd_runner.py +0 -0
  191. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/cloud_results.py +0 -0
  192. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/cloud_runner.py +0 -0
  193. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/comparison.py +0 -0
  194. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/diagnostics.py +0 -0
  195. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/invocations.py +0 -0
  196. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/official_eval.py +0 -0
  197. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/orchestrator.py +0 -0
  198. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/publisher.py +0 -0
  199. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/reporter.py +0 -0
  200. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/pipeline/thresholds.py +0 -0
  201. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/__init__.py +0 -0
  202. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/assert_runner.py +0 -0
  203. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/eval_analysis.py +0 -0
  204. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/evidence_pack.py +0 -0
  205. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/initializer.py +0 -0
  206. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/preflight.py +0 -0
  207. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/redteam_runner.py +0 -0
  208. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/setup_wizard.py +0 -0
  209. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/skills.py +0 -0
  210. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/trace_promotion.py +0 -0
  211. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/services/workflow_analysis.py +0 -0
  212. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/.gitignore +0 -0
  213. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/__init__.py +0 -0
  214. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agent-server/Dockerfile +0 -0
  215. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agent-server/README.md +0 -0
  216. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agent-server/main.bicep +0 -0
  217. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agent.yaml +0 -0
  218. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/agentops.yaml +0 -0
  219. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/foundry.svg +0 -0
  220. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/icon.png +0 -0
  221. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod-azd.yml +0 -0
  222. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod.yml +0 -0
  223. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-pr.yml +0 -0
  224. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/pipelines/azuredevops/agentops-watchdog.yml +0 -0
  225. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/project.gitignore +0 -0
  226. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/sample-traces.jsonl +0 -0
  227. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-agent/SKILL.md +0 -0
  228. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-dataset/SKILL.md +0 -0
  229. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-governance/SKILL.md +0 -0
  230. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-report/SKILL.md +0 -0
  231. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/skills/agentops-workflow/SKILL.md +0 -0
  232. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/smoke.jsonl +0 -0
  233. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/waf-checklist.README.md +0 -0
  234. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/waf-checklist.csv +0 -0
  235. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-prod-azd.yml +0 -0
  236. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-deploy-prod.yml +0 -0
  237. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-pr.yml +0 -0
  238. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/templates/workflows/agentops-watchdog.yml +0 -0
  239. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/__init__.py +0 -0
  240. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/azd_env.py +0 -0
  241. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/azure_endpoints.py +0 -0
  242. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/colors.py +0 -0
  243. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/dotenv_loader.py +0 -0
  244. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/foundry_discovery.py +0 -0
  245. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/logging.py +0 -0
  246. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/telemetry.py +0 -0
  247. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops/utils/yaml.py +0 -0
  248. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/dependency_links.txt +0 -0
  249. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/entry_points.txt +0 -0
  250. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/src/agentops_accelerator.egg-info/top_level.txt +0 -0
  251. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/TESTING.md +0 -0
  252. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/fixtures/fake_adapter.py +0 -0
  253. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/fixtures/fake_eval_runner.py +0 -0
  254. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/integration/.gitkeep +0 -0
  255. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/integration/test_cli_flat_schema.py +0 -0
  256. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/integration/test_pipeline_smoke.py +0 -0
  257. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/.gitkeep +0 -0
  258. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_analyzer.py +0 -0
  259. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_categories.py +0 -0
  260. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_errors.py +0 -0
  261. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_foundry_config.py +0 -0
  262. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_observability.py +0 -0
  263. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_opex.py +0 -0
  264. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_opex_workspace.py +0 -0
  265. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_regression.py +0 -0
  266. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_safety.py +0 -0
  267. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_checks_spec_conformance.py +0 -0
  268. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_cli.py +0 -0
  269. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_config.py +0 -0
  270. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_findings.py +0 -0
  271. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_history.py +0 -0
  272. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_opex_workspace_check.py +0 -0
  273. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_posture_rules.py +0 -0
  274. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_results_history.py +0 -0
  275. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agent_server.py +0 -0
  276. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_agentops_config.py +0 -0
  277. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_assert_and_redteam_runners.py +0 -0
  278. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azd_env.py +0 -0
  279. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azd_eval.py +0 -0
  280. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azd_runner.py +0 -0
  281. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azure_endpoints.py +0 -0
  282. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_azure_resources_discovery.py +0 -0
  283. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cli_cockpit_connection_summary.py +0 -0
  284. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cli_cockpit_port_conflict.py +0 -0
  285. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cli_commands.py +0 -0
  286. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cli_explain.py +0 -0
  287. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cloud_results.py +0 -0
  288. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cloud_runner.py +0 -0
  289. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_cockpit.py +0 -0
  290. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_diagnostics.py +0 -0
  291. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_doctor_catalog.py +0 -0
  292. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_doctor_cli_explain.py +0 -0
  293. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_dotenv_loader.py +0 -0
  294. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_e2e_render.py +0 -0
  295. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_eval_analysis.py +0 -0
  296. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_eval_run_grader_errors.py +0 -0
  297. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_evaluators.py +0 -0
  298. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_foundry_discovery.py +0 -0
  299. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_governance.py +0 -0
  300. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_init_command.py +0 -0
  301. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_initializer.py +0 -0
  302. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_invocations.py +0 -0
  303. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_knowledge_loader.py +0 -0
  304. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_llm_assist.py +0 -0
  305. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_llm_assist_spec_rules.py +0 -0
  306. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_mcp_server.py +0 -0
  307. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_official_eval.py +0 -0
  308. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_pipeline_publisher.py +0 -0
  309. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_pipeline_reporter.py +0 -0
  310. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_preflight.py +0 -0
  311. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_production_telemetry.py +0 -0
  312. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_release_evidence.py +0 -0
  313. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_runtime_conversation.py +0 -0
  314. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_runtime_model_config.py +0 -0
  315. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_setup_wizard.py +0 -0
  316. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_shared_credentials.py +0 -0
  317. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_skills.py +0 -0
  318. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_skills_sync.py +0 -0
  319. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_telemetry.py +0 -0
  320. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_time_range.py +0 -0
  321. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_trace_promotion.py +0 -0
  322. {agentops_accelerator-0.3.23 → agentops_accelerator-0.4.2}/tests/unit/test_workflow_analysis.py +0 -0
  323. {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.3.23",
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.3.23",
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 Azure runtime dependencies via the `[foundry]` extra
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.
@@ -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. PR
1374
- > candidates accumulate in dev over time and may need periodic
1375
- > cleanup according to your team's Foundry retention policy; AgentOps
1376
- > uses prompt SHAs and git SHAs as the durable identity, not old
1377
- > candidate version numbers.
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[foundry] @ git+https://github.com/Azure/agentops.git@main"
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.3.23",
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.3.23",
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[foundry] @ git+https://github.com/Azure/agentops.git@main"` if `agentops` is missing.
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[foundry] @ git+https://github.com/Azure/agentops.git@main"`.
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,<2.0",
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,<14.0",
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 the `[foundry]` extra, "
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 "