agentops-accelerator 0.6.0__tar.gz → 0.7.0__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 (340) hide show
  1. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/AGENTS.md +4 -1
  2. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/CHANGELOG.md +38 -0
  3. {agentops_accelerator-0.6.0/src/agentops_accelerator.egg-info → agentops_accelerator-0.7.0}/PKG-INFO +4 -4
  4. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/README.md +3 -3
  5. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/ci-github-actions.md +6 -6
  6. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/how-it-works.md +1 -1
  7. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/tutorial-end-to-end.md +2 -2
  8. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/tutorial-hosted-agent-quickstart.md +2 -2
  9. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/tutorial-prompt-agent.md +7 -7
  10. {agentops_accelerator-0.6.0/src/agentops/templates → agentops_accelerator-0.7.0/plugins/agentops}/skills/agentops-workflow/SKILL.md +5 -5
  11. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/pyproject.toml +3 -0
  12. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/catalog.py +13 -0
  13. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/posture_rules/__init__.py +4 -0
  14. agentops_accelerator-0.7.0/src/agentops/agent/checks/posture_rules/aoai_diagnostic_categories.py +88 -0
  15. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/cockpit.py +270 -60
  16. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/cli/app.py +279 -2
  17. agentops_accelerator-0.7.0/src/agentops/services/dashboard.py +503 -0
  18. {agentops_accelerator-0.6.0/plugins/agentops → agentops_accelerator-0.7.0/src/agentops/templates}/skills/agentops-workflow/SKILL.md +5 -5
  19. agentops_accelerator-0.7.0/src/agentops/templates/workbooks/README.md +99 -0
  20. agentops_accelerator-0.7.0/src/agentops/templates/workbooks/foundry-ops.workbook.json +479 -0
  21. agentops_accelerator-0.7.0/src/agentops/templates/workbooks/queries/capacity_ptu_spillover.kql +52 -0
  22. agentops_accelerator-0.7.0/src/agentops/templates/workbooks/queries/errors_throttling.kql +48 -0
  23. agentops_accelerator-0.7.0/src/agentops/templates/workbooks/queries/latency_percentiles.kql +74 -0
  24. agentops_accelerator-0.7.0/src/agentops/templates/workbooks/queries/traffic_tokens.kql +61 -0
  25. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0/src/agentops_accelerator.egg-info}/PKG-INFO +4 -4
  26. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops_accelerator.egg-info/SOURCES.txt +10 -0
  27. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_posture_rules.py +83 -0
  28. agentops_accelerator-0.7.0/tests/unit/test_cli_dashboard.py +155 -0
  29. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_cockpit.py +54 -23
  30. agentops_accelerator-0.7.0/tests/unit/test_dashboard.py +269 -0
  31. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_init_command.py +2 -2
  32. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.claude-plugin/marketplace.json +0 -0
  33. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.gitattributes +0 -0
  34. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/actions/azure-oidc-login/action.yml +0 -0
  35. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/code-quality-py.instructions.md +0 -0
  36. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/copilot-instructions.md +0 -0
  37. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/dependabot.yml +0 -0
  38. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/extensions/agentops-skills/extension.mjs +0 -0
  39. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/plugin/marketplace.json +0 -0
  40. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/skills/release-management/SKILL.md +0 -0
  41. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/workflows/_build.yml +0 -0
  42. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/workflows/agentops-watchdog.yml +0 -0
  43. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/workflows/ci.yml +0 -0
  44. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/workflows/cut-release.yml +0 -0
  45. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/workflows/e2e.yml +0 -0
  46. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/workflows/release.yml +0 -0
  47. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.github/workflows/staging.yml +0 -0
  48. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.gitignore +0 -0
  49. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.pre-commit-config.yaml +0 -0
  50. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.vscode/launch.json +0 -0
  51. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.vscode/settings.json +0 -0
  52. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/.vscode/tasks.json +0 -0
  53. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/CONTRIBUTING.md +0 -0
  54. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/LICENSE +0 -0
  55. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/SECURITY.md +0 -0
  56. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/bundles.md +0 -0
  57. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/concepts.md +0 -0
  58. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/doctor-checks.md +0 -0
  59. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/doctor-explained.md +0 -0
  60. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/e2e-live-architecture.md +0 -0
  61. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/e2e-live-setup.md +0 -0
  62. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/evaluation.md +0 -0
  63. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/foundry-evaluation-sdk-built-in-evaluators.md +0 -0
  64. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/media/agentops-diagrams.vsdx +0 -0
  65. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/media/foundry-control-plane.png +0 -0
  66. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/docs/release-process.md +0 -0
  67. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/examples/flat-quickstart/README.md +0 -0
  68. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/examples/flat-quickstart/agentops.yaml +0 -0
  69. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/examples/flat-quickstart/dataset.jsonl +0 -0
  70. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/icon.png +0 -0
  71. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/infra/e2e/agent-app/Dockerfile +0 -0
  72. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/infra/e2e/agent-app/app.py +0 -0
  73. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/infra/e2e/agent-app/requirements.txt +0 -0
  74. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/infra/e2e/bootstrap.bicep +0 -0
  75. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/infra/e2e/bootstrap.parameters.example.json +0 -0
  76. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/infra/e2e/perrun.bicep +0 -0
  77. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/launch.json +0 -0
  78. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/media/foundry.svg +0 -0
  79. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/media/quickstart.gif +0 -0
  80. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/.vscodeignore +0 -0
  81. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/LICENSE +0 -0
  82. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/README.md +0 -0
  83. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/package.json +0 -0
  84. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/plugin.json +0 -0
  85. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/skills/agentops-agent/SKILL.md +0 -0
  86. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/skills/agentops-config/SKILL.md +0 -0
  87. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/skills/agentops-dataset/SKILL.md +0 -0
  88. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/skills/agentops-eval/SKILL.md +0 -0
  89. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/skills/agentops-governance/SKILL.md +0 -0
  90. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/plugins/agentops/skills/agentops-report/SKILL.md +0 -0
  91. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/create_support_agent.py +0 -0
  92. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/cut-release.ps1 +0 -0
  93. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/cut-release.sh +0 -0
  94. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/e2e_aggregate_summary.py +0 -0
  95. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/e2e_data/basic.jsonl +0 -0
  96. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/e2e_data/rag.jsonl +0 -0
  97. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/e2e_data/tools.jsonl +0 -0
  98. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/e2e_demo.py +0 -0
  99. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/e2e_hosted_agent.py +0 -0
  100. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/e2e_make_transcript.py +0 -0
  101. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/e2e_render_config.py +0 -0
  102. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/release.ps1 +0 -0
  103. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/release.sh +0 -0
  104. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/setup-e2e-new-tenant.ps1 +0 -0
  105. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/staging.ps1 +0 -0
  106. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/staging.sh +0 -0
  107. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/sync-skills.ps1 +0 -0
  108. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/scripts/sync-skills.sh +0 -0
  109. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/setup.cfg +0 -0
  110. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/__init__.py +0 -0
  111. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/__main__.py +0 -0
  112. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/__init__.py +0 -0
  113. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/_legacy_ids.py +0 -0
  114. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/analyzer.py +0 -0
  115. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/__init__.py +0 -0
  116. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/_rbac_authorization.py +0 -0
  117. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/errors.py +0 -0
  118. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/foundry_config.py +0 -0
  119. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/governance.py +0 -0
  120. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/latency.py +0 -0
  121. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/observability.py +0 -0
  122. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/opex.py +0 -0
  123. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/opex_workspace.py +0 -0
  124. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/posture.py +0 -0
  125. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/posture_rules/content_filter.py +0 -0
  126. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/posture_rules/diagnostics.py +0 -0
  127. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/posture_rules/local_auth.py +0 -0
  128. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/posture_rules/managed_identity.py +0 -0
  129. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/posture_rules/network.py +0 -0
  130. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/rbac_openai_data_plane.py +0 -0
  131. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/regression.py +0 -0
  132. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/release_readiness.py +0 -0
  133. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/safety.py +0 -0
  134. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/checks/spec_conformance.py +0 -0
  135. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/config.py +0 -0
  136. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/findings.py +0 -0
  137. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/history.py +0 -0
  138. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/knowledge/__init__.py +0 -0
  139. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/knowledge/waf-checklist.csv +0 -0
  140. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/llm_assist/__init__.py +0 -0
  141. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/llm_assist/_base.py +0 -0
  142. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/llm_assist/_bundle_rule.py +0 -0
  143. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/llm_assist/_client.py +0 -0
  144. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/llm_assist/_dataset_rules.py +0 -0
  145. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/llm_assist/_engine.py +0 -0
  146. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/llm_assist/_prompt_rules.py +0 -0
  147. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/llm_assist/_spec_rules.py +0 -0
  148. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/production_telemetry.py +0 -0
  149. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/report.py +0 -0
  150. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/server/__init__.py +0 -0
  151. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/server/app.py +0 -0
  152. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/server/auth.py +0 -0
  153. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/server/chat.py +0 -0
  154. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/server/protocol.py +0 -0
  155. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/__init__.py +0 -0
  156. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/_credentials.py +0 -0
  157. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/azure_monitor.py +0 -0
  158. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/azure_resources.py +0 -0
  159. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/foundry_control.py +0 -0
  160. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/results_history.py +0 -0
  161. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/spec_detectors/__init__.py +0 -0
  162. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/spec_detectors/_base.py +0 -0
  163. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/spec_detectors/agents_md.py +0 -0
  164. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/sources/spec_detectors/spec_kit.py +0 -0
  165. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/agent/time_range.py +0 -0
  166. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/cli/__init__.py +0 -0
  167. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/core/__init__.py +0 -0
  168. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/core/agentops_config.py +0 -0
  169. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/core/azd_eval.py +0 -0
  170. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/core/config_loader.py +0 -0
  171. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/core/evaluators.py +0 -0
  172. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/core/governance.py +0 -0
  173. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/core/release_evidence.py +0 -0
  174. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/core/results.py +0 -0
  175. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/core/step_summary.py +0 -0
  176. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/mcp/__init__.py +0 -0
  177. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/mcp/server.py +0 -0
  178. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/__init__.py +0 -0
  179. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/azd_runner.py +0 -0
  180. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/cloud_results.py +0 -0
  181. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/cloud_runner.py +0 -0
  182. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/comparison.py +0 -0
  183. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/diagnostics.py +0 -0
  184. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/invocations.py +0 -0
  185. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/official_eval.py +0 -0
  186. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/orchestrator.py +0 -0
  187. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/prompt_deploy.py +0 -0
  188. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/publisher.py +0 -0
  189. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/reporter.py +0 -0
  190. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/runtime.py +0 -0
  191. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/pipeline/thresholds.py +0 -0
  192. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/__init__.py +0 -0
  193. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/assert_runner.py +0 -0
  194. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/azd_eval_init.py +0 -0
  195. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/cicd.py +0 -0
  196. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/eval_analysis.py +0 -0
  197. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/evidence_pack.py +0 -0
  198. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/initializer.py +0 -0
  199. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/preflight.py +0 -0
  200. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/redteam_runner.py +0 -0
  201. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/setup_wizard.py +0 -0
  202. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/skills.py +0 -0
  203. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/telemetry_import.py +0 -0
  204. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/trace_promotion.py +0 -0
  205. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/services/workflow_analysis.py +0 -0
  206. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/.gitignore +0 -0
  207. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/__init__.py +0 -0
  208. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/agent-server/Dockerfile +0 -0
  209. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/agent-server/README.md +0 -0
  210. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/agent-server/main.bicep +0 -0
  211. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/agent.yaml +0 -0
  212. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/agentops.yaml +0 -0
  213. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/foundry.svg +0 -0
  214. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/icon.png +0 -0
  215. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev-azd.yml +0 -0
  216. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev.yml +0 -0
  217. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod-azd.yml +0 -0
  218. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod.yml +0 -0
  219. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prompt-agent.yml +0 -0
  220. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa-azd.yml +0 -0
  221. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa.yml +0 -0
  222. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-pr-prompt-agent.yml +0 -0
  223. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-pr.yml +0 -0
  224. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/pipelines/azuredevops/agentops-watchdog.yml +0 -0
  225. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/project.gitignore +0 -0
  226. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/sample-traces.jsonl +0 -0
  227. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/skills/agentops-agent/SKILL.md +0 -0
  228. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/skills/agentops-config/SKILL.md +0 -0
  229. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/skills/agentops-dataset/SKILL.md +0 -0
  230. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/skills/agentops-eval/SKILL.md +0 -0
  231. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/skills/agentops-governance/SKILL.md +0 -0
  232. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/skills/agentops-report/SKILL.md +0 -0
  233. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/smoke.jsonl +0 -0
  234. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/waf-checklist.README.md +0 -0
  235. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/waf-checklist.csv +0 -0
  236. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-deploy-dev-azd.yml +0 -0
  237. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-deploy-dev.yml +0 -0
  238. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-deploy-prod-azd.yml +0 -0
  239. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-deploy-prod.yml +0 -0
  240. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-deploy-prompt-agent.yml +0 -0
  241. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-deploy-qa-azd.yml +0 -0
  242. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-deploy-qa.yml +0 -0
  243. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-pr-prompt-agent.yml +0 -0
  244. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-pr.yml +0 -0
  245. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/templates/workflows/agentops-watchdog.yml +0 -0
  246. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/utils/__init__.py +0 -0
  247. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/utils/azd_env.py +0 -0
  248. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/utils/azure_endpoints.py +0 -0
  249. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/utils/colors.py +0 -0
  250. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/utils/dotenv_loader.py +0 -0
  251. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/utils/foundry_discovery.py +0 -0
  252. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/utils/logging.py +0 -0
  253. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/utils/telemetry.py +0 -0
  254. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops/utils/yaml.py +0 -0
  255. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops_accelerator.egg-info/dependency_links.txt +0 -0
  256. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops_accelerator.egg-info/entry_points.txt +0 -0
  257. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops_accelerator.egg-info/requires.txt +0 -0
  258. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/src/agentops_accelerator.egg-info/top_level.txt +0 -0
  259. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/TESTING.md +0 -0
  260. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/fixtures/fake_adapter.py +0 -0
  261. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/fixtures/fake_eval_runner.py +0 -0
  262. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/integration/.gitkeep +0 -0
  263. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/integration/test_cli_flat_schema.py +0 -0
  264. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/integration/test_pipeline_smoke.py +0 -0
  265. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/.gitkeep +0 -0
  266. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_analyzer.py +0 -0
  267. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_categories.py +0 -0
  268. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_checks_errors.py +0 -0
  269. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_checks_foundry_config.py +0 -0
  270. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_checks_observability.py +0 -0
  271. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_checks_opex.py +0 -0
  272. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_checks_opex_workspace.py +0 -0
  273. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_checks_rbac_openai_data_plane.py +0 -0
  274. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_checks_regression.py +0 -0
  275. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_checks_safety.py +0 -0
  276. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_checks_spec_conformance.py +0 -0
  277. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_cli.py +0 -0
  278. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_config.py +0 -0
  279. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_findings.py +0 -0
  280. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_history.py +0 -0
  281. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_opex_workspace_check.py +0 -0
  282. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_results_history.py +0 -0
  283. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agent_server.py +0 -0
  284. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_agentops_config.py +0 -0
  285. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_assert_and_redteam_runners.py +0 -0
  286. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_azd_env.py +0 -0
  287. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_azd_eval.py +0 -0
  288. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_azd_eval_init.py +0 -0
  289. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_azd_runner.py +0 -0
  290. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_azure_endpoints.py +0 -0
  291. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_azure_resources_discovery.py +0 -0
  292. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_cicd.py +0 -0
  293. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_cli_cockpit_connection_summary.py +0 -0
  294. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_cli_cockpit_port_conflict.py +0 -0
  295. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_cli_commands.py +0 -0
  296. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_cli_explain.py +0 -0
  297. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_cloud_results.py +0 -0
  298. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_cloud_runner.py +0 -0
  299. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_diagnostics.py +0 -0
  300. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_doctor_catalog.py +0 -0
  301. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_doctor_cli_explain.py +0 -0
  302. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_dotenv_loader.py +0 -0
  303. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_e2e_render.py +0 -0
  304. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_eval_analysis.py +0 -0
  305. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_eval_run_grader_errors.py +0 -0
  306. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_evaluators.py +0 -0
  307. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_foundry_discovery.py +0 -0
  308. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_governance.py +0 -0
  309. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_http_response_fields.py +0 -0
  310. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_http_streaming.py +0 -0
  311. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_initializer.py +0 -0
  312. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_invocations.py +0 -0
  313. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_knowledge_loader.py +0 -0
  314. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_llm_assist.py +0 -0
  315. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_llm_assist_spec_rules.py +0 -0
  316. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_mcp_server.py +0 -0
  317. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_official_eval.py +0 -0
  318. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_pipeline_publisher.py +0 -0
  319. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_pipeline_reporter.py +0 -0
  320. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_preflight.py +0 -0
  321. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_production_telemetry.py +0 -0
  322. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_prompt_deploy.py +0 -0
  323. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_release_evidence.py +0 -0
  324. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_runtime_conversation.py +0 -0
  325. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_runtime_dataset_response_source.py +0 -0
  326. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_runtime_model_config.py +0 -0
  327. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_runtime_response_fields.py +0 -0
  328. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_setup_wizard.py +0 -0
  329. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_shared_credentials.py +0 -0
  330. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_skills.py +0 -0
  331. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_skills_sync.py +0 -0
  332. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_step_summary.py +0 -0
  333. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_telemetry.py +0 -0
  334. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_telemetry_import.py +0 -0
  335. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_time_range.py +0 -0
  336. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_trace_promotion.py +0 -0
  337. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_workflow_analysis.py +0 -0
  338. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tests/unit/test_yaml_utils.py +0 -0
  339. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/tombstones/vscode/CDN_DEPRECATION_REQUEST.md +0 -0
  340. {agentops_accelerator-0.6.0 → agentops_accelerator-0.7.0}/uv.lock +0 -0
