agentops-accelerator 0.3.7__tar.gz → 0.3.8__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 (299) hide show
  1. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.claude-plugin/marketplace.json +1 -1
  2. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/plugin/marketplace.json +1 -1
  3. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/CHANGELOG.md +18 -0
  4. {agentops_accelerator-0.3.7/src/agentops_accelerator.egg-info → agentops_accelerator-0.3.8}/PKG-INFO +1 -1
  5. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/package.json +1 -1
  6. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/plugin.json +1 -1
  7. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/cli/app.py +32 -4
  8. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/setup_wizard.py +24 -14
  9. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8/src/agentops_accelerator.egg-info}/PKG-INFO +1 -1
  10. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_init_command.py +12 -2
  11. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_setup_wizard.py +74 -4
  12. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.gitattributes +0 -0
  13. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/actions/azure-oidc-login/action.yml +0 -0
  14. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/code-quality-py.instructions.md +0 -0
  15. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/copilot-instructions.md +0 -0
  16. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/dependabot.yml +0 -0
  17. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/extensions/agentops-skills/extension.mjs +0 -0
  18. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/skills/release-management/SKILL.md +0 -0
  19. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/workflows/_build.yml +0 -0
  20. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/workflows/agentops-watchdog.yml +0 -0
  21. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/workflows/ci.yml +0 -0
  22. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/workflows/cut-release.yml +0 -0
  23. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/workflows/e2e.yml +0 -0
  24. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/workflows/release.yml +0 -0
  25. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.github/workflows/staging.yml +0 -0
  26. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.gitignore +0 -0
  27. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.pre-commit-config.yaml +0 -0
  28. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.vscode/launch.json +0 -0
  29. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.vscode/settings.json +0 -0
  30. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/.vscode/tasks.json +0 -0
  31. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/AGENTS.md +0 -0
  32. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/CONTRIBUTING.md +0 -0
  33. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/LICENSE +0 -0
  34. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/README.md +0 -0
  35. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/SECURITY.md +0 -0
  36. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/bundles.md +0 -0
  37. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/ci-github-actions.md +0 -0
  38. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/concepts.md +0 -0
  39. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/doctor-checks.md +0 -0
  40. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/doctor-explained.md +0 -0
  41. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/e2e-live-architecture.md +0 -0
  42. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/e2e-live-setup.md +0 -0
  43. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/foundry-evaluation-sdk-built-in-evaluators.md +0 -0
  44. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/how-it-works.md +0 -0
  45. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/media/agentops-diagrams.vsdx +0 -0
  46. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/media/foundry-control-plane.png +0 -0
  47. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/release-process.md +0 -0
  48. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/tutorial-end-to-end.md +0 -0
  49. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/tutorial-hosted-agent-quickstart.md +0 -0
  50. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/docs/tutorial-prompt-agent-quickstart.md +0 -0
  51. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/examples/flat-quickstart/README.md +0 -0
  52. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/examples/flat-quickstart/agentops.yaml +0 -0
  53. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/examples/flat-quickstart/dataset.jsonl +0 -0
  54. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/icon.png +0 -0
  55. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/infra/e2e/agent-app/Dockerfile +0 -0
  56. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/infra/e2e/agent-app/app.py +0 -0
  57. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/infra/e2e/agent-app/requirements.txt +0 -0
  58. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/infra/e2e/bootstrap.bicep +0 -0
  59. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/infra/e2e/bootstrap.parameters.example.json +0 -0
  60. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/infra/e2e/perrun.bicep +0 -0
  61. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/launch.json +0 -0
  62. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/media/foundry.svg +0 -0
  63. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/media/quickstart.gif +0 -0
  64. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/.vscodeignore +0 -0
  65. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/LICENSE +0 -0
  66. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/README.md +0 -0
  67. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/skills/agentops-agent/SKILL.md +0 -0
  68. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/skills/agentops-config/SKILL.md +0 -0
  69. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/skills/agentops-dataset/SKILL.md +0 -0
  70. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/skills/agentops-eval/SKILL.md +0 -0
  71. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/skills/agentops-report/SKILL.md +0 -0
  72. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/plugins/agentops/skills/agentops-workflow/SKILL.md +0 -0
  73. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/pyproject.toml +0 -0
  74. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/create_support_agent.py +0 -0
  75. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/cut-release.ps1 +0 -0
  76. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/cut-release.sh +0 -0
  77. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/e2e_aggregate_summary.py +0 -0
  78. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/e2e_data/basic.jsonl +0 -0
  79. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/e2e_data/rag.jsonl +0 -0
  80. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/e2e_data/tools.jsonl +0 -0
  81. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/e2e_demo.py +0 -0
  82. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/e2e_hosted_agent.py +0 -0
  83. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/e2e_make_transcript.py +0 -0
  84. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/e2e_render_config.py +0 -0
  85. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/release.ps1 +0 -0
  86. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/release.sh +0 -0
  87. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/setup-e2e-new-tenant.ps1 +0 -0
  88. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/staging.ps1 +0 -0
  89. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/staging.sh +0 -0
  90. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/sync-skills.ps1 +0 -0
  91. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/scripts/sync-skills.sh +0 -0
  92. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/setup.cfg +0 -0
  93. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/__init__.py +0 -0
  94. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/__main__.py +0 -0
  95. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/__init__.py +0 -0
  96. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/_legacy_ids.py +0 -0
  97. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/analyzer.py +0 -0
  98. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/__init__.py +0 -0
  99. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/catalog.py +0 -0
  100. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/errors.py +0 -0
  101. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/foundry_config.py +0 -0
  102. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/latency.py +0 -0
  103. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/opex.py +0 -0
  104. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/opex_workspace.py +0 -0
  105. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/posture.py +0 -0
  106. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/posture_rules/__init__.py +0 -0
  107. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/posture_rules/content_filter.py +0 -0
  108. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/posture_rules/diagnostics.py +0 -0
  109. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/posture_rules/local_auth.py +0 -0
  110. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/posture_rules/managed_identity.py +0 -0
  111. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/posture_rules/network.py +0 -0
  112. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/regression.py +0 -0
  113. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/release_readiness.py +0 -0
  114. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/safety.py +0 -0
  115. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/checks/spec_conformance.py +0 -0
  116. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/cockpit.py +0 -0
  117. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/config.py +0 -0
  118. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/findings.py +0 -0
  119. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/history.py +0 -0
  120. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/knowledge/__init__.py +0 -0
  121. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/knowledge/waf-checklist.csv +0 -0
  122. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/llm_assist/__init__.py +0 -0
  123. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/llm_assist/_base.py +0 -0
  124. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/llm_assist/_bundle_rule.py +0 -0
  125. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/llm_assist/_client.py +0 -0
  126. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/llm_assist/_dataset_rules.py +0 -0
  127. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/llm_assist/_engine.py +0 -0
  128. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/llm_assist/_prompt_rules.py +0 -0
  129. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/llm_assist/_spec_rules.py +0 -0
  130. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/production_telemetry.py +0 -0
  131. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/report.py +0 -0
  132. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/server/__init__.py +0 -0
  133. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/server/app.py +0 -0
  134. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/server/auth.py +0 -0
  135. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/server/chat.py +0 -0
  136. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/server/protocol.py +0 -0
  137. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/sources/__init__.py +0 -0
  138. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/sources/azure_monitor.py +0 -0
  139. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/sources/azure_resources.py +0 -0
  140. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/sources/foundry_control.py +0 -0
  141. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/sources/results_history.py +0 -0
  142. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/sources/spec_detectors/__init__.py +0 -0
  143. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/sources/spec_detectors/_base.py +0 -0
  144. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/sources/spec_detectors/agents_md.py +0 -0
  145. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/sources/spec_detectors/spec_kit.py +0 -0
  146. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/agent/time_range.py +0 -0
  147. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/cli/__init__.py +0 -0
  148. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/core/__init__.py +0 -0
  149. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/core/agentops_config.py +0 -0
  150. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/core/config_loader.py +0 -0
  151. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/core/evaluators.py +0 -0
  152. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/core/release_evidence.py +0 -0
  153. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/core/results.py +0 -0
  154. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/mcp/__init__.py +0 -0
  155. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/mcp/server.py +0 -0
  156. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/__init__.py +0 -0
  157. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/cloud_results.py +0 -0
  158. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/cloud_runner.py +0 -0
  159. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/comparison.py +0 -0
  160. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/diagnostics.py +0 -0
  161. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/invocations.py +0 -0
  162. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/official_eval.py +0 -0
  163. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/orchestrator.py +0 -0
  164. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/prompt_deploy.py +0 -0
  165. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/publisher.py +0 -0
  166. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/reporter.py +0 -0
  167. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/runtime.py +0 -0
  168. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/pipeline/thresholds.py +0 -0
  169. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/__init__.py +0 -0
  170. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/cicd.py +0 -0
  171. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/eval_analysis.py +0 -0
  172. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/evidence_pack.py +0 -0
  173. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/initializer.py +0 -0
  174. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/preflight.py +0 -0
  175. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/skills.py +0 -0
  176. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/trace_promotion.py +0 -0
  177. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/services/workflow_analysis.py +0 -0
  178. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/.gitignore +0 -0
  179. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/__init__.py +0 -0
  180. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/agent-server/Dockerfile +0 -0
  181. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/agent-server/README.md +0 -0
  182. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/agent-server/main.bicep +0 -0
  183. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/agent.yaml +0 -0
  184. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/agentops.yaml +0 -0
  185. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/foundry.svg +0 -0
  186. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/icon.png +0 -0
  187. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev-azd.yml +0 -0
  188. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev.yml +0 -0
  189. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod-azd.yml +0 -0
  190. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod.yml +0 -0
  191. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prompt-agent.yml +0 -0
  192. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa-azd.yml +0 -0
  193. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa.yml +0 -0
  194. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-pr-prompt-agent.yml +0 -0
  195. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-pr.yml +0 -0
  196. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/pipelines/azuredevops/agentops-watchdog.yml +0 -0
  197. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/project.gitignore +0 -0
  198. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/sample-traces.jsonl +0 -0
  199. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/skills/agentops-agent/SKILL.md +0 -0
  200. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/skills/agentops-config/SKILL.md +0 -0
  201. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/skills/agentops-dataset/SKILL.md +0 -0
  202. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/skills/agentops-eval/SKILL.md +0 -0
  203. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/skills/agentops-report/SKILL.md +0 -0
  204. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/skills/agentops-workflow/SKILL.md +0 -0
  205. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/smoke.jsonl +0 -0
  206. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/waf-checklist.README.md +0 -0
  207. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/waf-checklist.csv +0 -0
  208. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-deploy-dev-azd.yml +0 -0
  209. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-deploy-dev.yml +0 -0
  210. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-deploy-prod-azd.yml +0 -0
  211. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-deploy-prod.yml +0 -0
  212. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-deploy-prompt-agent.yml +0 -0
  213. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-deploy-qa-azd.yml +0 -0
  214. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-deploy-qa.yml +0 -0
  215. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-pr-prompt-agent.yml +0 -0
  216. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-pr.yml +0 -0
  217. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/templates/workflows/agentops-watchdog.yml +0 -0
  218. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/utils/__init__.py +0 -0
  219. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/utils/azd_env.py +0 -0
  220. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/utils/azure_endpoints.py +0 -0
  221. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/utils/colors.py +0 -0
  222. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/utils/dotenv_loader.py +0 -0
  223. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/utils/foundry_discovery.py +0 -0
  224. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/utils/logging.py +0 -0
  225. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/utils/telemetry.py +0 -0
  226. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops/utils/yaml.py +0 -0
  227. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops_accelerator.egg-info/SOURCES.txt +0 -0
  228. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops_accelerator.egg-info/dependency_links.txt +0 -0
  229. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops_accelerator.egg-info/entry_points.txt +0 -0
  230. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops_accelerator.egg-info/requires.txt +0 -0
  231. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/src/agentops_accelerator.egg-info/top_level.txt +0 -0
  232. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/TESTING.md +0 -0
  233. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/fixtures/fake_adapter.py +0 -0
  234. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/fixtures/fake_eval_runner.py +0 -0
  235. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/integration/.gitkeep +0 -0
  236. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/integration/test_cli_flat_schema.py +0 -0
  237. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/integration/test_pipeline_smoke.py +0 -0
  238. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/.gitkeep +0 -0
  239. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_analyzer.py +0 -0
  240. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_categories.py +0 -0
  241. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_checks_errors.py +0 -0
  242. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_checks_foundry_config.py +0 -0
  243. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_checks_opex.py +0 -0
  244. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_checks_opex_workspace.py +0 -0
  245. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_checks_regression.py +0 -0
  246. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_checks_safety.py +0 -0
  247. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_checks_spec_conformance.py +0 -0
  248. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_cli.py +0 -0
  249. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_config.py +0 -0
  250. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_findings.py +0 -0
  251. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_history.py +0 -0
  252. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_opex_workspace_check.py +0 -0
  253. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_posture_rules.py +0 -0
  254. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_results_history.py +0 -0
  255. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agent_server.py +0 -0
  256. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_agentops_config.py +0 -0
  257. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_azd_env.py +0 -0
  258. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_azure_endpoints.py +0 -0
  259. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_azure_resources_discovery.py +0 -0
  260. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_cicd.py +0 -0
  261. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_cli_cockpit_connection_summary.py +0 -0
  262. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_cli_cockpit_port_conflict.py +0 -0
  263. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_cli_commands.py +0 -0
  264. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_cli_explain.py +0 -0
  265. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_cloud_results.py +0 -0
  266. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_cloud_runner.py +0 -0
  267. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_cockpit.py +0 -0
  268. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_diagnostics.py +0 -0
  269. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_doctor_catalog.py +0 -0
  270. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_doctor_cli_explain.py +0 -0
  271. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_dotenv_loader.py +0 -0
  272. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_e2e_render.py +0 -0
  273. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_eval_analysis.py +0 -0
  274. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_eval_run_grader_errors.py +0 -0
  275. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_evaluators.py +0 -0
  276. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_foundry_discovery.py +0 -0
  277. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_initializer.py +0 -0
  278. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_invocations.py +0 -0
  279. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_knowledge_loader.py +0 -0
  280. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_llm_assist.py +0 -0
  281. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_llm_assist_spec_rules.py +0 -0
  282. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_mcp_server.py +0 -0
  283. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_official_eval.py +0 -0
  284. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_pipeline_publisher.py +0 -0
  285. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_pipeline_reporter.py +0 -0
  286. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_preflight.py +0 -0
  287. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_production_telemetry.py +0 -0
  288. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_prompt_deploy.py +0 -0
  289. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_release_evidence.py +0 -0
  290. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_runtime_conversation.py +0 -0
  291. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_runtime_model_config.py +0 -0
  292. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_skills.py +0 -0
  293. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_skills_sync.py +0 -0
  294. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_telemetry.py +0 -0
  295. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_time_range.py +0 -0
  296. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_trace_promotion.py +0 -0
  297. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tests/unit/test_workflow_analysis.py +0 -0
  298. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/tombstones/vscode/CDN_DEPRECATION_REQUEST.md +0 -0
  299. {agentops_accelerator-0.3.7 → agentops_accelerator-0.3.8}/uv.lock +0 -0
