agentic-devtools 0.2.15__tar.gz → 0.2.17__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 (1128) hide show
  1. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/PKG-INFO +1 -1
  2. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/_version.py +2 -2
  3. agentic_devtools-0.2.17/agentic_devtools/cli/cert_utils.py +194 -0
  4. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/copilot/session.py +33 -23
  5. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/helpers.py +9 -83
  6. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/setup/commands.py +54 -0
  7. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/setup/copilot_cli_installer.py +4 -2
  8. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/setup/gh_cli_installer.py +9 -3
  9. agentic_devtools-0.2.17/tests/unit/cli/cert_utils/test_count_certificates_in_pem.py +29 -0
  10. agentic_devtools-0.2.17/tests/unit/cli/cert_utils/test_ensure_ca_bundle.py +163 -0
  11. agentic_devtools-0.2.17/tests/unit/cli/cert_utils/test_fetch_certificate_chain_openssl.py +58 -0
  12. agentic_devtools-0.2.17/tests/unit/cli/cert_utils/test_fetch_certificate_chain_ssl.py +52 -0
  13. agentic_devtools-0.2.17/tests/unit/cli/cert_utils/test_get_ssl_verify.py +69 -0
  14. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/copilot/session/test_start_copilot_session.py +32 -10
  15. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/comment_commands/test_add_comment.py +31 -0
  16. agentic_devtools-0.2.17/tests/unit/cli/setup/commands/test__prefetch_certs.py +74 -0
  17. agentic_devtools-0.2.17/tests/unit/cli/setup/conftest.py +18 -0
  18. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/copilot_cli_installer/test_get_latest_release_info.py +1 -0
  19. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/gh_cli_installer/test_get_latest_release_info.py +1 -0
  20. agentic_devtools-0.2.17/tests/workflows/__init__.py +0 -0
  21. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.devcontainer/README.md +0 -0
  22. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.devcontainer/devcontainer.json +0 -0
  23. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.dfly-temp/background-tasks/all-background-tasks.json +0 -0
  24. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.dfly-temp/dfly-state.json +0 -0
  25. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/ISSUE_TEMPLATE/speckit-test.md +0 -0
  26. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/MARKDOWN_LINTING.md +0 -0
  27. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/.markdownlint.json +0 -0
  28. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.apply-pr-suggestions.initiate.agent.md +0 -0
  29. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.create-jira-epic.initiate.agent.md +0 -0
  30. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.create-jira-issue.initiate.agent.md +0 -0
  31. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.create-jira-subtask.initiate.agent.md +0 -0
  32. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.pull-request-review.completion.agent.md +0 -0
  33. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.pull-request-review.decision.agent.md +0 -0
  34. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.pull-request-review.file-review.agent.md +0 -0
  35. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.pull-request-review.initiate.agent.md +0 -0
  36. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.pull-request-review.summary.agent.md +0 -0
  37. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.update-jira-issue.initiate.agent.md +0 -0
  38. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.checklist-creation.agent.md +0 -0
  39. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.commit.agent.md +0 -0
  40. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.completion.agent.md +0 -0
  41. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.implementation-review.agent.md +0 -0
  42. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.implementation.agent.md +0 -0
  43. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.initiate.agent.md +0 -0
  44. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.planning.agent.md +0 -0
  45. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.pull-request.agent.md +0 -0
  46. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.retrieve.agent.md +0 -0
  47. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.setup.agent.md +0 -0
  48. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/agdt.work-on-jira-issue.verification.agent.md +0 -0
  49. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/copilot-instructions.md +0 -0
  50. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/security-scan.agent.md +0 -0
  51. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/senior-python-developer.md +0 -0
  52. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/speckit.analyze.agent.md +0 -0
  53. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/speckit.checklist.agent.md +0 -0
  54. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/speckit.clarify.agent.md +0 -0
  55. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/speckit.constitution.agent.md +0 -0
  56. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/speckit.implement.agent.md +0 -0
  57. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/speckit.plan.agent.md +0 -0
  58. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/speckit.specify.agent.md +0 -0
  59. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/speckit.tasks.agent.md +0 -0
  60. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/agents/speckit.taskstoissues.agent.md +0 -0
  61. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/copilot-instructions.md +0 -0
  62. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/.markdownlint.json +0 -0
  63. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.apply-pr-suggestions.initiate.prompt.md +0 -0
  64. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.create-jira-epic.initiate.prompt.md +0 -0
  65. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.create-jira-issue.initiate.prompt.md +0 -0
  66. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.create-jira-subtask.initiate.prompt.md +0 -0
  67. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.pull-request-review.completion.prompt.md +0 -0
  68. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.pull-request-review.decision.prompt.md +0 -0
  69. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.pull-request-review.file-review.prompt.md +0 -0
  70. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.pull-request-review.initiate.prompt.md +0 -0
  71. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.pull-request-review.summary.prompt.md +0 -0
  72. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.update-jira-issue.initiate.prompt.md +0 -0
  73. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.checklist-creation.prompt.md +0 -0
  74. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.commit.prompt.md +0 -0
  75. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.completion.prompt.md +0 -0
  76. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.implementation-review.prompt.md +0 -0
  77. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.implementation.prompt.md +0 -0
  78. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.initiate.prompt.md +0 -0
  79. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.planning.prompt.md +0 -0
  80. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.pull-request.prompt.md +0 -0
  81. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.retrieve.prompt.md +0 -0
  82. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.setup.prompt.md +0 -0
  83. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/agdt.work-on-jira-issue.verification.prompt.md +0 -0
  84. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/speckit.analyze.prompt.md +0 -0
  85. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/speckit.checklist.prompt.md +0 -0
  86. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/speckit.clarify.prompt.md +0 -0
  87. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/speckit.constitution.prompt.md +0 -0
  88. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/speckit.implement.prompt.md +0 -0
  89. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/speckit.plan.prompt.md +0 -0
  90. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/speckit.specify.prompt.md +0 -0
  91. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/speckit.tasks.prompt.md +0 -0
  92. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/prompts/speckit.taskstoissues.prompt.md +0 -0
  93. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/check-idempotency.sh +0 -0
  94. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/create-spec-pr.sh +0 -0
  95. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/generate-spec-from-issue.sh +0 -0
  96. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/post-issue-comment.sh +0 -0
  97. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/sanitize-branch-name.sh +0 -0
  98. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/templates/.markdownlint.json +0 -0
  99. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/templates/already-processed.md +0 -0
  100. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/templates/completed.md +0 -0
  101. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/templates/failed.md +0 -0
  102. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/templates/started.md +0 -0
  103. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/scripts/speckit-trigger/validate-label.sh +0 -0
  104. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/README.md +0 -0
  105. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/auto-fix-on-failure.yml +0 -0
  106. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/copilot-review-gate.yml +0 -0
  107. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/copilot-setup-steps.yml +0 -0
  108. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/lint.yml +0 -0
  109. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/publish.yml +0 -0
  110. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/release.yml +0 -0
  111. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/scripts/check-release-exists.sh +0 -0
  112. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/scripts/create-github-release.sh +0 -0
  113. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/scripts/create-release-packages.ps1 +0 -0
  114. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/scripts/create-release-packages.sh +0 -0
  115. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/scripts/generate-release-notes.sh +0 -0
  116. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/scripts/get-next-version.sh +0 -0
  117. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/scripts/update-version.sh +0 -0
  118. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/security-scan-on-merge.yml +0 -0
  119. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/speckit-issue-trigger.yml +0 -0
  120. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/test.yml +0 -0
  121. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.github/workflows/workflow-tests.yml +0 -0
  122. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.gitignore +0 -0
  123. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.markdownlint-cli2.jsonc +0 -0
  124. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.markdownlint.json +0 -0
  125. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.push-trigger +0 -0
  126. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/SDD_QUICK_REFERENCE.md +0 -0
  127. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/memory/constitution.md +0 -0
  128. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  129. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/bash/common.sh +0 -0
  130. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/bash/create-new-feature.sh +0 -0
  131. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/bash/setup-plan.sh +0 -0
  132. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/bash/update-agent-context.sh +0 -0
  133. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/powershell/check-prerequisites.ps1 +0 -0
  134. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/powershell/common.ps1 +0 -0
  135. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/powershell/create-new-feature.ps1 +0 -0
  136. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/powershell/setup-plan.ps1 +0 -0
  137. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/scripts/powershell/update-agent-context.ps1 +0 -0
  138. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/agent-file-template.md +0 -0
  139. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/checklist-template.md +0 -0
  140. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/.markdownlint.json +0 -0
  141. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/analyze.md +0 -0
  142. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/checklist.md +0 -0
  143. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/clarify.md +0 -0
  144. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/constitution.md +0 -0
  145. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/implement.md +0 -0
  146. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/plan.md +0 -0
  147. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/specify.md +0 -0
  148. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/tasks.md +0 -0
  149. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/commands/taskstoissues.md +0 -0
  150. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/plan-template.md +0 -0
  151. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/spec-template.md +0 -0
  152. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/tasks-template.md +0 -0
  153. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.specify/templates/vscode-settings.json +0 -0
  154. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/.work-folder-info +0 -0
  155. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/CHANGELOG.md +0 -0
  156. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/COMMIT_CONVENTION.md +0 -0
  157. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/CONTRIBUTING.md +0 -0
  158. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/LICENSE +0 -0
  159. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/PR_DESCRIPTION.md +0 -0
  160. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/PR_INSTRUCTIONS.md +0 -0
  161. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/README.md +0 -0
  162. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/RELEASING.md +0 -0
  163. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/SECURITY_SCANNING.md +0 -0
  164. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/SOLUTION_SUMMARY.md +0 -0
  165. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/SPEC_DRIVEN_DEVELOPMENT.md +0 -0
  166. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agdt_ai_helpers/__init__.py +0 -0
  167. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/__init__.py +0 -0
  168. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/background_tasks.py +0 -0
  169. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/__init__.py +0 -0
  170. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure/__init__.py +0 -0
  171. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure/app_insights_commands.py +0 -0
  172. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure/auth.py +0 -0
  173. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure/config.py +0 -0
  174. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_context/__init__.py +0 -0
  175. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_context/commands.py +0 -0
  176. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_context/config.py +0 -0
  177. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_context/management.py +0 -0
  178. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/__init__.py +9 -9
  179. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/async_commands.py +0 -0
  180. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/auth.py +0 -0
  181. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/commands.py +0 -0
  182. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/config.py +0 -0
  183. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/file_review_commands.py +0 -0
  184. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/helpers.py +0 -0
  185. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/mark_reviewed.py +0 -0
  186. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/pipeline_commands.py +0 -0
  187. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/pr_summary_commands.py +0 -0
  188. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/pull_request_details_commands.py +0 -0
  189. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/review_commands.py +0 -0
  190. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/review_helpers.py +0 -0
  191. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/review_jira.py +0 -0
  192. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/review_prompts.py +0 -0
  193. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/review_state.py +0 -0
  194. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/review_templates.py +0 -0
  195. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/run_details_commands.py +0 -0
  196. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/status_cascade.py +0 -0
  197. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/azure_devops/vpn_toggle.py +0 -0
  198. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/copilot/__init__.py +0 -0
  199. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/git/__init__.py +0 -0
  200. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/git/async_commands.py +0 -0
  201. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/git/commands.py +0 -0
  202. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/git/core.py +0 -0
  203. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/git/diff.py +0 -0
  204. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/git/operations.py +0 -0
  205. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/github/__init__.py +0 -0
  206. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/github/async_commands.py +0 -0
  207. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/github/issue_commands.py +0 -0
  208. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/github/state_helpers.py +0 -0
  209. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/__init__.py +0 -0
  210. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/adf.py +0 -0
  211. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/async_commands.py +0 -0
  212. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/async_status.py +0 -0
  213. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/commands.py +0 -0
  214. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/comment_commands.py +0 -0
  215. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/config.py +0 -0
  216. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/create_commands.py +0 -0
  217. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/formatting.py +0 -0
  218. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/get_commands.py +0 -0
  219. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/parse_error_report.py +0 -0
  220. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/role_commands.py +0 -0
  221. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/state_helpers.py +0 -0
  222. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/update_commands.py +0 -0
  223. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/jira/vpn_wrapper.py +0 -0
  224. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/network/__init__.py +0 -0
  225. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/network/commands.py +0 -0
  226. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/network/detection.py +0 -0
  227. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/release/__init__.py +0 -0
  228. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/release/commands.py +0 -0
  229. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/release/helpers.py +0 -0
  230. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/runner.py +0 -0
  231. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/setup/__init__.py +0 -0
  232. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/setup/dependency_checker.py +0 -0
  233. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/speckit/__init__.py +0 -0
  234. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/speckit/commands.py +0 -0
  235. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/state.py +0 -0
  236. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/subprocess_utils.py +0 -0
  237. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/tasks/__init__.py +0 -0
  238. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/tasks/commands.py +0 -0
  239. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/testing.py +0 -0
  240. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/vpn/__init__.py +0 -0
  241. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/vpn/commands.py +0 -0
  242. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/vpn/runner.py +0 -0
  243. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/workflows/__init__.py +0 -0
  244. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/workflows/advancement.py +0 -0
  245. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/workflows/base.py +0 -0
  246. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/workflows/checklist.py +0 -0
  247. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/workflows/commands.py +0 -0
  248. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/workflows/manager.py +0 -0
  249. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/workflows/preflight.py +0 -0
  250. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/cli/workflows/worktree_setup.py +0 -0
  251. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/config.py +0 -0
  252. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/file_locking.py +0 -0
  253. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/__init__.py +0 -0
  254. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/apply-pull-request-review-suggestions/default-initiate-prompt.md +0 -0
  255. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/create-jira-epic/default-initiate-prompt.md +0 -0
  256. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/create-jira-issue/default-initiate-prompt.md +0 -0
  257. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/create-jira-subtask/default-initiate-prompt.md +0 -0
  258. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/loader.py +0 -0
  259. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/pull-request-review/default-completion-prompt.md +0 -0
  260. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/pull-request-review/default-decision-prompt.md +0 -0
  261. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/pull-request-review/default-file-review-prompt.md +0 -0
  262. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/pull-request-review/default-initiate-prompt.md +0 -0
  263. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/pull-request-review/default-summary-prompt.md +0 -0
  264. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/update-jira-issue/default-initiate-prompt.md +0 -0
  265. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-checklist-creation-prompt.md +0 -0
  266. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-commit-prompt.md +0 -0
  267. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-completion-prompt.md +0 -0
  268. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-implementation-prompt.md +0 -0
  269. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-implementation-review-prompt.md +0 -0
  270. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-initiate-prompt.md +0 -0
  271. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-planning-prompt.md +0 -0
  272. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-pull-request-prompt.md +0 -0
  273. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-retrieve-prompt.md +0 -0
  274. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-setup-prompt.md +0 -0
  275. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/prompts/work-on-jira-issue/default-verification-prompt.md +0 -0
  276. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/state.py +0 -0
  277. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/agentic_devtools/task_state.py +0 -0
  278. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/ayaiay.json +0 -0
  279. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/01-introduction-and-goals.md +0 -0
  280. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/02-architecture-constraints.md +0 -0
  281. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/03-system-context.md +0 -0
  282. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/04-solution-strategy.md +0 -0
  283. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/05-building-blocks.md +0 -0
  284. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/06-runtime-view.md +0 -0
  285. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/07-deployment-view.md +0 -0
  286. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/08-cross-cutting-concepts.md +0 -0
  287. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/09-architecture-decisions.md +0 -0
  288. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/10-quality-requirements.md +0 -0
  289. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/11-risks-and-technical-debt.md +0 -0
  290. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/12-glossary.md +0 -0
  291. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/README.md +0 -0
  292. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/docs/copilot-commands.md +0 -0
  293. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/pyproject.toml +0 -0
  294. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/scripts/run-pr-checks.sh +0 -0
  295. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/scripts/scaffold_tests.py +0 -0
  296. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/scripts/validate_test_structure.py +0 -0
  297. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/scripts/verify-agent-coverage.py +0 -0
  298. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-add-workflow-step-agents/checklists/requirements.md +0 -0
  299. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-add-workflow-step-agents/plan.md +0 -0
  300. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-add-workflow-step-agents/spec.md +0 -0
  301. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-add-workflow-step-agents/tasks.md +0 -0
  302. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-pypi-wheel-release/checklists/requirements.md +0 -0
  303. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-pypi-wheel-release/plan.md +0 -0
  304. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-pypi-wheel-release/spec.md +0 -0
  305. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-pypi-wheel-release/tasks.md +0 -0
  306. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-separate-docs/checklists/requirements.md +0 -0
  307. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-separate-docs/plan.md +0 -0
  308. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-separate-docs/spec.md +0 -0
  309. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-separate-docs/tasks.md +0 -0
  310. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-workflow-step-skills/checklists/requirements.md +0 -0
  311. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/001-workflow-step-skills/spec.md +0 -0
  312. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/002-github-action-speckit-trigger/checklists/requirements.md +0 -0
  313. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/002-github-action-speckit-trigger/plan.md +0 -0
  314. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/002-github-action-speckit-trigger/spec.md +0 -0
  315. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/002-github-action-speckit-trigger/tasks.md +0 -0
  316. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/002-github-action-speckit-trigger/workflow-sequence-diagram.md +0 -0
  317. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/003-comprehensive-e2e-smoke-tests/checklists/requirements.md +0 -0
  318. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/003-comprehensive-e2e-smoke-tests/spec.md +0 -0
  319. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/003-e2e-smoke-tests-cli/plan.md +0 -0
  320. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/specs/README.md +0 -0
  321. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/README.md +0 -0
  322. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/__init__.py +0 -0
  323. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_context/__init__.py +0 -0
  324. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_context/test_commands.py +0 -0
  325. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_context/test_config.py +0 -0
  326. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_context/test_management.py +0 -0
  327. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/__init__.py +0 -0
  328. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/conftest.py +0 -0
  329. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_async_commands.py +0 -0
  330. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_auth.py +0 -0
  331. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_commands_api.py +0 -0
  332. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_commands_dry_run.py +0 -0
  333. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_config.py +0 -0
  334. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_file_review_commands.py +0 -0
  335. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_helpers.py +0 -0
  336. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_mark_reviewed.py +0 -0
  337. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_pipeline_commands.py +0 -0
  338. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_pr_summary_commands.py +0 -0
  339. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_pull_request_details_commands.py +0 -0
  340. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_review_commands.py +0 -0
  341. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_run_details_commands.py +0 -0
  342. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/azure_devops/test_vpn_toggle.py +0 -0
  343. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/cli/test_azure_app_insights_commands.py +0 -0
  344. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/cli/test_azure_auth.py +0 -0
  345. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/cli/test_azure_config.py +0 -0
  346. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/conftest.py +0 -0
  347. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/e2e_smoke/README.md +0 -0
  348. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/e2e_smoke/__init__.py +0 -0
  349. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/e2e_smoke/conftest.py +0 -0
  350. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/e2e_smoke/fixtures/cassettes/azure_devops_create_pr.yaml +0 -0
  351. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/e2e_smoke/fixtures/cassettes/jira_add_comment.yaml +0 -0
  352. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/e2e_smoke/fixtures/cassettes/jira_get_issue.yaml +0 -0
  353. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/e2e_smoke/test_azure_devops_commands_e2e.py +0 -0
  354. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/e2e_smoke/test_git_commands_e2e.py +0 -0
  355. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/e2e_smoke/test_jira_commands_e2e.py +0 -0
  356. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/helpers.py +0 -0
  357. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/network/test_detection.py +0 -0
  358. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/network/test_network_cli.py +0 -0
  359. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_file_review_commands.py +0 -0
  360. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_file_review_queue_management.py +0 -0
  361. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_git_async.py +0 -0
  362. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_git_commands.py +0 -0
  363. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_git_core.py +0 -0
  364. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_git_diff.py +0 -0
  365. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_git_operations.py +0 -0
  366. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_git_utilities.py +0 -0
  367. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_release_commands.py +0 -0
  368. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_release_helpers.py +0 -0
  369. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_release_integration.py +0 -0
  370. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_scaffold_tests.py +0 -0
  371. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_validate_test_structure.py +0 -0
  372. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/test_version.py +0 -0
  373. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/__init__.py +0 -0
  374. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/background_tasks/__init__.py +0 -0
  375. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/background_tasks/test_cleanup_old_logs.py +0 -0
  376. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/background_tasks/test_create_log_file_path.py +0 -0
  377. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/background_tasks/test_get_task_log_content.py +0 -0
  378. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/background_tasks/test_run_function_in_background.py +0 -0
  379. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/background_tasks/test_run_in_background.py +0 -0
  380. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/background_tasks/test_wait_for_task.py +0 -0
  381. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/__init__.py +0 -0
  382. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/__init__.py +0 -0
  383. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/app_insights_commands/__init__.py +0 -0
  384. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/app_insights_commands/test_query_app_insights.py +0 -0
  385. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/app_insights_commands/test_query_app_insights_async.py +0 -0
  386. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/app_insights_commands/test_query_fabric_dap_errors.py +0 -0
  387. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/app_insights_commands/test_query_fabric_dap_errors_async.py +0 -0
  388. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/app_insights_commands/test_query_fabric_dap_provisioning.py +0 -0
  389. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/app_insights_commands/test_query_fabric_dap_provisioning_async.py +0 -0
  390. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/app_insights_commands/test_query_fabric_dap_timeline.py +0 -0
  391. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/app_insights_commands/test_query_fabric_dap_timeline_async.py +0 -0
  392. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/auth/__init__.py +0 -0
  393. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/auth/test_detect_account_type.py +0 -0
  394. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/auth/test_ensure_azure_account.py +0 -0
  395. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/auth/test_get_current_azure_account.py +0 -0
  396. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/auth/test_is_aza_account.py +0 -0
  397. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/auth/test_switch_azure_account.py +0 -0
  398. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/auth/test_verify_azure_cli.py +0 -0
  399. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/config/__init__.py +0 -0
  400. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/config/test_get_account_for_environment.py +0 -0
  401. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure/config/test_get_app_insights_config.py +0 -0
  402. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/__init__.py +0 -0
  403. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/commands/__init__.py +0 -0
  404. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/commands/test_azure_context_current_command.py +0 -0
  405. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/commands/test_azure_context_ensure_login_command.py +0 -0
  406. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/commands/test_azure_context_status_command.py +0 -0
  407. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/commands/test_azure_context_use_command.py +0 -0
  408. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/config/__init__.py +0 -0
  409. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/config/test_get_context_config.py +0 -0
  410. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/management/__init__.py +0 -0
  411. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/management/test_check_login_status.py +0 -0
  412. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/management/test_ensure_logged_in.py +0 -0
  413. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/management/test_get_context_env.py +0 -0
  414. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/management/test_get_current_context.py +0 -0
  415. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/management/test_run_with_context.py +0 -0
  416. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/management/test_show_all_contexts.py +0 -0
  417. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_context/management/test_switch_context.py +0 -0
  418. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/__init__.py +0 -0
  419. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/__init__.py +0 -0
  420. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/_helpers.py +0 -0
  421. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_add_pull_request_comment_async.py +0 -0
  422. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_add_pull_request_comment_async_cli.py +0 -0
  423. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_approve_file_async.py +0 -0
  424. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_approve_file_async_cli.py +0 -0
  425. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_approve_pull_request_async.py +0 -0
  426. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_approve_pull_request_async_cli.py +0 -0
  427. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_checkout_and_sync_branch_async.py +0 -0
  428. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_create_pipeline_async.py +0 -0
  429. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_create_pull_request_async.py +0 -0
  430. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_create_pull_request_async_cli.py +0 -0
  431. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_generate_pr_summary_async.py +0 -0
  432. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_generate_review_prompts_async.py +0 -0
  433. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_get_pipeline_id_async.py +0 -0
  434. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_get_pull_request_details_async.py +0 -0
  435. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_get_pull_request_threads_async.py +0 -0
  436. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_get_pull_request_threads_async_cli.py +0 -0
  437. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_get_run_details_async.py +0 -0
  438. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_list_pipelines_async.py +0 -0
  439. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_lookup_jira_issue_from_pr_async.py +0 -0
  440. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_lookup_pr_from_jira_issue_async.py +0 -0
  441. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_mark_file_reviewed_async.py +0 -0
  442. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_mark_pull_request_draft_async.py +0 -0
  443. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_publish_pull_request_async.py +0 -0
  444. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_reply_to_pull_request_thread_async.py +0 -0
  445. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_reply_to_pull_request_thread_async_cli.py +0 -0
  446. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_request_changes_async.py +0 -0
  447. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_request_changes_async_cli.py +0 -0
  448. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_request_changes_with_suggestion_async.py +0 -0
  449. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_request_changes_with_suggestion_async_cli.py +0 -0
  450. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_resolve_thread_async.py +0 -0
  451. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_resolve_thread_async_cli.py +0 -0
  452. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_run_e2e_tests_fabric_async.py +0 -0
  453. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_run_e2e_tests_synapse_async.py +0 -0
  454. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_run_wb_patch_async.py +0 -0
  455. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_setup_pull_request_review_async.py +0 -0
  456. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_submit_file_review_async.py +0 -0
  457. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_update_pipeline_async.py +0 -0
  458. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/async_commands/test_wait_for_run_async.py +0 -0
  459. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/auth/__init__.py +0 -0
  460. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/auth/test_get_auth_headers.py +0 -0
  461. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/auth/test_get_pat.py +0 -0
  462. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/__init__.py +0 -0
  463. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test__extract_issue_key_from_branch.py +0 -0
  464. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_add_pull_request_comment.py +0 -0
  465. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_approve_pull_request.py +0 -0
  466. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_create_pull_request.py +0 -0
  467. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_get_pull_request_threads.py +0 -0
  468. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_mark_pull_request_draft.py +0 -0
  469. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_parse_bool_from_state.py +0 -0
  470. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_publish_pull_request.py +0 -0
  471. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_reply_to_pull_request_thread.py +0 -0
  472. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_require_content.py +0 -0
  473. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/commands/test_resolve_thread.py +0 -0
  474. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/config/__init__.py +0 -0
  475. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/config/test_azure_devops_config.py +0 -0
  476. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/config/test_constants.py +0 -0
  477. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/config/test_get_repository_name_from_git_remote.py +0 -0
  478. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/conftest.py +0 -0
  479. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/__init__.py +0 -0
  480. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_approve_file.py +0 -0
  481. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_get_failed_submissions.py +0 -0
  482. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_get_queue_status.py +0 -0
  483. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_mark_file_as_submission_pending.py +0 -0
  484. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_print_next_file_prompt.py +0 -0
  485. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_request_changes.py +0 -0
  486. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_request_changes_with_suggestion.py +0 -0
  487. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_reset_failed_submission.py +0 -0
  488. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_submit_file_review.py +0 -0
  489. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_sync_submission_pending_with_tasks.py +0 -0
  490. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_update_submission_to_completed.py +0 -0
  491. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/file_review_commands/test_update_submission_to_failed.py +0 -0
  492. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/__init__.py +0 -0
  493. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_build_thread_context.py +0 -0
  494. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_convert_to_pull_request_title.py +0 -0
  495. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_find_jira_issue_from_pr.py +0 -0
  496. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_find_pr_from_jira_issue.py +0 -0
  497. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_find_pull_request_by_issue_key.py +0 -0
  498. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_format_approval_content.py +0 -0
  499. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_get_pull_request_details.py +0 -0
  500. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_get_pull_request_source_branch.py +0 -0
  501. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_get_repository_id.py +0 -0
  502. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_parse_bool_from_state_value.py +0 -0
  503. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_parse_json_response.py +0 -0
  504. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_patch_comment.py +0 -0
  505. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_patch_thread_status.py +0 -0
  506. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_print_threads.py +0 -0
  507. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_require_content.py +0 -0
  508. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_require_requests.py +0 -0
  509. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_resolve_thread_by_id.py +0 -0
  510. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/helpers/test_verify_az_cli.py +0 -0
  511. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/mark_reviewed/__init__.py +0 -0
  512. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/mark_reviewed/test_mark_file_reviewed.py +0 -0
  513. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/mark_reviewed/test_mark_file_reviewed_cli.py +0 -0
  514. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/mark_reviewed/test_normalize_repo_path.py +0 -0
  515. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pipeline_commands/__init__.py +0 -0
  516. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pipeline_commands/test_create_pipeline.py +0 -0
  517. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pipeline_commands/test_get_pipeline_id.py +0 -0
  518. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pipeline_commands/test_list_pipelines.py +0 -0
  519. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pipeline_commands/test_run_e2e_tests_fabric.py +0 -0
  520. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pipeline_commands/test_run_e2e_tests_synapse.py +0 -0
  521. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pipeline_commands/test_run_wb_patch.py +0 -0
  522. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pipeline_commands/test_update_pipeline.py +0 -0
  523. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pr_summary_commands/__init__.py +0 -0
  524. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pr_summary_commands/test_generate_overarching_pr_comments.py +0 -0
  525. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pr_summary_commands/test_generate_overarching_pr_comments_cli.py +0 -0
  526. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/__init__.py +0 -0
  527. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_get_change_tracking_id_for_file.py +0 -0
  528. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_get_iteration_change_tracking_map.py +0 -0
  529. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_get_iteration_changes.py +0 -0
  530. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_get_pull_request_details.py +0 -0
  531. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_get_pull_request_iterations.py +0 -0
  532. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_get_pull_request_threads.py +0 -0
  533. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_get_reviewer_payload.py +0 -0
  534. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_get_viewed_files_via_contribution.py +0 -0
  535. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_invoke_ado_rest.py +0 -0
  536. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/pull_request_details_commands/test_invoke_ado_rest_post.py +0 -0
  537. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/__init__.py +0 -0
  538. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_build_reviewed_paths_set.py +0 -0
  539. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_checkout_and_sync_branch.py +0 -0
  540. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_convert_to_prompt_filename.py +0 -0
  541. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_extract_jira_issue_key_from_title.py +0 -0
  542. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_fetch_and_display_jira_issue.py +0 -0
  543. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_fetch_pull_request_basic_info.py +0 -0
  544. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_filter_threads.py +0 -0
  545. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_generate_review_prompts.py +0 -0
  546. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_get_jira_issue_key_from_state.py +0 -0
  547. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_get_linked_pull_request_from_jira.py +0 -0
  548. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_get_pull_request_id_from_state.py +0 -0
  549. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_get_root_folder.py +0 -0
  550. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_get_threads_for_file.py +0 -0
  551. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_normalize_repo_path.py +0 -0
  552. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_print_review_instructions.py +0 -0
  553. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_setup_pull_request_review.py +0 -0
  554. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_commands/test_write_file_prompt.py +0 -0
  555. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_helpers/__init__.py +0 -0
  556. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_helpers/test_build_reviewed_paths_set.py +0 -0
  557. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_helpers/test_convert_to_prompt_filename.py +0 -0
  558. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_helpers/test_extract_jira_issue_key_from_title.py +0 -0
  559. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_helpers/test_filter_threads.py +0 -0
  560. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_helpers/test_get_root_folder.py +0 -0
  561. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_helpers/test_get_threads_for_file.py +0 -0
  562. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_helpers/test_normalize_repo_path.py +0 -0
  563. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/__init__.py +0 -0
  564. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/test_display_jira_issue_summary.py +0 -0
  565. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/test_extract_linked_pr_from_issue.py +0 -0
  566. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/test_extract_pr_id_from_development_panel.py +0 -0
  567. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/test_fetch_and_display_jira_issue.py +0 -0
  568. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/test_fetch_development_panel_prs.py +0 -0
  569. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/test_fetch_jira_issue.py +0 -0
  570. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/test_get_jira_credentials.py +0 -0
  571. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/test_get_linked_pull_request_from_jira.py +0 -0
  572. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_jira/test_get_pr_from_development_panel.py +0 -0
  573. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_prompts/__init__.py +0 -0
  574. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_prompts/test_build_file_prompt_content.py +0 -0
  575. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_prompts/test_generate_review_prompts.py +0 -0
  576. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_prompts/test_generate_review_prompts_edge_cases.py +0 -0
  577. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_prompts/test_get_prompts_output_dir.py +0 -0
  578. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_prompts/test_print_review_instructions.py +0 -0
  579. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_prompts/test_write_file_prompt.py +0 -0
  580. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/__init__.py +0 -0
  581. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_add_suggestion_to_file.py +0 -0
  582. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_fileentry.py +0 -0
  583. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_folderentry.py +0 -0
  584. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_get_file_entry.py +0 -0
  585. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_get_folder_entry.py +0 -0
  586. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_get_review_state_file_path.py +0 -0
  587. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_load_review_state.py +0 -0
  588. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_normalize_file_path.py +0 -0
  589. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_overallsummary.py +0 -0
  590. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_reviewstate.py +0 -0
  591. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_reviewstatus.py +0 -0
  592. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_save_review_state.py +0 -0
  593. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_suggestionentry.py +0 -0
  594. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_state/test_update_file_status.py +0 -0
  595. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_templates/__init__.py +0 -0
  596. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_templates/test_build_discussion_url.py +0 -0
  597. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_templates/test_render_file_summary.py +0 -0
  598. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_templates/test_render_folder_summary.py +0 -0
  599. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/review_templates/test_render_overall_summary.py +0 -0
  600. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/__init__.py +0 -0
  601. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_fetch_build_run.py +0 -0
  602. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_fetch_build_timeline.py +0 -0
  603. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_fetch_failed_job_logs.py +0 -0
  604. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_fetch_pipeline_run.py +0 -0
  605. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_fetch_task_log.py +0 -0
  606. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_get_failed_tasks.py +0 -0
  607. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_get_run_details.py +0 -0
  608. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_get_run_details_impl.py +0 -0
  609. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_get_temp_folder.py +0 -0
  610. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_is_run_finished.py +0 -0
  611. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_print_failed_logs_summary.py +0 -0
  612. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_print_parameters.py +0 -0
  613. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_print_summary.py +0 -0
  614. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_save_json.py +0 -0
  615. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_save_log_file.py +0 -0
  616. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_wait_for_run.py +0 -0
  617. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/run_details_commands/test_wait_for_run_impl.py +0 -0
  618. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/status_cascade/__init__.py +0 -0
  619. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/status_cascade/test_cascade_status_update.py +0 -0
  620. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/status_cascade/test_derive_folder_status.py +0 -0
  621. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/status_cascade/test_derive_overall_status.py +0 -0
  622. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/status_cascade/test_execute_cascade.py +0 -0
  623. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/status_cascade/test_patch_operation.py +0 -0
  624. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/__init__.py +0 -0
  625. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_check_network_status.py +0 -0
  626. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_connect_vpn.py +0 -0
  627. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_disconnect_vpn.py +0 -0
  628. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_ensure_jira_vpn_access.py +0 -0
  629. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_get_vpn_url_from_state.py +0 -0
  630. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_is_on_corporate_network.py +0 -0
  631. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_is_pulse_secure_installed.py +0 -0
  632. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_is_vpn_connected.py +0 -0
  633. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_reconnect_vpn.py +0 -0
  634. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_smart_connect_vpn.py +0 -0
  635. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_vpn_off_async.py +0 -0
  636. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_vpn_off_cmd.py +0 -0
  637. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_vpn_on_async.py +0 -0
  638. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_vpn_on_cmd.py +0 -0
  639. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_vpn_status_async.py +0 -0
  640. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/azure_devops/vpn_toggle/test_vpn_status_cmd.py +0 -0
  641. {agentic_devtools-0.2.15/tests/unit/cli/copilot → agentic_devtools-0.2.17/tests/unit/cli/cert_utils}/__init__.py +0 -0
  642. {agentic_devtools-0.2.15/tests/unit/cli/copilot/session → agentic_devtools-0.2.17/tests/unit/cli/copilot}/__init__.py +0 -0
  643. {agentic_devtools-0.2.15/tests/unit/cli/git → agentic_devtools-0.2.17/tests/unit/cli/copilot/session}/__init__.py +0 -0
  644. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/copilot/session/test__get_copilot_binary.py +0 -0
  645. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/copilot/session/test_copilotsessionresult.py +0 -0
  646. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/copilot/session/test_is_gh_copilot_available.py +0 -0
  647. {agentic_devtools-0.2.15/tests/unit/cli/git/async_commands → agentic_devtools-0.2.17/tests/unit/cli/git}/__init__.py +0 -0
  648. {agentic_devtools-0.2.15/tests/unit/cli/git/commands → agentic_devtools-0.2.17/tests/unit/cli/git/async_commands}/__init__.py +0 -0
  649. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/async_commands/_helpers.py +0 -0
  650. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/async_commands/test_amend_async.py +0 -0
  651. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/async_commands/test_commit_async.py +0 -0
  652. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/async_commands/test_force_push_async.py +0 -0
  653. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/async_commands/test_publish_async.py +0 -0
  654. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/async_commands/test_push_async.py +0 -0
  655. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/async_commands/test_stage_async.py +0 -0
  656. {agentic_devtools-0.2.15/tests/unit/cli/git/core → agentic_devtools-0.2.17/tests/unit/cli/git/commands}/__init__.py +0 -0
  657. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/conftest.py +0 -0
  658. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test__get_issue_key_from_state.py +0 -0
  659. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test__mark_checklist_items_completed.py +0 -0
  660. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test__sync_with_main.py +0 -0
  661. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test__trigger_implementation_review.py +0 -0
  662. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test_amend_cmd.py +0 -0
  663. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test_commit_cmd.py +0 -0
  664. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test_force_push_cmd.py +0 -0
  665. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test_publish_cmd.py +0 -0
  666. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test_push_cmd.py +0 -0
  667. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/commands/test_stage_cmd.py +0 -0
  668. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/conftest.py +0 -0
  669. {agentic_devtools-0.2.15/tests/unit/cli/git/diff → agentic_devtools-0.2.17/tests/unit/cli/git/core}/__init__.py +0 -0
  670. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/core/test_get_bool_state.py +0 -0
  671. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/core/test_get_commit_message.py +0 -0
  672. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/core/test_get_current_branch.py +0 -0
  673. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/core/test_run_git.py +0 -0
  674. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/core/test_temp_message_file.py +0 -0
  675. {agentic_devtools-0.2.15/tests/unit/cli/git/operations → agentic_devtools-0.2.17/tests/unit/cli/git/diff}/__init__.py +0 -0
  676. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/diff/test_addedline.py +0 -0
  677. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/diff/test_addedlinesinfo.py +0 -0
  678. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/diff/test_diffentry.py +0 -0
  679. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/diff/test_get_added_lines_info.py +0 -0
  680. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/diff/test_get_diff_entries.py +0 -0
  681. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/diff/test_get_diff_patch.py +0 -0
  682. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/diff/test_normalize_ref_name.py +0 -0
  683. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/diff/test_sync_git_ref.py +0 -0
  684. {agentic_devtools-0.2.15/tests/unit/cli/github → agentic_devtools-0.2.17/tests/unit/cli/git/operations}/__init__.py +0 -0
  685. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_amend_commit.py +0 -0
  686. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_branch_has_commits_ahead_of_main.py +0 -0
  687. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_branchsafetycheckresult.py +0 -0
  688. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_check_branch_safe_to_recreate.py +0 -0
  689. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_checkout_branch.py +0 -0
  690. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_checkoutresult.py +0 -0
  691. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_create_commit.py +0 -0
  692. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_fetch_branch.py +0 -0
  693. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_fetch_main.py +0 -0
  694. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_force_push.py +0 -0
  695. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_get_commits_behind_main.py +0 -0
  696. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_get_files_changed_on_branch.py +0 -0
  697. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_get_last_commit_message.py +0 -0
  698. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_has_local_changes.py +0 -0
  699. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_last_commit_contains_issue_key.py +0 -0
  700. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_local_branch_matches_origin.py +0 -0
  701. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_publish_branch.py +0 -0
  702. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_push.py +0 -0
  703. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_rebase_onto_main.py +0 -0
  704. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_rebaseresult.py +0 -0
  705. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_should_amend_instead_of_commit.py +0 -0
  706. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/git/operations/test_stage_changes.py +0 -0
  707. {agentic_devtools-0.2.15/tests/unit/cli/github/async_commands → agentic_devtools-0.2.17/tests/unit/cli/github}/__init__.py +0 -0
  708. {agentic_devtools-0.2.15/tests/unit/cli/github/issue_commands → agentic_devtools-0.2.17/tests/unit/cli/github/async_commands}/__init__.py +0 -0
  709. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_bug_issue_async.py +0 -0
  710. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_bug_issue_async_cli.py +0 -0
  711. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_documentation_issue_async.py +0 -0
  712. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_documentation_issue_async_cli.py +0 -0
  713. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_feature_issue_async.py +0 -0
  714. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_feature_issue_async_cli.py +0 -0
  715. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_issue_async.py +0 -0
  716. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_issue_async_cli.py +0 -0
  717. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_task_issue_async.py +0 -0
  718. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/async_commands/test_create_agdt_task_issue_async_cli.py +0 -0
  719. {agentic_devtools-0.2.15/tests/unit/cli/github/state_helpers → agentic_devtools-0.2.17/tests/unit/cli/github/issue_commands}/__init__.py +0 -0
  720. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test__append_related_issues.py +0 -0
  721. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test__append_terminal_log.py +0 -0
  722. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test__build_gh_create_args.py +0 -0
  723. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test__check_gh_cli.py +0 -0
  724. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test__get_environment_info.py +0 -0
  725. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test__gh_supports_issue_type.py +0 -0
  726. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test_create_agdt_bug_issue.py +0 -0
  727. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test_create_agdt_documentation_issue.py +0 -0
  728. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test_create_agdt_feature_issue.py +0 -0
  729. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test_create_agdt_issue.py +0 -0
  730. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/issue_commands/test_create_agdt_task_issue.py +0 -0
  731. {agentic_devtools-0.2.15/tests/unit/cli/jira → agentic_devtools-0.2.17/tests/unit/cli/github/state_helpers}/__init__.py +0 -0
  732. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/state_helpers/test_get_issue_value.py +0 -0
  733. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/github/state_helpers/test_set_issue_value.py +0 -0
  734. {agentic_devtools-0.2.15/tests/unit/cli/jira/adf → agentic_devtools-0.2.17/tests/unit/cli/jira}/__init__.py +0 -0
  735. {agentic_devtools-0.2.15/tests/unit/cli/jira/async_commands → agentic_devtools-0.2.17/tests/unit/cli/jira/adf}/__init__.py +0 -0
  736. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/adf/test__convert_adf_to_text.py +0 -0
  737. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/adf/test__process_adf_children.py +0 -0
  738. {agentic_devtools-0.2.15/tests/unit/cli/jira/async_status → agentic_devtools-0.2.17/tests/unit/cli/jira/async_commands}/__init__.py +0 -0
  739. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/conftest.py +0 -0
  740. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_add_comment_async.py +0 -0
  741. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_add_comment_async_cli.py +0 -0
  742. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_add_users_to_project_role_async.py +0 -0
  743. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_add_users_to_project_role_batch_async.py +0 -0
  744. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_check_user_exists_async.py +0 -0
  745. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_check_users_exist_async.py +0 -0
  746. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_create_epic_async.py +0 -0
  747. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_create_issue_async.py +0 -0
  748. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_create_subtask_async.py +0 -0
  749. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_find_role_id_by_name_async.py +0 -0
  750. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_get_issue_async.py +0 -0
  751. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_get_project_role_details_async.py +0 -0
  752. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_list_project_roles_async.py +0 -0
  753. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_commands/test_update_issue_async.py +0 -0
  754. {agentic_devtools-0.2.15/tests/unit/cli/jira/comment_commands → agentic_devtools-0.2.17/tests/unit/cli/jira/async_status}/__init__.py +0 -0
  755. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_status/conftest.py +0 -0
  756. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/async_status/test_write_async_status.py +0 -0
  757. {agentic_devtools-0.2.15/tests/unit/cli/jira/config → agentic_devtools-0.2.17/tests/unit/cli/jira/comment_commands}/__init__.py +0 -0
  758. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/comment_commands/test_add_comment_cli.py +0 -0
  759. {agentic_devtools-0.2.15/tests/unit/cli/jira/create_commands → agentic_devtools-0.2.17/tests/unit/cli/jira/config}/__init__.py +0 -0
  760. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/config/test_get_jira_auth_header.py +0 -0
  761. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/config/test_get_jira_base_url.py +0 -0
  762. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/config/test_get_jira_headers.py +0 -0
  763. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/conftest.py +0 -0
  764. {agentic_devtools-0.2.15/tests/unit/cli/jira/formatting → agentic_devtools-0.2.17/tests/unit/cli/jira/create_commands}/__init__.py +0 -0
  765. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/create_commands/test_create_epic.py +0 -0
  766. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/create_commands/test_create_issue.py +0 -0
  767. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/create_commands/test_create_issue_sync.py +0 -0
  768. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/create_commands/test_create_subtask.py +0 -0
  769. {agentic_devtools-0.2.15/tests/unit/cli/jira/get_commands → agentic_devtools-0.2.17/tests/unit/cli/jira/formatting}/__init__.py +0 -0
  770. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/formatting/test_build_user_story_description.py +0 -0
  771. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/formatting/test_format_bullet_list.py +0 -0
  772. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/formatting/test_merge_labels.py +0 -0
  773. {agentic_devtools-0.2.15/tests/unit/cli/jira/helpers → agentic_devtools-0.2.17/tests/unit/cli/jira/get_commands}/__init__.py +0 -0
  774. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/get_commands/test__fetch_epic.py +0 -0
  775. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/get_commands/test__fetch_parent_issue.py +0 -0
  776. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/get_commands/test__fetch_remote_links.py +0 -0
  777. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/get_commands/test_get_issue.py +0 -0
  778. {agentic_devtools-0.2.15/tests/unit/cli/jira/parse_error_report → agentic_devtools-0.2.17/tests/unit/cli/jira/helpers}/__init__.py +0 -0
  779. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__count_certificates_in_pem.py +0 -0
  780. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__ensure_jira_pem.py +0 -0
  781. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__fetch_certificate_chain_openssl.py +0 -0
  782. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__fetch_certificate_chain_ssl.py +0 -0
  783. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__get_repo_jira_pem_path.py +0 -0
  784. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__get_requests.py +0 -0
  785. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__get_ssl_verify.py +0 -0
  786. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__get_temp_jira_pem_path.py +0 -0
  787. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__parse_comma_separated.py +0 -0
  788. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/helpers/test__parse_multiline_string.py +0 -0
  789. {agentic_devtools-0.2.15/tests/unit/cli/jira/role_commands → agentic_devtools-0.2.17/tests/unit/cli/jira/parse_error_report}/__init__.py +0 -0
  790. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/parse_error_report/test_get_user_details.py +0 -0
  791. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/parse_error_report/test_get_user_details_api_calls.py +0 -0
  792. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/parse_error_report/test_parse_error_file.py +0 -0
  793. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/parse_error_report/test_parse_error_file_combined_errors.py +0 -0
  794. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/parse_error_report/test_parse_error_file_multiple_dataproducts.py +0 -0
  795. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/parse_error_report/test_parse_jira_error_report.py +0 -0
  796. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/parse_error_report/test_parse_jira_error_report_command.py +0 -0
  797. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/parse_error_report/test_parse_jira_error_report_integration.py +0 -0
  798. {agentic_devtools-0.2.15/tests/unit/cli/jira/state_helpers → agentic_devtools-0.2.17/tests/unit/cli/jira/role_commands}/__init__.py +0 -0
  799. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_add_users_to_project_role.py +0 -0
  800. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_add_users_to_project_role_additional_cases.py +0 -0
  801. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_add_users_to_project_role_batch.py +0 -0
  802. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_check_user_exists.py +0 -0
  803. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_check_user_exists_command.py +0 -0
  804. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_check_users_exist.py +0 -0
  805. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_check_users_exist_command.py +0 -0
  806. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_check_users_exist_command_paths.py +0 -0
  807. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_find_role_id_by_name.py +0 -0
  808. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_get_project_role_details.py +0 -0
  809. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_get_project_role_details_command_paths.py +0 -0
  810. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_list_project_roles.py +0 -0
  811. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_list_project_roles_command_paths.py +0 -0
  812. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_role_commands_error_handling.py +0 -0
  813. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/role_commands/test_role_id_extraction.py +0 -0
  814. {agentic_devtools-0.2.15/tests/unit/cli/jira/update_commands → agentic_devtools-0.2.17/tests/unit/cli/jira/state_helpers}/__init__.py +0 -0
  815. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/state_helpers/test_get_jira_value.py +0 -0
  816. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/state_helpers/test_set_jira_value.py +0 -0
  817. {agentic_devtools-0.2.15/tests/unit/cli/jira/vpn_wrapper → agentic_devtools-0.2.17/tests/unit/cli/jira/update_commands}/__init__.py +0 -0
  818. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/update_commands/test__build_update_payload.py +0 -0
  819. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/update_commands/test_update_issue.py +0 -0
  820. {agentic_devtools-0.2.15/tests/unit/cli/network → agentic_devtools-0.2.17/tests/unit/cli/jira/vpn_wrapper}/__init__.py +0 -0
  821. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/vpn_wrapper/test_with_jira_vpn_context.py +0 -0
  822. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/vpn_wrapper/test_with_jira_vpn_context_decorator.py +0 -0
  823. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/jira/vpn_wrapper/test_with_jira_vpn_context_integration.py +0 -0
  824. {agentic_devtools-0.2.15/tests/unit/cli/network/commands → agentic_devtools-0.2.17/tests/unit/cli/network}/__init__.py +0 -0
  825. {agentic_devtools-0.2.15/tests/unit/cli/network/detection → agentic_devtools-0.2.17/tests/unit/cli/network/commands}/__init__.py +0 -0
  826. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/network/commands/test_network_status_cmd.py +0 -0
  827. {agentic_devtools-0.2.15/tests/unit/cli/release → agentic_devtools-0.2.17/tests/unit/cli/network/detection}/__init__.py +0 -0
  828. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/network/detection/test_detect_network_context.py +0 -0
  829. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/network/detection/test_get_network_context_display.py +0 -0
  830. {agentic_devtools-0.2.15/tests/unit/cli/release/commands → agentic_devtools-0.2.17/tests/unit/cli/release}/__init__.py +0 -0
  831. {agentic_devtools-0.2.15/tests/unit/cli/release/helpers → agentic_devtools-0.2.17/tests/unit/cli/release/commands}/__init__.py +0 -0
  832. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/release/commands/test_release_pypi_async.py +0 -0
  833. {agentic_devtools-0.2.15/tests/unit/cli/runner → agentic_devtools-0.2.17/tests/unit/cli/release/helpers}/__init__.py +0 -0
  834. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/release/helpers/test_build_distribution.py +0 -0
  835. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/release/helpers/test_compute_sha256.py +0 -0
  836. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/release/helpers/test_normalize_package_name.py +0 -0
  837. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/release/helpers/test_pypi_version_exists.py +0 -0
  838. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/release/helpers/test_upload_distribution.py +0 -0
  839. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/release/helpers/test_validate_distribution.py +0 -0
  840. {agentic_devtools-0.2.15/tests/unit/cli/setup → agentic_devtools-0.2.17/tests/unit/cli/runner}/__init__.py +0 -0
  841. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/runner/test_command_map.py +0 -0
  842. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/runner/test_command_map_integrity.py +0 -0
  843. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/runner/test_main.py +0 -0
  844. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/runner/test_main_entry_point.py +0 -0
  845. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/runner/test_run_as_script.py +0 -0
  846. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/runner/test_run_command.py +0 -0
  847. {agentic_devtools-0.2.15/tests/unit/cli/setup/commands → agentic_devtools-0.2.17/tests/unit/cli/setup}/__init__.py +0 -0
  848. {agentic_devtools-0.2.15/tests/unit/cli/setup/copilot_cli_installer → agentic_devtools-0.2.17/tests/unit/cli/setup/commands}/__init__.py +0 -0
  849. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/commands/test__print_path_instructions_if_needed.py +0 -0
  850. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/commands/test_setup_check_cmd.py +0 -0
  851. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/commands/test_setup_cmd.py +0 -0
  852. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/commands/test_setup_copilot_cli_cmd.py +0 -0
  853. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/commands/test_setup_gh_cli_cmd.py +0 -0
  854. {agentic_devtools-0.2.15/tests/unit/cli/setup/dependency_checker → agentic_devtools-0.2.17/tests/unit/cli/setup/copilot_cli_installer}/__init__.py +0 -0
  855. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/copilot_cli_installer/test_detect_platform_asset.py +0 -0
  856. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/copilot_cli_installer/test_download_and_install.py +0 -0
  857. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/copilot_cli_installer/test_get_copilot_cli_binary.py +0 -0
  858. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/copilot_cli_installer/test_get_installed_version.py +0 -0
  859. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/copilot_cli_installer/test_install_copilot_cli.py +0 -0
  860. {agentic_devtools-0.2.15/tests/unit/cli/setup/gh_cli_installer → agentic_devtools-0.2.17/tests/unit/cli/setup/dependency_checker}/__init__.py +0 -0
  861. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/dependency_checker/test__find_binary.py +0 -0
  862. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/dependency_checker/test__get_version.py +0 -0
  863. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/dependency_checker/test__run_version.py +0 -0
  864. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/dependency_checker/test_check_all_dependencies.py +0 -0
  865. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/dependency_checker/test_dependencystatus.py +0 -0
  866. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/dependency_checker/test_print_dependency_report.py +0 -0
  867. {agentic_devtools-0.2.15/tests/unit/cli/speckit → agentic_devtools-0.2.17/tests/unit/cli/setup/gh_cli_installer}/__init__.py +0 -0
  868. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/gh_cli_installer/test_detect_platform_asset.py +0 -0
  869. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/gh_cli_installer/test_download_and_install.py +0 -0
  870. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/gh_cli_installer/test_get_gh_cli_binary.py +0 -0
  871. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/gh_cli_installer/test_get_installed_version.py +0 -0
  872. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/setup/gh_cli_installer/test_install_gh_cli.py +0 -0
  873. {agentic_devtools-0.2.15/tests/unit/cli/speckit/commands → agentic_devtools-0.2.17/tests/unit/cli/speckit}/__init__.py +0 -0
  874. {agentic_devtools-0.2.15/tests/unit/cli/state → agentic_devtools-0.2.17/tests/unit/cli/speckit/commands}/__init__.py +0 -0
  875. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test__load_prompt.py +0 -0
  876. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test__parse_args.py +0 -0
  877. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test__run.py +0 -0
  878. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test_speckit_analyze.py +0 -0
  879. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test_speckit_checklist.py +0 -0
  880. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test_speckit_clarify.py +0 -0
  881. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test_speckit_constitution.py +0 -0
  882. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test_speckit_implement.py +0 -0
  883. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test_speckit_plan.py +0 -0
  884. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test_speckit_specify.py +0 -0
  885. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test_speckit_tasks.py +0 -0
  886. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/speckit/commands/test_speckit_taskstoissues.py +0 -0
  887. {agentic_devtools-0.2.15/tests/unit/cli/subprocess_utils → agentic_devtools-0.2.17/tests/unit/cli/state}/__init__.py +0 -0
  888. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/state/test_clear_cmd.py +0 -0
  889. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/state/test_clear_workflow_cmd.py +0 -0
  890. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/state/test_delete_cmd.py +0 -0
  891. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/state/test_get_cmd.py +0 -0
  892. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/state/test_get_workflow_cmd.py +0 -0
  893. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/state/test_set_cmd.py +0 -0
  894. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/state/test_show_cmd.py +0 -0
  895. {agentic_devtools-0.2.15/tests/unit/cli/tasks → agentic_devtools-0.2.17/tests/unit/cli/subprocess_utils}/__init__.py +0 -0
  896. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/subprocess_utils/test_run_safe.py +0 -0
  897. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/subprocess_utils/test_run_safe_integration.py +0 -0
  898. {agentic_devtools-0.2.15/tests/unit/cli/tasks/commands → agentic_devtools-0.2.17/tests/unit/cli/tasks}/__init__.py +0 -0
  899. {agentic_devtools-0.2.15/tests/unit/cli/testing → agentic_devtools-0.2.17/tests/unit/cli/tasks/commands}/__init__.py +0 -0
  900. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_handle_task_completed.py +0 -0
  901. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_helper_functions.py +0 -0
  902. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_list_tasks.py +0 -0
  903. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_safe_print_unicode_error.py +0 -0
  904. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_show_other_incomplete_tasks.py +0 -0
  905. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_task_command_integration.py +0 -0
  906. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_task_id_argument.py +0 -0
  907. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_task_log.py +0 -0
  908. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_task_log_line_limits.py +0 -0
  909. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_task_status.py +0 -0
  910. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_task_wait.py +0 -0
  911. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_task_wait_value_error_handling.py +0 -0
  912. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_tasks_clean.py +0 -0
  913. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_try_advance_pr_review_to_summary.py +0 -0
  914. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/tasks/commands/test_try_complete_pr_review_workflow.py +0 -0
  915. {agentic_devtools-0.2.15/tests/unit/cli/vpn → agentic_devtools-0.2.17/tests/unit/cli/testing}/__init__.py +0 -0
  916. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test__infer_test_file_from_source.py +0 -0
  917. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_async_wrappers.py +0 -0
  918. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_create_test_file_parser.py +0 -0
  919. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_get_package_root.py +0 -0
  920. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_run_subprocess_with_streaming.py +0 -0
  921. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_run_tests.py +0 -0
  922. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_run_tests_file.py +0 -0
  923. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_run_tests_file_sync.py +0 -0
  924. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_run_tests_pattern.py +0 -0
  925. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_run_tests_quick.py +0 -0
  926. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_run_tests_quick_sync.py +0 -0
  927. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/testing/test_run_tests_sync.py +0 -0
  928. {agentic_devtools-0.2.15/tests/unit/cli/vpn/commands → agentic_devtools-0.2.17/tests/unit/cli/vpn}/__init__.py +0 -0
  929. {agentic_devtools-0.2.15/tests/unit/cli/vpn/runner → agentic_devtools-0.2.17/tests/unit/cli/vpn/commands}/__init__.py +0 -0
  930. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/vpn/commands/test_vpn_run_cmd.py +0 -0
  931. {agentic_devtools-0.2.15/tests/unit/cli/workflows → agentic_devtools-0.2.17/tests/unit/cli/vpn/runner}/__init__.py +0 -0
  932. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/vpn/runner/test__detect_vpn_requirement_from_command.py +0 -0
  933. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/vpn/runner/test__execute_command.py +0 -0
  934. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/vpn/runner/test_run_with_vpn_context.py +0 -0
  935. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/vpn/runner/test_vpnrequirement.py +0 -0
  936. {agentic_devtools-0.2.15/tests/unit/cli/workflows/advancement → agentic_devtools-0.2.17/tests/unit/cli/workflows}/__init__.py +0 -0
  937. {agentic_devtools-0.2.15/tests/unit/cli/workflows/base → agentic_devtools-0.2.17/tests/unit/cli/workflows/advancement}/__init__.py +0 -0
  938. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/advancement/test_try_advance_workflow_after_branch_pushed.py +0 -0
  939. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/advancement/test_try_advance_workflow_after_commit.py +0 -0
  940. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/advancement/test_try_advance_workflow_after_jira_comment.py +0 -0
  941. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/advancement/test_try_advance_workflow_after_jira_issue_retrieved.py +0 -0
  942. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/advancement/test_try_advance_workflow_after_pr_creation.py +0 -0
  943. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/advancement/test_try_advance_workflow_after_pr_review.py +0 -0
  944. {agentic_devtools-0.2.15/tests/unit/cli/workflows/checklist → agentic_devtools-0.2.17/tests/unit/cli/workflows/base}/__init__.py +0 -0
  945. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/base/test__state_key_to_variable_name.py +0 -0
  946. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/base/test_advance_workflow_step.py +0 -0
  947. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/base/test_clear_state_for_workflow_initiation.py +0 -0
  948. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/base/test_collect_variables_from_state.py +0 -0
  949. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/base/test_initiate_workflow.py +0 -0
  950. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/base/test_validate_required_state.py +0 -0
  951. {agentic_devtools-0.2.15/tests/unit/cli/workflows/commands → agentic_devtools-0.2.17/tests/unit/cli/workflows/checklist}/__init__.py +0 -0
  952. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/checklist/test_checklist.py +0 -0
  953. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/checklist/test_checklistitem.py +0 -0
  954. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/checklist/test_get_checklist.py +0 -0
  955. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/checklist/test_initialize_checklist.py +0 -0
  956. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/checklist/test_mark_items_completed.py +0 -0
  957. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/checklist/test_parse_completed_items_arg.py +0 -0
  958. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/checklist/test_save_checklist.py +0 -0
  959. {agentic_devtools-0.2.15/tests/unit/cli/workflows/manager → agentic_devtools-0.2.17/tests/unit/cli/workflows/commands}/__init__.py +0 -0
  960. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test__execute_retrieve_step.py +0 -0
  961. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_advance_pull_request_review_workflow.py +0 -0
  962. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_advance_work_on_jira_issue_workflow.py +0 -0
  963. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_advance_workflow_cmd.py +0 -0
  964. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_create_checklist_cmd.py +0 -0
  965. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_get_workflow_cmd.py +0 -0
  966. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_initiate_apply_pull_request_review_suggestions_workflow.py +0 -0
  967. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_initiate_create_jira_epic_workflow.py +0 -0
  968. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_initiate_create_jira_issue_workflow.py +0 -0
  969. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_initiate_create_jira_subtask_workflow.py +0 -0
  970. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_initiate_pull_request_review_workflow.py +0 -0
  971. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_initiate_update_jira_issue_workflow.py +0 -0
  972. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_initiate_work_on_jira_issue_workflow.py +0 -0
  973. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_notify_workflow_event.py +0 -0
  974. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_setup_worktree_background_cmd.py +0 -0
  975. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_show_checklist_cmd.py +0 -0
  976. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/commands/test_update_checklist_cmd.py +0 -0
  977. {agentic_devtools-0.2.15/tests/unit/cli/workflows/preflight → agentic_devtools-0.2.17/tests/unit/cli/workflows/manager}/__init__.py +0 -0
  978. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test__build_command_hint.py +0 -0
  979. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test__check_required_tasks_status.py +0 -0
  980. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test__render_failure_prompt.py +0 -0
  981. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test__render_step_prompt.py +0 -0
  982. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test__render_waiting_prompt.py +0 -0
  983. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test_get_next_step.py +0 -0
  984. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test_get_next_workflow_prompt.py +0 -0
  985. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test_get_next_workflow_prompt_cmd.py +0 -0
  986. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test_get_workflow_definition.py +0 -0
  987. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test_nextpromptresult.py +0 -0
  988. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test_notify_workflow_event.py +0 -0
  989. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/manager/test_promptstatus.py +0 -0
  990. {agentic_devtools-0.2.15/tests/unit/cli/workflows/worktree_setup → agentic_devtools-0.2.17/tests/unit/cli/workflows/preflight}/__init__.py +0 -0
  991. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/preflight/test_check_worktree_and_branch.py +0 -0
  992. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/preflight/test_generate_setup_instructions.py +0 -0
  993. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/preflight/test_get_current_git_branch.py +0 -0
  994. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/preflight/test_get_git_repo_root.py +0 -0
  995. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/preflight/test_perform_auto_setup.py +0 -0
  996. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/preflight/test_preflightresult.py +0 -0
  997. {agentic_devtools-0.2.15/tests/unit/config → agentic_devtools-0.2.17/tests/unit/cli/workflows/worktree_setup}/__init__.py +0 -0
  998. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test__detect_git_root.py +0 -0
  999. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test__run_auto_execute_command.py +0 -0
  1000. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test__setup_worktree_from_state.py +0 -0
  1001. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test__start_copilot_session_for_pr_review.py +0 -0
  1002. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test__wait_for_prompt_file.py +0 -0
  1003. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_check_worktree_exists.py +0 -0
  1004. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_create_placeholder_and_setup_worktree.py +0 -0
  1005. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_create_placeholder_issue.py +0 -0
  1006. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_create_worktree.py +0 -0
  1007. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_find_workspace_file.py +0 -0
  1008. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_generate_workflow_branch_name.py +0 -0
  1009. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_get_ai_agent_continuation_prompt.py +0 -0
  1010. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_get_current_branch.py +0 -0
  1011. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_get_main_repo_root.py +0 -0
  1012. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_get_repos_parent_dir.py +0 -0
  1013. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_get_worktree_continuation_prompt.py +0 -0
  1014. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_inject_git_path_settings.py +0 -0
  1015. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_is_in_worktree.py +0 -0
  1016. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_is_vscode_available.py +0 -0
  1017. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_open_vscode_workspace.py +0 -0
  1018. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_placeholderissueresult.py +0 -0
  1019. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_run_worktree_setup_script.py +0 -0
  1020. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_setup_worktree_environment.py +0 -0
  1021. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_setup_worktree_in_background_sync.py +0 -0
  1022. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_start_worktree_setup_background.py +0 -0
  1023. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_switch_to_main_branch.py +0 -0
  1024. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/cli/workflows/worktree_setup/test_worktreesetupresult.py +0 -0
  1025. {agentic_devtools-0.2.15/tests/unit/file_locking → agentic_devtools-0.2.17/tests/unit/config}/__init__.py +0 -0
  1026. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/config/test_load_repo_config.py +0 -0
  1027. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/config/test_load_review_focus_areas.py +0 -0
  1028. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/conftest.py +0 -0
  1029. {agentic_devtools-0.2.15/tests/unit/prompts → agentic_devtools-0.2.17/tests/unit/file_locking}/__init__.py +0 -0
  1030. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_cross_platform_behavior.py +0 -0
  1031. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_file_lock_error.py +0 -0
  1032. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_lock_file.py +0 -0
  1033. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_lock_functions.py +0 -0
  1034. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_locked_file.py +0 -0
  1035. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_locked_file_edge_cases.py +0 -0
  1036. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_locked_state_file.py +0 -0
  1037. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_unix_file_locking.py +0 -0
  1038. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_unlock_file.py +0 -0
  1039. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/file_locking/test_windows_file_locking.py +0 -0
  1040. {agentic_devtools-0.2.15/tests/unit/prompts/loader → agentic_devtools-0.2.17/tests/unit/prompts}/__init__.py +0 -0
  1041. {agentic_devtools-0.2.15/tests/unit/state → agentic_devtools-0.2.17/tests/unit/prompts/loader}/__init__.py +0 -0
  1042. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/conftest.py +0 -0
  1043. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_get_prompts_dir.py +0 -0
  1044. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_get_required_variables.py +0 -0
  1045. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_get_temp_output_dir.py +0 -0
  1046. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_get_template_filename.py +0 -0
  1047. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_get_template_path.py +0 -0
  1048. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_load_and_render_prompt.py +0 -0
  1049. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_load_prompt_template.py +0 -0
  1050. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_log_prompt_with_save_notice.py +0 -0
  1051. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_pr_review_initiate_prompt_rendering.py +0 -0
  1052. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_save_generated_prompt.py +0 -0
  1053. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_silentundefined.py +0 -0
  1054. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_substitute_variables.py +0 -0
  1055. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_substitute_variables_syntax_error.py +0 -0
  1056. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_template_validation_error.py +0 -0
  1057. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/prompts/loader/test_validate_template_variables.py +0 -0
  1058. {agentic_devtools-0.2.15/tests/unit/task_state → agentic_devtools-0.2.17/tests/unit/state}/__init__.py +0 -0
  1059. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_clear_state.py +0 -0
  1060. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_clear_temp_folder.py +0 -0
  1061. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_clear_workflow_state.py +0 -0
  1062. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_delete_value.py +0 -0
  1063. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_all_keys.py +0 -0
  1064. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_pull_request_id.py +0 -0
  1065. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_pypi_dry_run.py +0 -0
  1066. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_pypi_package_name.py +0 -0
  1067. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_pypi_repository.py +0 -0
  1068. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_pypi_version.py +0 -0
  1069. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_state_dir.py +0 -0
  1070. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_state_file_path.py +0 -0
  1071. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_thread_id.py +0 -0
  1072. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_value.py +0 -0
  1073. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_get_workflow_state.py +0 -0
  1074. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_is_dry_run.py +0 -0
  1075. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_is_workflow_active.py +0 -0
  1076. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_load_state.py +0 -0
  1077. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_load_state_locked.py +0 -0
  1078. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_save_state.py +0 -0
  1079. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_save_state_locked.py +0 -0
  1080. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_context_value.py +0 -0
  1081. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_dry_run.py +0 -0
  1082. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_pull_request_id.py +0 -0
  1083. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_pypi_dry_run.py +0 -0
  1084. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_pypi_package_name.py +0 -0
  1085. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_pypi_repository.py +0 -0
  1086. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_pypi_version.py +0 -0
  1087. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_resolve_thread.py +0 -0
  1088. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_thread_id.py +0 -0
  1089. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_value.py +0 -0
  1090. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_set_workflow_state.py +0 -0
  1091. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_should_resolve_thread.py +0 -0
  1092. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_update_workflow_context.py +0 -0
  1093. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_update_workflow_step.py +0 -0
  1094. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/state/test_workflow_state_integration.py +0 -0
  1095. {agentic_devtools-0.2.15/tests/workflows → agentic_devtools-0.2.17/tests/unit/task_state}/__init__.py +0 -0
  1096. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test__update_task_in_all_tasks.py +0 -0
  1097. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_add_task.py +0 -0
  1098. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_background_task.py +0 -0
  1099. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_cleanup_expired_tasks.py +0 -0
  1100. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_duration_seconds.py +0 -0
  1101. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_from_dict_invalid_status.py +0 -0
  1102. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_active_tasks.py +0 -0
  1103. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_all_tasks.py +0 -0
  1104. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_all_tasks_file_path.py +0 -0
  1105. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_background_tasks.py +0 -0
  1106. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_background_tasks_dir.py +0 -0
  1107. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_failed_most_recent_per_command.py +0 -0
  1108. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_incomplete_most_recent_per_command.py +0 -0
  1109. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_logs_dir.py +0 -0
  1110. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_most_recent_tasks_per_command.py +0 -0
  1111. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_other_incomplete_tasks.py +0 -0
  1112. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_recent_tasks.py +0 -0
  1113. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_task_by_id.py +0 -0
  1114. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_task_from_all_tasks.py +0 -0
  1115. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_get_tasks_by_status.py +0 -0
  1116. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_is_expired.py +0 -0
  1117. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_print_task_tracking_info.py +0 -0
  1118. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_remove_task.py +0 -0
  1119. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_save_background_tasks.py +0 -0
  1120. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_sort_tasks.py +0 -0
  1121. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_task_lifecycle.py +0 -0
  1122. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_task_status.py +0 -0
  1123. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/unit/task_state/test_update_task.py +0 -0
  1124. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/vpn/test_vpn_commands.py +0 -0
  1125. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/vpn/test_vpn_runner.py +0 -0
  1126. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/workflows/conftest.py +0 -0
  1127. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/tests/workflows/test_workflow_end_to_end.py +0 -0
  1128. {agentic_devtools-0.2.15 → agentic_devtools-0.2.17}/trigger.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentic-devtools
