droidrun 0.5.0.dev1__tar.gz → 0.5.0.dev2__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 (243) hide show
  1. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/PKG-INFO +1 -1
  2. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/features/custom-tools.mdx +1 -1
  3. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/sdk/base-tools.mdx +4 -3
  4. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/codeact/codeact_agent.py +1 -1
  5. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/codeact/tools_agent.py +1 -1
  6. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/droid/droid_agent.py +2 -0
  7. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/manager/manager_agent.py +1 -1
  8. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/manager/stateless_manager_agent.py +1 -1
  9. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/ui/ios_provider.py +4 -3
  10. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/ui/provider.py +8 -3
  11. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/pyproject.toml +1 -1
  12. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/uv.lock +1 -1
  13. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/.dockerignore +0 -0
  14. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/.github/workflows/black.yml +0 -0
  15. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/.github/workflows/bounty.yml +0 -0
  16. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/.github/workflows/claude-code-review.yml +0 -0
  17. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/.github/workflows/claude.yml +0 -0
  18. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/.github/workflows/docker.yml +0 -0
  19. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/.github/workflows/publish.yml +0 -0
  20. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/.gitignore +0 -0
  21. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/.python-version +0 -0
  22. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/CHANGELOG.md +0 -0
  23. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/CONTRIBUTING.md +0 -0
  24. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/Dockerfile +0 -0
  25. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/LICENSE +0 -0
  26. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/MANIFEST.in +0 -0
  27. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/README.md +0 -0
  28. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/SKILL.md +0 -0
  29. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/custom.css +0 -0
  30. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/docs.json +0 -0
  31. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/favicon.png +0 -0
  32. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/logo/dark.svg +0 -0
  33. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/logo/light.svg +0 -0
  34. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/concepts/agent.mdx +0 -0
  35. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/concepts/android-tools.mdx +0 -0
  36. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/concepts/models.mdx +0 -0
  37. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/concepts/portal-app.mdx +0 -0
  38. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/guides/cli.mdx +0 -0
  39. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/guides/gemini.mdx +0 -0
  40. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/guides/ollama.mdx +0 -0
  41. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/guides/openailike.mdx +0 -0
  42. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/guides/overview.mdx +0 -0
  43. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/guides/telemetry.mdx +0 -0
  44. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/images/portal_apk.png +0 -0
  45. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/overview.mdx +0 -0
  46. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v3/quickstart.mdx +0 -0
  47. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/concepts/architecture.mdx +0 -0
  48. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/concepts/events-and-workflows.mdx +0 -0
  49. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/concepts/prompts.mdx +0 -0
  50. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/concepts/scripter-agent.mdx +0 -0
  51. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/concepts/shared-state.mdx +0 -0
  52. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/features/app-cards.mdx +0 -0
  53. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/features/credentials.mdx +0 -0
  54. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/features/custom-tools.mdx +0 -0
  55. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/features/custom-variables.mdx +0 -0
  56. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/features/structured-output.mdx +0 -0
  57. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/features/telemetry.mdx +0 -0
  58. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/features/tracing.mdx +0 -0
  59. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/guides/cli.mdx +0 -0
  60. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/guides/device-setup.mdx +0 -0
  61. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/guides/docker.mdx +0 -0
  62. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/guides/migration-v3-to-v4.mdx +0 -0
  63. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/guides/overview.mdx +0 -0
  64. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/overview.mdx +0 -0
  65. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/quickstart.mdx +0 -0
  66. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/sdk/adb-tools.mdx +0 -0
  67. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/sdk/base-tools.mdx +0 -0
  68. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/sdk/configuration.mdx +0 -0
  69. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/sdk/droid-agent.mdx +0 -0
  70. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/sdk/ios-tools.mdx +0 -0
  71. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v4/sdk/reference.mdx +0 -0
  72. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/concepts/architecture.mdx +0 -0
  73. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/concepts/events-and-workflows.mdx +0 -0
  74. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/concepts/prompts.mdx +0 -0
  75. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/concepts/scripter-agent.mdx +0 -0
  76. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/concepts/shared-state.mdx +0 -0
  77. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/features/app-cards.mdx +0 -0
  78. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/features/credentials.mdx +0 -0
  79. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/features/custom-variables.mdx +0 -0
  80. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/features/structured-output.mdx +0 -0
  81. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/features/telemetry.mdx +0 -0
  82. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/features/tracing.mdx +0 -0
  83. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/guides/cli.mdx +0 -0
  84. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/guides/device-setup.mdx +0 -0
  85. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/guides/docker.mdx +0 -0
  86. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/guides/overview.mdx +0 -0
  87. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/overview.mdx +0 -0
  88. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/quickstart.mdx +0 -0
  89. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/sdk/adb-tools.mdx +0 -0
  90. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/sdk/configuration.mdx +0 -0
  91. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/sdk/droid-agent.mdx +0 -0
  92. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/sdk/ios-tools.mdx +0 -0
  93. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/docs/v5/sdk/reference.mdx +0 -0
  94. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/__init__.py +0 -0
  95. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/__main__.py +0 -0
  96. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/__init__.py +0 -0
  97. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/action_context.py +0 -0
  98. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/action_result.py +0 -0
  99. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/codeact/__init__.py +0 -0
  100. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/codeact/events.py +0 -0
  101. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/codeact/xml_parser.py +0 -0
  102. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/common/__init__.py +0 -0
  103. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/common/constants.py +0 -0
  104. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/common/events.py +0 -0
  105. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/droid/__init__.py +0 -0
  106. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/droid/events.py +0 -0
  107. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/droid/state.py +0 -0
  108. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/executor/__init__.py +0 -0
  109. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/executor/events.py +0 -0
  110. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/executor/executor_agent.py +0 -0
  111. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/executor/prompts.py +0 -0
  112. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/external/__init__.py +0 -0
  113. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/external/autoglm.py +0 -0
  114. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/external/mai_ui.py +0 -0
  115. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/manager/__init__.py +0 -0
  116. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/manager/events.py +0 -0
  117. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/manager/prompts.py +0 -0
  118. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/oneflows/__init__.py +0 -0
  119. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/oneflows/app_starter_workflow.py +0 -0
  120. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/oneflows/structured_output_agent.py +0 -0
  121. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/oneflows/text_manipulator.py +0 -0
  122. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/scripter/__init__.py +0 -0
  123. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/scripter/events.py +0 -0
  124. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/scripter/scripter_agent.py +0 -0
  125. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/tool_registry.py +0 -0
  126. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/trajectory/__init__.py +0 -0
  127. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/trajectory/writer.py +0 -0
  128. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/usage.py +0 -0
  129. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/__init__.py +0 -0
  130. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/actions.py +0 -0
  131. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/chat_utils.py +0 -0
  132. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/code_checker.py +0 -0
  133. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/executer.py +0 -0
  134. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/inference.py +0 -0
  135. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/llm_loader.py +0 -0
  136. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/llm_picker.py +0 -0
  137. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/prompt_resolver.py +0 -0
  138. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/signatures.py +0 -0
  139. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/tracing_setup.py +0 -0
  140. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/agent/utils/trajectory.py +0 -0
  141. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/app_cards/__init__.py +0 -0
  142. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/app_cards/app_card_provider.py +0 -0
  143. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/app_cards/providers/__init__.py +0 -0
  144. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/app_cards/providers/composite_provider.py +0 -0
  145. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/app_cards/providers/local_provider.py +0 -0
  146. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/app_cards/providers/server_provider.py +0 -0
  147. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/__init__.py +0 -0
  148. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/doctor.py +0 -0
  149. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/event_handler.py +0 -0
  150. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/logs.py +0 -0
  151. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/main.py +0 -0
  152. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/__init__.py +0 -0
  153. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/app.py +0 -0
  154. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/commands.py +0 -0
  155. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/css/advanced_tab.tcss +0 -0
  156. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/css/app.tcss +0 -0
  157. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/css/models_tab.tcss +0 -0
  158. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/css/settings_screen.tcss +0 -0
  159. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/settings/__init__.py +0 -0
  160. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/settings/advanced_tab.py +0 -0
  161. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/settings/agent_tab.py +0 -0
  162. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/settings/data.py +0 -0
  163. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/settings/models_tab.py +0 -0
  164. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/settings/section.py +0 -0
  165. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/settings/settings_screen.py +0 -0
  166. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/widgets/__init__.py +0 -0
  167. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/widgets/command_dropdown.py +0 -0
  168. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/widgets/device_picker.py +0 -0
  169. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/widgets/input_bar.py +0 -0
  170. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/widgets/log_view.py +0 -0
  171. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/cli/tui/widgets/status_bar.py +0 -0
  172. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/app_cards/README.md +0 -0
  173. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/app_cards/app_cards.json +0 -0
  174. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/app_cards/gmail.md +0 -0
  175. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/credentials_example.yaml +0 -0
  176. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/codeact/system.jinja2 +0 -0
  177. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/codeact/tools_system.jinja2 +0 -0
  178. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/codeact/tools_user.jinja2 +0 -0
  179. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/codeact/user.jinja2 +0 -0
  180. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/executor/rev1.jinja2 +0 -0
  181. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/executor/system.jinja2 +0 -0
  182. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/manager/rev1.jinja2 +0 -0
  183. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/manager/stateless.jinja2 +0 -0
  184. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/manager/system.jinja2 +0 -0
  185. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/manager/trained.jinja2 +0 -0
  186. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config/prompts/scripter/system.jinja2 +0 -0
  187. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_example.yaml +0 -0
  188. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_manager/__init__.py +0 -0
  189. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_manager/config_manager.py +0 -0
  190. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_manager/env_keys.py +0 -0
  191. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_manager/loader.py +0 -0
  192. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_manager/migrations/__init__.py +0 -0
  193. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_manager/migrations/v002_add_code_exec.py +0 -0
  194. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_manager/path_resolver.py +0 -0
  195. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_manager/prompt_loader.py +0 -0
  196. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/config_manager/safe_execution.py +0 -0
  197. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/credential_manager/__init__.py +0 -0
  198. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/credential_manager/credential_manager.py +0 -0
  199. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/credential_manager/file_credential_manager.py +0 -0
  200. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/log_handlers.py +0 -0
  201. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/macro/__init__.py +0 -0
  202. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/macro/__main__.py +0 -0
  203. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/macro/cli.py +0 -0
  204. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/macro/replay.py +0 -0
  205. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/mcp/__init__.py +0 -0
  206. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/mcp/adapter.py +0 -0
  207. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/mcp/client.py +0 -0
  208. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/mcp/config.py +0 -0
  209. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/portal.py +0 -0
  210. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/telemetry/__init__.py +0 -0
  211. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/telemetry/events.py +0 -0
  212. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/telemetry/langfuse_processor.py +0 -0
  213. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/telemetry/phoenix.py +0 -0
  214. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/telemetry/tracker.py +0 -0
  215. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/__init__.py +0 -0
  216. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/android/__init__.py +0 -0
  217. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/android/portal_client.py +0 -0
  218. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/driver/__init__.py +0 -0
  219. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/driver/android.py +0 -0
  220. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/driver/base.py +0 -0
  221. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/driver/cloud.py +0 -0
  222. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/driver/ios.py +0 -0
  223. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/driver/recording.py +0 -0
  224. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/driver/stealth.py +0 -0
  225. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/filters/__init__.py +0 -0
  226. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/filters/base.py +0 -0
  227. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/filters/concise_filter.py +0 -0
  228. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/filters/detailed_filter.py +0 -0
  229. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/formatters/__init__.py +0 -0
  230. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/formatters/base.py +0 -0
  231. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/formatters/indexed_formatter.py +0 -0
  232. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/helpers/__init__.py +0 -0
  233. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/helpers/coordinate.py +0 -0
  234. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/helpers/element_search.py +0 -0
  235. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/helpers/geometry.py +0 -0
  236. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/ios/__init__.py +0 -0
  237. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/ui/__init__.py +0 -0
  238. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/ui/state.py +0 -0
  239. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/droidrun/tools/ui/stealth_state.py +0 -0
  240. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/gen-docs-sdk-ref.sh +0 -0
  241. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/setup.py +0 -0
  242. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/static/droidrun-dark.png +0 -0
  243. {droidrun-0.5.0.dev1 → droidrun-0.5.0.dev2}/static/droidrun.png +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: droidrun
