agentops-accelerator 0.4.2__tar.gz → 0.4.4__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 (321) hide show
  1. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/copilot-instructions.md +1 -0
  2. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/AGENTS.md +9 -4
  3. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/CHANGELOG.md +49 -14
  4. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/PKG-INFO +9 -4
  5. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/README.md +8 -3
  6. agentops_accelerator-0.4.2/docs/tutorial-prompt-agent-quickstart.md → agentops_accelerator-0.4.4/docs/tutorial-prompt-agent.md +20 -20
  7. {agentops_accelerator-0.4.2/src/agentops/templates → agentops_accelerator-0.4.4/plugins/agentops}/skills/agentops-eval/SKILL.md +26 -2
  8. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/cli/app.py +149 -1
  9. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/agentops_config.py +95 -3
  10. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/invocations.py +162 -8
  11. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/prompt_deploy.py +169 -1
  12. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/azd_eval_init.py +112 -133
  13. {agentops_accelerator-0.4.2/plugins/agentops → agentops_accelerator-0.4.4/src/agentops/templates}/skills/agentops-eval/SKILL.md +26 -2
  14. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/PKG-INFO +9 -4
  15. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/SOURCES.txt +2 -1
  16. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agentops_config.py +54 -0
  17. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azd_eval_init.py +18 -181
  18. agentops_accelerator-0.4.4/tests/unit/test_http_streaming.py +234 -0
  19. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_prompt_deploy.py +209 -1
  20. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.claude-plugin/marketplace.json +0 -0
  21. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.gitattributes +0 -0
  22. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/actions/azure-oidc-login/action.yml +0 -0
  23. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/code-quality-py.instructions.md +0 -0
  24. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/dependabot.yml +0 -0
  25. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/extensions/agentops-skills/extension.mjs +0 -0
  26. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/plugin/marketplace.json +0 -0
  27. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/skills/release-management/SKILL.md +0 -0
  28. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/_build.yml +0 -0
  29. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/agentops-watchdog.yml +0 -0
  30. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/ci.yml +0 -0
  31. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/cut-release.yml +0 -0
  32. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/e2e.yml +0 -0
  33. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/release.yml +0 -0
  34. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.github/workflows/staging.yml +0 -0
  35. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.gitignore +0 -0
  36. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.pre-commit-config.yaml +0 -0
  37. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.vscode/launch.json +0 -0
  38. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.vscode/settings.json +0 -0
  39. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/.vscode/tasks.json +0 -0
  40. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/CONTRIBUTING.md +0 -0
  41. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/LICENSE +0 -0
  42. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/SECURITY.md +0 -0
  43. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/bundles.md +0 -0
  44. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/ci-github-actions.md +0 -0
  45. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/concepts.md +0 -0
  46. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/doctor-checks.md +0 -0
  47. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/doctor-explained.md +0 -0
  48. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/e2e-live-architecture.md +0 -0
  49. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/e2e-live-setup.md +0 -0
  50. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/foundry-evaluation-sdk-built-in-evaluators.md +0 -0
  51. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/how-it-works.md +0 -0
  52. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/media/agentops-diagrams.vsdx +0 -0
  53. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/media/foundry-control-plane.png +0 -0
  54. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/release-process.md +0 -0
  55. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/tutorial-end-to-end.md +0 -0
  56. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/docs/tutorial-hosted-agent-quickstart.md +0 -0
  57. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/examples/flat-quickstart/README.md +0 -0
  58. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/examples/flat-quickstart/agentops.yaml +0 -0
  59. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/examples/flat-quickstart/dataset.jsonl +0 -0
  60. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/icon.png +0 -0
  61. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/agent-app/Dockerfile +0 -0
  62. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/agent-app/app.py +0 -0
  63. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/agent-app/requirements.txt +0 -0
  64. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/bootstrap.bicep +0 -0
  65. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/bootstrap.parameters.example.json +0 -0
  66. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/infra/e2e/perrun.bicep +0 -0
  67. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/launch.json +0 -0
  68. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/media/foundry.svg +0 -0
  69. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/media/quickstart.gif +0 -0
  70. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/.vscodeignore +0 -0
  71. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/LICENSE +0 -0
  72. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/README.md +0 -0
  73. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/package.json +0 -0
  74. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/plugin.json +0 -0
  75. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-agent/SKILL.md +0 -0
  76. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-config/SKILL.md +0 -0
  77. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-dataset/SKILL.md +0 -0
  78. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-governance/SKILL.md +0 -0
  79. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-report/SKILL.md +0 -0
  80. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/plugins/agentops/skills/agentops-workflow/SKILL.md +0 -0
  81. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/pyproject.toml +0 -0
  82. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/create_support_agent.py +0 -0
  83. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/cut-release.ps1 +0 -0
  84. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/cut-release.sh +0 -0
  85. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_aggregate_summary.py +0 -0
  86. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_data/basic.jsonl +0 -0
  87. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_data/rag.jsonl +0 -0
  88. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_data/tools.jsonl +0 -0
  89. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_demo.py +0 -0
  90. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_hosted_agent.py +0 -0
  91. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_make_transcript.py +0 -0
  92. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/e2e_render_config.py +0 -0
  93. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/release.ps1 +0 -0
  94. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/release.sh +0 -0
  95. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/setup-e2e-new-tenant.ps1 +0 -0
  96. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/staging.ps1 +0 -0
  97. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/staging.sh +0 -0
  98. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/sync-skills.ps1 +0 -0
  99. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/scripts/sync-skills.sh +0 -0
  100. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/setup.cfg +0 -0
  101. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/__init__.py +0 -0
  102. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/__main__.py +0 -0
  103. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/__init__.py +0 -0
  104. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/_legacy_ids.py +0 -0
  105. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/analyzer.py +0 -0
  106. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/__init__.py +0 -0
  107. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/_rbac_authorization.py +0 -0
  108. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/catalog.py +0 -0
  109. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/errors.py +0 -0
  110. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/foundry_config.py +0 -0
  111. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/governance.py +0 -0
  112. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/latency.py +0 -0
  113. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/observability.py +0 -0
  114. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/opex.py +0 -0
  115. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/opex_workspace.py +0 -0
  116. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture.py +0 -0
  117. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/__init__.py +0 -0
  118. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/content_filter.py +0 -0
  119. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/diagnostics.py +0 -0
  120. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/local_auth.py +0 -0
  121. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/managed_identity.py +0 -0
  122. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/posture_rules/network.py +0 -0
  123. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/rbac_openai_data_plane.py +0 -0
  124. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/regression.py +0 -0
  125. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/release_readiness.py +0 -0
  126. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/safety.py +0 -0
  127. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/checks/spec_conformance.py +0 -0
  128. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/cockpit.py +0 -0
  129. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/config.py +0 -0
  130. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/findings.py +0 -0
  131. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/history.py +0 -0
  132. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/knowledge/__init__.py +0 -0
  133. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/knowledge/waf-checklist.csv +0 -0
  134. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/__init__.py +0 -0
  135. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_base.py +0 -0
  136. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_bundle_rule.py +0 -0
  137. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_client.py +0 -0
  138. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_dataset_rules.py +0 -0
  139. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_engine.py +0 -0
  140. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_prompt_rules.py +0 -0
  141. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/llm_assist/_spec_rules.py +0 -0
  142. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/production_telemetry.py +0 -0
  143. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/report.py +0 -0
  144. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/__init__.py +0 -0
  145. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/app.py +0 -0
  146. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/auth.py +0 -0
  147. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/chat.py +0 -0
  148. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/server/protocol.py +0 -0
  149. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/__init__.py +0 -0
  150. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/_credentials.py +0 -0
  151. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/azure_monitor.py +0 -0
  152. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/azure_resources.py +0 -0
  153. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/foundry_control.py +0 -0
  154. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/results_history.py +0 -0
  155. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/spec_detectors/__init__.py +0 -0
  156. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/spec_detectors/_base.py +0 -0
  157. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/spec_detectors/agents_md.py +0 -0
  158. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/sources/spec_detectors/spec_kit.py +0 -0
  159. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/agent/time_range.py +0 -0
  160. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/cli/__init__.py +0 -0
  161. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/__init__.py +0 -0
  162. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/azd_eval.py +0 -0
  163. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/config_loader.py +0 -0
  164. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/evaluators.py +0 -0
  165. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/governance.py +0 -0
  166. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/release_evidence.py +0 -0
  167. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/core/results.py +0 -0
  168. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/mcp/__init__.py +0 -0
  169. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/mcp/server.py +0 -0
  170. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/__init__.py +0 -0
  171. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/azd_runner.py +0 -0
  172. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/cloud_results.py +0 -0
  173. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/cloud_runner.py +0 -0
  174. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/comparison.py +0 -0
  175. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/diagnostics.py +0 -0
  176. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/official_eval.py +0 -0
  177. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/orchestrator.py +0 -0
  178. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/publisher.py +0 -0
  179. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/reporter.py +0 -0
  180. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/runtime.py +0 -0
  181. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/pipeline/thresholds.py +0 -0
  182. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/__init__.py +0 -0
  183. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/assert_runner.py +0 -0
  184. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/cicd.py +0 -0
  185. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/eval_analysis.py +0 -0
  186. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/evidence_pack.py +0 -0
  187. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/initializer.py +0 -0
  188. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/preflight.py +0 -0
  189. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/redteam_runner.py +0 -0
  190. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/setup_wizard.py +0 -0
  191. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/skills.py +0 -0
  192. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/trace_promotion.py +0 -0
  193. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/services/workflow_analysis.py +0 -0
  194. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/.gitignore +0 -0
  195. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/__init__.py +0 -0
  196. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agent-server/Dockerfile +0 -0
  197. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agent-server/README.md +0 -0
  198. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agent-server/main.bicep +0 -0
  199. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agent.yaml +0 -0
  200. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/agentops.yaml +0 -0
  201. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/foundry.svg +0 -0
  202. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/icon.png +0 -0
  203. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev-azd.yml +0 -0
  204. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev.yml +0 -0
  205. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod-azd.yml +0 -0
  206. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod.yml +0 -0
  207. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prompt-agent.yml +0 -0
  208. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa-azd.yml +0 -0
  209. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa.yml +0 -0
  210. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-pr-prompt-agent.yml +0 -0
  211. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-pr.yml +0 -0
  212. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/pipelines/azuredevops/agentops-watchdog.yml +0 -0
  213. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/project.gitignore +0 -0
  214. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/sample-traces.jsonl +0 -0
  215. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-agent/SKILL.md +0 -0
  216. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-config/SKILL.md +0 -0
  217. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-dataset/SKILL.md +0 -0
  218. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-governance/SKILL.md +0 -0
  219. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-report/SKILL.md +0 -0
  220. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/skills/agentops-workflow/SKILL.md +0 -0
  221. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/smoke.jsonl +0 -0
  222. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/waf-checklist.README.md +0 -0
  223. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/waf-checklist.csv +0 -0
  224. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-dev-azd.yml +0 -0
  225. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-dev.yml +0 -0
  226. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-prod-azd.yml +0 -0
  227. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-prod.yml +0 -0
  228. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-prompt-agent.yml +0 -0
  229. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-qa-azd.yml +0 -0
  230. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-deploy-qa.yml +0 -0
  231. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-pr-prompt-agent.yml +0 -0
  232. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-pr.yml +0 -0
  233. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/templates/workflows/agentops-watchdog.yml +0 -0
  234. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/__init__.py +0 -0
  235. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/azd_env.py +0 -0
  236. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/azure_endpoints.py +0 -0
  237. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/colors.py +0 -0
  238. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/dotenv_loader.py +0 -0
  239. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/foundry_discovery.py +0 -0
  240. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/logging.py +0 -0
  241. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/telemetry.py +0 -0
  242. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops/utils/yaml.py +0 -0
  243. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/dependency_links.txt +0 -0
  244. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/entry_points.txt +0 -0
  245. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/requires.txt +0 -0
  246. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/src/agentops_accelerator.egg-info/top_level.txt +0 -0
  247. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/TESTING.md +0 -0
  248. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/fixtures/fake_adapter.py +0 -0
  249. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/fixtures/fake_eval_runner.py +0 -0
  250. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/integration/.gitkeep +0 -0
  251. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/integration/test_cli_flat_schema.py +0 -0
  252. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/integration/test_pipeline_smoke.py +0 -0
  253. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/.gitkeep +0 -0
  254. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_analyzer.py +0 -0
  255. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_categories.py +0 -0
  256. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_errors.py +0 -0
  257. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_foundry_config.py +0 -0
  258. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_observability.py +0 -0
  259. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_opex.py +0 -0
  260. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_opex_workspace.py +0 -0
  261. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_rbac_openai_data_plane.py +0 -0
  262. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_regression.py +0 -0
  263. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_safety.py +0 -0
  264. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_checks_spec_conformance.py +0 -0
  265. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_cli.py +0 -0
  266. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_config.py +0 -0
  267. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_findings.py +0 -0
  268. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_history.py +0 -0
  269. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_opex_workspace_check.py +0 -0
  270. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_posture_rules.py +0 -0
  271. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_results_history.py +0 -0
  272. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_agent_server.py +0 -0
  273. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_assert_and_redteam_runners.py +0 -0
  274. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azd_env.py +0 -0
  275. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azd_eval.py +0 -0
  276. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azd_runner.py +0 -0
  277. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azure_endpoints.py +0 -0
  278. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_azure_resources_discovery.py +0 -0
  279. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cicd.py +0 -0
  280. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cli_cockpit_connection_summary.py +0 -0
  281. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cli_cockpit_port_conflict.py +0 -0
  282. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cli_commands.py +0 -0
  283. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cli_explain.py +0 -0
  284. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cloud_results.py +0 -0
  285. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cloud_runner.py +0 -0
  286. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_cockpit.py +0 -0
  287. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_diagnostics.py +0 -0
  288. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_doctor_catalog.py +0 -0
  289. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_doctor_cli_explain.py +0 -0
  290. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_dotenv_loader.py +0 -0
  291. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_e2e_render.py +0 -0
  292. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_eval_analysis.py +0 -0
  293. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_eval_run_grader_errors.py +0 -0
  294. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_evaluators.py +0 -0
  295. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_foundry_discovery.py +0 -0
  296. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_governance.py +0 -0
  297. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_init_command.py +0 -0
  298. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_initializer.py +0 -0
  299. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_invocations.py +0 -0
  300. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_knowledge_loader.py +0 -0
  301. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_llm_assist.py +0 -0
  302. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_llm_assist_spec_rules.py +0 -0
  303. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_mcp_server.py +0 -0
  304. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_official_eval.py +0 -0
  305. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_pipeline_publisher.py +0 -0
  306. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_pipeline_reporter.py +0 -0
  307. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_preflight.py +0 -0
  308. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_production_telemetry.py +0 -0
  309. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_release_evidence.py +0 -0
  310. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_runtime_conversation.py +0 -0
  311. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_runtime_model_config.py +0 -0
  312. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_setup_wizard.py +0 -0
  313. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_shared_credentials.py +0 -0
  314. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_skills.py +0 -0
  315. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_skills_sync.py +0 -0
  316. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_telemetry.py +0 -0
  317. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_time_range.py +0 -0
  318. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_trace_promotion.py +0 -0
  319. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tests/unit/test_workflow_analysis.py +0 -0
  320. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/tombstones/vscode/CDN_DEPRECATION_REQUEST.md +0 -0
  321. {agentops_accelerator-0.4.2 → agentops_accelerator-0.4.4}/uv.lock +0 -0
