droidrun 0.5.1.dev1__tar.gz → 0.5.1.dev3__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 (246) hide show
  1. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/PKG-INFO +1 -1
  2. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/droid/droid_agent.py +10 -1
  3. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/driver/base.py +3 -1
  4. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/driver/cloud.py +13 -2
  5. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/pyproject.toml +1 -1
  6. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/uv.lock +1 -1
  7. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/.dockerignore +0 -0
  8. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/.github/workflows/black.yml +0 -0
  9. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/.github/workflows/bounty.yml +0 -0
  10. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/.github/workflows/claude-code-review.yml +0 -0
  11. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/.github/workflows/claude.yml +0 -0
  12. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/.github/workflows/docker.yml +0 -0
  13. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/.github/workflows/publish.yml +0 -0
  14. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/.gitignore +0 -0
  15. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/.python-version +0 -0
  16. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/CHANGELOG.md +0 -0
  17. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/CONTRIBUTING.md +0 -0
  18. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/Dockerfile +0 -0
  19. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/LICENSE +0 -0
  20. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/MANIFEST.in +0 -0
  21. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/README.md +0 -0
  22. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/SKILL.md +0 -0
  23. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/ favicon.svg +0 -0
  24. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/custom.css +0 -0
  25. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/docs.json +0 -0
  26. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/favicon-dark.png +0 -0
  27. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/favicon.png +0 -0
  28. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/logo/dark.png +0 -0
  29. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/logo/light.png +0 -0
  30. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/concepts/agent.mdx +0 -0
  31. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/concepts/android-tools.mdx +0 -0
  32. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/concepts/models.mdx +0 -0
  33. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/concepts/portal-app.mdx +0 -0
  34. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/guides/cli.mdx +0 -0
  35. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/guides/gemini.mdx +0 -0
  36. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/guides/ollama.mdx +0 -0
  37. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/guides/openailike.mdx +0 -0
  38. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/guides/overview.mdx +0 -0
  39. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/guides/telemetry.mdx +0 -0
  40. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/images/portal_apk.png +0 -0
  41. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/overview.mdx +0 -0
  42. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v3/quickstart.mdx +0 -0
  43. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/concepts/architecture.mdx +0 -0
  44. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/concepts/events-and-workflows.mdx +0 -0
  45. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/concepts/prompts.mdx +0 -0
  46. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/concepts/scripter-agent.mdx +0 -0
  47. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/concepts/shared-state.mdx +0 -0
  48. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/features/app-cards.mdx +0 -0
  49. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/features/credentials.mdx +0 -0
  50. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/features/custom-tools.mdx +0 -0
  51. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/features/custom-variables.mdx +0 -0
  52. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/features/structured-output.mdx +0 -0
  53. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/features/telemetry.mdx +0 -0
  54. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/features/tracing.mdx +0 -0
  55. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/guides/cli.mdx +0 -0
  56. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/guides/device-setup.mdx +0 -0
  57. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/guides/docker.mdx +0 -0
  58. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/guides/migration-v3-to-v4.mdx +0 -0
  59. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/guides/overview.mdx +0 -0
  60. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/overview.mdx +0 -0
  61. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/quickstart.mdx +0 -0
  62. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/sdk/adb-tools.mdx +0 -0
  63. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/sdk/base-tools.mdx +0 -0
  64. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/sdk/configuration.mdx +0 -0
  65. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/sdk/droid-agent.mdx +0 -0
  66. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/sdk/ios-tools.mdx +0 -0
  67. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v4/sdk/reference.mdx +0 -0
  68. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/concepts/architecture.mdx +0 -0
  69. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/concepts/events-and-workflows.mdx +0 -0
  70. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/concepts/prompts.mdx +0 -0
  71. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/concepts/scripter-agent.mdx +0 -0
  72. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/concepts/shared-state.mdx +0 -0
  73. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/features/app-cards.mdx +0 -0
  74. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/features/credentials.mdx +0 -0
  75. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/features/custom-tools.mdx +0 -0
  76. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/features/custom-variables.mdx +0 -0
  77. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/features/structured-output.mdx +0 -0
  78. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/features/telemetry.mdx +0 -0
  79. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/features/tracing.mdx +0 -0
  80. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/guides/cli.mdx +0 -0
  81. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/guides/device-setup.mdx +0 -0
  82. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/guides/docker.mdx +0 -0
  83. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/guides/overview.mdx +0 -0
  84. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/overview.mdx +0 -0
  85. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/quickstart.mdx +0 -0
  86. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/sdk/adb-tools.mdx +0 -0
  87. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/sdk/base-tools.mdx +0 -0
  88. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/sdk/configuration.mdx +0 -0
  89. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/sdk/droid-agent.mdx +0 -0
  90. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/sdk/ios-tools.mdx +0 -0
  91. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/docs/v5/sdk/reference.mdx +0 -0
  92. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/__init__.py +0 -0
  93. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/__main__.py +0 -0
  94. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/__init__.py +0 -0
  95. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/action_context.py +0 -0
  96. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/action_result.py +0 -0
  97. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/codeact/__init__.py +0 -0
  98. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/codeact/codeact_agent.py +0 -0
  99. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/codeact/events.py +0 -0
  100. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/codeact/tools_agent.py +0 -0
  101. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/codeact/xml_parser.py +0 -0
  102. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/common/__init__.py +0 -0
  103. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/common/constants.py +0 -0
  104. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/common/events.py +0 -0
  105. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/droid/__init__.py +0 -0
  106. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/droid/events.py +0 -0
  107. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/droid/state.py +0 -0
  108. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/executor/__init__.py +0 -0
  109. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/executor/events.py +0 -0
  110. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/executor/executor_agent.py +0 -0
  111. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/executor/prompts.py +0 -0
  112. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/external/__init__.py +0 -0
  113. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/external/autoglm.py +0 -0
  114. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/external/mai_ui.py +0 -0
  115. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/manager/__init__.py +0 -0
  116. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/manager/events.py +0 -0
  117. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/manager/manager_agent.py +24 -24
  118. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/manager/prompts.py +0 -0
  119. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/manager/stateless_manager_agent.py +18 -18
  120. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/oneflows/__init__.py +0 -0
  121. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/oneflows/app_starter_workflow.py +0 -0
  122. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/oneflows/structured_output_agent.py +0 -0
  123. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/oneflows/text_manipulator.py +0 -0
  124. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/scripter/__init__.py +0 -0
  125. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/scripter/events.py +0 -0
  126. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/scripter/scripter_agent.py +0 -0
  127. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/tool_registry.py +0 -0
  128. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/trajectory/__init__.py +0 -0
  129. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/trajectory/writer.py +0 -0
  130. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/usage.py +0 -0
  131. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/__init__.py +0 -0
  132. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/actions.py +0 -0
  133. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/chat_utils.py +0 -0
  134. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/code_checker.py +0 -0
  135. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/executer.py +0 -0
  136. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/inference.py +0 -0
  137. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/llm_loader.py +0 -0
  138. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/llm_picker.py +0 -0
  139. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/prompt_resolver.py +0 -0
  140. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/signatures.py +0 -0
  141. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/tracing_setup.py +0 -0
  142. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/agent/utils/trajectory.py +0 -0
  143. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/app_cards/__init__.py +0 -0
  144. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/app_cards/app_card_provider.py +0 -0
  145. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/app_cards/providers/__init__.py +0 -0
  146. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/app_cards/providers/composite_provider.py +0 -0
  147. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/app_cards/providers/local_provider.py +0 -0
  148. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/app_cards/providers/server_provider.py +0 -0
  149. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/__init__.py +0 -0
  150. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/doctor.py +0 -0
  151. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/event_handler.py +0 -0
  152. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/logs.py +0 -0
  153. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/main.py +0 -0
  154. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/__init__.py +0 -0
  155. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/app.py +0 -0
  156. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/commands.py +0 -0
  157. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/css/advanced_tab.tcss +0 -0
  158. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/css/app.tcss +0 -0
  159. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/css/models_tab.tcss +0 -0
  160. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/css/settings_screen.tcss +0 -0
  161. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/settings/__init__.py +0 -0
  162. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/settings/advanced_tab.py +0 -0
  163. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/settings/agent_tab.py +0 -0
  164. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/settings/data.py +0 -0
  165. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/settings/models_tab.py +0 -0
  166. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/settings/section.py +0 -0
  167. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/settings/settings_screen.py +0 -0
  168. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/widgets/__init__.py +0 -0
  169. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/widgets/command_dropdown.py +0 -0
  170. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/widgets/device_picker.py +0 -0
  171. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/widgets/input_bar.py +0 -0
  172. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/widgets/log_view.py +0 -0
  173. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/cli/tui/widgets/status_bar.py +0 -0
  174. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/app_cards/README.md +0 -0
  175. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/app_cards/app_cards.json +0 -0
  176. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/app_cards/gmail.md +0 -0
  177. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/credentials_example.yaml +0 -0
  178. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/codeact/system.jinja2 +0 -0
  179. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/codeact/tools_system.jinja2 +0 -0
  180. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/codeact/tools_user.jinja2 +0 -0
  181. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/codeact/user.jinja2 +0 -0
  182. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/executor/rev1.jinja2 +0 -0
  183. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/executor/system.jinja2 +0 -0
  184. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/manager/rev1.jinja2 +0 -0
  185. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/manager/stateless.jinja2 +0 -0
  186. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/manager/system.jinja2 +0 -0
  187. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/manager/trained.jinja2 +0 -0
  188. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config/prompts/scripter/system.jinja2 +0 -0
  189. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_example.yaml +0 -0
  190. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/__init__.py +0 -0
  191. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/config_manager.py +0 -0
  192. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/env_keys.py +0 -0
  193. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/loader.py +0 -0
  194. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/migrations/__init__.py +0 -0
  195. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/migrations/v002_add_code_exec.py +0 -0
  196. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/migrations/v003_add_auto_setup.py +0 -0
  197. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/path_resolver.py +0 -0
  198. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/prompt_loader.py +0 -0
  199. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/config_manager/safe_execution.py +0 -0
  200. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/credential_manager/__init__.py +0 -0
  201. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/credential_manager/credential_manager.py +0 -0
  202. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/credential_manager/file_credential_manager.py +0 -0
  203. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/log_handlers.py +0 -0
  204. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/macro/__init__.py +0 -0
  205. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/macro/__main__.py +0 -0
  206. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/macro/cli.py +0 -0
  207. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/macro/replay.py +0 -0
  208. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/mcp/__init__.py +0 -0
  209. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/mcp/adapter.py +0 -0
  210. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/mcp/client.py +0 -0
  211. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/mcp/config.py +0 -0
  212. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/portal.py +0 -0
  213. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/telemetry/__init__.py +0 -0
  214. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/telemetry/events.py +0 -0
  215. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/telemetry/langfuse_processor.py +0 -0
  216. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/telemetry/phoenix.py +0 -0
  217. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/telemetry/tracker.py +0 -0
  218. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/__init__.py +0 -0
  219. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/android/__init__.py +0 -0
  220. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/android/portal_client.py +0 -0
  221. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/driver/__init__.py +0 -0
  222. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/driver/android.py +0 -0
  223. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/driver/ios.py +0 -0
  224. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/driver/recording.py +0 -0
  225. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/driver/stealth.py +0 -0
  226. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/filters/__init__.py +0 -0
  227. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/filters/base.py +0 -0
  228. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/filters/concise_filter.py +0 -0
  229. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/filters/detailed_filter.py +0 -0
  230. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/formatters/__init__.py +0 -0
  231. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/formatters/base.py +0 -0
  232. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/formatters/indexed_formatter.py +0 -0
  233. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/helpers/__init__.py +0 -0
  234. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/helpers/coordinate.py +0 -0
  235. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/helpers/element_search.py +0 -0
  236. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/helpers/geometry.py +0 -0
  237. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/ios/__init__.py +0 -0
  238. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/ui/__init__.py +0 -0
  239. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/ui/ios_provider.py +0 -0
  240. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/ui/provider.py +0 -0
  241. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/ui/state.py +0 -0
  242. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/droidrun/tools/ui/stealth_state.py +0 -0
  243. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/gen-docs-sdk-ref.sh +0 -0
  244. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/setup.py +0 -0
  245. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/static/droidrun-dark.png +0 -0
  246. {droidrun-0.5.1.dev1 → droidrun-0.5.1.dev3}/static/droidrun.png +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: droidrun