3
- Version: 0.5.0.dev1
3
+ Version: 0.5.0.dev2
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
@@ -109,7 +109,7 @@ async def screenshot_and_count(*, ctx, **kwargs) -> str:
109
109
  screenshot = await ctx.driver.screenshot()
110
110
 
111
111
  # Get UI state via the state provider
112
- ui_state = await ctx.state_provider.get_state(ctx.driver)
112
+ ui_state = await ctx.state_provider.get_state()
113
113
  element_count = len(ui_state.elements) if ui_state else 0
114
114
 
115
115
  return f"Screenshot taken. Found {element_count} UI elements"
@@ -99,7 +99,8 @@ All DeviceDriver implementations may provide these methods (check `supported` se
99
99
 
100
100
  ```python
101
101
  class StateProvider:
102
- async def get_state(self, driver: DeviceDriver) -> UIState: ...
102
+ def __init__(self, driver: DeviceDriver): ...
103
+ async def get_state(self) -> UIState: ...
103
104
  ```
104
105
 
105
106
  Base class for state providers. Subclass to support different platforms.
@@ -298,8 +299,8 @@ async def my_action(param: str, *, ctx: ActionContext) -> ActionResult:
298
299
  from droidrun.tools import AndroidStateProvider, AndroidDriver
299
300
 
300
301
  # StateProvider handles fetching + parsing + retries
301
- provider = AndroidStateProvider(tree_filter=my_filter, tree_formatter=my_formatter)
302
- ui_state = await provider.get_state(driver)
302
+ provider = AndroidStateProvider(driver, tree_filter=my_filter, tree_formatter=my_formatter)
303
+ ui_state = await provider.get_state()
303
304
 
304
305
  # UIState provides element lookup
305
306
  element = ui_state.get_element(5)
@@ -290,7 +290,7 @@ class CodeActAgent(Workflow):
290
290
 
291
291
  # Get device state
292
292
  try:
293
- ui_state = await self.state_provider.get_state(self.action_ctx.driver)
293
+ ui_state = await self.state_provider.get_state()
294
294
  self.action_ctx.ui = ui_state
295
295
 
296
296
  # Update shared state
@@ -240,7 +240,7 @@ class FastAgent(Workflow):
240
240
 
241
241
  # Get device state
242
242
  try:
243
- ui_state = await self.state_provider.get_state(self.action_ctx.driver)
243
+ ui_state = await self.state_provider.get_state()
244
244
  self.action_ctx.ui = ui_state
245
245
 
246
246
  # Update shared state
@@ -430,12 +430,14 @@ class DroidAgent(Workflow):
430
430
  self.state_provider = self._injected_state_provider
431
431
  elif is_ios:
432
432
  self.state_provider = IOSStateProvider(
433
+ driver,
433
434
  use_normalized=self.config.agent.use_normalized_coordinates,
434
435
  )
435
436
  else:
436
437
  tree_filter = ConciseFilter() if vision_enabled else DetailedFilter()
437
438
  tree_formatter = IndexedFormatter()
438
439
  self.state_provider = AndroidStateProvider(
440
+ driver,
439
441
  tree_filter=tree_filter,
440
442
  tree_formatter=tree_formatter,
441
443
  use_normalized=self.config.agent.use_normalized_coordinates,
@@ -377,7 +377,7 @@ class ManagerAgent(Workflow):
377
377
  logger.debug("💬 Preparing manager context...")
378
378
 
379
379
  # Get and format device state
380
- ui_state = await self.state_provider.get_state(self.action_ctx.driver)
380
+ ui_state = await self.state_provider.get_state()
381
381
  self.action_ctx.ui = ui_state
382
382
 
383
383
  # Update shared state (previous ← current, current ← new)
@@ -176,7 +176,7 @@ class StatelessManagerAgent(Workflow):
176
176
  async def prepare_context(
177
177
  self, ctx: Context, ev: StartEvent
178
178
  ) -> ManagerContextEvent:
179
- ui_state = await self.state_provider.get_state(self.action_ctx.driver)
179
+ ui_state = await self.state_provider.get_state()
180
180
  self.action_ctx.ui = ui_state
181
181
 
182
182
  self.shared_state.previous_formatted_device_state = (
@@ -48,12 +48,13 @@ class IOSStateProvider(StateProvider):
48
48
 
49
49
  supported = {"element_index", "convert_point"}
50
50
 
51
- def __init__(self, use_normalized: bool = False) -> None:
51
+ def __init__(self, driver: DeviceDriver, use_normalized: bool = False) -> None:
52
+ super().__init__(driver)
52
53
  # TODO: normalized coordinates untested on iOS
53
54
  self.use_normalized = use_normalized
54
55
 
55
- async def get_state(self, driver: DeviceDriver) -> UIState:
56
- raw = await driver.get_ui_tree()
56
+ async def get_state(self) -> UIState:
57
+ raw = await self.driver.get_ui_tree()
57
58
  a11y_text = raw.get("a11y_raw", "")
58
59
  phone_state = raw.get("phone_state", {})
59
60
 
@@ -26,7 +26,10 @@ class StateProvider:
26
26
 
27
27
  supported: set[str] = set()
28
28
 
29
- async def get_state(self, driver: "DeviceDriver") -> UIState:
29
+ def __init__(self, driver: "DeviceDriver") -> None:
30
+ self.driver = driver
31
+
32
+ async def get_state(self) -> UIState:
30
33
  raise NotImplementedError
31
34
 
32
35
 
@@ -41,17 +44,19 @@ class AndroidStateProvider(StateProvider):
41
44
 
42
45
  def __init__(
43
46
  self,
47
+ driver: "DeviceDriver",
44
48
  tree_filter: "TreeFilter",
45
49
  tree_formatter: "TreeFormatter",
46
50
  use_normalized: bool = False,
47
51
  stealth: bool = False,
48
52
  ) -> None:
53
+ super().__init__(driver)
49
54
  self.tree_filter = tree_filter
50
55
  self.tree_formatter = tree_formatter
51
56
  self.use_normalized = use_normalized
52
57
  self._ui_cls = StealthUIState if stealth else UIState
53
58
 
54
- async def get_state(self, driver: "DeviceDriver") -> UIState:
59
+ async def get_state(self) -> UIState:
55
60
  max_retries = 3
56
61
  last_error = None
57
62
 
@@ -59,7 +64,7 @@ class AndroidStateProvider(StateProvider):
59
64
  try:
60
65
  logger.debug(f"Getting state (attempt {attempt + 1}/{max_retries})")
61
66
 
62
- combined_data = await driver.get_ui_tree()
67
+ combined_data = await self.driver.get_ui_tree()
63
68
 
64
69
  if "error" in combined_data:
65
70
  raise Exception(
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "droidrun"
3
- version = "0.5.0.dev1"
3
+ version = "0.5.0.dev2"
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.0.dev1"
763
+ version = "0.5.0.dev2"
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
File without changes