@@ -19,6 +19,7 @@ Read these first for detailed architecture and product context:
19
19
  - `agentops explain [COMMAND...] [--no-pager] [--format text|markdown|html] [--out PATH] [--open]`
20
20
  - `agentops init [--force] [--dir PATH] [--no-prompt] [--no-appinsights] [--azd-env NAME] [--project-endpoint URL] [--agent REF] [--dataset PATH] [--appinsights-connection-string STR]`
21
21
  - `agentops init show [--dir PATH] [--reveal-secrets]`
22
+ - `agentops prompt pull [--config PATH] [--out PATH] [--project-endpoint URL] [--force] [--update-config|--no-update-config]`
22
23
  - `agentops eval analyze [--dir PATH] [--format text|markdown|json] [--out PATH]`
23
24
  - `agentops eval run [--config PATH] [--baseline PATH] [--output DIR]`
24
25
  - `agentops eval promote-traces --source PATH [--out PATH] [--max-rows N] [--label-mode self-similarity|pending] [--apply]`
@@ -40,6 +40,7 @@ Public CLI contract:
40
40
  - `agentops init [--force] [--dir PATH] [--no-prompt] [--no-appinsights] [--azd-env NAME] [--project-endpoint URL] [--agent REF] [--dataset PATH] [--appinsights-connection-string STR]`
