devops-bot-sdk 1.6.85__tar.gz → 1.6.86__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 (253) hide show
  1. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/PKG-INFO +1 -1
  2. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/devops_bot_sdk.egg-info/PKG-INFO +1 -1
  3. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/devops_bot_sdk.egg-info/SOURCES.txt +1 -0
  4. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/__init__.py +2 -2
  5. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/updater.py +29 -6
  6. devops_bot_sdk-1.6.86/tests/test_updater_ignores_cwd.py +67 -0
  7. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/README.md +0 -0
  8. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/devops_bot_sdk.egg-info/dependency_links.txt +0 -0
  9. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/devops_bot_sdk.egg-info/entry_points.txt +0 -0
  10. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/devops_bot_sdk.egg-info/requires.txt +0 -0
  11. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/devops_bot_sdk.egg-info/top_level.txt +0 -0
  12. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/pyproject.toml +0 -0
  13. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/__init__.py +0 -0
  14. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/classifier.py +0 -0
  15. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/collectors/__init__.py +0 -0
  16. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/collectors/common.py +0 -0
  17. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/collectors/linux_auditd.py +0 -0
  18. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/collectors/macos_eslogger.py +0 -0
  19. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/collectors/windows_eventlog.py +0 -0
  20. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/models.py +0 -0
  21. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/os_setup.py +0 -0
  22. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/recorder.py +0 -0
  23. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/redact.py +0 -0
  24. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/settings.py +0 -0
  25. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/shipper.py +0 -0
  26. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/activity/spool.py +0 -0
  27. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agentd.py +0 -0
  28. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/__init__.py +0 -0
  29. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/activity.py +0 -0
  30. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/builder.py +0 -0
  31. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/chat.py +0 -0
  32. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/connectors.py +0 -0
  33. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/engines/__init__.py +0 -0
  34. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/engines/claude_code.py +0 -0
  35. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/engines/http.py +0 -0
  36. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/engines/mcp.py +0 -0
  37. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/engines/n8n.py +0 -0
  38. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/engines/shell.py +0 -0
  39. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/integrations.py +0 -0
  40. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/inventory.py +0 -0
  41. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/library/__init__.py +0 -0
  42. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/manifest.py +0 -0
  43. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/prompt_studio.py +0 -0
  44. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/prompt_template.py +0 -0
  45. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/prompt_vars.py +0 -0
  46. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/run_log.py +0 -0
  47. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/schedules.py +0 -0
  48. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/secrets.py +0 -0
  49. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/ticket_run.py +0 -0
  50. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/usage.py +0 -0
  51. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/agents/varstore.py +0 -0
  52. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/browser_profile.py +0 -0
  53. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/claude_usage.py +0 -0
  54. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/cli.py +0 -0
  55. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/client.py +0 -0
  56. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/collectors/__init__.py +0 -0
  57. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/collectors/files.py +0 -0
  58. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/collectors/process.py +0 -0
  59. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/collectors/screenshot.py +0 -0
  60. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/config.py +0 -0
  61. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/crucial.py +0 -0
  62. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/custom_agents.py +0 -0
  63. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/departments.py +0 -0
  64. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/design_verify/__init__.py +0 -0
  65. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/design_verify/assets.py +0 -0
  66. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/design_verify/bootstrap.py +0 -0
  67. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/design_verify/browser.py +0 -0
  68. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/design_verify/compare.py +0 -0
  69. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/design_verify/loop.py +0 -0
  70. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/estimator.py +0 -0
  71. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/exceptions.py +0 -0
  72. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/fallback_handoff.py +0 -0
  73. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/firewall.py +0 -0
  74. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/formats.py +0 -0
  75. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/git_ops.py +0 -0
  76. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/github_fetch.py +0 -0
  77. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/github_ingest.py +0 -0
  78. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/graph_recon.py +0 -0
  79. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/graphify.py +0 -0
  80. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/helpdesk.py +0 -0
  81. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/helpdesk_kb.md +0 -0
  82. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/hooks/__init__.py +0 -0
  83. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/hooks/crucial_guard.py +0 -0
  84. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/intake.py +0 -0
  85. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ipc/__init__.py +0 -0
  86. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ipc/electron_bridge.py +0 -0
  87. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ipc/handlers.py +0 -0
  88. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/journal.py +0 -0
  89. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/local_exec.py +0 -0
  90. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/memory_guard.py +0 -0
  91. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/models/__init__.py +0 -0
  92. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/models/envelope.py +0 -0
  93. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/models/requests.py +0 -0
  94. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/models/responses.py +0 -0
  95. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/models/snapshots.py +0 -0
  96. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/phase_timer.py +0 -0
  97. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/plan_run.py +0 -0
  98. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/platform_compat.py +0 -0
  99. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/prd_progress.py +0 -0
  100. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/proof_readers.py +0 -0
  101. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/providers.py +0 -0
  102. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/py.typed +0 -0
  103. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/resume.py +0 -0
  104. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/router.py +0 -0
  105. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/run_auto.py +0 -0
  106. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/schedule_tickets.py +0 -0
  107. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/scheduler.py +0 -0
  108. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/self_report.py +0 -0
  109. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/self_report_local.py +0 -0
  110. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/sse.py +0 -0
  111. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/swagger.py +0 -0
  112. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/task_file.py +0 -0
  113. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/task_types.py +0 -0
  114. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/test.py +0 -0
  115. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/test_pipeline.py +0 -0
  116. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ticket_fields.py +0 -0
  117. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/tickets.py +0 -0
  118. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/tiers/__init__.py +0 -0
  119. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/tiers/mini_agent.py +0 -0
  120. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/__init__.py +0 -0
  121. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/api.py +0 -0
  122. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/dashboard.py +0 -0
  123. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/health.py +0 -0
  124. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/ip_allowlist.py +0 -0
  125. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/jobs.py +0 -0
  126. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/models.py +0 -0
  127. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/runner.py +0 -0
  128. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/security.py +0 -0
  129. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/server.py +0 -0
  130. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/service.py +0 -0
  131. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/session.py +0 -0
  132. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/setup_manager.py +0 -0
  133. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/agents.html +0 -0
  134. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/app.js +0 -0
  135. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/chat.html +0 -0
  136. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/custom-agents.html +0 -0
  137. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/default-agents.html +0 -0
  138. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/help.html +0 -0
  139. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/index.html +0 -0
  140. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/report.html +0 -0
  141. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/runs.html +0 -0
  142. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/schedules.html +0 -0
  143. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/setup.html +0 -0
  144. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/styles.css +0 -0
  145. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/static/tickets.html +0 -0
  146. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/ui/swagger.py +0 -0
  147. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/url_access.py +0 -0
  148. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/vps_health.py +0 -0
  149. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/vps_identity.py +0 -0
  150. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/sdk/write_hook.py +0 -0
  151. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/setup.cfg +0 -0
  152. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_activity_claude_runs.py +0 -0
  153. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_activity_collectors.py +0 -0
  154. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_activity_core.py +0 -0
  155. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_activity_live_tracking.py +0 -0
  156. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_activity_macos.py +0 -0
  157. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_activity_os_setup.py +0 -0
  158. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_activity_pipeline.py +0 -0
  159. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_activity.py +0 -0
  160. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_activity_tracking.py +0 -0
  161. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_chat_features.py +0 -0
  162. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_crud_cli.py +0 -0
  163. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_listing.py +0 -0
  164. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_prompt_async.py +0 -0
  165. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_prompt_models.py +0 -0
  166. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_run_ticket.py +0 -0
  167. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_schedules.py +0 -0
  168. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agent_workspace_settings.py +0 -0
  169. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_agents_connectors_builder.py +0 -0
  170. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_allowed_tools_config.py +0 -0
  171. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_auto_agent_dispatch.py +0 -0
  172. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_auto_ticket_queue.py +0 -0
  173. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_browser_profile.py +0 -0
  174. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_cheap_tier.py +0 -0
  175. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_claude_usage_gate.py +0 -0
  176. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_client_jira_projects.py +0 -0
  177. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_config_token_diagnostics.py +0 -0
  178. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_configure_token_owner.py +0 -0
  179. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_console_encoding.py +0 -0
  180. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_crash_recovery.py +0 -0
  181. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_create_safe_retry.py +0 -0
  182. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_departments.py +0 -0
  183. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_done_transition.py +0 -0
  184. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_epic_decompose_run.py +0 -0
  185. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_epic_inherited_agent_id.py +0 -0
  186. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_epic_session_isolation.py +0 -0
  187. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_estimator.py +0 -0
  188. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_fallback_cli.py +0 -0
  189. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_fallback_cli_upgrade.py +0 -0
  190. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_firewall_open_on_update.py +0 -0
  191. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_formats.py +0 -0
  192. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_git_action.py +0 -0
  193. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_github_fetch.py +0 -0
  194. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_github_ingest.py +0 -0
  195. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_graph_recon.py +0 -0
  196. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_graphify_build.py +0 -0
  197. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_graphify_hook_install.py +0 -0
  198. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_health.py +0 -0
  199. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_helpdesk.py +0 -0
  200. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_intake_job_outcome.py +0 -0
  201. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_intake_plan_review.py +0 -0
  202. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_journal.py +0 -0
  203. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_limit_fallback_handoff.py +0 -0
  204. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_local_exec_provider.py +0 -0
  205. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_mcp_route_contract.py +0 -0
  206. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_memory_guard.py +0 -0
  207. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_panel_help.py +0 -0
  208. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_panel_ticket_schedules.py +0 -0
  209. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_phase_timer.py +0 -0
  210. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_plan_new_command.py +0 -0
  211. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_plan_run_activity.py +0 -0
  212. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_pr_identity.py +0 -0
  213. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_prd_artifact.py +0 -0
  214. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_project_path_resolution.py +0 -0
  215. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_proof_readers.py +0 -0
  216. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_providers.py +0 -0
  217. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_recon_session_isolation.py +0 -0
  218. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_resume.py +0 -0
  219. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_router.py +0 -0
  220. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_run_auto_agent_only.py +0 -0
  221. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_run_outputs.py +0 -0
  222. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_run_verdict_is_honest.py +0 -0
  223. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_schedule_api.py +0 -0
  224. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_schedule_outputs_and_plans.py +0 -0
  225. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_schedule_tickets.py +0 -0
  226. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_scheduler.py +0 -0
  227. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_scheduler_transient_retry.py +0 -0
  228. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_self_report.py +0 -0
  229. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_service_token_warning.py +0 -0
  230. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_stale_panel_restart.py +0 -0
  231. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_swagger_command.py +0 -0
  232. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_task_file_and_plan_run.py +0 -0
  233. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_task_file_format_doc.py +0 -0
  234. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_ticket_cli.py +0 -0
  235. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_ticket_fields.py +0 -0
  236. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_ticket_run_resolve_by_id.py +0 -0
  237. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_ticket_schedule_and_agent.py +0 -0
  238. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_ticket_speed_fixes.py +0 -0
  239. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_tier_flag_parity.py +0 -0
  240. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_ui_gate.py +0 -0
  241. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_ui_lifespan.py +0 -0
  242. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_update_timer.py +0 -0
  243. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_updater_extras.py +0 -0
  244. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_updater_pep668.py +0 -0
  245. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_updater_reports_the_truth.py +0 -0
  246. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_url_access.py +0 -0
  247. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_vps_health.py +0 -0
  248. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_vps_only_reporting.py +0 -0
  249. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_windows_loop_identity.py +0 -0
  250. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_windows_panel_task.py +0 -0
  251. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_windows_stop_and_pidfile.py +0 -0
  252. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_windows_task_paths.py +0 -0
  253. {devops_bot_sdk-1.6.85 → devops_bot_sdk-1.6.86}/tests/test_write_hook.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devops-bot-sdk
