agentops-accelerator 0.3.1__tar.gz → 0.3.3__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 (298) hide show
  1. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.claude-plugin/marketplace.json +1 -1
  2. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/plugin/marketplace.json +1 -1
  3. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/CHANGELOG.md +167 -0
  4. {agentops_accelerator-0.3.1/src/agentops_accelerator.egg-info → agentops_accelerator-0.3.3}/PKG-INFO +15 -15
  5. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/tutorial-end-to-end.md +18 -16
  6. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/tutorial-hosted-agent-quickstart.md +1 -1
  7. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/tutorial-prompt-agent-quickstart.md +122 -80
  8. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/package.json +1 -1
  9. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/plugin.json +1 -1
  10. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/pyproject.toml +15 -15
  11. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/sources/results_history.py +24 -6
  12. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/cli/app.py +3 -2
  13. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/prompt_deploy.py +36 -10
  14. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/cicd.py +40 -1
  15. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev-azd.yml +1 -1
  16. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev.yml +1 -1
  17. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod-azd.yml +1 -1
  18. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod.yml +1 -1
  19. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prompt-agent.yml +3 -3
  20. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa-azd.yml +1 -1
  21. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa.yml +1 -1
  22. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-pr-prompt-agent.yml +2 -2
  23. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-pr.yml +1 -2
  24. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/pipelines/azuredevops/agentops-watchdog.yml +1 -1
  25. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-deploy-dev-azd.yml +1 -1
  26. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-deploy-dev.yml +1 -3
  27. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-deploy-prod-azd.yml +1 -1
  28. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-deploy-prod.yml +1 -3
  29. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-deploy-prompt-agent.yml +3 -3
  30. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-deploy-qa-azd.yml +1 -1
  31. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-deploy-qa.yml +1 -3
  32. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-pr-prompt-agent.yml +2 -2
  33. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-pr.yml +1 -3
  34. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/workflows/agentops-watchdog.yml +1 -1
  35. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3/src/agentops_accelerator.egg-info}/PKG-INFO +15 -15
  36. agentops_accelerator-0.3.3/src/agentops_accelerator.egg-info/requires.txt +25 -0
  37. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_results_history.py +141 -0
  38. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_cicd.py +96 -0
  39. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_prompt_deploy.py +80 -0
  40. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/uv.lock +26 -26
  41. agentops_accelerator-0.3.1/src/agentops_accelerator.egg-info/requires.txt +0 -25
  42. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.gitattributes +0 -0
  43. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/actions/azure-oidc-login/action.yml +0 -0
  44. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/code-quality-py.instructions.md +0 -0
  45. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/copilot-instructions.md +0 -0
  46. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/dependabot.yml +0 -0
  47. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/extensions/agentops-skills/extension.mjs +0 -0
  48. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/skills/release-management/SKILL.md +0 -0
  49. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/workflows/_build.yml +0 -0
  50. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/workflows/agentops-watchdog.yml +0 -0
  51. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/workflows/ci.yml +0 -0
  52. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/workflows/cut-release.yml +0 -0
  53. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/workflows/e2e.yml +0 -0
  54. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/workflows/release.yml +0 -0
  55. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.github/workflows/staging.yml +0 -0
  56. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.gitignore +0 -0
  57. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.pre-commit-config.yaml +0 -0
  58. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.vscode/launch.json +0 -0
  59. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.vscode/settings.json +0 -0
  60. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/.vscode/tasks.json +0 -0
  61. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/AGENTS.md +0 -0
  62. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/CONTRIBUTING.md +0 -0
  63. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/LICENSE +0 -0
  64. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/README.md +0 -0
  65. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/SECURITY.md +0 -0
  66. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/bundles.md +0 -0
  67. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/ci-github-actions.md +0 -0
  68. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/concepts.md +0 -0
  69. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/doctor-checks.md +0 -0
  70. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/doctor-explained.md +0 -0
  71. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/e2e-live-architecture.md +0 -0
  72. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/e2e-live-setup.md +0 -0
  73. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/foundry-evaluation-sdk-built-in-evaluators.md +0 -0
  74. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/how-it-works.md +0 -0
  75. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/media/agentops-diagrams.vsdx +0 -0
  76. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/media/foundry-control-plane.png +0 -0
  77. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/docs/release-process.md +0 -0
  78. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/examples/flat-quickstart/README.md +0 -0
  79. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/examples/flat-quickstart/agentops.yaml +0 -0
  80. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/examples/flat-quickstart/dataset.jsonl +0 -0
  81. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/icon.png +0 -0
  82. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/infra/e2e/agent-app/Dockerfile +0 -0
  83. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/infra/e2e/agent-app/app.py +0 -0
  84. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/infra/e2e/agent-app/requirements.txt +0 -0
  85. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/infra/e2e/bootstrap.bicep +0 -0
  86. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/infra/e2e/bootstrap.parameters.example.json +0 -0
  87. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/infra/e2e/perrun.bicep +0 -0
  88. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/launch.json +0 -0
  89. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/media/foundry.svg +0 -0
  90. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/media/quickstart.gif +0 -0
  91. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/.vscodeignore +0 -0
  92. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/LICENSE +0 -0
  93. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/README.md +0 -0
  94. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/skills/agentops-agent/SKILL.md +0 -0
  95. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/skills/agentops-config/SKILL.md +0 -0
  96. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/skills/agentops-dataset/SKILL.md +0 -0
  97. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/skills/agentops-eval/SKILL.md +0 -0
  98. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/skills/agentops-report/SKILL.md +0 -0
  99. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/plugins/agentops/skills/agentops-workflow/SKILL.md +0 -0
  100. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/create_support_agent.py +0 -0
  101. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/cut-release.ps1 +0 -0
  102. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/cut-release.sh +0 -0
  103. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/e2e_aggregate_summary.py +0 -0
  104. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/e2e_data/basic.jsonl +0 -0
  105. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/e2e_data/rag.jsonl +0 -0
  106. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/e2e_data/tools.jsonl +0 -0
  107. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/e2e_demo.py +0 -0
  108. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/e2e_hosted_agent.py +0 -0
  109. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/e2e_make_transcript.py +0 -0
  110. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/e2e_render_config.py +0 -0
  111. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/release.ps1 +0 -0
  112. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/release.sh +0 -0
  113. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/setup-e2e-new-tenant.ps1 +0 -0
  114. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/staging.ps1 +0 -0
  115. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/staging.sh +0 -0
  116. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/sync-skills.ps1 +0 -0
  117. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/scripts/sync-skills.sh +0 -0
  118. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/setup.cfg +0 -0
  119. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/__init__.py +0 -0
  120. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/__main__.py +0 -0
  121. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/__init__.py +0 -0
  122. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/_legacy_ids.py +0 -0
  123. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/analyzer.py +0 -0
  124. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/__init__.py +0 -0
  125. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/catalog.py +0 -0
  126. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/errors.py +0 -0
  127. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/foundry_config.py +0 -0
  128. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/latency.py +0 -0
  129. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/opex.py +0 -0
  130. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/opex_workspace.py +0 -0
  131. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/posture.py +0 -0
  132. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/posture_rules/__init__.py +0 -0
  133. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/posture_rules/content_filter.py +0 -0
  134. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/posture_rules/diagnostics.py +0 -0
  135. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/posture_rules/local_auth.py +0 -0
  136. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/posture_rules/managed_identity.py +0 -0
  137. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/posture_rules/network.py +0 -0
  138. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/regression.py +0 -0
  139. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/release_readiness.py +0 -0
  140. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/safety.py +0 -0
  141. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/checks/spec_conformance.py +0 -0
  142. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/cockpit.py +0 -0
  143. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/config.py +0 -0
  144. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/findings.py +0 -0
  145. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/history.py +0 -0
  146. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/knowledge/__init__.py +0 -0
  147. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/knowledge/waf-checklist.csv +0 -0
  148. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/llm_assist/__init__.py +0 -0
  149. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/llm_assist/_base.py +0 -0
  150. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/llm_assist/_bundle_rule.py +0 -0
  151. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/llm_assist/_client.py +0 -0
  152. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/llm_assist/_dataset_rules.py +0 -0
  153. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/llm_assist/_engine.py +0 -0
  154. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/llm_assist/_prompt_rules.py +0 -0
  155. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/llm_assist/_spec_rules.py +0 -0
  156. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/production_telemetry.py +0 -0
  157. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/report.py +0 -0
  158. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/server/__init__.py +0 -0
  159. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/server/app.py +0 -0
  160. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/server/auth.py +0 -0
  161. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/server/chat.py +0 -0
  162. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/server/protocol.py +0 -0
  163. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/sources/__init__.py +0 -0
  164. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/sources/azure_monitor.py +0 -0
  165. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/sources/azure_resources.py +0 -0
  166. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/sources/foundry_control.py +0 -0
  167. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/sources/spec_detectors/__init__.py +0 -0
  168. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/sources/spec_detectors/_base.py +0 -0
  169. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/sources/spec_detectors/agents_md.py +0 -0
  170. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/sources/spec_detectors/spec_kit.py +0 -0
  171. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/agent/time_range.py +0 -0
  172. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/cli/__init__.py +0 -0
  173. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/core/__init__.py +0 -0
  174. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/core/agentops_config.py +0 -0
  175. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/core/config_loader.py +0 -0
  176. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/core/evaluators.py +0 -0
  177. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/core/release_evidence.py +0 -0
  178. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/core/results.py +0 -0
  179. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/mcp/__init__.py +0 -0
  180. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/mcp/server.py +0 -0
  181. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/__init__.py +0 -0
  182. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/cloud_results.py +0 -0
  183. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/cloud_runner.py +0 -0
  184. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/comparison.py +0 -0
  185. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/diagnostics.py +0 -0
  186. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/invocations.py +0 -0
  187. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/official_eval.py +0 -0
  188. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/orchestrator.py +0 -0
  189. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/publisher.py +0 -0
  190. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/reporter.py +0 -0
  191. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/runtime.py +0 -0
  192. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/pipeline/thresholds.py +0 -0
  193. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/__init__.py +0 -0
  194. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/eval_analysis.py +0 -0
  195. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/evidence_pack.py +0 -0
  196. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/initializer.py +0 -0
  197. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/preflight.py +0 -0
  198. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/setup_wizard.py +0 -0
  199. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/skills.py +0 -0
  200. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/trace_promotion.py +0 -0
  201. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/services/workflow_analysis.py +0 -0
  202. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/.gitignore +0 -0
  203. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/__init__.py +0 -0
  204. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/agent-server/Dockerfile +0 -0
  205. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/agent-server/README.md +0 -0
  206. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/agent-server/main.bicep +0 -0
  207. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/agent.yaml +0 -0
  208. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/agentops.yaml +0 -0
  209. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/foundry.svg +0 -0
  210. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/icon.png +0 -0
  211. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/project.gitignore +0 -0
  212. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/sample-traces.jsonl +0 -0
  213. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/skills/agentops-agent/SKILL.md +0 -0
  214. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/skills/agentops-config/SKILL.md +0 -0
  215. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/skills/agentops-dataset/SKILL.md +0 -0
  216. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/skills/agentops-eval/SKILL.md +0 -0
  217. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/skills/agentops-report/SKILL.md +0 -0
  218. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/skills/agentops-workflow/SKILL.md +0 -0
  219. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/smoke.jsonl +0 -0
  220. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/waf-checklist.README.md +0 -0
  221. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/templates/waf-checklist.csv +0 -0
  222. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/utils/__init__.py +0 -0
  223. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/utils/azd_env.py +0 -0
  224. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/utils/azure_endpoints.py +0 -0
  225. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/utils/colors.py +0 -0
  226. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/utils/dotenv_loader.py +0 -0
  227. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/utils/foundry_discovery.py +0 -0
  228. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/utils/logging.py +0 -0
  229. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/utils/telemetry.py +0 -0
  230. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops/utils/yaml.py +0 -0
  231. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops_accelerator.egg-info/SOURCES.txt +0 -0
  232. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops_accelerator.egg-info/dependency_links.txt +0 -0
  233. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops_accelerator.egg-info/entry_points.txt +0 -0
  234. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/src/agentops_accelerator.egg-info/top_level.txt +0 -0
  235. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/TESTING.md +0 -0
  236. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/fixtures/fake_adapter.py +0 -0
  237. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/fixtures/fake_eval_runner.py +0 -0
  238. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/integration/.gitkeep +0 -0
  239. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/integration/test_cli_flat_schema.py +0 -0
  240. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/integration/test_pipeline_smoke.py +0 -0
  241. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/.gitkeep +0 -0
  242. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_analyzer.py +0 -0
  243. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_categories.py +0 -0
  244. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_checks_errors.py +0 -0
  245. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_checks_foundry_config.py +0 -0
  246. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_checks_opex.py +0 -0
  247. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_checks_opex_workspace.py +0 -0
  248. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_checks_regression.py +0 -0
  249. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_checks_safety.py +0 -0
  250. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_checks_spec_conformance.py +0 -0
  251. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_cli.py +0 -0
  252. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_config.py +0 -0
  253. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_findings.py +0 -0
  254. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_history.py +0 -0
  255. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_opex_workspace_check.py +0 -0
  256. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_posture_rules.py +0 -0
  257. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agent_server.py +0 -0
  258. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_agentops_config.py +0 -0
  259. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_azd_env.py +0 -0
  260. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_azure_endpoints.py +0 -0
  261. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_azure_resources_discovery.py +0 -0
  262. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_cli_cockpit_connection_summary.py +0 -0
  263. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_cli_cockpit_port_conflict.py +0 -0
  264. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_cli_commands.py +0 -0
  265. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_cli_explain.py +0 -0
  266. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_cloud_results.py +0 -0
  267. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_cloud_runner.py +0 -0
  268. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_cockpit.py +0 -0
  269. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_diagnostics.py +0 -0
  270. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_doctor_catalog.py +0 -0
  271. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_doctor_cli_explain.py +0 -0
  272. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_dotenv_loader.py +0 -0
  273. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_e2e_render.py +0 -0
  274. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_eval_analysis.py +0 -0
  275. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_evaluators.py +0 -0
  276. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_foundry_discovery.py +0 -0
  277. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_init_command.py +0 -0
  278. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_initializer.py +0 -0
  279. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_invocations.py +0 -0
  280. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_knowledge_loader.py +0 -0
  281. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_llm_assist.py +0 -0
  282. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_llm_assist_spec_rules.py +0 -0
  283. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_mcp_server.py +0 -0
  284. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_official_eval.py +0 -0
  285. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_pipeline_publisher.py +0 -0
  286. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_pipeline_reporter.py +0 -0
  287. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_preflight.py +0 -0
  288. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_production_telemetry.py +0 -0
  289. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_release_evidence.py +0 -0
  290. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_runtime_conversation.py +0 -0
  291. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_setup_wizard.py +0 -0
  292. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_skills.py +0 -0
  293. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_skills_sync.py +0 -0
  294. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_telemetry.py +0 -0
  295. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_time_range.py +0 -0
  296. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_trace_promotion.py +0 -0
  297. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tests/unit/test_workflow_analysis.py +0 -0
  298. {agentops_accelerator-0.3.1 → agentops_accelerator-0.3.3}/tombstones/vscode/CDN_DEPRECATION_REQUEST.md +0 -0
