agentops-accelerator 0.3.7__tar.gz → 0.3.9__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 (310) hide show
  1. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.claude-plugin/marketplace.json +1 -1
  2. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/plugin/marketplace.json +1 -1
  3. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/AGENTS.md +6 -1
  4. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/CHANGELOG.md +64 -1
  5. {agentops_accelerator-0.3.7/src/agentops_accelerator.egg-info → agentops_accelerator-0.3.9}/PKG-INFO +6 -2
  6. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/README.md +5 -1
  7. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/concepts.md +18 -0
  8. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/how-it-works.md +13 -5
  9. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/tutorial-end-to-end.md +67 -16
  10. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/tutorial-hosted-agent-quickstart.md +56 -18
  11. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/tutorial-prompt-agent-quickstart.md +215 -78
  12. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/package.json +1 -1
  13. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/plugin.json +1 -1
  14. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/skills/agentops-agent/SKILL.md +8 -0
  15. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/skills/agentops-config/SKILL.md +14 -0
  16. {agentops_accelerator-0.3.7/src/agentops/templates → agentops_accelerator-0.3.9/plugins/agentops}/skills/agentops-eval/SKILL.md +43 -20
  17. agentops_accelerator-0.3.9/plugins/agentops/skills/agentops-governance/SKILL.md +165 -0
  18. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/skills/agentops-report/SKILL.md +6 -0
  19. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/analyzer.py +2 -0
  20. agentops_accelerator-0.3.9/src/agentops/agent/checks/governance.py +85 -0
  21. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/cockpit.py +28 -1
  22. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/cli/app.py +121 -8
  23. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/core/agentops_config.py +50 -2
  24. agentops_accelerator-0.3.9/src/agentops/core/azd_eval.py +307 -0
  25. agentops_accelerator-0.3.9/src/agentops/core/governance.py +354 -0
  26. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/core/release_evidence.py +1 -0
  27. agentops_accelerator-0.3.9/src/agentops/pipeline/azd_runner.py +454 -0
  28. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/official_eval.py +20 -0
  29. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/orchestrator.py +71 -0
  30. agentops_accelerator-0.3.9/src/agentops/services/azd_eval_init.py +268 -0
  31. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/cicd.py +71 -0
  32. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/evidence_pack.py +70 -2
  33. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/setup_wizard.py +24 -14
  34. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/skills.py +3 -0
  35. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/workflow_analysis.py +80 -5
  36. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/skills/agentops-agent/SKILL.md +8 -0
  37. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/skills/agentops-config/SKILL.md +14 -0
  38. {agentops_accelerator-0.3.7/plugins/agentops → agentops_accelerator-0.3.9/src/agentops/templates}/skills/agentops-eval/SKILL.md +43 -20
  39. agentops_accelerator-0.3.9/src/agentops/templates/skills/agentops-governance/SKILL.md +165 -0
  40. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/skills/agentops-report/SKILL.md +6 -0
  41. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9/src/agentops_accelerator.egg-info}/PKG-INFO +6 -2
  42. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops_accelerator.egg-info/SOURCES.txt +11 -0
  43. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agentops_config.py +30 -0
  44. agentops_accelerator-0.3.9/tests/unit/test_azd_eval.py +154 -0
  45. agentops_accelerator-0.3.9/tests/unit/test_azd_eval_init.py +210 -0
  46. agentops_accelerator-0.3.9/tests/unit/test_azd_runner.py +257 -0
  47. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_cicd.py +50 -2
  48. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_cockpit.py +38 -0
  49. agentops_accelerator-0.3.9/tests/unit/test_governance.py +111 -0
  50. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_init_command.py +12 -2
  51. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_setup_wizard.py +74 -4
  52. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_skills.py +7 -6
  53. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_workflow_analysis.py +39 -0
  54. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.gitattributes +0 -0
  55. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/actions/azure-oidc-login/action.yml +0 -0
  56. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/code-quality-py.instructions.md +0 -0
  57. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/copilot-instructions.md +0 -0
  58. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/dependabot.yml +0 -0
  59. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/extensions/agentops-skills/extension.mjs +0 -0
  60. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/skills/release-management/SKILL.md +0 -0
  61. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/workflows/_build.yml +0 -0
  62. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/workflows/agentops-watchdog.yml +0 -0
  63. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/workflows/ci.yml +0 -0
  64. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/workflows/cut-release.yml +0 -0
  65. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/workflows/e2e.yml +0 -0
  66. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/workflows/release.yml +0 -0
  67. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.github/workflows/staging.yml +0 -0
  68. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.gitignore +0 -0
  69. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.pre-commit-config.yaml +0 -0
  70. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.vscode/launch.json +0 -0
  71. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.vscode/settings.json +0 -0
  72. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/.vscode/tasks.json +0 -0
  73. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/CONTRIBUTING.md +0 -0
  74. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/LICENSE +0 -0
  75. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/SECURITY.md +0 -0
  76. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/bundles.md +0 -0
  77. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/ci-github-actions.md +0 -0
  78. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/doctor-checks.md +0 -0
  79. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/doctor-explained.md +0 -0
  80. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/e2e-live-architecture.md +0 -0
  81. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/e2e-live-setup.md +0 -0
  82. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/foundry-evaluation-sdk-built-in-evaluators.md +0 -0
  83. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/media/agentops-diagrams.vsdx +0 -0
  84. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/media/foundry-control-plane.png +0 -0
  85. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/docs/release-process.md +0 -0
  86. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/examples/flat-quickstart/README.md +0 -0
  87. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/examples/flat-quickstart/agentops.yaml +0 -0
  88. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/examples/flat-quickstart/dataset.jsonl +0 -0
  89. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/icon.png +0 -0
  90. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/infra/e2e/agent-app/Dockerfile +0 -0
  91. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/infra/e2e/agent-app/app.py +0 -0
  92. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/infra/e2e/agent-app/requirements.txt +0 -0
  93. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/infra/e2e/bootstrap.bicep +0 -0
  94. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/infra/e2e/bootstrap.parameters.example.json +0 -0
  95. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/infra/e2e/perrun.bicep +0 -0
  96. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/launch.json +0 -0
  97. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/media/foundry.svg +0 -0
  98. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/media/quickstart.gif +0 -0
  99. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/.vscodeignore +0 -0
  100. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/LICENSE +0 -0
  101. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/README.md +0 -0
  102. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/skills/agentops-dataset/SKILL.md +0 -0
  103. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/plugins/agentops/skills/agentops-workflow/SKILL.md +0 -0
  104. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/pyproject.toml +0 -0
  105. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/create_support_agent.py +0 -0
  106. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/cut-release.ps1 +0 -0
  107. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/cut-release.sh +0 -0
  108. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/e2e_aggregate_summary.py +0 -0
  109. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/e2e_data/basic.jsonl +0 -0
  110. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/e2e_data/rag.jsonl +0 -0
  111. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/e2e_data/tools.jsonl +0 -0
  112. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/e2e_demo.py +0 -0
  113. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/e2e_hosted_agent.py +0 -0
  114. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/e2e_make_transcript.py +0 -0
  115. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/e2e_render_config.py +0 -0
  116. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/release.ps1 +0 -0
  117. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/release.sh +0 -0
  118. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/setup-e2e-new-tenant.ps1 +0 -0
  119. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/staging.ps1 +0 -0
  120. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/staging.sh +0 -0
  121. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/sync-skills.ps1 +0 -0
  122. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/scripts/sync-skills.sh +0 -0
  123. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/setup.cfg +0 -0
  124. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/__init__.py +0 -0
  125. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/__main__.py +0 -0
  126. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/__init__.py +0 -0
  127. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/_legacy_ids.py +0 -0
  128. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/__init__.py +0 -0
  129. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/catalog.py +0 -0
  130. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/errors.py +0 -0
  131. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/foundry_config.py +0 -0
  132. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/latency.py +0 -0
  133. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/opex.py +0 -0
  134. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/opex_workspace.py +0 -0
  135. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/posture.py +0 -0
  136. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/posture_rules/__init__.py +0 -0
  137. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/posture_rules/content_filter.py +0 -0
  138. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/posture_rules/diagnostics.py +0 -0
  139. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/posture_rules/local_auth.py +0 -0
  140. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/posture_rules/managed_identity.py +0 -0
  141. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/posture_rules/network.py +0 -0
  142. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/regression.py +0 -0
  143. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/release_readiness.py +0 -0
  144. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/safety.py +0 -0
  145. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/checks/spec_conformance.py +0 -0
  146. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/config.py +0 -0
  147. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/findings.py +0 -0
  148. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/history.py +0 -0
  149. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/knowledge/__init__.py +0 -0
  150. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/knowledge/waf-checklist.csv +0 -0
  151. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/llm_assist/__init__.py +0 -0
  152. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/llm_assist/_base.py +0 -0
  153. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/llm_assist/_bundle_rule.py +0 -0
  154. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/llm_assist/_client.py +0 -0
  155. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/llm_assist/_dataset_rules.py +0 -0
  156. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/llm_assist/_engine.py +0 -0
  157. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/llm_assist/_prompt_rules.py +0 -0
  158. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/llm_assist/_spec_rules.py +0 -0
  159. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/production_telemetry.py +0 -0
  160. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/report.py +0 -0
  161. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/server/__init__.py +0 -0
  162. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/server/app.py +0 -0
  163. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/server/auth.py +0 -0
  164. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/server/chat.py +0 -0
  165. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/server/protocol.py +0 -0
  166. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/sources/__init__.py +0 -0
  167. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/sources/azure_monitor.py +0 -0
  168. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/sources/azure_resources.py +0 -0
  169. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/sources/foundry_control.py +0 -0
  170. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/sources/results_history.py +0 -0
  171. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/sources/spec_detectors/__init__.py +0 -0
  172. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/sources/spec_detectors/_base.py +0 -0
  173. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/sources/spec_detectors/agents_md.py +0 -0
  174. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/sources/spec_detectors/spec_kit.py +0 -0
  175. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/agent/time_range.py +0 -0
  176. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/cli/__init__.py +0 -0
  177. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/core/__init__.py +0 -0
  178. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/core/config_loader.py +0 -0
  179. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/core/evaluators.py +0 -0
  180. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/core/results.py +0 -0
  181. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/mcp/__init__.py +0 -0
  182. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/mcp/server.py +0 -0
  183. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/__init__.py +0 -0
  184. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/cloud_results.py +0 -0
  185. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/cloud_runner.py +0 -0
  186. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/comparison.py +0 -0
  187. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/diagnostics.py +0 -0
  188. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/invocations.py +0 -0
  189. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/prompt_deploy.py +0 -0
  190. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/publisher.py +0 -0
  191. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/reporter.py +0 -0
  192. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/runtime.py +0 -0
  193. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/pipeline/thresholds.py +0 -0
  194. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/__init__.py +0 -0
  195. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/eval_analysis.py +0 -0
  196. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/initializer.py +0 -0
  197. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/preflight.py +0 -0
  198. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/services/trace_promotion.py +0 -0
  199. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/.gitignore +0 -0
  200. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/__init__.py +0 -0
  201. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/agent-server/Dockerfile +0 -0
  202. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/agent-server/README.md +0 -0
  203. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/agent-server/main.bicep +0 -0
  204. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/agent.yaml +0 -0
  205. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/agentops.yaml +0 -0
  206. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/foundry.svg +0 -0
  207. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/icon.png +0 -0
  208. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev-azd.yml +0 -0
  209. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev.yml +0 -0
  210. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod-azd.yml +0 -0
  211. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod.yml +0 -0
  212. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prompt-agent.yml +0 -0
  213. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa-azd.yml +0 -0
  214. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa.yml +0 -0
  215. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-pr-prompt-agent.yml +0 -0
  216. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-pr.yml +0 -0
  217. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/pipelines/azuredevops/agentops-watchdog.yml +0 -0
  218. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/project.gitignore +0 -0
  219. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/sample-traces.jsonl +0 -0
  220. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/skills/agentops-dataset/SKILL.md +0 -0
  221. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/skills/agentops-workflow/SKILL.md +0 -0
  222. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/smoke.jsonl +0 -0
  223. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/waf-checklist.README.md +0 -0
  224. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/waf-checklist.csv +0 -0
  225. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-deploy-dev-azd.yml +0 -0
  226. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-deploy-dev.yml +0 -0
  227. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-deploy-prod-azd.yml +0 -0
  228. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-deploy-prod.yml +0 -0
  229. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-deploy-prompt-agent.yml +0 -0
  230. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-deploy-qa-azd.yml +0 -0
  231. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-deploy-qa.yml +0 -0
  232. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-pr-prompt-agent.yml +0 -0
  233. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-pr.yml +0 -0
  234. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/templates/workflows/agentops-watchdog.yml +0 -0
  235. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/utils/__init__.py +0 -0
  236. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/utils/azd_env.py +0 -0
  237. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/utils/azure_endpoints.py +0 -0
  238. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/utils/colors.py +0 -0
  239. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/utils/dotenv_loader.py +0 -0
  240. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/utils/foundry_discovery.py +0 -0
  241. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/utils/logging.py +0 -0
  242. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/utils/telemetry.py +0 -0
  243. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops/utils/yaml.py +0 -0
  244. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops_accelerator.egg-info/dependency_links.txt +0 -0
  245. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops_accelerator.egg-info/entry_points.txt +0 -0
  246. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops_accelerator.egg-info/requires.txt +0 -0
  247. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/src/agentops_accelerator.egg-info/top_level.txt +0 -0
  248. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/TESTING.md +0 -0
  249. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/fixtures/fake_adapter.py +0 -0
  250. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/fixtures/fake_eval_runner.py +0 -0
  251. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/integration/.gitkeep +0 -0
  252. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/integration/test_cli_flat_schema.py +0 -0
  253. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/integration/test_pipeline_smoke.py +0 -0
  254. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/.gitkeep +0 -0
  255. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_analyzer.py +0 -0
  256. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_categories.py +0 -0
  257. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_checks_errors.py +0 -0
  258. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_checks_foundry_config.py +0 -0
  259. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_checks_opex.py +0 -0
  260. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_checks_opex_workspace.py +0 -0
  261. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_checks_regression.py +0 -0
  262. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_checks_safety.py +0 -0
  263. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_checks_spec_conformance.py +0 -0
  264. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_cli.py +0 -0
  265. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_config.py +0 -0
  266. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_findings.py +0 -0
  267. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_history.py +0 -0
  268. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_opex_workspace_check.py +0 -0
  269. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_posture_rules.py +0 -0
  270. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_results_history.py +0 -0
  271. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_agent_server.py +0 -0
  272. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_azd_env.py +0 -0
  273. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_azure_endpoints.py +0 -0
  274. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_azure_resources_discovery.py +0 -0
  275. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_cli_cockpit_connection_summary.py +0 -0
  276. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_cli_cockpit_port_conflict.py +0 -0
  277. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_cli_commands.py +0 -0
  278. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_cli_explain.py +0 -0
  279. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_cloud_results.py +0 -0
  280. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_cloud_runner.py +0 -0
  281. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_diagnostics.py +0 -0
  282. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_doctor_catalog.py +0 -0
  283. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_doctor_cli_explain.py +0 -0
  284. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_dotenv_loader.py +0 -0
  285. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_e2e_render.py +0 -0
  286. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_eval_analysis.py +0 -0
  287. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_eval_run_grader_errors.py +0 -0
  288. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_evaluators.py +0 -0
  289. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_foundry_discovery.py +0 -0
  290. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_initializer.py +0 -0
  291. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_invocations.py +0 -0
  292. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_knowledge_loader.py +0 -0
  293. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_llm_assist.py +0 -0
  294. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_llm_assist_spec_rules.py +0 -0
  295. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_mcp_server.py +0 -0
  296. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_official_eval.py +0 -0
  297. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_pipeline_publisher.py +0 -0
  298. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_pipeline_reporter.py +0 -0
  299. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_preflight.py +0 -0
  300. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_production_telemetry.py +0 -0
  301. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_prompt_deploy.py +0 -0
  302. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_release_evidence.py +0 -0
  303. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_runtime_conversation.py +0 -0
  304. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_runtime_model_config.py +0 -0
  305. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_skills_sync.py +0 -0
  306. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_telemetry.py +0 -0
  307. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_time_range.py +0 -0
  308. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tests/unit/test_trace_promotion.py +0 -0
  309. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/tombstones/vscode/CDN_DEPRECATION_REQUEST.md +0 -0
  310. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.9}/uv.lock +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.7",