@@ -14,7 +14,7 @@ The repository provides:
14
14
  - A normalized output contract (`results.json`, `report.md`) for CI and PRs
15
15
  - A release evidence contract (`evidence.json`, `evidence.md`) for production promotion reviews
16
16
  - A local Cockpit (`agentops cockpit`) that links out to Foundry for runtime
17
- observability and surfaces Doctor findings AgentOps owns end-to-end
17
+ observability and surfaces Doctor findings AgentOps handles end-to-end
18
18
  - A Doctor (`agentops doctor`) for readiness, regression, and OpEx checks
19
19
  - AI Landing Zone deployment readiness checks that connect official preflight,
20
20
  azd/Bicep workflow deployment, AgentOps eval gates, and private-network runner
@@ -53,6 +53,9 @@ Public CLI contract:
53
53
  - `agentops doctor [--workspace PATH] [--config PATH] [--out PATH] [--lookback-days N] [--severity-fail SEVERITY] [--evidence-pack] [--evidence-out PATH]`
54
54
  - `agentops doctor explain [--no-pager] [--format text|markdown|html] [--out PATH] [--open]`
55
55
  - `agentops cockpit [--host HOST] [--port PORT] [--workspace PATH] [--no-preflight]`
56
+ - `agentops telemetry dashboard deploy [--dry-run] [--subscription ID] [--resource-group RG] [--workspace-id ID] [--name NAME] [--dir PATH]`
57
+ - `agentops telemetry dashboard open [--print-url] [--subscription ID] [--resource-group RG] [--name NAME] [--dir PATH]`
58
+ - `agentops telemetry dashboard export [--out PATH]`
56
59
  - `agentops agent serve [--host HOST] [--port PORT] [--config PATH] [--no-verify] [--workers N]`