3
- Version: 1.6.85
3
+ Version: 1.6.86
4
4
  Summary: DevOps Bot Desktop SDK — thin client for the AgentOS Electron desktop app
5
5
  Author: noumanaziz2128
6
6
  License-Expression: LicenseRef-Proprietary
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devops-bot-sdk
3
- Version: 1.6.85
3
+ Version: 1.6.86
4
4
  Summary: DevOps Bot Desktop SDK — thin client for the AgentOS Electron desktop app
5
5
  Author: noumanaziz2128
6
6
  License-Expression: LicenseRef-Proprietary
@@ -238,6 +238,7 @@ tests/test_ui_gate.py
238
238
  tests/test_ui_lifespan.py
239
239
  tests/test_update_timer.py
240
240
  tests/test_updater_extras.py
241
+ tests/test_updater_ignores_cwd.py
241
242
  tests/test_updater_pep668.py
242
243
  tests/test_updater_reports_the_truth.py
243
244
  tests/test_url_access.py
@@ -1,6 +1,6 @@
1
1
  """AgentOS Desktop SDK — thin HTTPS/SSE client for the Electron app.
2
2
 
3
- Version: 1.6.85
3
+ Version: 1.6.86
4
4
 
5
5
  Public surface:
6
6
  BackendClient.from_config() — create client from ~/.agentos/config.toml
@@ -34,7 +34,7 @@ Rules:
34
34
  - All data egress through submit_webhook only
35
35
  """