16
+ "version": "0.3.8",
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.7",
16
+ "version": "0.3.8",
17
17
  "keywords": [
18
18
  "agentops",
19
19
  "evaluation",
@@ -41,6 +41,7 @@ Public CLI contract:
41
41
  - `agentops init show [--dir PATH] [--reveal-secrets]`
42
42
  - `agentops init explain [--no-pager] [--format text|markdown|html] [--out PATH] [--open]`
43
43
  - `agentops eval analyze [--dir PATH] [--format text|markdown|json] [--out PATH]`
44
+ - `agentops eval init [--dir PATH] [--force]`
44
45
  - `agentops eval run [--config PATH] [--baseline PATH] [--output DIR]`
45
46
  - `agentops eval promote-traces --source PATH [--out PATH] [--max-rows N] [--label-mode self-similarity|pending] [--apply]`
46
47
  - `agentops report generate [--in PATH] [--out PATH]`
@@ -325,7 +326,8 @@ Full schema:
325
326
  | `thresholds` | no | Map of metric → expression (e.g. `coherence: ">=3"`, `avg_latency_seconds: "<=30"`). Missing keys fall back to auto-defaults. |
326
327
  | `evaluators` | no | Advanced escape hatch: explicit list of evaluator names that overrides auto-selection. |
327
328
  | `project_endpoint` | no | Foundry project endpoint. Wins over `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT` when both are set. |
328
- | `execution` | no | `local` (default) — AgentOps runs the agent row-by-row locally. `cloud` — Foundry runs the agent + evaluators server-side (only valid for `name:version` agents). |
329
+ | `execution` | no | `local` (default) — AgentOps runs the agent row-by-row locally. `cloud` — Foundry runs the agent + evaluators server-side (only valid for `name:version` agents). `azd` — delegates execution to `azd ai agent eval` and normalizes the emitted metrics. |
330
+ | `eval_recipe` | no | Optional path to azd `eval.yaml` when `execution: azd`; omitted values auto-discover a single recipe. |
329
331
  | `publish` | no | When `execution: local`, set to `true` to also upload results to the Classic Foundry Evaluations panel. With `execution: cloud` publishing is implicit. |
330
332
  | `protocol` | no | URL-based agents only. `responses` (default Foundry hosted), `invocations` (Foundry hosted with raw JSON), or `http-json` (default generic HTTP). |
331
333
  | `request_field` | no | HTTP / invocations only. JSON key that carries the user prompt (default: `message`). |
@@ -333,6 +335,9 @@ Full schema:
333
335
  | `tool_calls_field` | no | HTTP / invocations only. Dot-path to extract tool calls for agent-workflow evaluators. |
334
336
  | `headers` | no | HTTP / invocations only. Static extra HTTP headers. |
335
337
  | `auth_header_env` | no | HTTP / invocations only. Environment variable that holds a Bearer token. |
338
+ | `assert_path` | no | Optional ASSERT policy/results file or directory referenced by Doctor/evidence. AgentOps does not execute ASSERT. |
339
+ | `acs_path` | no | Optional Agent Control Specification contract file or directory referenced by Doctor/evidence. AgentOps does not apply ACS controls. |
340
+ | `redteam_path` | no | Optional red-team plan/results evidence path. AgentOps records metadata and never exposes payload text. |
336
341
 
337
342
  ### Agent Type Inference
338
343
 
@@ -3,7 +3,70 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres to [Semantic Versioning](https://semver.org/).
5
5
 
6
- ## [Unreleased]
6
+ ## [0.3.9] - 2026-06-08
7
+
8
+ ### Added
9
+ - **AgentOps can now delegate Foundry eval execution to `azd ai agent eval`.**
10
+ Projects with an azd `eval.yaml` recipe can set `execution: azd` and
11
+ `eval_recipe: eval.yaml`; AgentOps invokes azd, normalizes emitted metrics
12
+ into `results.json`, binds thresholds including Rubric/custom dimensions, and
13
+ fails closed when configured thresholds do not map to emitted metrics.
14
+ - **Governance evidence support for ASSERT, ACS, and red-team readiness.**
15
+ `agentops.yaml` can reference `assert_path`, `acs_path`, and `redteam_path`.
16
+ Doctor, Cockpit, and release evidence record path, SHA-256 hash, status, and
17
+ ACS checkpoint coverage without executing ASSERT, applying ACS controls, or
18
+ exposing red-team payload text.
19
+ - **`agentops-governance` coding-agent skill.** The new skill drafts safe
20
+ evidence templates for ASSERT policies, ACS contracts, Guided Guardrail review
21
+ notes, and red-team readiness plans while explicitly refusing offensive
22
+ payload generation.
23
+
24
+ ### Fixed
25
+ - **Prompt-agent tutorial now explicitly verifies the Travel Agent dataset path
26
+ after `agentops init`.** Step 7 now tells users to confirm
27
+ `agentops.yaml` points at `.agentops/data/travel-smoke.jsonl` and provides a
28
+ repair command if the wizard left the starter `.agentops/data/smoke.jsonl`.
29
+ - **`agentops eval init` now reuses configured prompt-agent inputs and avoids
30
+ hidden azd prompts.** When `--dataset` is omitted, the command passes the
31
+ existing `agentops.yaml` dataset to `azd ai agent eval init`. It also runs azd
32
+ with `--no-prompt`, passes the configured Foundry project endpoint, agent
33
+ name, prompt file, and bootstrap model, and prints a progress line before the
34
+ potentially long Foundry initialization.
35
+ - **Prompt-agent tutorial guidance now keeps azd eval recipes advanced-only.**
36
+ Step 10 now follows `workflow analyze` for the quickstart's AgentOps cloud
37
+ eval path and explains that `agentops eval init` requires a full azd AI agent
38
+ project context before `azd ai agent eval run` can resolve the Foundry
39
+ project.
40
+ - **`agentops eval init` now prints safely on Windows terminals without Unicode
41
+ support.** The CLI falls back to an ASCII updated marker instead of raising a
42
+ `UnicodeEncodeError` on cp1252 consoles after it wires `execution: azd` and
43
+ `eval_recipe`.
44
+ - **Foundry RBAC preflight now prevents the portal build-agent permission
45
+ block.** The prompt-agent, hosted-agent, and end-to-end tutorials plus the
46
+ packaged `agentops-eval` skill now grant `Foundry User` and `Cognitive
47
+ Services OpenAI User` on the parent AI Services account using stable role IDs.
48
+ This covers the Foundry UI's "You don't have permission to build agents"
49
+ failure as well as the evaluator chat-completions data-plane failure, while
50
+ still assigning the OpenAI role to Foundry/Azure AI managed identities used by
51
+ server-side graders.
52
+
53
+ ## [0.3.8] - 2026-06-04
54
+
55
+ ### Fixed
56
+ - **`agentops init` now handles blank required wizard values gracefully.** If
57
+ the user presses Enter without an existing Foundry endpoint or agent default,
58
+ the wizard explains that AgentOps needs the missing value and re-prompts
59
+ instead of proceeding to a later persistence failure. Scripted blank flags
60
+ such as `--agent ""` now exit with the same friendly message and no traceback.
61
+ - **`agentops init` no longer depends on undeclared PyYAML.** The setup wizard
62
+ now reads and writes `agentops.yaml` through the repository's `ruamel.yaml`
63
+ helpers, fixing the ugly `No module named 'yaml'` traceback seen in clean
64
+ installs.
65
+
66
+ ### Changed
67
+ - **AgentOps brand tagline sequence now reads `Evaluate :: Ship :: Observe ::
68
+ Own`.** The startup/explain banner now matches the intended product story
69
+ order.
7
70
 
8
71
  ## [0.3.7] - 2026-06-01
9
72
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentops-accelerator
3
- Version: 0.3.7
3
+ Version: 0.3.9
4
4
  Summary: Release readiness gates and evidence for Microsoft Foundry agents
5
5
  License: MIT License
6
6
 
@@ -87,6 +87,8 @@ The project enables:
87
87
  - Baseline comparison for regression detection
88
88
  - Doctor checks for repo, CI/CD, telemetry, landing zones, and Foundry setup
89
89
  - Release evidence packs for promotion review
90
+ - Optional `azd ai agent eval` execution with Rubric/custom metric binding
91
+ - ASSERT, ACS, and red-team governance evidence references
90
92
  - Trace promotion into regression datasets
91
93
  - Cockpit navigation for AgentOps, Foundry, and Azure Monitor
92
94
 
@@ -100,9 +102,10 @@ ship/no-ship workflow.
100
102
  | Moment | Foundry / Azure does | AgentOps adds |
101
103
  |---|---|---|
102
104
  | Build and version | Foundry portal, Foundry SDK/Toolkit, `microsoft-foundry` skill, azd | Pins the exact candidate in `agentops.yaml` and generates the PR/release gate around it |
103
- | Evaluate and compare | Foundry Evaluations and official CI actions/extensions | Keeps datasets and thresholds in the repo, records evidence, and provides local/fallback runs for non-prompt targets |
105
+ | Evaluate and compare | Foundry Evaluations, `azd ai agent eval`, Rubric evaluator, and official CI actions/extensions | Keeps datasets and thresholds in the repo, records evidence, normalizes azd/Rubric outputs, and provides local/fallback runs for non-prompt targets |
104
106
  | Observe and investigate | Foundry Monitor, Traces, Azure Monitor, App Insights | Surfaces deep links, telemetry readiness, Doctor findings, and Cockpit navigation |
105
107
  | Decide release | Branch protection, environments, approvals | Packages `evidence.json` / `evidence.md` for promotion review |
108
+ | Govern controls | ASSERT, ACS, Foundry Guardrails, Foundry red-team scans | References reviewed artifacts by path/hash/status without executing or applying the external controls |
106
109
  | Improve from production | Production traces and Foundry datasets | Promotes reviewed trace learnings into regression candidates |
107
110
 
108
111
  The rhythm is simple: build and operate the agent in Foundry, keep the release
@@ -232,6 +235,7 @@ Doctor/Cockpit, and `[mcp]` for MCP.
232
235
  - `agentops --version` - show installed version.
233
236
  - `agentops init` - bootstrap config and seed data.
234
237
  - `agentops eval analyze` - check eval readiness.
238
+ - `agentops eval init` - bootstrap an azd `eval.yaml` recipe and wire `execution: azd`.
235
239
  - `agentops eval run [--baseline PATH]` - run an evaluation.
236
240
  - `agentops eval promote-traces --source FILE [--apply]` - promote traces.
237
241
  - `agentops report generate` - regenerate `report.md`.
@@ -34,6 +34,8 @@ The project enables:
34
34
  - Baseline comparison for regression detection
35
35
  - Doctor checks for repo, CI/CD, telemetry, landing zones, and Foundry setup
36
36
  - Release evidence packs for promotion review
37
+ - Optional `azd ai agent eval` execution with Rubric/custom metric binding
38
+ - ASSERT, ACS, and red-team governance evidence references
37
39
  - Trace promotion into regression datasets
38
40
  - Cockpit navigation for AgentOps, Foundry, and Azure Monitor
39
41
 
@@ -47,9 +49,10 @@ ship/no-ship workflow.
47
49
  | Moment | Foundry / Azure does | AgentOps adds |
48
50
  |---|---|---|
49
51
  | Build and version | Foundry portal, Foundry SDK/Toolkit, `microsoft-foundry` skill, azd | Pins the exact candidate in `agentops.yaml` and generates the PR/release gate around it |
50
- | Evaluate and compare | Foundry Evaluations and official CI actions/extensions | Keeps datasets and thresholds in the repo, records evidence, and provides local/fallback runs for non-prompt targets |
52
+ | Evaluate and compare | Foundry Evaluations, `azd ai agent eval`, Rubric evaluator, and official CI actions/extensions | Keeps datasets and thresholds in the repo, records evidence, normalizes azd/Rubric outputs, and provides local/fallback runs for non-prompt targets |
51
53
  | Observe and investigate | Foundry Monitor, Traces, Azure Monitor, App Insights | Surfaces deep links, telemetry readiness, Doctor findings, and Cockpit navigation |
52
54
  | Decide release | Branch protection, environments, approvals | Packages `evidence.json` / `evidence.md` for promotion review |
55
+ | Govern controls | ASSERT, ACS, Foundry Guardrails, Foundry red-team scans | References reviewed artifacts by path/hash/status without executing or applying the external controls |
53
56
  | Improve from production | Production traces and Foundry datasets | Promotes reviewed trace learnings into regression candidates |
54
57
 
55
58
  The rhythm is simple: build and operate the agent in Foundry, keep the release
@@ -179,6 +182,7 @@ Doctor/Cockpit, and `[mcp]` for MCP.
179
182
  - `agentops --version` - show installed version.
180
183
  - `agentops init` - bootstrap config and seed data.
181
184
  - `agentops eval analyze` - check eval readiness.
185
+ - `agentops eval init` - bootstrap an azd `eval.yaml` recipe and wire `execution: azd`.
182
186
  - `agentops eval run [--baseline PATH]` - run an evaluation.
183
187
  - `agentops eval promote-traces --source FILE [--apply]` - promote traces.
184
188
  - `agentops report generate` - regenerate `report.md`.
@@ -166,6 +166,24 @@ trace-to-regression review. The standalone Microsoft Foundry AI Agent Evaluation
166
166
  Action/task remains useful for platform-native validation outside the AgentOps
167
167
  release-readiness flow.
168
168
 
169
+ If a Foundry project already uses the public-preview `azd ai agent eval` recipe
170
+ flow, set `execution: azd` and `eval_recipe: eval.yaml`. AgentOps delegates eval
171
+ execution to azd, then normalizes metrics, binds thresholds, writes
172
+ `results.json`, and fails closed for thresholds that have no emitted metric.
173
+ Rubric evaluator dimensions are treated as first-class metric names.
174
+
175
+ Governance artifacts are optional evidence inputs:
176
+
177
+ ```yaml
178
+ assert_path: .assert/evaluation-policy.yaml
179
+ acs_path: acs.yaml
180
+ redteam_path: .agentops/governance/redteam-plan.md
181
+ ```
182
+
183
+ AgentOps records path, hash, status, and ACS checkpoint coverage in Doctor,
184
+ Cockpit, and release evidence. ASSERT execution, ACS enforcement, Guided
185
+ Guardrail setup, and red-team scans remain in their owning tools.
186
+
169
187
  ## Evaluation Scenarios
170
188
 
171
189
  AgentOps auto-selects common evaluation patterns from the dataset:
@@ -141,10 +141,12 @@ flowchart TD
141
141
  A["CLI parses args"] --> B["Load agentops.yaml"]
142
142
  B --> C["classify_agent"]
143
143
  C --> D["Pre-flight checks"]
144
- D --> E["Read JSONL dataset"]
145
- E --> F["Invoke target per row"]
146
- F --> G["Run evaluators per row"]
147
- G --> H["Aggregate metrics"]
144
+ D --> E{"execution mode"}
145
+ E -->|local/cloud| F["Read JSONL dataset"]
146
+ F --> G["Invoke target per row or submit Foundry cloud eval"]
147
+ G --> H["Run/collect evaluator scores"]
148
+ E -->|azd| AZD["Call azd ai agent eval using eval.yaml"]
149
+ AZD --> H
148
150
  H --> I["Evaluate thresholds"]
149
151
  I --> J["Write results.json + report.md"]
150
152
  J --> K["Sync .agentops/results/latest"]
@@ -164,7 +166,8 @@ fail, and `1` for runtime or configuration errors.
164
166
  AgentOps does not create a second production gate with a new exit-code
165
167
  contract. Instead, it projects the signals already produced by evals, Doctor,
166
168
  workflow files, Foundry control-plane checks, Azure Monitor, AI Landing Zone
167
- readiness, and trace-regression manifests into a release evidence pack:
169
+ readiness, trace-regression manifests, and optional governance artifacts
170
+ (ASSERT, ACS, red-team evidence indexes) into a release evidence pack:
168
171
 
169
172
  ```mermaid
170
173
  flowchart LR
@@ -175,6 +178,7 @@ flowchart LR
175
178
  PT --> M["trace-regression-manifest.json"]
176
179
  M --> P
177
180
  W["workflow generate"] --> P
181
+ G["ASSERT / ACS / red-team evidence paths"] --> P
178
182
  P --> J["evidence.json/evidence.md"]
179
183
  ```
180
184
 
@@ -185,6 +189,10 @@ flowchart LR
185
189
  - Trace promotion is local and review-first. `self-similarity` labels are useful
186
190
  for drift detection, not human-verified correctness; use `--label-mode pending`
187
191
  when a person must fill expected answers before the dataset can gate.
192
+ - Governance artifacts are evidence-only references. AgentOps records path,
193
+ SHA-256 hash, file size, schema version when available, and ACS checkpoint
194
+ coverage; it does not execute ASSERT, apply ACS controls, configure Guided
195
+ Guardrails, or run red-team campaigns.
188
196
 
189
197
  ## Analyze / Generate Boundary
190
198
 
@@ -62,6 +62,24 @@ hosted endpoint itself is the per-environment artifact.
62
62
  > collisions become a real problem); dev is the gated promotion target
63
63
  > CI writes to.
64
64
 
65
+ > **Name the Azure resources before provisioning.** When you use the Foundry
66
+ > portal, `microsoft-foundry` skill, or Foundry Toolkit for this tutorial, specify
67
+ > the resource group, Foundry / AI Services resource name, region, and model
68
+ > deployment explicitly (for example `rg-agentops-travel-<your-alias>`,
69
+ > `foundry-agentops-travel-<your-alias>`, `East US 2`, and `gpt-4o-mini`).
70
+ > Replace `<your-alias>` with a short unique suffix when multiple people share
71
+ > the same subscription. Resource group names are unique within a subscription;
72
+ > Foundry / AI Services resource names should also be unique enough to avoid
73
+ > Azure naming conflicts. Also ask the skill/tool to grant or verify `Foundry
74
+ > User` access for your signed-in user (some portal screens still call this
75
+ > `Azure AI User`) and `Cognitive Services OpenAI User` data-plane access for
76
+ > your signed-in user plus any Foundry/Azure AI managed identities that will
77
+ > call evaluator models. A single shared resource group is easiest for demos
78
+ > because RBAC and cleanup happen once; production environments may use separate
79
+ > resource groups per stage. For a fuller Azure baseline with networking,
80
+ > identity, security, and operations patterns, see
81
+ > [Azure AI Landing Zone](https://aka.ms/ailz).
82
+
65
83
  ## The cross-environment identity story (versioning callout)
66
84
 
67
85
  Each environment's Foundry version numbers or endpoint URLs diverge, but the
@@ -286,36 +304,52 @@ for creating agents, tools, tracing, evaluation, and red-team scans:
286
304
  https://github.com/Azure-Samples/microsoft-foundry-e2e-agent-observability-workshop/tree/2026-04-aie-europe
287
305
  ```
288
306
 
289
- ### Grant data-plane access to your identity and Foundry managed identities
307
+ ### Grant agent-build and data-plane access to your identity and Foundry managed identities
290
308
 
291
309
  Both options above (prompt agent and hosted HTTP agent) eventually drive
292
310
  an `agentops eval run` that calls chat-completions on the AI Services
293
311
  account behind your Foundry project — either through Foundry's cloud
294
312
  graders or through the local AI-assisted evaluators. Creating a project
295
313
  through the portal assigns you `Foundry User` **only at the project
296
- scope**, which does not cover OpenAI data-plane actions on the parent
297
- account. Subscription `Owner` is also insufficient: its built-in role
298
- definition has `actions: ["*"]` but `dataActions: []`. Skipping this is
299
- what causes the eval to fail later with `PermissionDenied` on
314
+ scope**. Creating/building agents in the Foundry UI can also require
315
+ `Foundry User` on the parent Foundry / AI Services resource; some portal screens
316
+ still use the previous role name, `Azure AI User`. `Foundry User` does not cover
317
+ OpenAI data-plane actions on the parent account. Subscription `Owner` is
318
+ also insufficient: its built-in role definition has `actions: ["*"]` but
319
+ `dataActions: []`. Skipping the OpenAI role is what causes the eval to fail
320
+ later with `PermissionDenied` on
300
321
  `Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/
301
322
  completions/action`.
302
323
 
303
- Run these assignments once per resource group that hosts a Foundry account
304
- you will evaluate against. Cloud evaluations run server-side and some agent
305
- or grader calls may authenticate as Foundry/Azure AI managed identities, not
306
- only as your signed-in user. Assigning the role only to your user can still
307
- leave graders failing with `AuthenticationError`.
324
+ If your skill/tool already confirmed these role assignments, treat the commands
325
+ below as a verification/fallback step. Otherwise, run these assignments once per
326
+ AI Services account that hosts a Foundry project you will evaluate against. Cloud
327
+ evaluations run server-side and some agent or grader calls may authenticate as
328
+ Foundry/Azure AI managed identities, not only as your signed-in user. Assigning
329
+ the role only to your user can still leave graders failing with
330
+ `AuthenticationError`. Replace `<resource-group>` with the resource group you
331
+ chose above, for example `rg-agentops-travel-<your-alias>`, and
332
+ `<account-name>` with the parent Foundry / AI Services account name.
308
333
 
309
334
  ```powershell
310
335
  $subscriptionId = az account show --query id -o tsv
311
336
  $resourceGroup = "<resource-group>"
312
- $scope = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup"
337
+ $accountName = "<account-name>"
338
+ $accountScope = az cognitiveservices account show `
339
+ --resource-group $resourceGroup `
340
+ --name $accountName `
341
+ --query id -o tsv
313
342
  $userObjectId = az ad signed-in-user show --query id -o tsv
314
343
 
315
344
  az role assignment create `
316
345
  --assignee $userObjectId `
317
- --role "Cognitive Services OpenAI User" `
318
- --scope $scope
346
+ --role "53ca6127-db72-4b80-b1b0-d745d6d5456d" `
347
+ --scope $accountScope
348
+
349
+ az role assignment create `
350
+ --assignee $userObjectId `
351
+ --role "5e0bd9bd-7b93-4f28-af87-19fc36ad61bd" `
352
+ --scope $accountScope
319
353
 
320
354
  az resource list -g $resourceGroup `
321
355
  --query "[?identity.principalId!=null].identity.principalId" -o tsv |
@@ -323,8 +357,8 @@ az resource list -g $resourceGroup `
323
357
  az role assignment create `
324
358
  --assignee-object-id $_ `
325
359
  --assignee-principal-type ServicePrincipal `
326
- --role "Cognitive Services OpenAI User" `
327
- --scope $scope
360
+ --role "5e0bd9bd-7b93-4f28-af87-19fc36ad61bd" `
361
+ --scope $accountScope
328
362
  }
329
363
  ```
330
364
 
@@ -844,7 +878,22 @@ Use AgentOps for the repo-side follow-through:
844
878
  1. Add safety/adversarial rows to your eval dataset when there are repeatable
845
879
  cases worth gating in CI.
846
880
  2. Keep the Foundry red-team scan URL or summary with the release review.
847
- 3. Re-run Doctor and evidence:
881
+ Store only safe metadata in the repo, for example
882
+ `.agentops/governance/redteam-plan.md`; keep raw payloads/results in the
883
+ approved secure system.
884
+ 3. If you use ASSERT or Agent Control Specification, add reviewed artifacts to
885
+ the repo or CI artifacts and point AgentOps at them:
886
+
887
+ ```yaml
888
+ assert_path: .assert/evaluation-policy.yaml
889
+ acs_path: acs.yaml
890
+ redteam_path: .agentops/governance/redteam-plan.md
891
+ ```
892
+
893
+ AgentOps records path, SHA-256 hash, status, and ACS checkpoint coverage in
894
+ release evidence. ASSERT execution, ACS enforcement, Guided Guardrail setup,
895
+ and red-team scans remain in their owning tools.
896
+ 4. Re-run Doctor and evidence:
848
897
 
849
898
  ```powershell
850
899
  agentops doctor --workspace . --evidence-pack
@@ -932,6 +981,8 @@ You are ready for a release review when:
932
981
  Insights, and Operate Ask AI was used for an aggregate summary when
933
982
  available.
934
983
  - Foundry red-team scans are linked or tracked as a release action.
984
+ - ASSERT / ACS / red-team artifacts are represented as evidence-only
985
+ references when your governance process uses them.
935
986
  - Trace learnings have a path back into regression candidates.
936
987
 
937
988
  ## Where to go next
@@ -143,6 +143,24 @@ FastAPI sample below emits custom OpenTelemetry spans only after you enable the
143
143
  observability step; a real Foundry Hosted Agent emits richer Foundry runtime
144
144
  spans.
145
145
 
146
+ > **Name the Azure container resources up front.** If you use the
147
+ > `microsoft-foundry` skill or Foundry Toolkit to create a hosted-agent project,
148
+ > tell it the resource group, Foundry / AI Services resource name, region, and
149
+ > model deployment you want, for example `rg-agentops-travel-<your-alias>`,
150
+ > `foundry-agentops-travel-<your-alias>`, `East US 2`, and `gpt-4o-mini`.
151
+ > Replace `<your-alias>` with a short unique suffix when multiple people share
152
+ > the same subscription. Resource group names are unique within a subscription;
153
+ > Foundry / AI Services resource names should also be unique enough to avoid
154
+ > Azure naming conflicts. Also ask the skill/tool to grant or verify `Foundry
155
+ > User` access for your signed-in user (some portal screens still call this
156
+ > `Azure AI User`) and `Cognitive Services OpenAI User` data-plane access for
157
+ > your signed-in user plus any Foundry/Azure AI managed identities that will
158
+ > call evaluator models. For a recorded tutorial, one shared resource group is
159
+ > easiest because RBAC and cleanup happen in one place; production teams may
160
+ > split resource groups by environment. For a fuller Azure baseline with
161
+ > networking, identity, security, and operations patterns, see
162
+ > [Azure AI Landing Zone](https://aka.ms/ailz).
163
+
146
164
  ## 1. Create a clean workspace and install dependencies
147
165
 
148
166
  ```powershell
@@ -310,34 +328,49 @@ If the deployed endpoint needs a bearer token:
310
328
  $env:HOSTED_AGENT_TOKEN = "<token>"
311
329
  ```
312
330
 
313
- ### Grant data-plane access to your identity and Foundry managed identities
331
+ ### Grant agent-build and data-plane access to your identity and Foundry managed identities
314
332
 
315
333
  The local AI-assisted evaluators that AgentOps runs in step 8 call
316
334
  chat-completions on the AI Services account that backs your Foundry
317
335
  project. Creating a project through the portal only assigns you
318
- `Foundry User` **at the project scope**, which does not cover the
319
- OpenAI data-plane action on the parent account. Even subscription
320
- `Owner` is insufficient: the built-in `Owner` role has `actions: ["*"]`
321
- but `dataActions: []`. Skipping this once causes the eval to fail with
322
- `PermissionDenied` on `Microsoft.CognitiveServices/accounts/OpenAI/
323
- deployments/chat/completions/action`.
324
-
325
- Run these assignments once per resource group hosting a Foundry account
326
- you will evaluate against. Local AI-assisted evaluators use your identity,
327
- while Foundry-hosted/server-side eval paths may use Azure AI managed
328
- identities from the same resource group. Assigning only the user can still
329
- leave server-side graders failing with `AuthenticationError`.
336
+ `Foundry User` **at the project scope**. Creating/building agents in the
337
+ Foundry UI can also require `Foundry User` on the parent Foundry / AI Services
338
+ resource; some portal screens still use the previous role name,
339
+ `Azure AI User`. `Foundry User` also does not cover the OpenAI data-plane action on
340
+ the parent account. Even subscription `Owner` is insufficient: the built-in
341
+ `Owner` role has `actions: ["*"]` but `dataActions: []`. Skipping the OpenAI
342
+ role causes the eval to fail with `PermissionDenied` on
343
+ `Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action`.
344
+
345
+ If your skill/tool already confirmed these role assignments, treat the commands
346
+ below as a verification/fallback step. Otherwise, run these assignments once per
347
+ AI Services account hosting a Foundry project you will evaluate against. Local
348
+ AI-assisted evaluators use your identity, while Foundry-hosted/server-side eval
349
+ paths may use Azure AI managed identities from the same resource group.
350
+ Assigning only the user can still leave server-side graders failing with
351
+ `AuthenticationError`. Replace `<resource-group>` with the resource group you
352
+ chose above, for example `rg-agentops-travel-<your-alias>`, and
353
+ `<account-name>` with the parent Foundry / AI Services account name.
330
354
 
331
355
  ```powershell
332
356
  $subscriptionId = az account show --query id -o tsv
333
357
  $resourceGroup = "<resource-group>"
334
- $scope = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup"
358
+ $accountName = "<account-name>"
359
+ $accountScope = az cognitiveservices account show `
360
+ --resource-group $resourceGroup `
361
+ --name $accountName `
362
+ --query id -o tsv
335
363
  $userObjectId = az ad signed-in-user show --query id -o tsv
336
364
 
337
365
  az role assignment create `
338
366
  --assignee $userObjectId `
339
- --role "Cognitive Services OpenAI User" `
340
- --scope $scope
367
+ --role "53ca6127-db72-4b80-b1b0-d745d6d5456d" `
368
+ --scope $accountScope
369
+
370
+ az role assignment create `
371
+ --assignee $userObjectId `
372
+ --role "5e0bd9bd-7b93-4f28-af87-19fc36ad61bd" `
373
+ --scope $accountScope
341
374
 
342
375
  az resource list -g $resourceGroup `
343
376
  --query "[?identity.principalId!=null].identity.principalId" -o tsv |
@@ -345,8 +378,8 @@ az resource list -g $resourceGroup `
345
378
  az role assignment create `
346
379
  --assignee-object-id $_ `
347
380
  --assignee-principal-type ServicePrincipal `
348
- --role "Cognitive Services OpenAI User" `
349
- --scope $scope
381
+ --role "5e0bd9bd-7b93-4f28-af87-19fc36ad61bd" `
382
+ --scope $accountScope
350
383
  }
351
384
  ```
352
385
 
@@ -799,6 +832,11 @@ You are done when:
799
832
  `.agentops/release/latest/evidence.md`, and the workflow summary
800
833
  surfaces its Doctor finding summary.
801
834
  - Cockpit opens and shows the local eval history plus Doctor readiness.
835
+ - Optional ASSERT, ACS, and red-team evidence artifacts are either absent
836
+ (Doctor stays silent) or wired through `assert_path`, `acs_path`, and
837
+ `redteam_path` in `agentops.yaml`. AgentOps cites their status/hash in release
838
+ evidence; it does not execute ASSERT, apply ACS controls, or run red-team
839
+ campaigns.
802
840
 
803
841
  ## Where to go next
804
842