57
60
 
58
61
  Exit code contract:
@@ -5,6 +5,42 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.7.0] - 2026-07-01
9
+
10
+ ### Added
11
+ - **Foundry operations dashboard.** A new Azure Monitor Workbook
12
+ (`agentops telemetry dashboard`) surfaces Azure OpenAI capacity (PTU
13
+ utilization, rate-limit, spillover), traffic and tokens, latency
14
+ percentiles (TTFT, TBT, TTLT, tokens/sec), and errors and throttling for a
15
+ given Azure OpenAI resource and Log Analytics workspace. The workbook JSON,
16
+ its per-metric KQL queries, and an authoring README ship as package data.
17
+ Three commands manage it: `deploy` (RBAC + diagnostic-settings preflight,
18
+ then deploy the `Microsoft.Insights/workbooks` ARM resource, with
19
+ `--dry-run` to emit the template), `open` (build the portal deep link and
20
+ open a browser, `--print-url` for non-interactive shells), and `export`
21
+ (copy the packaged workbook JSON to a local path). `agentops telemetry
22
+ dashboard deploy` is the first CLI command that creates an Azure resource;
23
+ it is scoped to a single workbook.
24
+ - **Doctor check for Azure OpenAI usage telemetry.** A new WAF-AI Operational
25
+ Excellence posture rule (`waf.observability.aoai_diagnostic_categories`)
26
+ warns when the Azure OpenAI account is not emitting the `RequestResponse`
27
+ and `AzureOpenAIRequestUsage` diagnostic log categories to a Log Analytics
28
+ workspace, and prints the exact `az monitor diagnostic-settings create`
29
+ fix. Doctor stays read-only.
30
+
31
+ ### Changed
32
+ - **Cockpit redesign answers "can I ship?" first.** The Cockpit now opens with
33
+ three consolidated status cards (Readiness, Doctor, Eval gate) that expand
34
+ their detail sections on click, promotes "Next actions" to second position,
35
+ and collapses the detailed sections by default. The former "Eval gate
36
+ summary" and "Quality gate summary" are merged into a single "Eval gates"
37
+ section with two subgroups. The Foundry launchpad footer adds a "Foundry
38
+ operations dashboard" tile (the same workbook portal URL used by
39
+ `agentops telemetry dashboard open`) next to "Operate overview", folds the
40
+ single-tile "Azure Monitor" group into the Foundry project group, and
41
+ removes the duplicated App Insights CTA from the Production signal section.
42
+ Cockpit remains read-only.
43
+
8
44
  ## [0.6.0] - 2026-06-26