36
36
 
37
- __version__ = "1.6.85" # SINGLE SOURCE OF TRUTH — bump on every change; pyproject,
37
+ __version__ = "1.6.86" # SINGLE SOURCE OF TRUTH — bump on every change; pyproject,
38
38
  __author__ = "AgentOS" # sdk.client.SDK_VERSION and the UI server version all read this.
39
39
 
40
40
  from sdk.client import BackendClient
@@ -306,6 +306,28 @@ def _pip_install(
306
306
  return (False, _redact(str(exc)))
307
307
 
308
308
 
309
+ def _fresh_python_argv(code: str) -> list[str]:
310
+ """``python -P -c <code>`` — a fresh interpreter that does NOT put the current
311
+ directory on ``sys.path``.
312
+
313
+ Without ``-P``, ``python -c`` imports from the caller's working directory first.
314
+ Run from a checkout of this repo, that meant the checkout's ``sdk/`` and its
315
+ leftover ``devops_bot_sdk.egg-info`` (git-ignored, written by a past
316
+ ``pip install -e .``) shadowed what pip had just installed: measured on
317
+ 2026-10-24, ``agentos-auto update`` installed 1.6.85, read 1.6.82 from the
318
+ stale egg-info, reported "the upgrade did not take" and force-reinstalled
319
+ through every source. ``-P`` exists from 3.11, which ``requires-python``
320
+ already demands. The callers also run from a neutral directory, belt and
321
+ braces for an interpreter that ignores the flag.
322
+ """
323
+ return [sys.executable, "-P", "-c", code]
324
+
325
+
326
+ def _neutral_cwd() -> str:
327
+ import tempfile
328
+ return tempfile.gettempdir()
329
+
330
+
309
331
  def installed_version() -> str:
310
332
  """The version pip has ON DISK, read in a FRESH interpreter.
311
333
 
@@ -318,10 +340,10 @@ def installed_version() -> str:
318
340
  """
319
341
  try:
320
342
  r = subprocess.run(
321
- [sys.executable, "-c",
322
- f"from importlib.metadata import version; print(version({_DIST!r}))"],
343
+ _fresh_python_argv(
344
+ f"from importlib.metadata import version; print(version({_DIST!r}))"),
323
345
  capture_output=True, text=True, errors="replace", timeout=60,
324
- check=False,
346
+ check=False, cwd=_neutral_cwd(),
325
347
  )
326
348
  ver = (r.stdout or "").strip().splitlines()
327
349
  if r.returncode == 0 and ver and ver[-1].strip():
@@ -338,10 +360,11 @@ def _verify_install() -> bool:
338
360
  ``agentos-auto.exe`` / loaded package files can't be replaced mid-pip, which
339
361
  can leave ``sdk`` importable but missing submodules (e.g. local_exec)."""
340
362
  try:
363
+ # Same shadowing as `installed_version`: from a checkout, this imported the
364
+ # CHECKOUT's sdk and called a broken install healthy.
341
365
  r = subprocess.run(
342
- [sys.executable, "-c",
343
- "import sdk, sdk.local_exec, sdk.ipc.handlers, sdk.run_auto"],
344
- capture_output=True, timeout=90,
366
+ _fresh_python_argv("import sdk, sdk.local_exec, sdk.ipc.handlers, sdk.run_auto"),
367
+ capture_output=True, timeout=90, cwd=_neutral_cwd(),
345
368
  )
346
369
  return r.returncode == 0
347
370
  except Exception: # noqa: BLE001
@@ -0,0 +1,67 @@
1
+ """`agentos-auto update` run from a checkout must read what pip installed, not the
2
+ checkout.
3
+
4
+ Measured 2026-10-24: run from `~/github/DevOpsBot-SDK`, the update installed
5
+ 1.6.85, then read 1.6.82 from the checkout's leftover `devops_bot_sdk.egg-info`
6
+ (a `python -c` child puts the working directory first on `sys.path`), reported
7
+ "the upgrade did not take" and force-reinstalled through every source.
8
+ """
9
+ from __future__ import annotations
10
+
11
+ import subprocess
12
+ import sys
13
+
14
+ import pytest
15
+
16
+ from sdk import updater
17
+
18
+
19
+ @pytest.fixture
20
+ def stale_checkout(tmp_path, monkeypatch):
21
+ """Two places that both look like the SDK:
22
+
23
+ * the WORKING DIRECTORY — an old checkout: egg-info at 0.0.1 and an `sdk/`
24
+ that cannot be imported;
25
+ * an INSTALLED location on PYTHONPATH (which `-P` still honours) — what pip
26
+ just put down: 9.9.9, importable with the submodules `_verify_install` loads.
27
+ """
28
+ checkout = tmp_path / "checkout"
29
+ egg = checkout / "devops_bot_sdk.egg-info"
30
+ egg.mkdir(parents=True)
31
+ (egg / "PKG-INFO").write_text("Metadata-Version: 2.1\nName: devops-bot-sdk\nVersion: 0.0.1\n")
32
+ (checkout / "sdk").mkdir()
33
+ (checkout / "sdk" / "__init__.py").write_text("raise ImportError('the stale checkout')\n")
34
+
35
+ installed = tmp_path / "site"
36
+ dist = installed / "devops_bot_sdk-9.9.9.dist-info"
37
+ dist.mkdir(parents=True)
38
+ (dist / "METADATA").write_text("Metadata-Version: 2.1\nName: devops-bot-sdk\nVersion: 9.9.9\n")
39
+ for mod in ("sdk/__init__.py", "sdk/local_exec.py", "sdk/run_auto.py",
40
+ "sdk/ipc/__init__.py", "sdk/ipc/handlers.py"):
41
+ (installed / mod).parent.mkdir(parents=True, exist_ok=True)
42
+ (installed / mod).write_text("")
43
+
44
+ monkeypatch.setenv("PYTHONPATH", str(installed))
45
+ monkeypatch.chdir(checkout)
46
+ return checkout
47
+
48
+
49
+ def test_the_shadowing_is_real(stale_checkout):
50
+ """Proof the fixture reproduces the bug: a plain `python -c` reads the checkout."""
51
+ r = subprocess.run(
52
+ [sys.executable, "-c",
53
+ "from importlib.metadata import version; print(version('devops-bot-sdk'))"],
54
+ capture_output=True, text=True)
55
+ assert r.stdout.strip() == "0.0.1"
56
+
57
+
58
+ def test_installed_version_reads_the_install_not_the_checkout(stale_checkout):
59
+ assert updater.installed_version() == "9.9.9"
60
+
61
+
62
+ def test_verify_install_imports_the_install_not_the_checkout(stale_checkout):
63
+ assert updater._verify_install() is True
64
+
65
+
66
+ def test_the_probe_never_puts_the_cwd_on_the_path():
67
+ assert updater._fresh_python_argv("pass")[:3] == [sys.executable, "-P", "-c"]