3
- Version: 0.2.15
3
+ Version: 0.2.17
4
4
  Summary: AI assistant helper commands for the Dragonfly platform
5
5
  Author: Dragonfly Team
6
6
  License-Expression: MIT
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.2.15'
32
- __version_tuple__ = version_tuple = (0, 2, 15)
31
+ __version__ = version = '0.2.17'
32
+ __version_tuple__ = version_tuple = (0, 2, 17)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -0,0 +1,194 @@
1
+ """
2
+ Shared SSL certificate utilities for agentic-devtools.
3
+
4
+ Fetches and caches corporate CA certificate chains so that ``requests``
5
+ calls succeed on corporate networks where a proxy re-signs TLS connections
6
+ with a custom CA certificate.
7
+
8
+ Certificates are cached in ``~/.agdt/certs/<hostname>.pem`` and only
9
+ re-fetched when the cached file is missing or empty.
10
+ """
11
+
12
+ import os
13
+ import re
14
+ import socket
15
+ import ssl
16
+ import subprocess
17
+ from pathlib import Path
18
+ from typing import Optional, Union
19
+
20
+ from agentic_devtools.cli.subprocess_utils import run_safe
21
+
22
+ # Default directory for cached CA bundles
23
+ _CERTS_DIR = Path.home() / ".agdt" / "certs"
24
+
25
+
26
+ def fetch_certificate_chain_openssl(hostname: str, port: int = 443) -> Optional[str]:
27
+ """Fetch the SSL certificate chain from *hostname* using ``openssl s_client``.
28
+
29
+ Returns the full chain (all certificates) as a PEM string, or ``None``
30
+ if ``openssl`` is unavailable or the connection fails.
31
+
32
+ Args:
33
+ hostname: The server hostname.
34
+ port: The server port (default 443).
35
+
36
+ Returns:
37
+ PEM-encoded certificate chain string, or ``None`` on failure.
38
+ """
39
+ try:
40
+ result = run_safe(
41
+ [
42
+ "openssl",
43
+ "s_client",
44
+ "-showcerts",
45
+ "-servername",
46
+ hostname,
47
+ "-connect",
48
+ f"{hostname}:{port}",
49
+ ],
50
+ input=b"",
51
+ capture_output=True,
52
+ timeout=10,
53
+ shell=False,
54
+ )
55
+ output = result.stdout.decode("utf-8", errors="ignore")
56
+ cert_pattern = r"-----BEGIN CERTIFICATE-----.*?-----END CERTIFICATE-----"
57
+ certs = re.findall(cert_pattern, output, re.DOTALL)
58
+ if certs:
59
+ return "\n".join(certs)
60
+ except (subprocess.TimeoutExpired, FileNotFoundError, OSError, subprocess.SubprocessError):
61
+ pass
62
+ except Exception: # noqa: BLE001 — cert fetch must not crash setup
63
+ pass
64
+ return None
65
+
66
+
67
+ def fetch_certificate_chain_ssl(hostname: str, port: int = 443) -> Optional[str]:
68
+ """Fetch the SSL certificate from *hostname* using Python's :mod:`ssl` module.
69
+
70
+ This is a fallback for when ``openssl`` is not available. Note that the
71
+ :mod:`ssl` module can only retrieve the server certificate, **not** the
72
+ full chain.
73
+
74
+ Args:
75
+ hostname: The server hostname.
76
+ port: The server port (default 443).
77
+
78
+ Returns:
79
+ PEM-encoded certificate string, or ``None`` on failure.
80
+ """
81
+ try:
82
+ # Intentionally disable SSL verification here: we must fetch the certificate
83
+ # chain *before* we can trust it. The chain is only used as a CA bundle for
84
+ # subsequent requests — never to authenticate the connection where it was fetched.
85
+ context = ssl.create_default_context()
86
+ context.check_hostname = False
87
+ context.verify_mode = ssl.CERT_NONE # noqa: S501
88
+
89
+ with socket.create_connection((hostname, port), timeout=10) as sock:
90
+ with context.wrap_socket(sock, server_hostname=hostname) as ssock:
91
+ cert_der = ssock.getpeercert(binary_form=True)
92
+ if cert_der:
93
+ return ssl.DER_cert_to_PEM_cert(cert_der)
94
+ except Exception: # pragma: no cover
95
+ pass
96
+
97
+ return None # pragma: no cover
98
+
99
+
100
+ def count_certificates_in_pem(pem_content: str) -> int:
101
+ """Return the number of ``BEGIN CERTIFICATE`` blocks in *pem_content*."""
102
+ return pem_content.count("-----BEGIN CERTIFICATE-----")
103
+
104
+
105
+ def ensure_ca_bundle(
106
+ hostname: str,
107
+ cache_file: Optional[Path] = None,
108
+ ) -> Optional[str]:
109
+ """Ensure a CA bundle PEM file exists for *hostname* and return its path.
110
+
111
+ The certificate chain is fetched exactly once and cached. Subsequent
112
+ calls return the cached path immediately when the cache contains at
113
+ least one certificate — even if only the server cert was available.
114
+
115
+ On the *first* fetch the function prefers ``openssl`` (which usually
116
+ retrieves the full chain including the root CA). If ``openssl``
117
+ fails to return any certificates, the :mod:`ssl` module is used as a
118
+ fallback to obtain at least the server certificate.
119
+
120
+ All certificate fetching targets port 443 (standard HTTPS). For
121
+ non-standard ports, use :func:`fetch_certificate_chain_openssl` or
122
+ :func:`fetch_certificate_chain_ssl` directly.
123
+
124
+ Args:
125
+ hostname: Server hostname to fetch certificates from.
126
+ cache_file: Explicit path to store the PEM file. Defaults to
127
+ ``~/.agdt/certs/<hostname>.pem``.
128
+
129
+ Returns:
130
+ Absolute path to the cached PEM file, or ``None`` if fetching failed.
131
+ """
132
+ if cache_file is None:
133
+ # Sanitize hostname to prevent path traversal (e.g. "../" in hostname).
134
+ safe_name = re.sub(r"[^\w.\-]", "_", hostname)
135
+ cache_file = _CERTS_DIR / f"{safe_name}.pem"
136
+ cache_file = cache_file.expanduser().resolve()
137
+
138
+ # Return cached file when it already contains at least one certificate.
139
+ # We accept single-cert caches to avoid re-fetching on every call for
140
+ # hosts that only ever yield one cert (e.g. ssl-module fallback).
141
+ if cache_file.exists():
142
+ try:
143
+ existing = cache_file.read_text(encoding="utf-8")
144
+ except (OSError, UnicodeDecodeError):
145
+ # Treat unreadable or undecodable cache as missing and refetch.
146
+ existing = ""
147
+ if count_certificates_in_pem(existing) >= 1:
148
+ return str(cache_file)
149
+
150
+ # Prefer openssl — it retrieves the full chain including the root CA
151
+ cert_chain = fetch_certificate_chain_openssl(hostname)
152
+ if cert_chain and count_certificates_in_pem(cert_chain) >= 2:
153
+ cache_file.parent.mkdir(parents=True, exist_ok=True)
154
+ cache_file.write_text(cert_chain, encoding="utf-8")
155
+ return str(cache_file)
156
+
157
+ # Fallback: ssl module (server cert only — may not work as a CA bundle)
158
+ if not cert_chain:
159
+ cert_chain = fetch_certificate_chain_ssl(hostname)
160
+
161
+ if cert_chain:
162
+ cache_file.parent.mkdir(parents=True, exist_ok=True)
163
+ cache_file.write_text(cert_chain, encoding="utf-8")
164
+ return str(cache_file)
165
+
166
+ return None
167
+
168
+
169
+ def get_ssl_verify(hostname: str) -> Union[bool, str]:
170
+ """Return the ``verify`` argument for :func:`requests.get` when connecting to *hostname*.
171
+
172
+ Priority:
173
+ 1. ``REQUESTS_CA_BUNDLE`` environment variable (if set and file exists).
174
+ 2. Cached CA bundle at ``~/.agdt/certs/<hostname>.pem``, fetched on
175
+ demand if not present.
176
+ 3. ``True`` — fall back to the system default CA bundle.
177
+
178
+ Args:
179
+ hostname: The target server hostname.
180
+
181
+ Returns:
182
+ Path to a CA bundle file, or ``True`` to use the system CA bundle.
183
+ """
184
+ ca_bundle = os.environ.get("REQUESTS_CA_BUNDLE")
185
+ if ca_bundle:
186
+ normalized = os.path.abspath(os.path.expanduser(os.path.expandvars(ca_bundle)))
187
+ if os.path.exists(normalized):
188
+ return normalized
189
+
190
+ pem_path = ensure_ca_bundle(hostname)
191
+ if pem_path:
192
+ return pem_path
193
+
194
+ return True
@@ -186,33 +186,35 @@ def _get_log_file_path(session_id: str, start_time: str) -> Path:
186
186
  return state_dir / _LOG_DIR_NAME / filename