9
45
 
10
46
  ### Added
@@ -17,6 +53,8 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres
17
53
  contract.
18
54
 
19
55
  ### Changed
56
+ - Updated the AgentOps CLI tagline to use `Operate` instead of `Own` for clearer
57
+ operator-focused positioning.
20
58
  - **Prompt-agent PR validation now uses sandbox instead of dev.** Generated
21
59
  GitHub and Azure DevOps PR workflows stage prompt-agent candidates in the
22
60
  sandbox Foundry environment, keeping dev for deployed-of-record versions.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentops-accelerator
3
- Version: 0.6.0
3
+ Version: 0.7.0
4
4
  Summary: Release readiness gates and evidence for Microsoft Foundry agents
5
5
  License: MIT License
6
6
 
@@ -55,7 +55,7 @@ Dynamic: license-file
55
55
  <h1 align="center">AgentOps Accelerator</h1>
56
56
 
57
57
  <p align="center">
58
- <b>Evaluate. Ship. Observe. Own.</b>
58
+ <b>Evaluate. Ship. Observe. Operate.</b>
59
59
  <br/>
60
60
  Continuous evaluation, safety testing, observability, and release readiness for Microsoft Foundry agents.
61
61
  </p>
@@ -75,7 +75,7 @@ Continuous evaluation, safety testing, observability, and release readiness for
75
75
  <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>