3
- Version: 0.5.1.dev1
3
+ Version: 0.5.1.dev3
4
4
  Summary: A framework for controlling Android devices through LLM agents
5
5
  Project-URL: Homepage, https://github.com/droidrun/droidrun
6
6
  Project-URL: Bug Tracker, https://github.com/droidrun/droidrun/issues
@@ -1085,7 +1085,7 @@ class DroidAgent(Workflow):
1085
1085
  if self.config.logging.debug:
1086
1086
  logger.error(traceback.format_exc())
1087
1087
 
1088
- # Capture final screenshot (independent of trajectory persistence)
1088
+ # Capture final screenshot and UI state (independent of trajectory persistence)
1089
1089
  vision_any = (
1090
1090
  self.config.agent.manager.vision
1091
1091
  or self.config.agent.executor.vision
@@ -1111,6 +1111,15 @@ class DroidAgent(Workflow):
1111
1111
  except Exception as e:
1112
1112
  logger.warning(f"Failed to capture final screenshot: {e}")
1113
1113
 
1114
+ try:
1115
+ ui_state = await self.state_provider.get_state()
1116
+ ctx.write_event_to_stream(
1117
+ RecordUIStateEvent(ui_state=ui_state.elements)
1118
+ )
1119
+ logger.debug("📋 Final UI state captured")
1120
+ except Exception as e:
1121
+ logger.warning(f"Failed to capture final UI state: {e}")
1122
+
1114
1123
  # Save trajectory to disk
1115
1124
  if self.config.logging.save_trajectory != "none":
1116
1125
  # Populate macro data from RecordingDriver log
@@ -52,7 +52,9 @@ class DeviceDriver:
52
52
  """Swipe from (x1, y1) to (x2, y2)."""
53
53
  raise NotImplementedError
54
54
 
55
- async def input_text(self, text: str, clear: bool = False) -> bool:
55
+ async def input_text(
56
+ self, text: str, clear: bool = False, stealth: bool = False, wpm: int = 0,
57
+ ) -> bool:
56
58
  """Type *text* into the currently focused field.
57
59
 
58
60
  Returns ``True`` on success, ``False`` on failure.
@@ -115,10 +115,21 @@ class CloudDriver(DeviceDriver):
115
115
  )
116
116
  )
117
117
 
118
- async def input_text(self, text: str, clear: bool = False) -> bool:
118
+ async def input_text(
119
+ self, text: str, clear: bool = False, stealth: bool = False, wpm: int = 0,
120
+ ) -> bool:
121
+ extra_body: dict = {}
122
+ if stealth:
123
+ extra_body["stealth"] = True
124
+ if wpm:
125
+ extra_body["wpm"] = wpm
119
126
  await self._call(
120
127
  self._client.devices.keyboard.write(
121
- self.device_id, text=text, clear=clear, **self._display_kw
128
+ self.device_id,
129
+ text=text,
130
+ clear=clear,
131
+ extra_body=extra_body or None,
132
+ **self._display_kw,
122
133
  )
123
134
  )
124
135
  return True
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "droidrun"
3
- version = "0.5.1.dev1"
3
+ version = "0.5.1.dev3"
4
4
  description = "A framework for controlling Android devices through LLM agents"
5
5
  authors = [{ name = "Niels Schmidt", email = "niels.schmidt@droidrun.ai" }]
6
6
  dependencies = [
@@ -760,7 +760,7 @@ wheels = [
760
760
 
761
761
  [[package]]
762
762
  name = "droidrun"
763
- version = "0.5.1.dev1"
763
+ version = "0.5.1.dev3"
764
764
  source = { editable = "." }
765
765
  dependencies = [
766
766
  { name = "aiofiles" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -387,6 +387,30 @@ class ManagerAgent(Workflow):
387
387
  """Gather context and prepare manager prompt."""
388
388
  logger.debug("💬 Preparing manager context...")
389
389
 
390
+ # Capture screenshot if needed
391
+ screenshot = None
392
+ if self.vision or self._stream_screenshots or self.save_trajectory != "none":
393
+ try:
394
+ screenshot = await self.action_ctx.driver.screenshot()
395
+
396
+ if screenshot:
397
+ ctx.write_event_to_stream(ScreenshotEvent(screenshot=screenshot))
398
+ parent_span = trace.get_current_span()
399
+ record_langfuse_screenshot(
400
+ screenshot,
401
+ parent_span=parent_span,
402
+ screenshots_enabled=bool(
403
+ self.tracing_config
404
+ and self.tracing_config.langfuse_screenshots
405
+ ),
406
+ vision_enabled=self.vision,
407
+ )
408
+ logger.debug("📸 Screenshot captured for Manager")
409
+ except DeviceDisconnectedError:
410
+ raise
411
+ except Exception as e:
412
+ logger.warning(f"Failed to capture screenshot: {e}")
413
+
390
414
  # Get and format device state
391
415
  ui_state = await self.state_provider.get_state()
392
416
  self.action_ctx.ui = ui_state
@@ -422,30 +446,6 @@ class ManagerAgent(Workflow):
422
446
  else:
423
447
  self.shared_state.app_card = ""
424
448
 
425
- # Capture screenshot if needed
426
- screenshot = None
427
- if self.vision or self._stream_screenshots or self.save_trajectory != "none":
428
- try:
429
- screenshot = await self.action_ctx.driver.screenshot()
430
-
431
- if screenshot:
432
- ctx.write_event_to_stream(ScreenshotEvent(screenshot=screenshot))
433
- parent_span = trace.get_current_span()
434
- record_langfuse_screenshot(
435
- screenshot,
436
- parent_span=parent_span,
437
- screenshots_enabled=bool(
438
- self.tracing_config
439
- and self.tracing_config.langfuse_screenshots
440
- ),
441
- vision_enabled=self.vision,
442
- )
443
- logger.debug("📸 Screenshot captured for Manager")
444
- except DeviceDisconnectedError:
445
- raise
446
- except Exception as e:
447
- logger.warning(f"Failed to capture screenshot: {e}")
448
-
449
449
  # Detect text manipulation mode
450
450
  focused_text_clean = self.shared_state.focused_text.replace("'", "").strip()
451
451
  has_text_to_modify = focused_text_clean != ""
@@ -175,24 +175,6 @@ class StatelessManagerAgent(Workflow):
175
175
  async def prepare_context(
176
176
  self, ctx: Context, ev: StartEvent
177
177
  ) -> ManagerContextEvent:
178
- ui_state = await self.state_provider.get_state()
179
- self.action_ctx.ui = ui_state
180
-
181
- self.shared_state.previous_formatted_device_state = (
182
- self.shared_state.formatted_device_state
183
- )
184
- self.shared_state.formatted_device_state = ui_state.formatted_text
185
- self.shared_state.focused_text = ui_state.focused_text
186
- self.shared_state.a11y_tree = ui_state.elements
187
- self.shared_state.phone_state = ui_state.phone_state
188
-
189
- self.shared_state.update_current_app(
190
- package_name=ui_state.phone_state.get("packageName", "Unknown"),
191
- activity_name=ui_state.phone_state.get("currentApp", "Unknown"),
192
- )
193
-
194
- ctx.write_event_to_stream(RecordUIStateEvent(ui_state=ui_state.elements))
195
-
196
178
  screenshot = None
197
179
  if self.vision or self.save_trajectory != "none":
198
180
  try:
@@ -215,6 +197,24 @@ class StatelessManagerAgent(Workflow):
215
197
  except Exception as e:
216
198
  logger.warning(f"Failed to capture screenshot: {e}")
217
199
 
200
+ ui_state = await self.state_provider.get_state()
201
+ self.action_ctx.ui = ui_state
202
+
203
+ self.shared_state.previous_formatted_device_state = (
204
+ self.shared_state.formatted_device_state
205
+ )
206
+ self.shared_state.formatted_device_state = ui_state.formatted_text
207
+ self.shared_state.focused_text = ui_state.focused_text
208
+ self.shared_state.a11y_tree = ui_state.elements
209
+ self.shared_state.phone_state = ui_state.phone_state
210
+
211
+ self.shared_state.update_current_app(
212
+ package_name=ui_state.phone_state.get("packageName", "Unknown"),
213
+ activity_name=ui_state.phone_state.get("currentApp", "Unknown"),
214
+ )
215
+
216
+ ctx.write_event_to_stream(RecordUIStateEvent(ui_state=ui_state.elements))
217
+
218
218
  focused_text_clean = self.shared_state.focused_text.replace("'", "").strip()
219
219
  has_text_to_modify = focused_text_clean != ""
220
220