187
187
 
188
188
 
189
- def _build_copilot_args(prompt: str, prompt_file: str) -> Optional[list[str]]:
189
+ def _build_copilot_args(prompt: str, *, interactive: bool = True) -> Optional[list[str]]:
190
190
  """Build the copilot argument list.
191
191
 
192
192
  Uses the standalone ``copilot`` binary when available (preferred), falling
193
193
  back to the ``gh copilot`` extension for backward compatibility.
194
194
 
195
- The standalone binary receives the prompt via ``--file`` to avoid shell
196
- argument-length limits. The ``gh copilot`` extension does **not** support
197
- ``--file``; the prompt text is passed as the positional ``[subject]``
198
- argument instead. When the prompt exceeds
199
- :data:`_MAX_GH_COPILOT_ARGV_LENGTH` on the extension path, ``None`` is
200
- returned so the caller can use a fallback.
195
+ Neither the standalone binary nor the ``gh copilot`` extension supports
196
+ ``--file``. The standalone binary accepts the prompt via ``-p``/``--prompt``
197
+ for non-interactive use and ``-i`` for interactive use, while the
198
+ ``gh copilot`` extension accepts the prompt as a positional ``[subject]``
199
+ argument. When the prompt exceeds :data:`_MAX_GH_COPILOT_ARGV_LENGTH`,
200
+ ``None`` is returned so the caller can use a fallback.
201
201
 
202
202
  Args:
203
- prompt: The full prompt text (used as subject for ``gh copilot``).
204
- prompt_file: Absolute path to the file containing the prompt (used
205
- with the standalone binary).
203
+ prompt: The full prompt text to pass to the copilot command.
204
+ interactive: When ``True`` (default) the standalone binary receives
205
+ ``-i``; when ``False`` it receives ``-p``. Ignored for the
206
+ ``gh copilot`` extension path which always uses a positional arg.
206
207
 
207
208
  Returns:
208
209
  List of strings suitable for :func:`subprocess.Popen`, or ``None``
209
- when the prompt is too large for the ``gh copilot`` argv path.
210
+ when the prompt is too large for the argv path.
210
211
  """