76
76
  </p>
77
77
 
78
- 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
+ AgentOps Accelerator helps Microsoft Foundry agent teams evaluate quality, prepare releases, monitor behavior, and operate reliably 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.
79
79
 
80
80
  ## Get started
81
81
 
@@ -100,7 +100,7 @@ Use AgentOps Accelerator when you need to:
100
100
  - Compare changes across versions
101
101
  - Capture release evidence
102
102
  - Monitor agent quality and regressions
103
- - Give teams a repeatable way to own agent behavior in production
103
+ - Give teams a repeatable way to operate agents responsibly in production
104
104
 
105
105
  The accelerator keeps the local workflow simple, then points you to the full
106
106
  docs when you are ready to configure pipelines, dashboards, and release
@@ -1,7 +1,7 @@
1
1
  <h1 align="center">AgentOps Accelerator</h1>
2
2
 
3
3
  <p align="center">
4
- <b>Evaluate. Ship. Observe. Own.</b>
4
+ <b>Evaluate. Ship. Observe. Operate.</b>
5
5
  <br/>
6
6
  Continuous evaluation, safety testing, observability, and release readiness for Microsoft Foundry agents.
7
7
  </p>
@@ -21,7 +21,7 @@ Continuous evaluation, safety testing, observability, and release readiness for
21
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
22
  </p>
23
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.
24
+ AgentOps Accelerator helps Microsoft Foundry agent teams evaluate quality, prepare releases, monitor behavior, and operate reliably 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
25
 
26
26
  ## Get started
27
27
 
@@ -46,7 +46,7 @@ Use AgentOps Accelerator when you need to:
46
46
  - Compare changes across versions
47
47
  - Capture release evidence
48
48
  - Monitor agent quality and regressions
49
- - Give teams a repeatable way to own agent behavior in production
49
+ - Give teams a repeatable way to operate agents responsibly in production
50
50
 
51
51
  The accelerator keeps the local workflow simple, then points you to the full
52
52
  docs when you are ready to configure pipelines, dashboards, and release
@@ -201,7 +201,7 @@ prompt.
201
201
  ### 4. Choose deployment mode
202
202
 
203
203
  AgentOps is azd-first for deployment: AgentOps runs the evaluation gate,
204
- while Azure Developer CLI owns infrastructure, packaging, deployment, and
204
+ while Azure Developer CLI manages infrastructure, packaging, deployment, and
205
205
  hooks declared in `azure.yaml`.
206
206
 
207
207
  Before choosing manually, run:
@@ -371,11 +371,11 @@ agentops workflow analyze --format markdown --out agentops-workflow-plan.md
371
371
 
372
372
  Use the output as the plan for your coding agent:
373
373
 
374
- 1. AgentOps owns repo-side eval gates, Doctor readiness checks, artifacts, and
374
+ 1. AgentOps handles repo-side eval gates, Doctor readiness checks, artifacts, and
375
375
  Cockpit visibility.
376
- 2. `azd` owns `provision`, `deploy`, and hooks for app/infra lifecycle when
376
+ 2. `azd` manages `provision`, `deploy`, and hooks for app/infra lifecycle when
377
377
  `azure.yaml` is present or can be added.
378
- 3. Foundry owns hosted agents, evaluations, traces, and operations.
378
+ 3. Foundry manages hosted agents, evaluations, traces, and operations.
379
379
  4. Project-specific steps such as indexing data, seeding search, building
380
380
  containers, updating app config, or running private-network post-provision
381
381
  work stay in the accelerator's azd hooks or existing deployment tooling.
@@ -425,8 +425,8 @@ contract to gate deploys:
425
425
  | `2` | Eval ran, one or more thresholds failed | ❌ fail (deploy never runs) |
426
426
  | `1` | Runtime / config error | ❌ fail |
427
427
 
428
- For prompt-agent cloud eval, Foundry owns the managed evaluation run and
429
- AgentOps owns the CI exit code. A threshold failure exits `2`, so the PR/deploy
428
+ For prompt-agent cloud eval, Foundry runs the managed evaluation and
429
+ AgentOps enforces the CI exit code. A threshold failure exits `2`, so the PR/deploy
430
430
  gate fails with the failing threshold rows in `report.md`.
431
431
 
432
432
  ## Artifacts
@@ -14,7 +14,7 @@ is the proof?** It:
14
14
  4. Returns CI-friendly exit codes: `0` pass, `2` threshold failure, `1` error.
15
15
  5. Writes release evidence with `agentops doctor --evidence-pack`.
16
16
 
17
- Foundry owns agent creation, deployment, runtime, traces, monitoring,
17
+ Foundry manages agent creation, deployment, runtime, traces, monitoring,
18
18
  red-teaming, datasets, and Microsoft-hosted evaluation drilldown. AgentOps
19
19
  references the candidate those tools produced and adds the repo-controlled
20
20
  release proof:
@@ -26,7 +26,7 @@ review.
26
26
  |---|---|---|---|---|
27
27
  | 1 | Define the agent goal and risks | Foundry docs, VS Code, Copilot | Helps define what must be proven before release. | Success criteria and risk list |
28
28
  | 2 | Choose Prompt Agent or Hosted Agent | Foundry portal, Foundry Toolkit, team architecture | Later references the target as `name:version` or URL. | Target type decision |
