devops-bot-sdk 1.6.52__tar.gz → 1.6.53__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 (223) hide show
  1. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/PKG-INFO +1 -1
  2. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/devops_bot_sdk.egg-info/PKG-INFO +1 -1
  3. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/__init__.py +1 -1
  4. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/collectors/macos_eslogger.py +11 -0
  5. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_activity_macos.py +31 -0
  6. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/README.md +0 -0
  7. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/devops_bot_sdk.egg-info/SOURCES.txt +0 -0
  8. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/devops_bot_sdk.egg-info/dependency_links.txt +0 -0
  9. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/devops_bot_sdk.egg-info/entry_points.txt +0 -0
  10. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/devops_bot_sdk.egg-info/requires.txt +0 -0
  11. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/devops_bot_sdk.egg-info/top_level.txt +0 -0
  12. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/pyproject.toml +0 -0
  13. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/__init__.py +0 -0
  14. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/classifier.py +0 -0
  15. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/collectors/__init__.py +0 -0
  16. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/collectors/common.py +0 -0
  17. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/collectors/linux_auditd.py +0 -0
  18. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/collectors/windows_eventlog.py +0 -0
  19. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/models.py +0 -0
  20. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/os_setup.py +0 -0
  21. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/recorder.py +0 -0
  22. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/redact.py +0 -0
  23. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/settings.py +0 -0
  24. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/shipper.py +0 -0
  25. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/activity/spool.py +0 -0
  26. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agentd.py +0 -0
  27. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/__init__.py +0 -0
  28. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/activity.py +0 -0
  29. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/builder.py +0 -0
  30. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/chat.py +0 -0
  31. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/connectors.py +0 -0
  32. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/engines/__init__.py +0 -0
  33. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/engines/claude_code.py +0 -0
  34. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/engines/http.py +0 -0
  35. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/engines/mcp.py +0 -0
  36. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/engines/n8n.py +0 -0
  37. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/engines/shell.py +0 -0
  38. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/integrations.py +0 -0
  39. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/inventory.py +0 -0
  40. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/library/__init__.py +0 -0
  41. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/manifest.py +0 -0
  42. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/prompt_studio.py +0 -0
  43. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/prompt_template.py +0 -0
  44. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/prompt_vars.py +0 -0
  45. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/run_log.py +0 -0
  46. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/schedules.py +0 -0
  47. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/secrets.py +0 -0
  48. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/ticket_run.py +0 -0
  49. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/usage.py +0 -0
  50. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/agents/varstore.py +0 -0
  51. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/browser_profile.py +0 -0
  52. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/cli.py +0 -0
  53. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/client.py +0 -0
  54. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/collectors/__init__.py +0 -0
  55. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/collectors/files.py +0 -0
  56. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/collectors/process.py +0 -0
  57. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/collectors/screenshot.py +0 -0
  58. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/config.py +0 -0
  59. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/crucial.py +0 -0
  60. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/departments.py +0 -0
  61. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/design_verify/__init__.py +0 -0
  62. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/design_verify/assets.py +0 -0
  63. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/design_verify/bootstrap.py +0 -0
  64. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/design_verify/browser.py +0 -0
  65. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/design_verify/compare.py +0 -0
  66. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/design_verify/loop.py +0 -0
  67. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/estimator.py +0 -0
  68. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/exceptions.py +0 -0
  69. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/firewall.py +0 -0
  70. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/formats.py +0 -0
  71. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/git_ops.py +0 -0
  72. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/github_fetch.py +0 -0
  73. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/github_ingest.py +0 -0
  74. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/graph_recon.py +0 -0
  75. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/graphify.py +0 -0
  76. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/hooks/__init__.py +0 -0
  77. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/hooks/crucial_guard.py +0 -0
  78. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/intake.py +0 -0
  79. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ipc/__init__.py +0 -0
  80. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ipc/electron_bridge.py +0 -0
  81. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ipc/handlers.py +0 -0
  82. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/journal.py +0 -0
  83. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/local_exec.py +0 -0
  84. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/memory_guard.py +0 -0
  85. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/models/__init__.py +0 -0
  86. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/models/envelope.py +0 -0
  87. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/models/requests.py +0 -0
  88. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/models/responses.py +0 -0
  89. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/models/snapshots.py +0 -0
  90. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/phase_timer.py +0 -0
  91. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/plan_run.py +0 -0
  92. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/platform_compat.py +0 -0
  93. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/prd_progress.py +0 -0
  94. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/proof_readers.py +0 -0
  95. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/providers.py +0 -0
  96. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/py.typed +0 -0
  97. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/resume.py +0 -0
  98. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/router.py +0 -0
  99. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/run_auto.py +0 -0
  100. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/scheduler.py +0 -0
  101. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/self_report.py +0 -0
  102. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/self_report_local.py +0 -0
  103. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/sse.py +0 -0
  104. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/swagger.py +0 -0
  105. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/task_file.py +0 -0
  106. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/task_types.py +0 -0
  107. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/test.py +0 -0
  108. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/test_pipeline.py +0 -0
  109. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ticket_fields.py +0 -0
  110. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/tiers/__init__.py +0 -0
  111. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/tiers/mini_agent.py +0 -0
  112. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/__init__.py +0 -0
  113. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/api.py +0 -0
  114. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/dashboard.py +0 -0
  115. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/health.py +0 -0
  116. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/ip_allowlist.py +0 -0
  117. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/jobs.py +0 -0
  118. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/models.py +0 -0
  119. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/runner.py +0 -0
  120. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/security.py +0 -0
  121. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/server.py +0 -0
  122. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/service.py +0 -0
  123. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/session.py +0 -0
  124. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/setup_manager.py +0 -0
  125. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/agents.html +0 -0
  126. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/app.js +0 -0
  127. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/chat.html +0 -0
  128. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/custom-agents.html +0 -0
  129. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/default-agents.html +0 -0
  130. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/index.html +0 -0
  131. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/report.html +0 -0
  132. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/runs.html +0 -0
  133. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/schedules.html +0 -0
  134. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/setup.html +0 -0
  135. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/styles.css +0 -0
  136. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/static/tickets.html +0 -0
  137. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/ui/swagger.py +0 -0
  138. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/updater.py +0 -0
  139. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/url_access.py +0 -0
  140. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/vps_health.py +0 -0
  141. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/sdk/write_hook.py +0 -0
  142. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/setup.cfg +0 -0
  143. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_activity_collectors.py +0 -0
  144. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_activity_core.py +0 -0
  145. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_activity_os_setup.py +0 -0
  146. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_activity_pipeline.py +0 -0
  147. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agent_activity.py +0 -0
  148. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agent_activity_tracking.py +0 -0
  149. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agent_chat_features.py +0 -0
  150. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agent_listing.py +0 -0
  151. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agent_prompt_async.py +0 -0
  152. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agent_prompt_models.py +0 -0
  153. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agent_run_ticket.py +0 -0
  154. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agent_schedules.py +0 -0
  155. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agent_workspace_settings.py +0 -0
  156. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_agents_connectors_builder.py +0 -0
  157. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_allowed_tools_config.py +0 -0
  158. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_auto_agent_dispatch.py +0 -0
  159. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_browser_profile.py +0 -0
  160. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_cheap_tier.py +0 -0
  161. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_client_jira_projects.py +0 -0
  162. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_config_token_diagnostics.py +0 -0
  163. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_configure_token_owner.py +0 -0
  164. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_console_encoding.py +0 -0
  165. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_crash_recovery.py +0 -0
  166. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_departments.py +0 -0
  167. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_done_transition.py +0 -0
  168. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_epic_decompose_run.py +0 -0
  169. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_epic_inherited_agent_id.py +0 -0
  170. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_epic_session_isolation.py +0 -0
  171. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_estimator.py +0 -0
  172. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_firewall_open_on_update.py +0 -0
  173. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_formats.py +0 -0
  174. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_git_action.py +0 -0
  175. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_github_fetch.py +0 -0
  176. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_github_ingest.py +0 -0
  177. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_graph_recon.py +0 -0
  178. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_graphify_build.py +0 -0
  179. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_graphify_hook_install.py +0 -0
  180. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_health.py +0 -0
  181. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_intake_job_outcome.py +0 -0
  182. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_intake_plan_review.py +0 -0
  183. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_journal.py +0 -0
  184. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_local_exec_provider.py +0 -0
  185. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_mcp_route_contract.py +0 -0
  186. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_memory_guard.py +0 -0
  187. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_phase_timer.py +0 -0
  188. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_plan_new_command.py +0 -0
  189. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_plan_run_activity.py +0 -0
  190. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_pr_identity.py +0 -0
  191. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_prd_artifact.py +0 -0
  192. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_project_path_resolution.py +0 -0
  193. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_proof_readers.py +0 -0
  194. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_providers.py +0 -0
  195. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_recon_session_isolation.py +0 -0
  196. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_resume.py +0 -0
  197. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_router.py +0 -0
  198. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_run_auto_agent_only.py +0 -0
  199. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_run_outputs.py +0 -0
  200. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_run_verdict_is_honest.py +0 -0
  201. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_schedule_api.py +0 -0
  202. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_schedule_outputs_and_plans.py +0 -0
  203. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_scheduler.py +0 -0
  204. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_self_report.py +0 -0
  205. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_service_token_warning.py +0 -0
  206. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_stale_panel_restart.py +0 -0
  207. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_swagger_command.py +0 -0
  208. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_task_file_and_plan_run.py +0 -0
  209. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_task_file_format_doc.py +0 -0
  210. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_ticket_fields.py +0 -0
  211. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_ticket_run_resolve_by_id.py +0 -0
  212. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_ticket_speed_fixes.py +0 -0
  213. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_tier_flag_parity.py +0 -0
  214. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_ui_gate.py +0 -0
  215. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_ui_lifespan.py +0 -0
  216. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_update_timer.py +0 -0
  217. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_updater_extras.py +0 -0
  218. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_updater_pep668.py +0 -0
  219. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_updater_reports_the_truth.py +0 -0
  220. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_url_access.py +0 -0
  221. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_vps_health.py +0 -0
  222. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/tests/test_windows_loop_identity.py +0 -0
  223. {devops_bot_sdk-1.6.52 → devops_bot_sdk-1.6.53}/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.52