@@ -13,7 +13,7 @@
13
13
  "name": "agentops-accelerator",
14
14
  "source": "../../plugins/agentops",
15
15
  "description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Toolkit and Microsoft Foundry agents.",
16
- "version": "0.3.1",
16
+ "version": "0.3.3",
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.1",
16
+ "version": "0.3.3",
17
17
  "keywords": [
18
18
  "agentops",
19
19
  "evaluation",
@@ -5,6 +5,173 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.3.3] - 2026-05-31
9
+
10
+ ### Changed
11
+ - **Runtime dependencies now have upper bounds so a future SDK major release
12
+ cannot silently break installs.** `pyproject.toml` previously declared every
13
+ Azure-SDK dependency with only a lower bound (e.g. `azure-ai-projects>=2.0.1`),
14
+ so `pip install agentops-accelerator` could resolve `azure-ai-projects 3.x`
15
+ the day after that ships and break the agent-definition serialization (the
16
+ exact failure mode that produced the `invalid_payload — Required properties
17
+ ["kind"] are not present` regression below). Each Azure SDK dependency
18
+ (`azure-ai-projects`, `azure-ai-evaluation`, `azure-identity`, `azure-monitor-*`,
19
+ `azure-mgmt-*`) is now constrained to its current major. `pandas`, `fastapi`,
20
+ `uvicorn`, `httpx`, and `markdown` are similarly capped to their next major.
21
+ `cryptography` is intentionally left unbounded so security patches can flow
22
+ through without a coordinated AgentOps release. Lift any of these bounds via
23
+ an explicit PR that exercises the new SDK against `tests/`.
24
+
25
+ - **`agentops workflow generate` now stamps the installed agentops version
26
+ into generated CI/CD templates instead of always installing from
27
+ `git+...@main`.** Every generated `agentops-pr.yml`, `agentops-deploy-*.yml`,
28
+ `agentops-watchdog.yml` (and their Azure DevOps pipeline equivalents) used to
29
+ contain `pip install "agentops-accelerator[...] @ git+https://github.com/Azure/agentops.git@main"`,
30
+ with no version pin and a stale "NOTE: pinned to GitHub main until the next
31
+ package release" comment. User CI runs were therefore non-reproducible: the
32
+ same workflow file pulled different agentops snapshots day to day, which is
33
+ how PO's recorded tutorial took a hard SDK regression mid-record. The
34
+ generator now writes a literal `==X.Y.Z` pin derived from the agentops version
35
+ currently installed on the machine running `agentops workflow generate` — so
36
+ a user who generates workflows against AgentOps `0.3.3` always installs
37
+ `agentops-accelerator==0.3.3` on every CI run, and `agentops-accelerator`
38
+ brings exact-major Azure SDKs along (per the upper bounds above). Editable
39
+ installs (versions carrying a local segment like `+gabcdef` or marked
40
+ `.devN`) keep the `@main` fallback so contributors testing template changes
41
+ still get a resolvable install. Existing user workflows are unaffected until
42
+ the user re-runs `agentops workflow generate --force` against a release of
43
+ AgentOps that ships this change.
44
+
45
+ ### Fixed
46
+ - **Doctor regression check no longer flags the previous PR run as "current"
47
+ in CI.** The results-history loader (`agent/sources/results_history.py`)
48
+ was reading the wrong fields from `results.json` and excluding
49
+ `.agentops/results/latest/` from the candidate list. Three coordinated
50
+ schema-alignment fixes restore correctness:
51
+ 1. `_summarize` now reads top-level `aggregate_metrics` first (the field
52
+ the orchestrator actually writes, per `core/results.py`), then falls
53
+ back to legacy `metrics`/`run_metrics`. Previously the loader looked
54
+ only at the legacy fields, so every freshly-written local
55
+ `RunSummary` had `metrics = {}` and the regression check could never
56
+ see the current run's metrics.
57
+ 2. `_summarize` now reads `summary.overall_passed` first when deriving
58
+ the `run_pass` flag, then falls back to the legacy `summary.run_pass`
59
+ / `metrics.run_pass` shapes.
60
+ 3. `_summarize` now orders runs by `timestamp` → `finished_at` →
61
+ `started_at` → `created_at` → `summary.timestamp`. The previous list
62
+ omitted `finished_at`/`started_at`, which are the two fields
63
+ `results.json` actually contains, so every loaded run defaulted to
64
+ epoch-zero ordering.
65
+ 4. `_collect_local_runs` now includes `.agentops/results/latest/` when it
66
+ is the only local results directory. In CI, generated workflows run
67
+ `agentops eval run --output .agentops/results/latest` and write
68
+ nowhere else; the old loader unconditionally skipped `latest/` for
69
+ dev-mode dedup, so in CI `local_runs` was always empty. With cloud
70
+ listing trailing behind by seconds (eventual consistency), the
71
+ regression check would then compute `latest = previous_run` and
72
+ blame the just-completed candidate's coherence/groundedness on the
73
+ prior PR. Dev-mode dedup is preserved: when a timestamped sibling
74
+ exists, `latest/` is still skipped.
75
+ - **Prompt-agent deploy: `stage` no longer fails with `Required properties ["kind"] are not present` against `azure-ai-projects` 2.x.**
76
+ `_copy_definition` previously called `.copy()` on the typed
77
+ `PromptAgentDefinition` returned by `get_version`. In SDK 1.x that
78
+ preserved the typed model so the body serialized as a flat
79
+ `{"kind": "prompt", "model": ..., "instructions": ...}`. In SDK 2.x
80
+ the same `.copy()` returns a stripped base `Model` whose JSON shape
81
+ is `{"_data": {"kind": "prompt", ...}}`, and `.get("kind")` returns
82
+ `None` — so the request body that reached the Foundry Agents service
83
+ contained `definition: {"_data": {...}}` with no top-level `kind`,
84
+ and the service rejected it with `invalid_payload`. This regression
85
+ only fired on the `created` action path (i.e. when the user's prompt
86
+ differed from the seed); the `reused` and bootstrap paths were
87
+ unaffected because they don't round-trip the typed model through
88
+ `.copy()`. `_copy_definition` now normalizes any SDK definition
89
+ object to a plain `dict` before mutation, and `_create_agent_version`
90
+ no longer puts a root-level `kind` on the request body (the new API
91
+ treats `kind` strictly as the discriminator inside `definition`).
92
+ - **Tutorial: prompt-agent step 13 now shows the steady-state `foundry-agent.json` (action: reused) instead of the bootstrap edge case.**
93
+ The example JSON in step 13 previously showed `action: bootstrapped`
94
+ with `candidate_agent: "travel-agent:1"` and a "the two numbers are
95
+ expected to differ until the environment has caught up to the seed"
96
+ explanation. In practice the merge-triggered deploy is almost never
97
+ the run that bootstraps — by the time the user reaches step 13, the
98
+ skill's verification dispatch in step 12 plus the first PR run have
99
+ already settled dev to `travel-agent:2`, so the merge deploy reports
100
+ `action: reused` with `candidate_agent: "travel-agent:2"` (matching
101
+ `source_agent`). The example now shows the steady-state shape (taken
102
+ from a real recording), uses the runner-resolved absolute paths the
103
+ user actually sees (`/home/runner/work/<your-repo>/...`), and uses a
104
+ real 64-char `prompt_sha256` + a real ISO timestamp. The
105
+ three-outcome list (`reused` / `created` / `bootstrapped`) below the
106
+ JSON keeps the bootstrap case as the documented edge condition.
107
+ - **Tutorial: prompt-agent step 13 now matches what the workflow skill actually does (dispatches both workflows).**
108
+ PR #211 mistakenly narrowed the step 13 callout to say the workflow
109
+ skill only dispatches `agentops-pr.yml` as a verification run, based
110
+ on incorrect reasoning about `push:` triggers (the skill actually
111
+ uses `workflow_dispatch`, which works against any branch regardless
112
+ of the workflow's `push:` block). In practice — verified against a
113
+ live recording — the skill dispatches **both** `agentops-pr.yml`
114
+ and `agentops-deploy-dev.yml` end-to-end as part of CI verification,
115
+ asking the user to approve first per SKILL.md rule #14. The step 13
116
+ callout now reflects this and explains the expected outcome (both
117
+ runs may exit `threshold_failed` on first contact with an empty dev
118
+ project because the bootstrap path produces a fresh `travel-agent:1`
119
+ that has not been measured against the seed thresholds yet — by
120
+ design, not a CI wiring failure). The "What you should see in the
121
+ first PR workflow run" section also updates from the
122
+ "dev is still empty" assumption (which becomes false after the
123
+ skill's verification dispatch) to the three possible outcomes
124
+ (`reused` / `created` / `bootstrapped`) you can actually see at this
125
+ point. The "After the merge" paragraph now calls out that the
126
+ merge-triggered deploy is the **second** deploy-dev run for the
127
+ repo, not the first.
128
+ - **Tutorials: end-to-end audit caught misleading dist URLs, phantom CLI commands, missing JSON fields, and stale Doctor advisory text.**
129
+ All three tutorials previously installed the development build from a
130
+ personal fork URL (`git+https://github.com/placerda/agentops.git@develop`);
131
+ they now point at the canonical
132
+ `git+https://github.com/Azure/agentops.git@develop`. The prompt-agent
133
+ tutorial referenced a non-existent `prompt_deploy record` subcommand in
134
+ two places — the actual command is `prompt_deploy summarize`, matching
135
+ `src/agentops/pipeline/prompt_deploy.py` and the deploy template's
136
+ `Mark candidate as deployed` step. The same tutorial's `foundry-agent.json`
137
+ sample was missing the `eval_config` field that the code writes at
138
+ `src/agentops/pipeline/prompt_deploy.py:186`. The step 12 skill prompt
139
+ and the step 13 prose did not tell the reader to rewrite the dev-deploy
140
+ trigger from `develop` to `main` for this trunk-on-`main` tutorial; the
141
+ generator's stock default is `develop`, which would silently no-op after
142
+ the first merge. Step 12 now instructs the skill to do the rewrite (and
143
+ the bullet list of skill actions calls it out as a required step, with
144
+ a manual-edit fallback). Step 13's "deploy fires automatically on `main`"
145
+ sentence now states the dependency on the step 12 rewrite explicitly,
146
+ and the placeholder phrase "your trunk branch" is now disambiguated as
147
+ "`main` in this tutorial". The end-to-end tutorial's step 5 and step 9
148
+ Doctor descriptions still read as if Doctor were advisory-only in PR
149
+ workflows — that text predates the `--doctor-gate critical` default;
150
+ both blocks now describe the actual behavior (critical findings block
151
+ the PR by default; warning/info are evidence-only).
152
+
153
+ ### Changed
154
+ - **Tutorials: skip-if-skill callouts now state the skill's outcome directly and accurately.**
155
+ The `step 13` callout in `docs/tutorial-prompt-agent-quickstart.md` and the
156
+ baseline-run paragraph in `docs/tutorial-end-to-end.md` previously opened
157
+ with "if you used the workflow skill, this is already done…" plus a
158
+ manual-fallback block. That conditional framing was confusing because the
159
+ preceding step (`step 12` of the prompt-agent tutorial, `step 5` of the
160
+ end-to-end tutorial) only documents the workflow-skill path — there is no
161
+ alternative wired-by-hand path the reader could have taken. Both callouts
162
+ now state the skill's outcome directly, and the redundant `git add` /
163
+ `commit` / `push` and `gh workflow run agentops-pr.yml --ref main` blocks
164
+ have been removed (the skill already triggers the first run). A small
165
+ `gh run list` / `gh run watch` snippet remains as an opt-in way to wait
166
+ on the run from the terminal instead of the Actions UI. The previous
167
+ wording also over-claimed that the skill triggered verification runs of
168
+ **both** `agentops-pr.yml` and `agentops-deploy-dev.yml`; the skill only
169
+ dispatches the PR workflow as a sanity check (`workflow_dispatch`), while
170
+ `agentops-deploy-dev.yml` triggers on the first real merge into the trunk
171
+ branch. The callout now reflects this accurately and notes that the
172
+ deploy-dev run happens at the end of the section, not during the skill's
173
+ setup.
174
+
8
175
  ## [0.3.1] - 2026-05-29
9
176
 
10
177
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentops-accelerator
3
- Version: 0.3.1
3
+ Version: 0.3.3
4
4
  Summary: Release readiness gates and evidence for Microsoft Foundry agents
5
5
  License: MIT License
6
6
 
@@ -30,25 +30,25 @@ License-File: LICENSE
30
30
  Requires-Dist: typer<1.0,>=0.12
31
31
  Requires-Dist: pydantic<3,>=2
32
32
  Requires-Dist: ruamel.yaml<1.0,>=0.18
33
- Requires-Dist: azure-ai-projects>=2.0.1
33
+ Requires-Dist: azure-ai-projects<3.0,>=2.0.1
34
34
  Provides-Extra: mcp
35
35
  Requires-Dist: mcp<2,>=1.0; extra == "mcp"
36
36
  Provides-Extra: foundry
37
- Requires-Dist: azure-ai-evaluation>=1.0; extra == "foundry"
38
- Requires-Dist: azure-identity>=1.17; extra == "foundry"
39
- Requires-Dist: azure-monitor-opentelemetry>=1.6; extra == "foundry"
40
- Requires-Dist: pandas>=2.0; extra == "foundry"
37
+ Requires-Dist: azure-ai-evaluation<2.0,>=1.0; extra == "foundry"
38
+ Requires-Dist: azure-identity<2.0,>=1.17; extra == "foundry"
39
+ Requires-Dist: azure-monitor-opentelemetry<2.0,>=1.6; extra == "foundry"
40
+ Requires-Dist: pandas<3.0,>=2.0; extra == "foundry"
41
41
  Provides-Extra: agent
42
- Requires-Dist: fastapi>=0.110; extra == "agent"
43
- Requires-Dist: uvicorn[standard]>=0.30; extra == "agent"
44
- Requires-Dist: httpx>=0.27; extra == "agent"
42
+ Requires-Dist: fastapi<1.0,>=0.110; extra == "agent"
43
+ Requires-Dist: uvicorn[standard]<1.0,>=0.30; extra == "agent"
44
+ Requires-Dist: httpx<1.0,>=0.27; extra == "agent"
45
45
  Requires-Dist: cryptography>=42; extra == "agent"
46
- Requires-Dist: markdown>=3.6; extra == "agent"
47
- Requires-Dist: azure-monitor-query>=1.3; extra == "agent"
48
- Requires-Dist: azure-monitor-opentelemetry>=1.6; extra == "agent"
49
- Requires-Dist: azure-identity>=1.17; extra == "agent"
50
- Requires-Dist: azure-mgmt-cognitiveservices>=13.5; extra == "agent"
51
- Requires-Dist: azure-mgmt-monitor>=6.0; extra == "agent"
46
+ Requires-Dist: markdown<4.0,>=3.6; extra == "agent"
47
+ Requires-Dist: azure-monitor-query<2.0,>=1.3; extra == "agent"
48
+ Requires-Dist: azure-monitor-opentelemetry<2.0,>=1.6; extra == "agent"
49
+ Requires-Dist: azure-identity<2.0,>=1.17; extra == "agent"
50
+ Requires-Dist: azure-mgmt-cognitiveservices<14.0,>=13.5; extra == "agent"
51
+ Requires-Dist: azure-mgmt-monitor<7.0,>=6.0; extra == "agent"
52
52
  Dynamic: license-file
53
53
 
54
54
  <h1 align="center">AgentOps Accelerator</h1>
@@ -129,7 +129,7 @@ install the aligned reference branch so the CLI, generated workflows, and
129
129
  tutorial steps stay in sync:
130
130
 
131
131
  ```powershell
132
- python -m pip install "agentops-accelerator[foundry,agent] @ git+https://github.com/placerda/agentops.git@develop"
132
+ python -m pip install "agentops-accelerator[foundry,agent] @ git+https://github.com/Azure/agentops.git@develop"
133
133
  ```
134
134
 
135
135
  You will provide the target values through the interactive `agentops init`
@@ -451,9 +451,13 @@ The generated workflow prepares a temporary cloud config, runs
451
451
 
452
452
  It also records release evidence after the gate.
453
453
 
454
- In PR workflows, that Doctor evidence is advisory: the eval step is the merge
455
- gate, and `Release readiness: blocked` means the evidence found release work to
456
- review. Production deploy workflows still run Doctor as a critical release gate.
454
+ Doctor runs in the PR workflow with `--severity-fail critical` (the
455
+ `--doctor-gate critical` default). A critical Doctor finding for example
456
+ `regression.coherence: critical` from a metric drop that still passes
457
+ thresholds — fails the PR check the same way an eval threshold breach
458
+ does. Warning- and info-level findings are advisory and attached to the
459
+ PR as evidence. Production deploy workflows always run Doctor with
460
+ `--severity-fail critical` regardless of this flag.
457
461
 
458
462
  No tutorial-only Action replacement is needed. The generated workflow keeps the
459
463
  evaluation in Foundry while AgentOps owns the CI threshold decision and the
@@ -468,14 +472,10 @@ and rerun the same gate.
468
472
 
469
473
  ### Prompt Agent regression
470
474
 
471
- Make sure the original prompt version has one green workflow run before you
472
- change it. **If you used the workflow skill in step 5 above, this is already
473
- done** the skill commits your changes, pushes to GitHub, and triggers a first
474
- verification run of `agentops-pr.yml`. Open the latest workflow run's Foundry
475
- Evaluations link and keep that page open as the baseline. If you skipped the
476
- skill and wired CI by hand, commit the generated workflow and `agentops.yaml`,
477
- run `gh workflow run agentops-pr.yml --ref main`, and use that run as the
478
- baseline.
475
+ The workflow skill in step 5 above already committed your changes, pushed
476
+ `main` to GitHub, and triggered a first verification run of `agentops-pr.yml`.
477
+ Open the latest workflow run's Foundry Evaluations link and keep that page
478
+ open as the baseline.
479
479
 
480
480
  1. In Foundry, edit the `travel-agent` instructions to this intentionally bad
481
481
  version:
@@ -755,10 +755,12 @@ show whether the repo has the release machinery reviewers expect. Use critical
755
755
  findings as release blockers and warning/info findings as the backlog that turns
756
756
  the POC into an operated service.
757
757
 
758
- If those same Doctor findings appear inside a PR workflow, treat them as
759
- evidence attached to the PR rather than as the merge gate. The eval step gates
760
- the PR; production deploy workflows are where critical Doctor findings block the
761
- release path.
758
+ If those same Doctor findings appear inside a PR workflow, critical
759
+ findings block the merge by default (the PR template runs Doctor with
760
+ `--severity-fail critical`, the `--doctor-gate critical` default); warning
761
+ and info findings are attached to the PR as evidence rather than as a
762
+ gate. Production deploy workflows always run Doctor with
763
+ `--severity-fail critical` and are the last-mile release gate.
762
764
 
763
765
  Open both files. The Doctor report is the diagnostic view: it tells you which
764
766
  signals are present, which are missing, and whether the finding is blocking or
@@ -160,7 +160,7 @@ install the aligned reference branch so the CLI, generated workflows, and
160
160
  tutorial steps stay in sync:
161
161
 
162
162
  ```powershell
163
- python -m pip install "agentops-accelerator[foundry,agent] @ git+https://github.com/placerda/agentops.git@develop"
163
+ python -m pip install "agentops-accelerator[foundry,agent] @ git+https://github.com/Azure/agentops.git@develop"
164
164
  ```
165
165
 
166
166
  ## 2. Create the Travel Agent endpoint
@@ -137,7 +137,7 @@ path, install the aligned reference branch so the CLI, generated
137
137
  workflows, and tutorial steps stay in sync:
138
138
 
139
139
  ```powershell
140
- python -m pip install "agentops-accelerator[foundry,agent] @ git+https://github.com/placerda/agentops.git@develop"
140
+ python -m pip install "agentops-accelerator[foundry,agent] @ git+https://github.com/Azure/agentops.git@develop"
141
141
  ```
142
142
 
143
143
  ## 2. Install the AgentOps Copilot skills
@@ -670,7 +670,7 @@ The PR workflow now has two jobs:
670
670
  > candidate version numbers.
671
671
 
672
672
  The dev deploy workflow stages a candidate (same logic), evaluates it,
673
- records the deployment via `prompt_deploy record`, and uploads
673
+ summarizes the deployment via `prompt_deploy summarize`, and uploads
674
674
  `.agentops/deployments/foundry-agent.json` as a workflow artifact.
675
675
 
676
676
  The `--doctor-gate critical` flag controls the Doctor severity floor in
@@ -725,6 +725,14 @@ the OpenAI User role, the Foundry cloud graders fail with a 401 and every
725
725
  metric comes back null), and do not set up `qa`, `production`, scheduled
726
726
  Doctor, or hosted deployment workflows yet.
727
727
 
728
+ I am using trunk-based development with `main` as both my trunk and dev
729
+ branch. The generator's stock dev-deploy trigger is `push: branches:
730
+ [develop]`. Rewrite the `agentops-deploy-dev.yml` (and the matching
731
+ `agentops-pr.yml` `pull_request: branches:` list, if it references
732
+ `develop`) so they fire on `main` instead. The PR gate must run on PRs
733
+ targeting `main`, and the dev deploy must auto-run on push to `main`
734
+ after a merge.
735
+
728
736
  The dev Foundry project endpoint is in `.azure/dev/.env`; the sandbox
729
737
  endpoint is local-only and must not be added to CI.
730
738
 
@@ -741,6 +749,14 @@ it skips:
741
749
  - Set Actions variables `AZURE_TENANT_ID`, `AZURE_SUBSCRIPTION_ID`,
742
750
  `AZURE_CLIENT_ID`, `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT` (the dev
743
751
  endpoint), and `APPLICATIONINSIGHTS_CONNECTION_STRING` if available.
752
+ - **Rewrite the dev deploy trigger to `main`.** The generator emits the
753
+ stock GitFlow defaults (`pull_request: branches: [develop, "release/**",
754
+ main]` on `agentops-pr.yml`, `push: branches: [develop]` on
755
+ `agentops-deploy-dev.yml`). For this trunk-on-`main` tutorial the
756
+ skill should rewrite both so the PR gate fires on PRs into `main` and
757
+ the deploy fires on push to `main`. If the skill skips this rewrite,
758
+ open the two YAML files in `.github/workflows/` and edit the
759
+ `branches:` lists by hand before opening the first PR.
744
760
  - Verify the OIDC principal has **two** Azure RBAC roles before the first
745
761
  run. Both are required and the eval step fails silently (every metric
746
762
  returns `null`) if only one is in place:
@@ -761,66 +777,71 @@ This is the happy path. Before the regression step, you need a clean
761
777
  green baseline so the rolling-history Doctor checks (regression, drift)
762
778
  have something to compare against.
763
779
 
764
- > **If you used the workflow skill in step 12, the next two code
765
- > blocks have already been done skip straight to "Now open a feature
766
- > branch..." below.** The `agentops-workflow` skill commits your local
767
- > changes, pushes `main` to the GitHub remote, and triggers a first
768
- > verification run of both `agentops-pr.yml` and `agentops-deploy-dev.yml`
769
- > as part of its end-to-end setup. Open the repo's **Actions** tab and
770
- > confirm both runs are present — `Stage Foundry prompt candidate (PR)`
771
- > + `AgentOps eval (PR gate)` should be green on the PR workflow, and
772
- > `agentops-deploy-dev.yml` should have a matching run that also went
773
- > green. Only run the `git add` / `commit` / `push` and `gh workflow run`
774
- > commands below if you skipped the skill and wired CI by hand, or if
775
- > the skill stopped before pushing your latest local changes (run
776
- > `git status` first — if the working tree is clean and the remote has
777
- > your commits, the manual commands are no-ops).
778
-
779
- ```powershell
780
- git add agentops.yaml .agentops .github\workflows
781
- git commit -m "Add AgentOps prompt agent gate + dev deploy"
782
- git push -u origin main
783
- ```
784
-
785
- Open the repository in GitHub and confirm both workflows appear under
786
- **Actions**. Trigger the PR workflow once on `main` so the dev project
787
- has a known-good candidate run:
780
+ The workflow skill in step 12 already committed your local changes,
781
+ pushed `main` to the GitHub remote, and dispatched first verification
782
+ runs of **both** `agentops-pr.yml` and `agentops-deploy-dev.yml` (via
783
+ `workflow_dispatch`, after asking you to approve) so the CI wiring is
784
+ verified end-to-end. Open the repo's **Actions** tab and confirm both
785
+ runs reached the eval stage:
786
+
787
+ - `agentops-pr.yml` `Stage Foundry prompt candidate (PR)` and
788
+ `AgentOps eval (PR gate)` jobs both ran.
789
+ - `agentops-deploy-dev.yml` `stage-candidate`, `eval`, and the
790
+ `Mark candidate as deployed` step all ran (the deploy job uses
791
+ `prompt_deploy summarize`, not a real Foundry promotion it writes
792
+ the deployment record artifact + workflow summary).
793
+
794
+ It is **expected** for one or both of these first runs to exit
795
+ `threshold_failed` (`exit 2`) when the dev Foundry project starts
796
+ empty: the bootstrap path creates a fresh `travel-agent:1` (and, on
797
+ the next run, `:2`) in dev and evaluates it against the seed
798
+ `agentops.yaml` thresholds, which can miss on first contact. That is
799
+ by design, not a CI wiring failure. What you are really verifying at
800
+ this point is the plumbing — OIDC, Foundry RBAC, the evaluator
801
+ deployment, the staging step, the deploy summary writer and that
802
+ dev now contains a bootstrapped version of the agent.
803
+
804
+ `agentops-deploy-dev.yml` will fire **again** automatically when you
805
+ merge the baseline PR at the end of this section, because the skill
806
+ rewrote its trigger from `develop` to `main` in step 12.
807
+
808
+ If you want to wait on the first PR-workflow verification run from the
809
+ terminal instead of the Actions UI:
788
810
 
789
811
  ```powershell
790
- gh workflow run agentops-pr.yml --ref main
791
- Start-Sleep -Seconds 10
792
812
  $runId = gh run list --workflow agentops-pr.yml --branch main --limit 1 --json databaseId --jq '.[0].databaseId'
793
813
  gh run view $runId --web
794
814
  gh run watch $runId --exit-status
795
815
  ```
796
816
 
797
- What you should see in the **first** PR workflow run (dev is still
798
- empty at this point):
817
+ What you should see in the **first** PR workflow run, after the
818
+ skill's verification dispatches have already touched dev:
799
819
 
800
820
  1. **Stage Foundry prompt candidate (PR)** job runs first. The
801
- `prompt_deploy stage` step tries to look up `travel-agent:2` in the
802
- dev project and gets a 404. Because `agentops.yaml` includes a
803
- `prompt_agent_bootstrap` block, the step:
804
- - reads the `model` (`gpt-4o-mini`) and optional `description` from
805
- `prompt_agent_bootstrap`,
806
- - reads the instructions from `prompt_file`,
807
- - creates a new version of `travel-agent` in the dev project from
808
- those defaults via the Foundry SDK. The SDK assigns the version
809
- number per-project; in an empty dev project the first version is
810
- normally `travel-agent:1` (not `:2`, because dev has no draft
811
- history of its own),
812
- - reports `action: bootstrapped` and uses the freshly-bootstrapped
813
- version as the candidate.
821
+ `prompt_deploy stage` step looks up `travel-agent:2` in the dev
822
+ project. Three outcomes are possible depending on what the skill's
823
+ verification dispatches produced:
824
+ - `action: reused` dev already has `travel-agent:2` with the
825
+ same instructions as the seed (no new version created).
826
+ - `action: created` — dev has the seed version but with different
827
+ instructions, so Foundry auto-creates the next number (likely
828
+ `travel-agent:3`).
829
+ - `action: bootstrapped` dev still does not have `travel-agent:2`
830
+ (only `:1`, because the bootstrap can fire `:1` and `:2`
831
+ back-to-back over two runs). The step reads
832
+ `prompt_agent_bootstrap` plus `prompt_file` and creates the next
833
+ SDK-assigned version, then uses it as the candidate.
814
834
  2. **AgentOps eval (PR gate)** job runs second. It evaluates the
815
- bootstrapped candidate using cloud eval. Thresholds pass.
816
- Doctor runs with `--severity-fail critical`; advisory findings are
817
- listed but do not fail the job.
835
+ candidate using cloud eval. Doctor runs with
836
+ `--severity-fail critical`; advisory findings are listed but do not
837
+ fail the job. The first one or two PR runs against a fresh dev
838
+ project can still fail thresholds while bootstrap catches up. After
839
+ that, normal reuse / create flow takes over and the baseline PR
840
+ should go green.
818
841
 
819
- On the **second** PR run, dev has `travel-agent:1` but the seed still
820
- points at `:2`. The stage step gets another 404 looking up `:2` and
821
- bootstraps a second version `travel-agent:2` into dev. After this,
822
- the dev project finally has `travel-agent:2` matching the seed, and
823
- every subsequent PR takes the normal lookup path:
842
+ Successive PR runs walk the same three branches above until dev's
843
+ version count catches up to the seed (`travel-agent:2`). Once it does,
844
+ every PR run hits the normal lookup path:
824
845
 
825
846
  - If `prompt_file` is byte-identical to the seed's instructions: the
826
847
  stage step reports `reused` and uses `travel-agent:2` as the
@@ -849,18 +870,26 @@ git push -u origin chore/agentops-baseline
849
870
  gh pr create --base main --head chore/agentops-baseline --title "Baseline AgentOps run" --body "First green PR to establish history."
850
871
  ```
851
872
 
852
- Open the PR in GitHub. The PR check runs the same staging + eval flow,
853
- green again because the prompt is unchanged. Merge.
873
+ Open the PR in GitHub. The PR check runs the same staging + eval flow.
874
+ Whether this baseline PR goes green on the first try depends on how
875
+ many bootstrap rounds the dev project has already absorbed (from the
876
+ skill's verification dispatches plus any failed PRs). Once bootstrap
877
+ catches up to the seed and the prompt is stable, the PR goes green —
878
+ re-run the workflow on the PR if needed. Then merge.
854
879
 
855
880
  After the merge, the **AgentOps deploy (dev)** workflow runs
856
- automatically on `main`. It stages the candidate (likely re-using the
857
- same version as the PR run, or bootstrapping again if dev has not yet
858
- caught up to the seed), evaluates it, runs `prompt_deploy record` to
859
- mark it as the dev deployment, and uploads the deployment artifact.
881
+ automatically on `main` (the skill rewrote its trigger from `develop`
882
+ to `main` in step 12 because this tutorial uses trunk-based flow).
883
+ This is the **second** deploy-dev run for this repo — the first was
884
+ the skill's verification dispatch in step 12. It stages the candidate
885
+ (by this point most likely `action: reused` or `created`), evaluates
886
+ it, runs `prompt_deploy summarize` to write the dev deployment summary,
887
+ and uploads the deployment artifact.
860
888
 
861
889
  Open the deploy run and download the `foundry-agent-dev-deployment`
862
- artifact. Inside, open `foundry-agent.json`. On the very first deploy
863
- into an empty dev project (the bootstrap case), the file looks like
890
+ artifact. Inside, open `foundry-agent.json`. In the **steady-state**
891
+ case (the most common the seed `travel-agent:2` already exists in
892
+ dev and matches the prompt the PR shipped), the file looks like
864
893
  this — note the actual field names AgentOps writes:
865
894
 
866
895
  ```json
@@ -868,34 +897,47 @@ this — note the actual field names AgentOps writes:
868
897
  "version": 1,
869
898
  "type": "foundry_prompt_agent_deployment",
870
899
  "environment": "dev",
871
- "action": "bootstrapped",
900
+ "action": "reused",
872
901
  "agent_name": "travel-agent",
873
902
  "source_agent": "travel-agent:2",
874
- "candidate_agent": "travel-agent:1",
903
+ "candidate_agent": "travel-agent:2",
875
904
  "source_version": "2",
876
- "candidate_version": "1",
905
+ "candidate_version": "2",
877
906
  "project_endpoint": "https://<your-resource>.services.ai.azure.com/api/projects/travel-agent-dev",
878
- "prompt_file": ".agentops/prompts/travel-agent.md",
879
- "prompt_sha256": "9c3a...e0b1",
880
- "created_at": "2025-...",
881
- "git_sha": "5f1a2c...",
882
- "workflow_url": "https://github.com/.../actions/runs/...",
883
- "foundry_agent_version_id": "..."
907
+ "prompt_file": "/home/runner/work/<your-repo>/<your-repo>/.agentops/prompts/travel-agent.md",
908
+ "prompt_sha256": "9727437db863b00d52bc8ef1f314b70ed22e3e562f5a3a1f9dd68e26f7ea0975",
909
+ "eval_config": "/home/runner/work/<your-repo>/<your-repo>/.agentops/deployments/agentops.candidate.yaml",
910
+ "created_at": "2026-05-30T17:57:53.135435+00:00",
911
+ "git_sha": "3078df74c3b18625553dec8ecd4ed4282f1ca1ca",
912
+ "workflow_url": "https://github.com/<owner>/<your-repo>/actions/runs/26690922142",
913
+ "foundry_agent_version_id": "travel-agent:2"
884
914
  }
885
915
  ```
886
916
 
887
- The `source_agent` field records what `agent:` in `agentops.yaml`
888
- pointed at (`travel-agent:2`, the sandbox seed). The `candidate_agent`
889
- field records what CI actually produced and evaluated in this
890
- environment (`travel-agent:1`, because dev was empty and the SDK
891
- assigned `:1`). The two numbers are expected to differ until the
892
- environment has caught up to the seed.
893
-
894
- On every subsequent deploy, `action` switches to either `reused` (when
895
- the prompt is byte-identical to the previous seed) or `created` (when
896
- Foundry auto-created a new version because the prompt changed), and
897
- `candidate_agent` reflects the actual version that was evaluated and
898
- recorded.
917
+ In the steady-state, `source_agent` and `candidate_agent` are
918
+ **identical** (`travel-agent:2`) because the dev project already had
919
+ `travel-agent:2` with the same instructions as the PR's `prompt_file`,
920
+ so `prompt_deploy stage` reported `action: reused` and nothing new
921
+ was created. The `prompt_file` and `eval_config` paths are absolute
922
+ because they are resolved inside the GitHub Actions runner workspace
923
+ (`/home/runner/work/<your-repo>/<your-repo>/...`).
924
+
925
+ `action` will be one of:
926
+
927
+ - **`reused`** dev already had `travel-agent:2` with byte-identical
928
+ instructions. No new Foundry version was created. (Steady-state and
929
+ most-common case.)
930
+ - **`created`** — dev had `travel-agent:2` but with **different**
931
+ instructions, so Foundry auto-created the next number (e.g.
932
+ `travel-agent:3`). `candidate_agent` would then be `travel-agent:3`.
933
+ - **`bootstrapped`** — dev did not yet have `travel-agent:2` at all,
934
+ so the stage step fell back to `prompt_agent_bootstrap` defaults
935
+ plus `prompt_file` and asked the SDK to create the first version.
936
+ In a fresh, empty dev project the SDK starts at `:1`, so you would
937
+ see `candidate_agent: "travel-agent:1"` and `candidate_version: "1"`
938
+ while `source_agent` still reports the seed (`travel-agent:2`). The
939
+ two numbers stay different until subsequent runs catch dev up to
940
+ the seed.
899
941
 
900
942
  That `prompt_sha256` + `git_sha` pair is what the mental-model diagram
901
943
  at the start of the tutorial referred to as **cross-environment
@@ -2,7 +2,7 @@
2
2
  "name": "agentops-accelerator",
3
3
  "displayName": "AgentOps Accelerator — Skills for GitHub Copilot",
4
4
  "description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Accelerator and Microsoft Foundry agents.",
5
- "version": "0.3.1",
5
+ "version": "0.3.3",
6
6
  "publisher": "AgentOpsAccelerator",
7
7
  "icon": "icon.png",
8
8
  "license": "MIT",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentops-accelerator",
3
3
  "description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Accelerator and Microsoft Foundry agents.",
4
- "version": "0.3.1",
4
+ "version": "0.3.3",
5
5
  "author": {
6
6
  "name": "AgentOps Accelerator",
7
7
  "url": "https://github.com/Azure/agentops"