29
- | 3 | Provision the **sandbox** and **dev** environments (separate Foundry projects for prompt agents; separate endpoints for hosted agents) | Foundry portal, `microsoft-foundry` skill, your platform | No ownership of create/deploy. | Two environments scoped to author and shared dev work |
29
+ | 3 | Provision the **sandbox** and **dev** environments (separate Foundry projects for prompt agents; separate endpoints for hosted agents) | Foundry portal, `microsoft-foundry` skill, your platform | No AgentOps create/deploy role. | Two environments scoped to author and shared dev work |
30
30
  | 4 | Author and iterate in **sandbox** | Foundry playground (prompt agents) or local app (hosted agents), `agentops eval run` | Local eval gate before opening a PR. | Working sandbox-validated agent |
31
31
  | 5 | Configure release checks | AgentOps CLI and skills | Creates `agentops.yaml` and repo-side release contract. | Release checklist in repo |
32
32
  | 6 | Open PR | Generated PR workflow with `--doctor-gate critical` | Routes to the right runner, normalizes proof, and blocks the PR on critical Doctor findings. | PR gate signal |
@@ -554,7 +554,7 @@ PR as evidence. Production deploy workflows always run Doctor with
554
554
  `--severity-fail critical` regardless of this flag.
555
555
 
556
556
  No tutorial-only Action replacement is needed. The generated workflow keeps the
557
- evaluation in Foundry while AgentOps owns the CI threshold decision and the
557
+ evaluation in Foundry while AgentOps enforces the CI threshold decision and the
558
558
  `results.json` / `report.md` artifacts. The detailed managed-eval view stays in
559
559
  Foundry Evaluations through the link in the AgentOps report.
560
560
 
@@ -8,7 +8,7 @@ or cloud-hosted URL (your **dev** environment) for CI.
8
8
  This path validates the AgentOps local route in a two-environment
9
9
  arrangement:
10
10
 
11
- - Foundry or your app platform owns hosting and runtime operations in
11
+ - Foundry or your app platform manages hosting and runtime operations in
12
12
  each environment.
13
13
  - AgentOps invokes the endpoint from CI, applies repo thresholds, writes
14
14
  normalized `results.json`, runs Doctor with `--severity-fail critical`
@@ -124,7 +124,7 @@ green dev → ready for promotion to qa / prod
124
124
  | Open PR | GitHub or Azure DevOps + generated PR workflow | PR workflow runs eval against the **dev URL** and Doctor with `--severity-fail critical`. | PR gate (eval thresholds + critical Doctor findings block merge). |
125
125
  | Merge + deploy to dev | Your existing deploy pipeline (Foundry Toolkit, azd, ACA, AKS) + generated dev deploy workflow | Update the dev endpoint with the new commit and re-evaluate. | Deploy-time gate with the same `--severity-fail critical` (always strict on deploy). |
126
126
  | Observe runtime | Foundry Operate, Azure Monitor, Application Insights | Confirm traces, latency, errors, and metrics exist. | Checks whether telemetry is wired. |
127
- | Review readiness | AgentOps Doctor and Cockpit | Check CI, eval, telemetry, evidence, and links. | Primary owner of repo-side release proof. |
127
+ | Review readiness | AgentOps Doctor and Cockpit | Check CI, eval, telemetry, evidence, and links. | Primary repo-side release proof surface. |
128
128
 
129
129
  > **Architectural note.** For hosted endpoints the natural regression
130
130
  > gate runs at **deploy time** (post-merge), not PR time. The PR
@@ -8,10 +8,10 @@ Cockpit.
8
8
 
9
9
  This path validates the Foundry-native multi-environment route:
10
10
 
11
- - Foundry owns the prompt agent runtime, cloud evaluation execution, traces,
11
+ - Foundry manages the prompt agent runtime, cloud evaluation execution, traces,
12
12
  Rubric evaluator definitions, traces, Guardrails, red-team scans, and
13
13
  Operate dashboards in **each environment**.
14
- - AgentOps owns repo-side readiness: source-controlled prompts, CI gates,
14
+ - AgentOps manages repo-side readiness: source-controlled prompts, CI gates,
15
15
  Doctor blocking, release evidence, threshold enforcement, ASSERT/ACS evidence
16
16
  references, and Cockpit.
17
17
 
@@ -111,10 +111,10 @@ have a real `foundry-agent.json` artifact to open.
111
111
 
112
112
  | Step | Main tool | What you do | AgentOps role |
113
113
  |---|---|---|---|
114
- | Create two Foundry projects | Foundry portal (or `microsoft-foundry` skill) | Create `travel-agent-sandbox` (where you author) and `travel-agent-dev` (left empty — CI seeds it). | No ownership; AgentOps consumes the published baseline from sandbox and bootstraps dev. |
114
+ | Create two Foundry projects | Foundry portal (or `microsoft-foundry` skill) | Create `travel-agent-sandbox` (where you author) and `travel-agent-dev` (left empty — CI seeds it). | No AgentOps create/deploy role; AgentOps consumes the published baseline from sandbox and bootstraps dev. |
115
115
  | Author in sandbox | Foundry playground | Iterate on the prompt safely in sandbox Foundry. | Optional spot-check via local `agentops eval run`. |
116
116
  | Promote the prompt to git | Editor | Copy validated instructions into `.agentops/prompts/travel-agent.md`. | The CI gate reads this file. |