@@ -13,7 +13,7 @@
13
13
  "name": "agentops-accelerator",
14
14
  "source": "../../plugins/agentops",
15
15
  "description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Toolkit and Microsoft Foundry agents.",
16
- "version": "0.3.7",
16
+ "version": "0.3.8",
17
17
  "keywords": [
18
18
  "agentops",
19
19
  "evaluation",
@@ -13,7 +13,7 @@
13
13
  "name": "agentops-accelerator",
14
14
  "source": "../../plugins/agentops",
15
15
  "description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Toolkit and Microsoft Foundry agents.",
16
- "version": "0.3.7",
16
+ "version": "0.3.8",
17
17
  "keywords": [
18
18
  "agentops",
19
19
  "evaluation",
@@ -5,6 +5,24 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.3.8] - 2026-06-04
9
+
10
+ ### Fixed
11
+ - **`agentops init` now handles blank required wizard values gracefully.** If
12
+ the user presses Enter without an existing Foundry endpoint or agent default,
13
+ the wizard explains that AgentOps needs the missing value and re-prompts
14
+ instead of proceeding to a later persistence failure. Scripted blank flags
15
+ such as `--agent ""` now exit with the same friendly message and no traceback.
16
+ - **`agentops init` no longer depends on undeclared PyYAML.** The setup wizard
17
+ now reads and writes `agentops.yaml` through the repository's `ruamel.yaml`
18
+ helpers, fixing the ugly `No module named 'yaml'` traceback seen in clean
19
+ installs.
20
+
21
+ ### Changed
22
+ - **AgentOps brand tagline sequence now reads `Evaluate :: Ship :: Observe ::
23
+ Own`.** The startup/explain banner now matches the intended product story
24
+ order.
25
+
8
26
  ## [0.3.7] - 2026-06-01
9
27
 
10
28
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentops-accelerator
3
- Version: 0.3.7
3
+ Version: 0.3.8
4
4
  Summary: Release readiness gates and evidence for Microsoft Foundry agents
5
5
  License: MIT License
6
6
 
@@ -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.7",
5
+ "version": "0.3.8",
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.7",
4
+ "version": "0.3.8",
5
5
  "author": {
6
6
  "name": "AgentOps Accelerator",
7
7
  "url": "https://github.com/Azure/agentops"
@@ -1365,6 +1365,7 @@ def cmd_init(
1365
1365
  AGENT_TITLE,
1366
1366
  DATASET_TITLE,
1367
1367
  PROJECT_ENDPOINT_TITLE,
1368
+ REQUIRED_CONFIGURATION_MESSAGE,
1368
1369
  WizardAnswers,
1369
1370
  apply_answers,
1370
1371
  discover_defaults,
@@ -1476,16 +1477,37 @@ def cmd_init(
1476
1477
  if any_flag:
1477
1478
  # Scripted mode — validate then apply.
1478
1479
  if project_endpoint is not None:
1480
+ if not project_endpoint.strip():
1481
+ typer.echo(
1482
+ f"{_cli_error('Error')}: --project-endpoint is required. "
1483
+ f"{REQUIRED_CONFIGURATION_MESSAGE}",
1484
+ err=True,
1485
+ )
1486
+ raise typer.Exit(code=1)
1479
1487
  err = validate_project_endpoint(project_endpoint)
1480
1488
  if err:
1481
1489
  typer.echo(f"{_cli_error('Error')}: --project-endpoint: {err}", err=True)
1482
1490
  raise typer.Exit(code=1)
1483
1491
  if agent is not None:
1492
+ if not agent.strip():
1493
+ typer.echo(
1494
+ f"{_cli_error('Error')}: --agent is required. "
1495
+ f"{REQUIRED_CONFIGURATION_MESSAGE}",
1496
+ err=True,
1497
+ )
1498
+ raise typer.Exit(code=1)
1484
1499
  err = validate_agent(agent)
1485
1500
  if err:
1486
1501
  typer.echo(f"{_cli_error('Error')}: --agent: {err}", err=True)
1487
1502
  raise typer.Exit(code=1)
1488
1503
  if dataset is not None:
1504
+ if not dataset.strip():
1505
+ typer.echo(
1506
+ f"{_cli_error('Error')}: --dataset is required. "
1507
+ f"{REQUIRED_CONFIGURATION_MESSAGE}",
1508
+ err=True,
1509
+ )
1510
+ raise typer.Exit(code=1)
1489
1511
  err = validate_dataset(dataset, workspace)
1490
1512
  if err:
1491
1513
  typer.echo(f"{_cli_error('Error')}: --dataset: {err}", err=True)
@@ -1605,8 +1627,14 @@ def cmd_init(
1605
1627
  default_env_name=target_env_name,
1606
1628
  azd_env_name=azd_env_name,
1607
1629
  )
1608
- except RuntimeError as exc:
1609
- typer.echo(f"{_cli_error('Error')}: {exc}", err=True)
1630
+ except Exception as exc: # noqa: BLE001
1631
+ typer.echo(
1632
+ f"{_cli_error('Error')}: could not save AgentOps configuration. "
1633
+ f"{REQUIRED_CONFIGURATION_MESSAGE}",
1634
+ err=True,
1635
+ )
1636
+ if str(exc):
1637
+ typer.echo(f"{_cli_warn('Details')}: {exc}", err=True)
1610
1638
  raise typer.Exit(code=1)
1611
1639
 
1612
1640
  typer.echo("")
@@ -4362,8 +4390,8 @@ def _colorize_block(
4362
4390
  # fallback keeps the same words on a single line.
4363
4391
  def _agentops_tagline() -> str:
4364
4392
  if _terminal_unicode_enabled():
4365
- return "Evaluate · Observe · Diagnose · Ship — every Foundry agent."
4366
- return "Evaluate :: Observe :: Diagnose :: Ship -- every Foundry agent."
4393
+ return "Evaluate · Ship · Observe · Own — every Foundry agent."
4394
+ return "Evaluate :: Ship :: Observe :: Own -- every Foundry agent."
4367
4395
 
4368
4396
 
4369
4397
  def _render_brand_block(
@@ -67,6 +67,12 @@ DATASET_HELP = (
67
67
  ENV_KEY_PROJECT_ENDPOINT = "AZURE_AI_FOUNDRY_PROJECT_ENDPOINT"
68
68
  ENV_KEY_APPINSIGHTS = "APPLICATIONINSIGHTS_CONNECTION_STRING"
69
69
 
70
+ REQUIRED_CONFIGURATION_MESSAGE = (
71
+ "AgentOps needs a Foundry project endpoint, an agent, and a dataset path "
72
+ "before it can finish configuration. Enter the missing value, or press "
73
+ "Ctrl+C to cancel and re-run `agentops init` later."
74
+ )
75
+
70
76
 
71
77
  # ---------------------------------------------------------------------------
72
78
  # Data models
@@ -356,18 +362,16 @@ def _read_agentops_yaml(workspace: Path) -> dict:
356
362
  if not path.exists():
357
363
  return {}
358
364
  try:
359
- import yaml # noqa: PLC0415
360
- except Exception: # noqa: BLE001
361
- return {}
362
- try:
363
- data = yaml.safe_load(path.read_text(encoding="utf-8"))
365
+ from agentops.utils.yaml import load_yaml # noqa: PLC0415
366
+
367
+ data = load_yaml(path)
364
368
  except Exception: # noqa: BLE001
365
369
  return {}
366
370
  return data if isinstance(data, dict) else {}
367
371
 
368
372
 
369
373
  def _write_agentops_yaml(path: Path, data: dict) -> None:
370
- import yaml # noqa: PLC0415
374
+ from agentops.utils.yaml import save_yaml # noqa: PLC0415
371
375
 
372
376
  path.parent.mkdir(parents=True, exist_ok=True)
373
377
  # Preserve simple field order for readability: version, agent, dataset,
@@ -381,10 +385,7 @@ def _write_agentops_yaml(path: Path, data: dict) -> None:
381
385
  for key, value in data.items():
382
386
  if key not in ordered:
383
387
  ordered[key] = value
384
- path.write_text(
385
- yaml.safe_dump(ordered, sort_keys=False, default_flow_style=False),
386
- encoding="utf-8",
387
- )
388
+ save_yaml(path, ordered)
388
389
 
389
390
 
390
391
  _AGENTOPS_ENV_HEADER = (
@@ -601,7 +602,11 @@ def run_wizard(
601
602
  raw = prompt("Foundry project endpoint", effective_endpoint_default)
602
603
  value = raw.strip()
603
604
  if not value:
604
- break # keep current / leave blank
605
+ if effective_endpoint_default:
606
+ break # keep current
607
+ echo(" ! Foundry project endpoint is required.")
608
+ echo(" ! " + REQUIRED_CONFIGURATION_MESSAGE)
609
+ continue
605
610
  err = validate_project_endpoint(value)
606
611
  if err:
607
612
  echo(" ! " + err)
@@ -623,7 +628,11 @@ def run_wizard(
623
628
  raw = prompt("Agent", defaults.agent)
624
629
  value = raw.strip()
625
630
  if not value:
626
- break
631
+ if defaults.agent:
632
+ break # keep current
633
+ echo(" ! Agent is required.")
634
+ echo(" ! " + REQUIRED_CONFIGURATION_MESSAGE)
635
+ continue
627
636
  err = validate_agent(value)
628
637
  if err:
629
638
  echo(" ! " + err)
@@ -641,11 +650,12 @@ def run_wizard(
641
650
  echo("")
642
651
  echo(DATASET_TITLE)
643
652
  echo(_indent(DATASET_HELP))
653
+ dataset_default = defaults.dataset or ".agentops/data/smoke.jsonl"
644
654
  while True:
645
- raw = prompt("Dataset path", defaults.dataset or ".agentops/data/smoke.jsonl")
655
+ raw = prompt("Dataset path", dataset_default)
646
656
  value = raw.strip()
647
657
  if not value:
648
- break
658
+ value = dataset_default
649
659
  err = validate_dataset(value, workspace)
650
660
  if err:
651
661
  echo(" ! " + err)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentops-accelerator
3
- Version: 0.3.7
3
+ Version: 0.3.8
4
4
  Summary: Release readiness gates and evidence for Microsoft Foundry agents
5
5
  License: MIT License
6
6
 
@@ -119,6 +119,16 @@ def test_init_scripted_validates_project_endpoint(tmp_path: Path) -> None:
119
119
  assert "Project endpoint" in result.output
120
120
 
121
121
 
122
+ def test_init_scripted_blank_required_value_is_friendly(tmp_path: Path) -> None:
123
+ """Blank scripted values fail with a concise message, not a traceback."""
124
+ result = runner.invoke(app, ["init", "--dir", str(tmp_path), "--agent", ""])
125
+
126
+ assert result.exit_code == 1
127
+ assert "--agent is required" in result.output
128
+ assert "AgentOps needs a Foundry project endpoint" in result.output
129
+ assert "Traceback" not in result.output
130
+
131
+
122
132
  def test_init_scripted_with_custom_azd_env(tmp_path: Path) -> None:
123
133
  """`--azd-env qa` writes to the explicit azd env instead of the local env."""
124
134
  runner.invoke(app, ["init", "--dir", str(tmp_path), "--no-prompt"])
@@ -293,7 +303,7 @@ def test_init_prints_brand_banner(tmp_path: Path, monkeypatch) -> None:
293
303
  # ASCII letterforms from _AGENTOPS_PLAIN_BANNER (figlet "Standard").
294
304
  assert "____ _____ _ _ _____" in text
295
305
  # The catchphrase, ASCII fallback variant.
296
- assert "Evaluate :: Observe :: Diagnose :: Ship -- every Foundry agent." in text
306
+ assert "Evaluate :: Ship :: Observe :: Own -- every Foundry agent." in text
297
307
 
298
308
 
299
309
  def test_brand_tagline_is_used_by_explain_pages(monkeypatch) -> None:
@@ -305,7 +315,7 @@ def test_brand_tagline_is_used_by_explain_pages(monkeypatch) -> None:
305
315
  result = runner.invoke(app, ["init", "explain", "--no-pager"])
306
316
  assert result.exit_code == 0
307
317
  text = _strip_ansi(result.stdout)
308
- assert "Evaluate :: Observe :: Diagnose :: Ship -- every Foundry agent." in text
318
+ assert "Evaluate :: Ship :: Observe :: Own -- every Foundry agent." in text
309
319
 
310
320
 
311
321
  # ---------------------------------------------------------------------------
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import json
6
6
  import os
7
+ import builtins
7
8
  from pathlib import Path
8
9
 
9
10
  import pytest
@@ -242,6 +243,29 @@ def test_apply_answers_writes_agent_and_dataset_to_yaml(tmp_path: Path):
242
243
  assert "dataset: .agentops/data/smoke.jsonl" in text
243
244
 
244
245
 
246
+ def test_apply_answers_writes_yaml_without_pyyaml(
247
+ tmp_path: Path, monkeypatch: pytest.MonkeyPatch
248
+ ):
249
+ real_import = builtins.__import__
250
+
251
+ def _import(name, *args, **kwargs): # noqa: ANN001
252
+ if name == "yaml":
253
+ raise ModuleNotFoundError("No module named 'yaml'")
254
+ return real_import(name, *args, **kwargs)
255
+
256
+ monkeypatch.setattr(builtins, "__import__", _import)
257
+
258
+ result = apply_answers(
259
+ tmp_path,
260
+ WizardAnswers(agent="my-bot:7", dataset=".agentops/data/smoke.jsonl"),
261
+ )
262
+
263
+ assert result.yaml_updated is True
264
+ assert "agent: my-bot:7" in (tmp_path / "agentops.yaml").read_text(
265
+ encoding="utf-8"
266
+ )
267
+
268
+
245
269
  def test_apply_answers_does_not_write_project_endpoint_to_yaml(tmp_path: Path):
246
270
  """Environment-specific endpoints stay out of agentops.yaml."""
247
271
  answers = WizardAnswers(
@@ -465,7 +489,7 @@ def test_run_wizard_does_not_prompt_for_appinsights(
465
489
  assert "Application Insights" not in "\n".join(messages)
466
490
 
467
491
 
468
- def test_run_wizard_empty_input_keeps_current(
492
+ def test_run_wizard_empty_input_reprompts_required_missing_endpoint(
469
493
  tmp_path: Path, monkeypatch: pytest.MonkeyPatch
470
494
  ):
471
495
  monkeypatch.delenv("AZURE_AI_FOUNDRY_PROJECT_ENDPOINT", raising=False)
@@ -479,14 +503,46 @@ def test_run_wizard_empty_input_keeps_current(
479
503
  # With idempotent skip-on-default, agent/dataset are silently reused.
480
504
  # Only the still-empty project endpoint gets asked; App Insights is left
481
505
  # for runtime discovery or explicit non-interactive configuration.
482
- prompt = _scripted_prompt([""])
506
+ prompt = _scripted_prompt(["", "https://acct.services.ai.azure.com/api/projects/p"])
507
+ messages: list[str] = []
483
508
  answers = run_wizard(
484
- tmp_path, prompt=prompt, echo=lambda _msg: None, reconfigure=False
509
+ tmp_path, prompt=prompt, echo=messages.append, reconfigure=False
485
510
  )
486
- assert answers.project_endpoint is None
511
+ assert answers.project_endpoint == "https://acct.services.ai.azure.com/api/projects/p"
487
512
  assert answers.agent is None
488
513
  assert answers.dataset is None
489
514
  assert answers.appinsights_connection_string is None
515
+ assert "Foundry project endpoint is required." in "\n".join(messages)
516
+
517
+
518
+ def test_run_wizard_reprompts_blank_required_values(
519
+ tmp_path: Path, monkeypatch: pytest.MonkeyPatch
520
+ ):
521
+ monkeypatch.delenv("AZURE_AI_FOUNDRY_PROJECT_ENDPOINT", raising=False)
522
+ monkeypatch.delenv("APPLICATIONINSIGHTS_CONNECTION_STRING", raising=False)
523
+
524
+ data_dir = tmp_path / ".agentops" / "data"
525
+ data_dir.mkdir(parents=True)
526
+ (data_dir / "smoke.jsonl").write_text("{}\n", encoding="utf-8")
527
+ prompt = _scripted_prompt(
528
+ [
529
+ "",
530
+ "https://acct.services.ai.azure.com/api/projects/p",
531
+ "",
532
+ "my-bot:9",
533
+ "",
534
+ ]
535
+ )
536
+ messages: list[str] = []
537
+
538
+ answers = run_wizard(tmp_path, prompt=prompt, echo=messages.append)
539
+
540
+ assert answers.project_endpoint == "https://acct.services.ai.azure.com/api/projects/p"
541
+ assert answers.agent == "my-bot:9"
542
+ assert answers.dataset == ".agentops/data/smoke.jsonl"
543
+ output = "\n".join(messages)
544
+ assert "Foundry project endpoint is required." in output
545
+ assert "Agent is required." in output
490
546
 
491
547
 
492
548
  def test_run_wizard_force_prompt_fields_reasks_seed_agent_and_dataset(
@@ -543,6 +599,20 @@ def test_run_wizard_appinsights_is_not_interactive_even_when_missing(
543
599
  """The wizard should not ask for App Insights just to leave it blank."""
544
600
  monkeypatch.delenv("AZURE_AI_FOUNDRY_PROJECT_ENDPOINT", raising=False)
545
601
  monkeypatch.delenv("APPLICATIONINSIGHTS_CONNECTION_STRING", raising=False)
602
+ _seed_azd_env(
603
+ tmp_path,
604
+ "dev",
605
+ {
606
+ "AZURE_AI_FOUNDRY_PROJECT_ENDPOINT": (
607
+ "https://acct.services.ai.azure.com/api/projects/p"
608
+ ),
609
+ },
610
+ )
611
+ (tmp_path / "agentops.yaml").write_text(
612
+ "version: 1\nagent: keep:1\ndataset: keep.jsonl\n",
613
+ encoding="utf-8",
614
+ )
615
+ (tmp_path / "keep.jsonl").write_text("{}\n", encoding="utf-8")
546
616
 
547
617
  messages: list[str] = []
548
618
  prompt_calls: list[str] = []