41
41
  - `agentops init show [--dir PATH] [--reveal-secrets]`
42
42
  - `agentops init explain [--no-pager] [--format text|markdown|html] [--out PATH] [--open]`
43
+ - `agentops prompt pull [--config PATH] [--out PATH] [--project-endpoint URL] [--force] [--update-config|--no-update-config]`
43
44
  - `agentops eval analyze [--dir PATH] [--format text|markdown|json] [--out PATH]`
44
45
  - `agentops eval init [--dir PATH] [--force]`
45
46
  - `agentops eval run [--config PATH] [--baseline PATH] [--output DIR]`
@@ -222,9 +223,9 @@ Coverage highlights:
222
223
  docs/
223
224
  ├── concepts.md # Core concepts and evaluation scenarios
224
225
  ├── how-it-works.md # Architecture and request flow
225
- ├── tutorial-prompt-agent-quickstart.md # Tutorial for Foundry Prompt Agents
226
- ├── tutorial-hosted-agent-quickstart.md # Tutorial for Foundry hosted / HTTP agents
227
- ├── tutorial-end-to-end.md # End-to-end release-readiness tutorial (Foundry + AgentOps)
226
+ ├── tutorial-prompt-agent.md # Tutorial for Foundry Prompt Agents
227
+ ├── tutorial-hosted-agent.md # Tutorial for Foundry hosted / HTTP agents
228
+ ├── tutorial-end-to-end.md # Full end-to-end release-readiness tutorial (Foundry + AgentOps)
228
229
  ├── doctor-explained.md # Doctor checks, history, and operations model
229
230
  ├── ci-github-actions.md # CI/CD setup
230
231
  ├── release-process.md # Release and versioning
@@ -334,7 +335,11 @@ Full schema:
334
335
  | `response_field` | no | HTTP / invocations only. Dot-path to extract the response text (default: `text`). |
335
336
  | `tool_calls_field` | no | HTTP / invocations only. Dot-path to extract tool calls for agent-workflow evaluators. |
336
337
  | `headers` | no | HTTP / invocations only. Static extra HTTP headers. |