117
- | First green PR + dev deploy | GitHub Actions + Foundry dev project | Push prompt, open PR, watch CI auto-bootstrap the first version of `travel-agent` in dev from `prompt_agent_bootstrap` (the dev project is still empty at this point), evaluate it, run Doctor; merge; deploy lands in dev. | Owns the gate, the bootstrap-on-first-deploy, the threshold decision, the Doctor blocking step, the deploy artifact, and the release evidence. |
117
+ | First green PR + dev deploy | GitHub Actions + Foundry dev project | Push prompt, open PR, watch CI auto-bootstrap the first version of `travel-agent` in dev from `prompt_agent_bootstrap` (the dev project is still empty at this point), evaluate it, run Doctor; merge; deploy lands in dev. | Runs the gate, bootstrap-on-first-deploy, threshold decision, Doctor blocking step, deploy artifact, and release evidence. |
118
118
  | Force a regression | Editor + GitHub Actions | Edit the prompt to a worse version, push, observe BOTH eval threshold failure AND Doctor regression CRITICAL. | Catches the regression at PR time, not after merge. |
119
119
  | Fix and redeploy | Editor + GitHub Actions | Restore prompt, push, PR green, merge, deploy. | Records the recovery. |
120
120
  | Review readiness | AgentOps Doctor + Cockpit | Check CI, eval, telemetry, evidence, and links. | Turns scattered signals into release blockers, warnings, evidence files, and next actions. |
@@ -1316,12 +1316,12 @@ agentops doctor --workspace . --evidence-pack
1316
1316
  `evidence.json` and `evidence.md` now include the suite/run id, total
1317
1317
  cases, violation counts, attack-success-rate, and SHA-256 hashes for both
1318
1318
  artifacts — without claiming AgentOps invented the verdicts. The verdicts
1319
- come from ASSERT and PyRIT; AgentOps owns orchestration, normalization,
1319
+ come from ASSERT and PyRIT; AgentOps handles orchestration, normalization,
1320
1320
  and gating.
1321
1321
 
1322
1322
  ## 13. Generate the PR + dev deploy workflows
1323
1323
 
1324
- > **Pipeline ownership.** This tutorial uses `agentops workflow generate`
1324
+ > **Pipeline responsibility.** This tutorial uses `agentops workflow generate`
1325
1325
  > because the workflow is the release-readiness contract: it stages the prompt
1326
1326
  > agent, runs eval thresholds, Doctor checks, and writes release evidence. For a
1327
1327
  > full `azd` / AI Landing Zone app, you can also use `azd pipeline config` to
@@ -1396,7 +1396,7 @@ the PR template. The table below summarizes the three values:
1396
1396
  |---|---|
1397
1397
  | `critical` (default) | The PR step fails if Doctor reports any critical findings. Use this to catch regressions that pass thresholds but still drift meaningfully (for example, `groundedness` 5.0 → 4.0). |
1398
1398
  | `warning` | The PR step fails on warnings or critical findings. Tighter; useful for late-stage hardening. |
1399
- | `none` | Doctor runs advisory only. The PR step never fails because of Doctor. Use this only if you have a separate scheduled Doctor pipeline that owns the readiness call. |
1399
+ | `none` | Doctor runs advisory only. The PR step never fails because of Doctor. Use this only if you have a separate scheduled Doctor pipeline that makes the readiness call. |
1400
1400
 
1401
1401
  Deploy templates always run with `--severity-fail critical` regardless of
1402
1402
  `--doctor-gate`. The gate flag affects the PR template only; deploys are
@@ -39,7 +39,7 @@ AgentOps reuses **azd** for app/infrastructure deployment when the repo already
39
39
  has an azd project, and stays **Foundry-native** for prompt-agent candidate
40
40
  workflows. Do not invent a parallel deployment system. AgentOps should gate
41
41
  quality and record proof; `azd provision`, `azd deploy`, azd hooks, Foundry
42
- Toolkit, the `microsoft-foundry` skill, and project tooling own lifecycle
42
+ Toolkit, the `microsoft-foundry` skill, and project tooling manage lifecycle
43
43
  actions.
44
44
 
45
45
  For Foundry prompt-agent configs (`agent: name:version`), the generated eval gate
@@ -453,11 +453,11 @@ needed, put it behind azd's native hook mechanism in `azure.yaml`.
453
453
  For Azure AI accelerators copied from templates, use AgentOps to make the
454
454
  landing-zone path actionable:
455
455
 
456
- 1. AgentOps owns eval gates, Doctor, reports, Cockpit readiness, and the
456
+ 1. AgentOps handles eval gates, Doctor, reports, Cockpit readiness, and the
457
457
  workflow guardrails around deployment.
458
- 2. Foundry owns hosted agents, prompt-agent versions, evaluations, traces,
458
+ 2. Foundry manages hosted agents, prompt-agent versions, evaluations, traces,
459
459
  monitoring, datasets, and operations.
460
- 3. azd/Bicep/AILZ owns app and infrastructure deploy when `azure.yaml` or
460
+ 3. azd/Bicep/AILZ manages app and infrastructure deploy when `azure.yaml` or
461
461
  `infra/*.bicep` exists.
462
462
  4. Project-specific steps such as indexing, data seeding, model deployment,
463
463
  container build/push, App Config updates, or private-network post-provision
@@ -501,7 +501,7 @@ Prompt-agent workflows:
501
501
 
502
502
  This avoids the bad pattern of evaluating one agent version and deploying a
503
503
  different prompt. The invariant is: **evaluated version == deployed version**.
504
- Foundry manages agent versions; AgentOps owns the repo-side gate and
504
+ Foundry manages agent versions; AgentOps enforces the repo-side gate and
505
505
  deployment record. For multi-environment prompt-agent workflows
506
506
  (sandbox → dev → qa → prod), strongly recommend adding the
507
507
  `prompt_agent_bootstrap` block so operators do not have to manually
@@ -61,6 +61,9 @@ where = ["src"]
61
61
  "pipelines/azuredevops/*.yml",
62
62
  "skills/*/SKILL.md",
63
63
  "agent-server/*",
64
+ "workbooks/*.json",
65
+ "workbooks/*.md",
66
+ "workbooks/queries/*.kql",
64
67
  ]
65
68
  "agentops.agent.knowledge" = ["*.csv"]