3
+ Version: 1.6.53
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.52
3
+ Version: 1.6.53
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
@@ -34,7 +34,7 @@ Rules:
34
34
  - All data egress through submit_webhook only
35
35
  """
36
36
 
37
- __version__ = "1.6.52" # SINGLE SOURCE OF TRUTH — bump on every change; pyproject,
37
+ __version__ = "1.6.53" # 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
@@ -167,6 +167,17 @@ class EsloggerParser:
167
167
  def flush(self) -> None:
168
168
  """Nothing is buffered — every eslogger line is a whole event."""
169
169
 
170
+ def flush_older_than(self, cutoff: float) -> None:
171
+ """No-op, for the same reason as :meth:`flush`: nothing is held.
172
+
173
+ :class:`EsloggerCollector` reuses :class:`AuditdCollector`'s tail loop, which
174
+ calls this on the parser every poll to close auditd events whose trailing
175
+ records never arrived. An eslogger line is already a whole event, so there is
176
+ nothing to time-flush — but the method MUST exist, or the shared loop raises
177
+ ``AttributeError`` on its first idle poll and the whole collector thread dies
178
+ before a single event is recorded (the tail starts at EOF, so the very first
179
+ poll reads nothing and goes straight here)."""
180
+
170
181
  # ── sessions ─────────────────────────────────────────────────────────────
171
182
 
172
183
  def _asid_session(self, asid: int, ts: float) -> str:
@@ -158,6 +158,37 @@ class TestParser:
158
158
  c = M.EsloggerCollector(str(log), parser=_parser(), state_file=tmp_path / "st.json")
159
159
  assert c._state == tmp_path / "st.json"
160
160
 
161
+ def test_tail_loop_records_events_and_does_not_crash_on_an_idle_poll(
162
+ self, tmp_path, monkeypatch
163
+ ):
164
+ """Regression: EsloggerCollector reuses AuditdCollector's tail loop, which calls
165
+ ``parser.flush_older_than`` on EVERY poll. EsloggerParser was missing it, so the
166
+ collector thread died with AttributeError on its first (idle) poll — the tail
167
+ starts at EOF, so the first poll reads nothing and goes straight to that call —
168
+ and not a single event was ever recorded (SDK v1.6.52 on the Mac VPS)."""
169
+ from sdk.activity.collectors import linux_auditd as L
170
+
171
+ log = tmp_path / "es.ndjson"
172
+ log.write_text(_exec(1, ["old"], tty="/dev/ttys001") + "\n") # pre-install: not backfilled
173
+ collector = M.EsloggerCollector(
174
+ str(log), parser=_parser(), state_file=tmp_path / "st.json", poll_s=0,
175
+ )
176
+ calls = {"n": 0}
177
+
178
+ def fake_sleep(_):
179
+ calls["n"] += 1
180
+ if calls["n"] == 1: # new activity lands after the first, empty poll
181
+ with log.open("a") as fh:
182
+ fh.write(_exec(2, ["whoami"], tty="/dev/ttys001") + "\n")
183
+ else:
184
+ collector.stop()
185
+
186
+ monkeypatch.setattr(L.time, "sleep", fake_sleep)
187
+ collector.run() # before the fix: raises AttributeError out of the loop
188
+
189
+ _, events = _queued()
190
+ assert [e["command"] for e in events] == ["whoami"]
191
+
161
192
 
162
193
  # ─────────────────────────────── setup ───────────────────────────────
163
194