337
- | `auth_header_env` | no | HTTP / invocations only. Environment variable that holds a Bearer token. |
338
+ | `auth_header_env` | no | HTTP / invocations only. Environment variable that holds the auth token. |
339
+ | `auth_header_name` | no | HTTP / invocations only. Header name for the auth token (default: `Authorization`). |
340
+ | `auth_value_template` | no | HTTP / invocations only. Template for the auth header value; `{token}` is replaced by the `auth_header_env` value (default: `Bearer {token}`). |
341
+ | `response_mode` | no | HTTP / invocations only. `json` (default, single `json.loads` of the body), `sse` (parse `data:` lines), or `text` (concatenate raw streamed text). |
342
+ | `stream` | no | HTTP / invocations only. Streaming aggregation block for `response_mode: sse|text`: `text_field` (dot-path to token text in JSON `data:` lines), `done_marker` (stop token, e.g. `[DONE]`), `strip_leading_token` (drop the first whitespace-delimited token, e.g. a `conversation_id` prefix). |
338
343
  | `assert_path` | no | Optional ASSERT policy/results file or directory referenced by Doctor/evidence. AgentOps does not execute ASSERT. |
339
344
  | `acs_path` | no | Optional Agent Control Specification contract file or directory referenced by Doctor/evidence. AgentOps does not apply ACS controls. |
340
345
  | `redteam_path` | no | Optional red-team plan/results evidence path. AgentOps records metadata and never exposes payload text. |
@@ -5,21 +5,56 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
- ## [0.4.2] - 2026-06-17
8
+ ## [0.4.4] - 2026-06-18
9
9
 