211
- standalone = _get_copilot_binary()
212
- if standalone:
213
- return [standalone, "suggest", "--file", prompt_file]
214
212
  if len(prompt) > _MAX_GH_COPILOT_ARGV_LENGTH:
215
213
  return None
214
+ standalone = _get_copilot_binary()
215
+ if standalone:
216
+ flag = "-i" if interactive else "-p"
217
+ return [standalone, "suggest", flag, prompt]
216
218
  return ["gh", "copilot", "suggest", prompt]
217
219
 
218
220
 
@@ -264,11 +266,19 @@ def start_copilot_session(
264
266
 
265
267
  Behaviour:
266
268
  - Generates (or reuses) a unique session ID.
267
- - Writes *prompt* to a temporary file so that large prompts do not
268
- exceed CLI argument-length limits.
269
- - Starts ``copilot suggest --file <prompt_file>`` (standalone binary) or
270
- ``gh copilot suggest <prompt>`` (extension fallback, which does not
271
- support ``--file``).
269
+ - Writes *prompt* to a temporary file for persistence and manual
270
+ reuse. The prompt is passed directly as a CLI argument to the
271
+ Copilot process; when it exceeds safe argv-length limits it is
272
+ printed to stdout instead.
273
+ - Starts ``copilot suggest <prompt>`` (standalone binary) or
274
+ ``gh copilot suggest <prompt>`` (extension fallback).
275
+
276
+ .. note::
277
+
278
+ The prompt text is visible in the child-process command line
279
+ (e.g. Task Manager / ``ps`` output). Neither the standalone
280
+ binary nor the ``gh copilot`` extension currently supports
281
+ receiving the prompt via stdin or a file flag.
272
282
  - In **interactive** mode the child process inherits the current
273
283
  terminal (stdin / stdout / stderr), so the user can interact with
274
284
  it directly. This call blocks until the interactive session ends.
@@ -328,13 +338,13 @@ def start_copilot_session(
328
338
  return result
329
339
 
330
340
  # --- Build command -------------------------------------------------------
331
- args = _build_copilot_args(prompt, prompt_file)
341
+ args = _build_copilot_args(prompt, interactive=interactive)
332
342
 
333
- # When the prompt is too large for the gh copilot argv path (no
334
- # standalone binary available), fall back to printing the prompt.
343
+ # When the prompt is too large for safe argv passing, fall back to
344
+ # printing the prompt. This applies regardless of binary variant.
335
345
  if args is None:
336
346
  warnings.warn(
337
- "Prompt too large for gh copilot argv; printing prompt to stdout as fallback.",
347
+ "Prompt too large for copilot argv; printing prompt to stdout as fallback.",
338
348
  stacklevel=2,
339
349
  )
340
350
  _print_fallback_prompt(prompt)
@@ -3,15 +3,19 @@ Jira utility helpers: request handling, SSL, parsing.
3
3
  """
4
4
 
5
5
  import os
6
- import re
7
- import socket
8
- import ssl
9
- import subprocess
10
6
  import warnings
11
7
  from pathlib import Path
12
8
  from typing import Any, List, Optional, Union
13
9
 
14
- from agentic_devtools.cli.subprocess_utils import run_safe
10
+ from agentic_devtools.cli.cert_utils import (
11
+ count_certificates_in_pem as _count_certificates_in_pem,
12
+ )
13
+ from agentic_devtools.cli.cert_utils import (
14
+ fetch_certificate_chain_openssl as _fetch_certificate_chain_openssl,
15
+ )
16
+ from agentic_devtools.cli.cert_utils import (
17
+ fetch_certificate_chain_ssl as _fetch_certificate_chain_ssl,
18
+ )
15
19
  from agentic_devtools.state import get_state_dir
16
20
 
17
21
 
@@ -69,84 +73,6 @@ def _get_temp_jira_pem_path() -> Path:
69
73
  return state_dir / "jira_ca_bundle.pem"
70
74
 
71
75
 
72
- def _fetch_certificate_chain_openssl(hostname: str, port: int = 443) -> Optional[str]:
73
- """
74
- Fetch the SSL certificate chain from a server using openssl command.
75
-
76
- Args:
77
- hostname: The server hostname
78
- port: The server port (default 443)
79
-
80
- Returns:
81
- PEM-encoded certificate chain string, or None if failed
82
- """
83
- try:
84
- # Use openssl s_client to get the full certificate chain
85
- result = run_safe(
86
- [
87
- "openssl",
88
- "s_client",
89
- "-showcerts",
90
- "-servername",
91
- hostname,
92
- "-connect",
93
- f"{hostname}:{port}",
94
- ],
95
- input=b"",
96
- capture_output=True,
97
- timeout=10,
98
- )
99
-
100
- output = result.stdout.decode("utf-8", errors="ignore")
101
-
102
- # Extract all certificates from the output
103
- cert_pattern = r"-----BEGIN CERTIFICATE-----.*?-----END CERTIFICATE-----"
104
- certs = re.findall(cert_pattern, output, re.DOTALL)
105
-
106
- if certs:
107
- return "\n".join(certs)
108
-
109
- except (subprocess.TimeoutExpired, FileNotFoundError, Exception):
110
- pass
111
-
112
- return None
113
-
114
-
115
- def _fetch_certificate_chain_ssl(hostname: str, port: int = 443) -> Optional[str]:
116
- """
117
- Fetch SSL certificate using Python's ssl module (fallback if openssl not available).
118
-
119
- Note: This only gets the server certificate, not the full chain.
120
-
121
- Args:
122
- hostname: The server hostname
123
- port: The server port (default 443)
124
-
125
- Returns:
126
- PEM-encoded certificate string, or None if failed
127
- """
128
- try:
129
- context = ssl.create_default_context()
130
- context.check_hostname = False
131
- context.verify_mode = ssl.CERT_NONE
132
-
133
- with socket.create_connection((hostname, port), timeout=10) as sock:
134
- with context.wrap_socket(sock, server_hostname=hostname) as ssock:
135
- cert_der = ssock.getpeercert(binary_form=True)
136
- if cert_der:
137
- cert_pem = ssl.DER_cert_to_PEM_cert(cert_der)
138
- return cert_pem
139
- except Exception: # pragma: no cover
140
- pass
141
-
142
- return None # pragma: no cover
143
-
144
-
145
- def _count_certificates_in_pem(pem_content: str) -> int:
146
- """Count the number of certificates in a PEM file content."""
147
- return pem_content.count("-----BEGIN CERTIFICATE-----")
148
-
149
-
150
76
  def _ensure_jira_pem(hostname: str = "jira.swica.ch") -> Optional[str]:
151
77
  """
152
78
  Ensure the Jira CA bundle PEM file exists with a complete certificate chain.
@@ -11,6 +11,8 @@ Entry points:
11
11
  import sys
12
12
  from pathlib import Path
13
13
 
14
+ from agentic_devtools.cli.cert_utils import ensure_ca_bundle as _ensure_ca_bundle
15
+
14
16
  from .copilot_cli_installer import install_copilot_cli
15
17
  from .dependency_checker import check_all_dependencies, print_dependency_report
16
18
  from .gh_cli_installer import install_gh_cli
@@ -33,6 +35,55 @@ _PATH_INSTRUCTIONS = (
33
35
  )
34
36
 
35
37
 
38
+ def _prefetch_certs() -> None:
39
+ """Pre-fetch and cache corporate CA certificates for common setup hosts.
40
+
41
+ Fetches the certificate chain for external hosts used during setup and
42
+ stores the PEM bundles in ``~/.agdt/certs/``. Also writes an
43
+ ``~/.agdt/npmrc`` file that configures npm to use the cached CA bundle
44
+ for ``registry.npmjs.org``, enabling npm installs on corporate networks.
45
+
46
+ The cert cache only needs to be refreshed infrequently (e.g. yearly).
47
+ To force a refresh, delete ``~/.agdt/certs/``.
48
+ """
49
+ print("Fetching CA certificates for external hosts...")
50
+
51
+ # Hosts used by the CLI installers — store api.github.com result for pip hint below
52
+ gh_pem = None
53
+ for hostname in ("api.github.com", "github.com"):
54
+ pem = _ensure_ca_bundle(hostname)
55
+ if hostname == "api.github.com":
56
+ gh_pem = pem
57
+ if pem:
58
+ print(f" ✓ CA bundle cached for {hostname}")
59
+ else:
60
+ print(f" ⚠ Could not cache CA bundle for {hostname}; will try system CA")
61
+
62
+ # npm registry — write cafile to ~/.agdt/npmrc so npm works on corporate networks
63
+ npm_pem = _ensure_ca_bundle("registry.npmjs.org")
64
+ if npm_pem:
65
+ npmrc_path = Path.home() / ".agdt" / "npmrc"
66
+ npmrc_path.parent.mkdir(parents=True, exist_ok=True)
67
+ npmrc_path.write_text(f"cafile={npm_pem}\n", encoding="utf-8")
68
+ print(" ✓ CA bundle cached for registry.npmjs.org")
69
+ print(" ✓ npm CA config written to ~/.agdt/npmrc")
70
+ print(" ℹ To apply:")
71
+ print(" # bash/zsh:")
72
+ print(' export NPM_CONFIG_USERCONFIG="$HOME/.agdt/npmrc"')
73
+ print(" # PowerShell:")
74
+ print(' $env:NPM_CONFIG_USERCONFIG = "$env:USERPROFILE\\.agdt\\npmrc"')
75
+ else:
76
+ print(" ⚠ Could not cache CA bundle for registry.npmjs.org; will try system CA")
77
+
78
+ # Print pip CA instructions (pip respects REQUESTS_CA_BUNDLE or PIP_CERT)
79
+ if gh_pem:
80
+ print(" ℹ For pip/requests:")
81
+ print(" # bash/zsh:")
82
+ print(f' export REQUESTS_CA_BUNDLE="{gh_pem}"')
83
+ print(" # PowerShell:")
84
+ print(f' $env:REQUESTS_CA_BUNDLE = "{gh_pem}"')
85
+
86
+
36
87
  def _print_path_instructions_if_needed() -> None:
37
88
  """Print PATH setup instructions when ``~/.agdt/bin`` is not on the PATH."""
38
89
  import os
@@ -54,6 +105,9 @@ def setup_cmd() -> None:
54
105
  print(_BANNER)
55
106
  print()
56
107
 
108
+ _prefetch_certs()
109
+ print()
110
+
57
111
  copilot_ok = install_copilot_cli()
58
112
  print()
59
113
  gh_ok = install_gh_cli()
@@ -20,6 +20,8 @@ from urllib.parse import urlparse
20
20
 
21
21
  import requests
22
22
 
23
+ from agentic_devtools.cli.cert_utils import get_ssl_verify as _get_ssl_verify
24
+
23
25
  # ---------------------------------------------------------------------------
24
26
  # Constants
25
27
  # ---------------------------------------------------------------------------
@@ -77,7 +79,7 @@ def get_latest_release_info() -> Dict[str, Any]:
77
79
  Raises:
78
80
  requests.RequestException: On network or HTTP errors.
79
81
  """
80
- response = requests.get(_RELEASES_URL, timeout=30)
82
+ response = requests.get(_RELEASES_URL, timeout=30, verify=_get_ssl_verify("api.github.com"))
81
83
  response.raise_for_status()
82
84
  result: Dict[str, Any] = response.json()
83
85
  return result
@@ -164,7 +166,7 @@ def download_and_install(version: str, asset_url: str, asset_name: str) -> bool:
164
166
  dest = _INSTALL_DIR / _BINARY_NAME
165
167
 
166
168
  try:
167
- response = requests.get(asset_url, timeout=120, stream=True)
169
+ response = requests.get(asset_url, timeout=120, stream=True, verify=_get_ssl_verify("github.com"))
168
170
  response.raise_for_status()
169
171
  asset_bytes = b"".join(response.iter_content(chunk_size=65536))
170
172
  except requests.RequestException as exc:
@@ -18,6 +18,8 @@ from urllib.parse import urlparse
18
18
 
19
19
  import requests
20
20
 
21
+ from agentic_devtools.cli.cert_utils import get_ssl_verify as _get_ssl_verify
22
+
21
23
  # ---------------------------------------------------------------------------
22
24
  # Constants
23
25
  # ---------------------------------------------------------------------------
@@ -75,7 +77,7 @@ def get_latest_release_info() -> Dict[str, Any]:
75
77
  Raises:
76
78
  requests.RequestException: On network or HTTP errors.
77
79
  """
78
- response = requests.get(_RELEASES_URL, timeout=30)
80
+ response = requests.get(_RELEASES_URL, timeout=30, verify=_get_ssl_verify("api.github.com"))
79
81
  response.raise_for_status()
80
82
  result: Dict[str, Any] = response.json()
81
83
  return result
@@ -172,7 +174,7 @@ def download_and_install(version: str, asset_url: str, asset_name: str) -> bool:
172
174
  import zipfile
173
175
 
174
176
  try:
175
- response = requests.get(asset_url, timeout=120, stream=True)
177
+ response = requests.get(asset_url, timeout=120, stream=True, verify=_get_ssl_verify("github.com"))
176
178
  response.raise_for_status()
177
179
 
178
180
  with tempfile.TemporaryDirectory() as tmp_dir:
@@ -209,7 +211,11 @@ def download_and_install(version: str, asset_url: str, asset_name: str) -> bool:
209
211
  extracted = False
210
212
  for name in zf.namelist():
211
213
  normalized = name.replace("\\", "/")
212
- if normalized.endswith("/bin/gh") or normalized.endswith("/bin/gh.exe") or normalized in ("gh", "gh.exe"):
214
+ if (
215
+ normalized.endswith("/bin/gh")
216
+ or normalized.endswith("/bin/gh.exe")
217
+ or normalized in ("gh", "gh.exe")
218
+ ):
213
219
  data = zf.read(name)
214
220
  dest.write_bytes(data)
215
221
  extracted = True
@@ -0,0 +1,29 @@
1
+ """Tests for count_certificates_in_pem."""
2
+
3
+ from agentic_devtools.cli import cert_utils
4
+
5
+
6
+ class TestCountCertificatesInPem:
7
+ """Tests for count_certificates_in_pem."""
8
+
9
+ def test_returns_zero_for_empty_string(self):
10
+ """Returns 0 for an empty string."""
11
+ assert cert_utils.count_certificates_in_pem("") == 0
12
+
13
+ def test_returns_one_for_single_cert(self):
14
+ """Returns 1 when there is one certificate block."""
15
+ pem = "-----BEGIN CERTIFICATE-----\ndata\n-----END CERTIFICATE-----"
16
+ assert cert_utils.count_certificates_in_pem(pem) == 1
17
+
18
+ def test_returns_two_for_full_chain(self):
19
+ """Returns 2 for a two-certificate chain."""
20
+ pem = (
21
+ "-----BEGIN CERTIFICATE-----\nserver\n-----END CERTIFICATE-----\n"
22
+ "-----BEGIN CERTIFICATE-----\nca\n-----END CERTIFICATE-----"
23
+ )
24
+ assert cert_utils.count_certificates_in_pem(pem) == 2
25
+
26
+ def test_returns_three_for_three_certs(self):
27
+ """Returns 3 for a three-certificate chain."""
28
+ block = "-----BEGIN CERTIFICATE-----\ndata\n-----END CERTIFICATE-----\n"
29
+ assert cert_utils.count_certificates_in_pem(block * 3) == 3