66
69
 
@@ -722,6 +722,19 @@ CHECKS: Tuple[CheckSpec, ...] = (
722
722
  severities=(Severity.WARNING, Severity.CRITICAL),
723
723
  requires=("azure_resources",),
724
724
  ),
725
+ CheckSpec(
726
+ id="waf.observability.aoai_diagnostic_categories",
727
+ category=Category.OPERATIONAL_EXCELLENCE,
728
+ title="Azure OpenAI usage telemetry categories are not enabled",
729
+ summary=(
730
+ "The Azure OpenAI account is not emitting the RequestResponse "
731
+ "and AzureOpenAIRequestUsage diagnostic log categories to a Log "
732
+ "Analytics workspace, so the Foundry operations dashboard and "
733
+ "any token / latency / throttling analysis render empty."
734
+ ),
735
+ severities=(Severity.WARNING,),
736
+ requires=("azure_resources",),
737
+ ),
725
738
  # ------------------------------------------------------------------
726
739
  # Responsible AI
727
740
  # ------------------------------------------------------------------
@@ -36,6 +36,9 @@ def _build_registry() -> Dict[str, RuleFn]:
36
36
  from agentops.agent.checks.posture_rules.diagnostics import (
37
37
  evaluate as diagnostics_rule,
38
38
  )
39
+ from agentops.agent.checks.posture_rules.aoai_diagnostic_categories import (
40
+ evaluate as aoai_diagnostic_categories_rule,
41
+ )
39
42
  from agentops.agent.checks.posture_rules.local_auth import (
40
43
  evaluate as local_auth_rule,
41
44
  )
@@ -47,6 +50,7 @@ def _build_registry() -> Dict[str, RuleFn]:
47
50
  "waf.security.local_auth_disabled": local_auth_rule,
48
51
  "waf.security.managed_identity": managed_identity_rule,
49
52
  "waf.security.diagnostic_settings": diagnostics_rule,
53
+ "waf.observability.aoai_diagnostic_categories": aoai_diagnostic_categories_rule,
50
54
  }
51
55
 
52
56
 
@@ -0,0 +1,88 @@
1
+ """WAF-AI Operational Excellence: Azure OpenAI usage telemetry must flow.
2
+
3
+ The Foundry operations dashboard (``agentops telemetry dashboard``) and any
4
+ token / latency / throttling analysis depend on two diagnostic log categories
5
+ being enabled on the Azure OpenAI (Cognitive Services) account and routed to a
6
+ Log Analytics workspace:
7
+
8
+ * ``RequestResponse`` - per-request traces (status codes, streaming).
9
+ * ``AzureOpenAIRequestUsage`` - prompt / generated token counts.
10
+
11
+ When either category is missing the workbook tiles render empty. This rule
12
+ fires when the account does not emit both categories and prints the exact
13
+ ``az monitor diagnostic-settings create`` command to fix it. The check is
14
+ read-only; it never changes Azure.
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ import json
20
+ from typing import List
21
+
22
+ from agentops.agent.findings import Category, Finding, Severity
23
+ from agentops.agent.sources.azure_resources import AzureResourcesPayload
24
+
25
+ RULE_ID = "waf.observability.aoai_diagnostic_categories"
26
+
27
+ REQUIRED_CATEGORIES = ("RequestResponse", "AzureOpenAIRequestUsage")
28
+
29
+
30
+ def _fix_command(account_id: str, workspace_id: str) -> str:
31
+ logs = json.dumps([{"category": c, "enabled": True} for c in REQUIRED_CATEGORIES])
32
+ return (
33
+ "az monitor diagnostic-settings create "
34
+ "--name agentops-foundry-ops "
35
+ f"--resource {account_id} "
36
+ f"--workspace {workspace_id} "
37
+ f"--logs '{logs}'"
38
+ )
39
+
40
+
41
+ def evaluate(payload: AzureResourcesPayload, source_name: str) -> List[Finding]:
42
+ account = payload.account
43
+ if account is None:
44
+ return []
45
+
46
+ enabled: set[str] = set()
47
+ for setting in payload.diagnostic_settings:
48
+ for category in setting.enabled_log_categories:
49
+ enabled.add(str(category))
50
+
51
+ missing = [c for c in REQUIRED_CATEGORIES if c not in enabled]
52
+ if not missing:
53
+ return []
54
+
55
+ account_id = getattr(account, "id", None) or f"<{account.name}-resource-id>"
56
+ workspace_id = next(
57
+ (s.workspace_id for s in payload.diagnostic_settings if s.workspace_id),
58
+ "<log-analytics-workspace-id>",
59
+ )
60
+
61
+ return [
62
+ Finding(
63
+ id=RULE_ID,
64
+ severity=Severity.WARNING,
65
+ category=Category.OPERATIONAL_EXCELLENCE,
66
+ title="Azure OpenAI usage telemetry categories are not enabled",
67
+ summary=(
68
+ f"Azure OpenAI account `{account.name}` is not emitting the "
69
+ f"`{'`, `'.join(missing)}` diagnostic log "
70
+ f"{'category' if len(missing) == 1 else 'categories'}. The "
71
+ "Foundry operations dashboard and any token, latency, or "
72
+ "throttling analysis need both `RequestResponse` and "
73
+ "`AzureOpenAIRequestUsage` streamed to a Log Analytics "
74
+ "workspace, so those tiles will render empty."
75
+ ),
76
+ recommendation=(
77
+ "Enable the missing categories with:\n"
78
+ f"{_fix_command(account_id, workspace_id)}"
79
+ ),
80
+ source=source_name,
81
+ evidence={
82
+ "account": account.name,
83
+ "required_categories": list(REQUIRED_CATEGORIES),
84
+ "missing_categories": missing,
85
+ "enabled_categories": sorted(enabled),
86
+ },
87
+ )
88
+ ]