10
- ### Fixed
11
- - **`agentops eval init` now works with both old and new `azure.ai.agents` azd
12
- extensions.** Version 0.1.40 of the extension renamed the eval subcommand from
13
- `azd ai agent eval init` to `azd ai agent eval generate`, which made
14
- `agentops eval init` hard-fail with `Command "init" is deprecated, use 'azd ai
15
- agent eval generate' instead`. AgentOps now invokes `generate` first and
16
- transparently falls back to the legacy `init` subcommand when an older
17
- extension does not recognise `generate`. The fallback only triggers on
18
- subcommand-name/deprecation errors; genuine failures (authentication, project
19
- endpoint, timeouts) are still surfaced immediately and unchanged. All
20
- previously passed flags (`--project-endpoint`, `--agent`,
21
- `--gen-instruction-file`, `--eval-model`, `--dataset`, `--evaluator`) and the
22
- recipe discovery/persistence behaviour are preserved.
10
+ ### Added
11
+ - **Streaming HTTP targets.** The `http_json` target now understands streaming
12
+ responses so AgentOps can evaluate SSE/streaming agents (such as the
13
+ gpt-rag-orchestrator `/orchestrator` endpoint) directly, without a manual
14
+ adapter. A new `response_mode: json|sse|text` field selects the response
15
+ parser (`json` is the default and preserves the existing single-`json.loads`
16
+ behavior exactly). For `sse`/`text`, an optional `stream` block configures
17
+ aggregation: `text_field` (dotted path to the token text when each SSE
18
+ `data:` line is JSON), `done_marker` (stop token, e.g. `[DONE]`), and
19
+ `strip_leading_token` (drop the leading whitespace-delimited token, e.g. the
20
+ orchestrator's `conversation_id` prefix). The auth header is now configurable
21
+ via `auth_header_name` (default `Authorization`) and `auth_value_template`
22
+ (default `Bearer {token}`, where `{token}` is replaced by the
23
+ `auth_header_env` value), so targets gated by a shared secret such as
24
+ `X-API-KEY` are supported without hardcoding the secret in `agentops.yaml`.
25
+ Streaming uses the same stdlib (`urllib`) transport and 3-try backoff as the
26
+ JSON path. When a JSON parse fails on a `text/event-stream` response, the
27
+ error now suggests setting `response_mode: sse|text`.
28
+
29
+ ## [0.4.3] - 2026-06-17
30
+
31
+ ### Added
32
+ - **Prompt-agent tutorials no longer require manual portal copy/paste.**
33
+ `agentops prompt pull` reads the configured Foundry prompt agent
34
+ (`agent: name:version`), validates that the Foundry definition is actually a
35
+ prompt agent, and writes the reviewed Sandbox instructions to
36
+ `.agentops/prompts/<agent-name>.prompt.md` by default. Before writing, the CLI
37
+ prints the resolved agent, endpoint, endpoint source, and destination file so
38
+ operators can catch the wrong environment early. Changed prompt files are
39
+ protected by default and require `--force` to overwrite reviewed local edits.
40
+ The command updates `prompt_file` in `agentops.yaml` unless
41
+ `--no-update-config` is passed, and it can resolve the endpoint from
42
+ `--project-endpoint`, `agentops.yaml`, `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT`, or
43
+ the active `.azure/<env>/.env`. The prompt-agent tutorial and packaged
44
+ `agentops-eval` skill now use this command instead of a manual here-string.
45
+ ([#322](https://github.com/Azure/agentops/issues/322))
46
+
47
+ ### Changed
48
+ - **`agentops eval init` now recommends evaluators from the agent and dataset
49
+ shape.** The azd bootstrap path now reuses the same AgentOps evaluator
50
+ catalog as `agentops eval run`: free-form answer datasets get answer-quality
51
+ checks, RAG-shaped datasets get groundedness / relevance / retrieval checks,
52
+ and tool-use datasets get tool-call / intent / task-adherence checks while
53
+ avoiding literal-answer similarity metrics. Explicit `evaluators:` entries in
54
+ `agentops.yaml` still win. The CLI prints the recommendation source, detected
55
+ signals, and selected azd built-ins before reporting the generated
56
+ `eval.yaml`, so users can see why those evaluators were chosen.
57
+ ([#323](https://github.com/Azure/agentops/issues/323))
23
58
 
24
59
  ## [0.4.1] - 2026-06-15
25
60
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentops-accelerator
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: Release readiness gates and evidence for Microsoft Foundry agents
5
5
  License: MIT License
6
6
 
@@ -81,11 +81,16 @@ AgentOps Accelerator helps Microsoft Foundry agent teams evaluate quality, prepa
81
81
  ```powershell
82
82
  python -m pip install agentops-accelerator
83
83
  agentops init
84
- agentops eval analyze
85
- agentops eval run
86
- agentops doctor --evidence-pack
87
84
  ```
88
85
 
86
+ `agentops init` starts a guided setup that creates your `agentops.yaml` and
87
+ `.agentops/` workspace.
88
+
89
+ Next, follow the tutorial that matches your agent type:
90
+
91
+ - [Prompt Agent tutorial](https://azure.github.io/agentops/tutorial-prompt-agent/)
92
+ - [Hosted or HTTP Agent tutorial](https://azure.github.io/agentops/tutorial-hosted-agent/)
93
+
89
94
  ## What it helps you do
90
95
 
91
96
  Use AgentOps Accelerator when you need to:
@@ -28,11 +28,16 @@ AgentOps Accelerator helps Microsoft Foundry agent teams evaluate quality, prepa
28
28
  ```powershell
29
29
  python -m pip install agentops-accelerator
30
30
  agentops init
31
- agentops eval analyze
32
- agentops eval run
33
- agentops doctor --evidence-pack
34
31
  ```
35
32
 
33
+ `agentops init` starts a guided setup that creates your `agentops.yaml` and
34
+ `.agentops/` workspace.
35
+
36
+ Next, follow the tutorial that matches your agent type:
37
+
38
+ - [Prompt Agent tutorial](https://azure.github.io/agentops/tutorial-prompt-agent/)
39
+ - [Hosted or HTTP Agent tutorial](https://azure.github.io/agentops/tutorial-hosted-agent/)
40
+
36
41
  ## What it helps you do
37
42
 
38
43
  Use AgentOps Accelerator when you need to:
@@ -130,7 +130,7 @@ cd agentops-prompt-quickstart
130
130
  python -m venv .venv
131
131
  .\.venv\Scripts\Activate.ps1
132
132
  python -m pip install -U pip
133
- python -m pip install "agentops-accelerator[foundry,agent]"
133
+ python -m pip install agentops-accelerator
134
134
  agentops --version
135
135
  ```
136
136
 
@@ -139,7 +139,7 @@ path, install the aligned reference branch so the CLI, generated
139
139
  workflows, and tutorial steps stay in sync:
140
140
 
141
141
  ```powershell
142
- python -m pip install "agentops-accelerator[foundry,agent] @ git+https://github.com/Azure/agentops.git@develop"
142
+ python -m pip install "agentops-accelerator @ git+https://github.com/Azure/agentops.git@develop"
143
143
  ```
144
144
 
145
145
  ## 2. Install the AgentOps Copilot skills
@@ -426,7 +426,7 @@ In the **sandbox** project only:
426
426
  > next-version flow.
427
427
 
428
428
  > **Prompt-as-code captures only the instructions.** Later in the
429
- > tutorial you will commit `.agentops/prompts/travel-agent.md` to git
429
+ > tutorial you will commit `.agentops/prompts/travel-agent.prompt.md` to git
430
430
  > and let CI use it as the prompt source. That file does not capture
431
431
  > the model deployment, parameters (temperature, top-p), tools, or
432
432
  > other agent settings — those come from `prompt_agent_bootstrap` on
@@ -709,31 +709,31 @@ evaluates and deploys comes from this file in git, not from manual edits
709
709
  in the Foundry portal.
710
710
 
711
711
  ```powershell
712
- New-Item -ItemType Directory -Force .agentops\prompts | Out-Null
713
- @'
714
- You are Travel Agent, a concise travel planning assistant.
712
+ agentops prompt pull
713
+ ```
715
714
 
716
- Help users plan short leisure trips. Always include:
717
- - a short summary;
718
- - a day-by-day plan when the user asks for an itinerary;
719
- - practical notes about budget, transit, weather, or booking constraints;
720
- - a reminder that you cannot make live reservations or purchases.
715
+ AgentOps reads `agent: travel-agent:2`, resolves the current Foundry
716
+ endpoint, validates that the Foundry definition is a prompt agent, and
717
+ writes the instructions to `.agentops/prompts/travel-agent.prompt.md`.
718
+ Before writing, it prints the resolved agent, endpoint, endpoint source,
719
+ and destination file so you can catch the wrong environment before the
720
+ prompt is saved.
721
721
 
722
- Ask one clarifying question only when the destination, duration, or
723
- traveler preference is missing. Do not invent booking confirmations,
724
- prices, or availability.
725
- '@ | Set-Content -Encoding utf8 .agentops\prompts\travel-agent.md
726
- ```
722
+ By default, the command refuses to overwrite a changed prompt file. Use
723
+ `--force` only when you intentionally want to replace reviewed local
724
+ prompt edits with the current Sandbox version. Use `--out <path>` if you
725
+ need a different file name, but keep prompt source under
726
+ `.agentops/prompts/` unless your repository has a stronger convention.
727
727
 
728
- Then tell `agentops.yaml` where to find the file and add
729
- `prompt_agent_bootstrap` so CI can auto-create the agent in dev (and
730
- later qa / prod) on the first deploy:
728
+ Then add `prompt_agent_bootstrap` so CI can auto-create the agent in dev
729
+ (and later qa / prod) on the first deploy. `agentops prompt pull` writes
730
+ `prompt_file` for you when it is missing:
731
731
 
732
732
  ```yaml
733
733
  version: 1
734
734
  agent: travel-agent:2
735
735
  dataset: .agentops/data/travel-smoke.jsonl
736
- prompt_file: .agentops/prompts/travel-agent.md
736
+ prompt_file: .agentops/prompts/travel-agent.prompt.md
737
737
  prompt_agent_bootstrap:
738
738
  model: gpt-4o-mini
739
739
  description: "Helps plan short trips and explains tradeoffs."
@@ -93,7 +93,7 @@ done
93
93
  ```
94
94
 
95
95
  PowerShell equivalent: replace `$(...)` with the PowerShell variable
96
- assignments shown in `docs/tutorial-prompt-agent-quickstart.md`.
96
+ assignments shown in `docs/tutorial-prompt-agent.md`.
97
97
 
98
98
  If the user has not run `az login` yet, do that first. If
99
99
  `az cognitiveservices account list` returns an empty RG, the AI Services
@@ -143,6 +143,23 @@ for the `agent:` field of `agentops.yaml`:
143
143
 
144
144
  If nothing is found, ask the user once for the agent identifier.
145
145
 
146
+ For Foundry Prompt Agents authored in the Sandbox portal, do not copy/paste the
147
+ instructions into a file manually. After `agentops.yaml` contains `agent:
148
+ name:version` and the correct project endpoint is available from
149
+ `agentops.yaml`, `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT`, or the active
150
+ `.azure/<env>/.env`, run:
151
+
152
+ ```bash
153
+ agentops prompt pull
154
+ ```
155
+
156
+ This writes `.agentops/prompts/<agent-name>.prompt.md` by default, updates
157
+ `prompt_file` in `agentops.yaml` when needed, prints the resolved endpoint and
158
+ agent version before writing, validates that the Foundry definition is a prompt
159
+ agent, and refuses to overwrite changed prompt files unless `--force` is used.
160
+ Use `--out` only when the repository already has a stronger prompt-file
161
+ convention.
162
+
146
163
  ## Step 3 - Make sure the dataset exists
147
164
 
148
165
  `agentops.yaml` points to a JSONL file (default
@@ -284,4 +301,11 @@ dataset reference.
284
301
  ```
285
302
  - For HTTP/JSON agents that need auth, set
286
303
  `auth_header_env: MY_TOKEN_VAR` and AgentOps adds
287
- `Authorization: Bearer $MY_TOKEN_VAR`.
304
+ `Authorization: Bearer $MY_TOKEN_VAR`. For a shared-secret gate, override the
305
+ header with `auth_header_name: X-API-KEY` and `auth_value_template: "{token}"`.
306
+ - For streaming HTTP agents (e.g. an SSE `text/event-stream` endpoint), set
307
+ `response_mode: sse` (each `data:` line) or `response_mode: text` (raw
308
+ streamed text). Use the optional `stream:` block to tune aggregation:
309
+ `text_field` (dot-path to the token text when `data:` lines are JSON),
310
+ `done_marker` (e.g. `[DONE]`), and `strip_leading_token: true` (drop a leading
311
+ `conversation_id` prefix). `response_mode: json` (default) is unchanged.
@@ -36,6 +36,7 @@ eval_app = typer.Typer(
36
36
  report_app = typer.Typer(help="Reporting commands.")
37
37
  workflow_app = typer.Typer(help="CI/CD workflow commands.")
38
38
  skills_app = typer.Typer(help="Coding agent skills management.")
39
+ prompt_app = typer.Typer(help="Foundry prompt-agent source control commands.")
39
40
  mcp_app = typer.Typer(help="MCP (Model Context Protocol) server commands.")
40
41
  agent_app = typer.Typer(
41
42
  help=(
@@ -79,6 +80,7 @@ app.add_typer(eval_app, name="eval")
79
80
  app.add_typer(report_app, name="report")
80
81
  app.add_typer(workflow_app, name="workflow")
81
82
  app.add_typer(skills_app, name="skills")
83
+ app.add_typer(prompt_app, name="prompt")
82
84
  app.add_typer(mcp_app, name="mcp")
83
85
  app.add_typer(agent_app, name="agent")
84
86
  app.add_typer(doctor_app, name="doctor")
@@ -485,7 +487,7 @@ EXPLAIN_PAGES: dict[tuple[str, ...], ExplainPage] = {
485
487
  "agentops explain eval run --open",
486
488
  "agentops explain cockpit --format markdown --out cockpit.md",
487
489
  ),
488
- children=("init", "eval", "report", "workflow", "skills", "mcp", "agent", "doctor", "cockpit", "assert", "redteam"),
490
+ children=("init", "eval", "report", "workflow", "skills", "prompt", "mcp", "agent", "doctor", "cockpit", "assert", "redteam"),
489
491
  ),
490
492
  ("init",): ExplainPage(
491
493
  title="Initialize workspace and configure endpoints",
@@ -609,6 +611,7 @@ EXPLAIN_PAGES: dict[tuple[str, ...], ExplainPage] = {
609
611
  ),
610
612
  how_it_works=(
611
613
  "Checks that azd and the `azure.ai.agents` extension are available.",
614
+ "Reads `agentops.yaml`, classifies the target, samples the dataset shape, and recommends built-in azd evaluators from the same AgentOps catalog used by `agentops eval run`. Explicit `evaluators:` entries in `agentops.yaml` still win.",
612
615
  "Runs `azd ai agent eval init` in the workspace unless an eval recipe already exists.",
613
616
  "Discovers the generated `eval.yaml` and writes `eval_recipe:` plus `execution: azd` to `agentops.yaml`.",
614
617
  ),
@@ -617,6 +620,55 @@ EXPLAIN_PAGES: dict[tuple[str, ...], ExplainPage] = {
617
620
  examples=("agentops eval init", "agentops eval init --dataset .agentops/data/golden.jsonl", "agentops eval init --force"),
618
621
  see_also=("agentops explain eval run", "agentops explain doctor"),
619
622
  ),
623
+ ("prompt",): ExplainPage(
624
+ title="Prompt-agent source control commands",
625
+ command="agentops prompt",
626
+ synopsis=("agentops prompt pull [--config PATH] [--out PATH] [--force]", "agentops prompt explain"),
627
+ summary=(
628
+ "Pulls tested Foundry prompt-agent instructions into a source-controlled prompt file.",
629
+ "Use this after iterating in the Foundry Sandbox so git becomes the source of truth without manual portal copy/paste.",
630
+ ),
631
+ children=("pull",),
632
+ examples=("agentops prompt pull", "agentops prompt pull --out .agentops/prompts/travel-agent.prompt.md"),
633
+ see_also=("agentops explain workflow generate", "agentops explain eval run"),
634
+ ),
635
+ ("prompt", "pull"): ExplainPage(
636
+ title="Pull a Foundry prompt into git",
637
+ command="agentops prompt pull",
638
+ synopsis=(
639
+ "agentops prompt pull [--config agentops.yaml] [--project-endpoint URL]",
640
+ "agentops prompt pull [--out .agentops/prompts/<agent-name>.prompt.md] [--force]",
641
+ "agentops prompt pull [--no-update-config]",
642
+ ),
643
+ summary=(
644
+ "Fetches the `agent: name:version` Foundry prompt-agent definition from the configured project and writes its instructions to a local `.prompt.md` file.",
645
+ "The command prints the resolved endpoint, endpoint source, agent version, and destination before writing so users can catch wrong-environment pulls.",
646
+ "It never overwrites changed local prompt files unless `--force` is provided.",
647
+ ),
648
+ how_it_works=(
649
+ "Reads `agentops.yaml` and requires `agent` to be a Foundry prompt agent in `name:version` form.",
650
+ "Resolves the project endpoint from `--project-endpoint`, then `agentops.yaml project_endpoint`, then `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT`, then the active `.azure/<env>/.env`.",
651
+ "Fetches the Foundry agent version, validates that `definition.kind` is `prompt`, and extracts `definition.instructions` through the same normalization helpers used by prompt deploy.",
652
+ "Writes to `prompt_file` when already configured, otherwise to `.agentops/prompts/<agent-name>.prompt.md`.",
653
+ "Updates `prompt_file` in `agentops.yaml` by default; pass `--no-update-config` to leave config unchanged.",
654
+ ),
655
+ inputs=(
656
+ "`agentops.yaml` with `agent: <name>:<version>`.",
657
+ "A Foundry project endpoint in `--project-endpoint`, `project_endpoint`, `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT`, or the active `.azure/<env>/.env`.",
658
+ "Azure credentials that can read the Foundry agent definition.",
659
+ ),
660
+ outputs=(
661
+ "Source-controlled prompt file, default `.agentops/prompts/<agent-name>.prompt.md`.",
662
+ "`agentops.yaml prompt_file` update unless `--no-update-config` is passed.",
663
+ ),
664
+ examples=(
665
+ "agentops prompt pull",
666
+ "agentops prompt pull --project-endpoint https://acct.services.ai.azure.com/api/projects/sandbox",
667
+ "agentops prompt pull --out .agentops/prompts/travel-agent.prompt.md --force",
668
+ "agentops prompt pull --no-update-config",
669
+ ),
670
+ see_also=("agentops explain workflow generate", "agentops explain eval run"),
671
+ ),
620
672
  ("eval", "run"): ExplainPage(
621
673
  title="Run evaluation",
622
674
  command="agentops eval run",
@@ -1407,6 +1459,7 @@ eval_app.command("explain")(_make_group_explain(("eval",)))
1407
1459
  report_app.command("explain")(_make_group_explain(("report",)))
1408
1460
  workflow_app.command("explain")(_make_group_explain(("workflow",)))
1409
1461
  skills_app.command("explain")(_make_group_explain(("skills",)))
1462
+ prompt_app.command("explain")(_make_group_explain(("prompt",)))
1410
1463
  mcp_app.command("explain")(_make_group_explain(("mcp",)))
1411
1464
  agent_app.command("explain")(_make_group_explain(("agent",)))
1412
1465
 
@@ -2098,6 +2151,11 @@ def cmd_eval_init(
2098
2151
  typer.echo(f"{_cli_label('azd eval init')}: completed")
2099
2152
  else:
2100
2153
  typer.echo(f"{_cli_label('azd eval init')}: existing recipe reused")
2154
+ if result.evaluators:
2155
+ typer.echo(f"{_cli_label('Evaluator recommendation')}: {result.evaluator_source}")
2156
+ for signal in result.evaluator_signals:
2157
+ typer.echo(f" {style('-', 'dim')} {signal}")
2158
+ typer.echo(f"{_cli_label('Evaluators')}: {', '.join(result.evaluators)}")
2101
2159
  typer.echo(f"{_cli_label('eval.yaml')}: {_cli_path(result.recipe_path)}")
2102
2160
  if result.config_updated:
2103
2161
  typer.echo(_cli_updated(result.config_path))
@@ -3415,6 +3473,96 @@ def cmd_skills_install(
3415
3473
  _print_registration_result(reg_result)
3416
3474
 
3417
3475
 
3476
+ # ---------------------------------------------------------------------------
3477
+ # agentops prompt pull
3478
+ # ---------------------------------------------------------------------------
3479
+
3480
+
3481
+ @prompt_app.command("pull")
3482
+ def cmd_prompt_pull(
3483
+ config: Annotated[
3484
+ Path,
3485
+ typer.Option("--config", "-c", help="Path to agentops.yaml."),
3486
+ ] = Path("agentops.yaml"),
3487
+ out: Annotated[
3488
+ Path | None,
3489
+ typer.Option(
3490
+ "--out",
3491
+ "-o",
3492
+ help="Prompt file to write.",
3493
+ ),
3494
+ ] = None,
3495
+ project_endpoint: Annotated[
3496
+ str | None,
3497
+ typer.Option(
3498
+ "--project-endpoint",
3499
+ help="Foundry project endpoint. Overrides config and environment.",
3500
+ ),
3501
+ ] = None,
3502
+ force: Annotated[
3503
+ bool,
3504
+ typer.Option(
3505
+ "--force",
3506
+ help="Overwrite the prompt file when local content differs.",
3507
+ ),
3508
+ ] = False,
3509
+ update_config: Annotated[
3510
+ bool,
3511
+ typer.Option(
3512
+ "--update-config/--no-update-config",
3513
+ help="Update agentops.yaml prompt_file to the pulled prompt path.",
3514
+ ),
3515
+ ] = True,
3516
+ explain: Annotated[str | None, typer.Argument(hidden=True)] = None,
3517
+ ) -> None:
3518
+ """Pull Foundry prompt-agent instructions into a prompt file."""
3519
+ if _maybe_explain_leaf(("prompt", "pull"), explain):
3520
+ return
3521
+
3522
+ from agentops.pipeline.prompt_deploy import pull_prompt_agent_instructions
3523
+
3524
+ def _before_write(details: dict[str, str]) -> None:
3525
+ typer.echo(f"{_cli_label('Agent')}: {details['agent']}")
3526
+ typer.echo(f"{_cli_label('Endpoint')}: {details['endpoint']}")
3527
+ typer.echo(f"{_cli_label('Endpoint source')}: {details['endpoint_source']}")
3528
+ typer.echo(f"{_cli_label('Prompt file')}: {_cli_path(details['prompt_file'])}")
3529
+ if details["endpoint_source"] == "AZURE_AI_FOUNDRY_PROJECT_ENDPOINT":
3530
+ typer.echo(
3531
+ f"{_cli_warn('Warning')}: using endpoint from environment variable. "
3532
+ "Pass --project-endpoint or set project_endpoint in agentops.yaml "
3533
+ "to make this deterministic.",
3534
+ err=True,
3535
+ )
3536
+
3537
+ try:
3538
+ result = pull_prompt_agent_instructions(
3539
+ config_path=config,
3540
+ output_path=out,
3541
+ force=force,
3542
+ update_config=update_config,
3543
+ project_endpoint=project_endpoint,
3544
+ before_write=_before_write,
3545
+ )
3546
+ except FileExistsError as exc:
3547
+ typer.echo(f"{_cli_error('Error')}: {exc}", err=True)
3548
+ raise typer.Exit(code=1) from exc
3549
+ except (FileNotFoundError, ValueError, RuntimeError) as exc:
3550
+ typer.echo(f"{_cli_error('Error')}: {exc}", err=True)
3551
+ raise typer.Exit(code=1) from exc
3552
+ except Exception as exc:
3553
+ typer.echo(f"{_cli_error('Error')}: failed to pull prompt: {exc}", err=True)
3554
+ raise typer.Exit(code=1) from exc
3555
+
3556
+ if result.action == "created":
3557
+ typer.echo(_cli_created(result.prompt_file))
3558
+ elif result.action == "overwritten":
3559
+ typer.echo(_cli_overwritten(result.prompt_file))
3560
+ else:
3561
+ typer.echo(_cli_skipped(result.prompt_file, " (unchanged)"))
3562
+ if result.config_updated:
3563
+ typer.echo(_cli_updated(result.config_path))
3564
+
3565
+
3418
3566
  # ---------------------------------------------------------------------------
3419
3567
  # agentops mcp serve
3420
3568
  # ---------------------------------------------------------------------------
@@ -39,6 +39,14 @@ from pydantic import BaseModel, ConfigDict, Field, field_validator, model_valida
39
39
  #: Wire protocol for hosted / HTTP targets.
40
40
  Protocol = Literal["responses", "invocations", "http-json"]
41
41
 
42
+ #: How AgentOps reads an ``http-json`` response body.
43
+ #:
44
+ #: - ``json`` (default): parse a single JSON document. Preserves the exact
45
+ #: behavior of every existing ``http_json`` config.
46
+ #: - ``sse``: parse a Server-Sent Events body, concatenating ``data:`` lines.
47
+ #: - ``text``: concatenate a raw streamed text body.
48
+ ResponseMode = Literal["json", "sse", "text"]
49
+
42
50
  #: How thresholds compare against measured metric values.
43
51
  Criteria = Literal[">=", ">", "<=", "<", "==", "true", "false"]
44
52
 
@@ -540,6 +548,41 @@ class RedTeamRunConfig(BaseModel):
540
548
  model_config = ConfigDict(extra="forbid")
541
549
 
542
550
 
551
+ class StreamConfig(BaseModel):
552
+ """Streaming aggregation options for ``http-json`` targets.
553
+
554
+ Only meaningful when ``response_mode`` is ``"sse"`` or ``"text"``. These
555
+ fields control how a streamed response body is parsed and reassembled into
556
+ a single answer string.
557
+ """
558
+
559
+ text_field: Optional[str] = Field(
560
+ None,
561
+ description=(
562
+ "For SSE where each 'data:' line is a JSON object, the dotted path "
563
+ "to the token text (e.g. 'delta.content'). Omit (None) when each "
564
+ "'data:' line is already raw text."
565
+ ),
566
+ )
567
+ done_marker: Optional[str] = Field(
568
+ None,
569
+ description=(
570
+ "Optional sentinel (e.g. '[DONE]'); aggregation stops when a "
571
+ "'data:' line equals this value."
572
+ ),
573
+ )
574
+ strip_leading_token: bool = Field(
575
+ False,
576
+ description=(
577
+ "Drop the first whitespace-delimited token from the aggregated "
578
+ "text. Use for endpoints that prefix the stream with an id (e.g. "
579
+ "the gpt-rag orchestrator emits '<conversation_id> ' first)."
580
+ ),
581
+ )
582
+
583
+ model_config = ConfigDict(extra="forbid")
584
+
585
+
543
586
  # ---------------------------------------------------------------------------
544
587
  # Top-level config
545
588
  # ---------------------------------------------------------------------------
@@ -600,7 +643,20 @@ class AgentOpsConfig(BaseModel):
600
643
 
601
644
  ``headers`` / ``auth_header_env``
602
645
  Optional HTTP request configuration for ``http-json`` and
603
- ``invocations`` targets.
646
+ ``invocations`` targets. ``auth_header_env`` names the environment
647
+ variable that holds the secret.
648
+
649
+ ``response_mode`` / ``stream``
650
+ ``http-json`` only. ``response_mode`` selects how the response body is
651
+ read: ``"json"`` (default, single JSON document), ``"sse"`` (Server-Sent
652
+ Events), or ``"text"`` (raw streamed text). The ``stream`` block tunes
653
+ SSE/text aggregation (``text_field``, ``done_marker``,
654
+ ``strip_leading_token``).
655
+
656
+ ``auth_header_name`` / ``auth_value_template``
657
+ ``http-json`` only. Decouple the auth header from the default
658
+ ``Authorization: Bearer {token}``. For a shared-secret endpoint set
659
+ ``auth_header_name: X-API-KEY`` and ``auth_value_template: "{token}"``.
604
660
 
605
661
  ``evaluators``
606
662
  Optional escape hatch: explicit list of evaluator names that overrides
@@ -696,6 +752,37 @@ class AgentOpsConfig(BaseModel):
696
752
  tool_calls_field: Optional[str] = None
697
753
  headers: Dict[str, str] = Field(default_factory=dict)
698
754
  auth_header_env: Optional[str] = None
755
+ response_mode: ResponseMode = Field(
756
+ "json",
757
+ description=(
758
+ "How to read the HTTP/JSON response body. 'json' (default) parses "
759
+ "a single JSON document and preserves existing behavior. 'sse' "
760
+ "parses Server-Sent Events 'data:' lines; 'text' concatenates a "
761
+ "raw streamed text body. Only valid for http-json targets."
762
+ ),
763
+ )
764
+ stream: Optional[StreamConfig] = Field(
765
+ None,
766
+ description=(
767
+ "Streaming aggregation options, used only when response_mode is "
768
+ "'sse' or 'text'."
769
+ ),
770
+ )
771
+ auth_header_name: Optional[str] = Field(
772
+ None,
773
+ description=(
774
+ "HTTP header that carries the secret read from auth_header_env. "
775
+ "Defaults to 'Authorization' when unset."
776
+ ),
777
+ )
778
+ auth_value_template: Optional[str] = Field(
779
+ None,
780
+ description=(
781
+ "Template for the auth header value; '{token}' is replaced by the "
782
+ "auth_header_env value. Defaults to 'Bearer {token}' when unset. "
783
+ "Use '{token}' alone for a raw shared-secret header like X-API-KEY."
784
+ ),
785
+ )
699
786
 
700
787
  evaluators: Optional[List[EvaluatorOverride]] = None
701
788
  rubrics: List[RubricConfig] = Field(
@@ -850,6 +937,10 @@ class AgentOpsConfig(BaseModel):
850
937
  or self.tool_calls_field
851
938
  or self.headers
852
939
  or self.auth_header_env
940
+ or self.response_mode != "json"
941
+ or self.stream is not None
942
+ or self.auth_header_name
943
+ or self.auth_value_template
853
944
  ):
854
945
  # Foundry hosted (responses/invocations) defines its own wire
855
946
  # format. HTTP-only request/response shaping is invalid there.
@@ -859,8 +950,9 @@ class AgentOpsConfig(BaseModel):
859
950
  else:
860
951
  raise ValueError(
861
952
  "request_field / response_field / tool_calls_field / "
862
- "headers / auth_header_env are only valid for HTTP/JSON "
863
- "or Foundry hosted (invocations) targets"
953
+ "headers / auth_header_env / response_mode / stream / "
954
+ "auth_header_name / auth_value_template are only valid for "
955
+ "HTTP/JSON or Foundry hosted (invocations) targets"
864
956
  )
865
957
  return self
866
958