droidrun 0.5.0.dev2__tar.gz → 0.5.0.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 (243) hide show
  1. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/PKG-INFO +1 -1
  2. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/tools_agent.py +1 -1
  3. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/common/events.py +9 -0
  4. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/executor/executor_agent.py +3 -1
  5. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/tool_registry.py +48 -9
  6. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/pyproject.toml +1 -1
  7. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/uv.lock +1 -1
  8. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.dockerignore +0 -0
  9. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/black.yml +0 -0
  10. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/bounty.yml +0 -0
  11. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/claude-code-review.yml +0 -0
  12. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/claude.yml +0 -0
  13. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/docker.yml +0 -0
  14. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/publish.yml +0 -0
  15. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.gitignore +0 -0
  16. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.python-version +0 -0
  17. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/CHANGELOG.md +0 -0
  18. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/CONTRIBUTING.md +0 -0
  19. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/Dockerfile +0 -0
  20. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/LICENSE +0 -0
  21. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/MANIFEST.in +0 -0
  22. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/README.md +0 -0
  23. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/SKILL.md +0 -0
  24. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/custom.css +0 -0
  25. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/docs.json +0 -0
  26. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/favicon.png +0 -0
  27. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/logo/dark.svg +0 -0
  28. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/logo/light.svg +0 -0
  29. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/concepts/agent.mdx +0 -0
  30. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/concepts/android-tools.mdx +0 -0
  31. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/concepts/models.mdx +0 -0
  32. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/concepts/portal-app.mdx +0 -0
  33. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/cli.mdx +0 -0
  34. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/gemini.mdx +0 -0
  35. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/ollama.mdx +0 -0
  36. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/openailike.mdx +0 -0
  37. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/overview.mdx +0 -0
  38. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/telemetry.mdx +0 -0
  39. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/images/portal_apk.png +0 -0
  40. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/overview.mdx +0 -0
  41. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/quickstart.mdx +0 -0
  42. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/architecture.mdx +0 -0
  43. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/events-and-workflows.mdx +0 -0
  44. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/prompts.mdx +0 -0
  45. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/scripter-agent.mdx +0 -0
  46. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/shared-state.mdx +0 -0
  47. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/app-cards.mdx +0 -0
  48. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/credentials.mdx +0 -0
  49. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/custom-tools.mdx +0 -0
  50. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/custom-variables.mdx +0 -0
  51. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/structured-output.mdx +0 -0
  52. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/telemetry.mdx +0 -0
  53. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/tracing.mdx +0 -0
  54. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/cli.mdx +0 -0
  55. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/device-setup.mdx +0 -0
  56. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/docker.mdx +0 -0
  57. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/migration-v3-to-v4.mdx +0 -0
  58. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/overview.mdx +0 -0
  59. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/overview.mdx +0 -0
  60. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/quickstart.mdx +0 -0
  61. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/adb-tools.mdx +0 -0
  62. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/base-tools.mdx +0 -0
  63. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/configuration.mdx +0 -0
  64. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/droid-agent.mdx +0 -0
  65. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/ios-tools.mdx +0 -0
  66. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/reference.mdx +0 -0
  67. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/architecture.mdx +0 -0
  68. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/events-and-workflows.mdx +0 -0
  69. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/prompts.mdx +0 -0
  70. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/scripter-agent.mdx +0 -0
  71. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/shared-state.mdx +0 -0
  72. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/app-cards.mdx +0 -0
  73. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/credentials.mdx +0 -0
  74. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/custom-tools.mdx +0 -0
  75. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/custom-variables.mdx +0 -0
  76. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/structured-output.mdx +0 -0
  77. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/telemetry.mdx +0 -0
  78. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/tracing.mdx +0 -0
  79. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/guides/cli.mdx +0 -0
  80. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/guides/device-setup.mdx +0 -0
  81. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/guides/docker.mdx +0 -0
  82. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/guides/overview.mdx +0 -0
  83. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/overview.mdx +0 -0
  84. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/quickstart.mdx +0 -0
  85. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/adb-tools.mdx +0 -0
  86. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/base-tools.mdx +0 -0
  87. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/configuration.mdx +0 -0
  88. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/droid-agent.mdx +0 -0
  89. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/ios-tools.mdx +0 -0
  90. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/reference.mdx +0 -0
  91. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/__init__.py +0 -0
  92. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/__main__.py +0 -0
  93. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/__init__.py +0 -0
  94. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/action_context.py +0 -0
  95. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/action_result.py +0 -0
  96. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/__init__.py +0 -0
  97. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/codeact_agent.py +0 -0
  98. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/events.py +0 -0
  99. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/xml_parser.py +0 -0
  100. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/common/__init__.py +0 -0
  101. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/common/constants.py +0 -0
  102. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/droid/__init__.py +0 -0
  103. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/droid/droid_agent.py +0 -0
  104. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/droid/events.py +0 -0
  105. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/droid/state.py +0 -0
  106. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/executor/__init__.py +0 -0
  107. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/executor/events.py +0 -0
  108. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/executor/prompts.py +0 -0
  109. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/external/__init__.py +0 -0
  110. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/external/autoglm.py +0 -0
  111. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/external/mai_ui.py +0 -0
  112. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/__init__.py +0 -0
  113. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/events.py +0 -0
  114. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/manager_agent.py +0 -0
  115. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/prompts.py +0 -0
  116. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/stateless_manager_agent.py +0 -0
  117. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/oneflows/__init__.py +0 -0
  118. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/oneflows/app_starter_workflow.py +0 -0
  119. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/oneflows/structured_output_agent.py +0 -0
  120. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/oneflows/text_manipulator.py +0 -0
  121. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/scripter/__init__.py +0 -0
  122. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/scripter/events.py +0 -0
  123. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/scripter/scripter_agent.py +0 -0
  124. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/trajectory/__init__.py +0 -0
  125. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/trajectory/writer.py +0 -0
  126. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/usage.py +0 -0
  127. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/__init__.py +0 -0
  128. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/actions.py +0 -0
  129. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/chat_utils.py +0 -0
  130. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/code_checker.py +0 -0
  131. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/executer.py +0 -0
  132. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/inference.py +0 -0
  133. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/llm_loader.py +0 -0
  134. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/llm_picker.py +0 -0
  135. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/prompt_resolver.py +0 -0
  136. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/signatures.py +0 -0
  137. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/tracing_setup.py +0 -0
  138. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/trajectory.py +0 -0
  139. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/__init__.py +0 -0
  140. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/app_card_provider.py +0 -0
  141. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/providers/__init__.py +0 -0
  142. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/providers/composite_provider.py +0 -0
  143. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/providers/local_provider.py +0 -0
  144. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/providers/server_provider.py +0 -0
  145. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/__init__.py +0 -0
  146. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/doctor.py +0 -0
  147. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/event_handler.py +0 -0
  148. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/logs.py +0 -0
  149. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/main.py +0 -0
  150. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/__init__.py +0 -0
  151. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/app.py +0 -0
  152. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/commands.py +0 -0
  153. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/css/advanced_tab.tcss +0 -0
  154. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/css/app.tcss +0 -0
  155. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/css/models_tab.tcss +0 -0
  156. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/css/settings_screen.tcss +0 -0
  157. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/__init__.py +0 -0
  158. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/advanced_tab.py +0 -0
  159. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/agent_tab.py +0 -0
  160. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/data.py +0 -0
  161. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/models_tab.py +0 -0
  162. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/section.py +0 -0
  163. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/settings_screen.py +0 -0
  164. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/__init__.py +0 -0
  165. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/command_dropdown.py +0 -0
  166. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/device_picker.py +0 -0
  167. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/input_bar.py +0 -0
  168. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/log_view.py +0 -0
  169. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/status_bar.py +0 -0
  170. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/app_cards/README.md +0 -0
  171. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/app_cards/app_cards.json +0 -0
  172. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/app_cards/gmail.md +0 -0
  173. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/credentials_example.yaml +0 -0
  174. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/system.jinja2 +0 -0
  175. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/tools_system.jinja2 +0 -0
  176. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/tools_user.jinja2 +0 -0
  177. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/user.jinja2 +0 -0
  178. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/executor/rev1.jinja2 +0 -0
  179. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/executor/system.jinja2 +0 -0
  180. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/manager/rev1.jinja2 +0 -0
  181. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/manager/stateless.jinja2 +0 -0
  182. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/manager/system.jinja2 +0 -0
  183. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/manager/trained.jinja2 +0 -0
  184. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/scripter/system.jinja2 +0 -0
  185. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_example.yaml +0 -0
  186. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/__init__.py +0 -0
  187. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/config_manager.py +0 -0
  188. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/env_keys.py +0 -0
  189. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/loader.py +0 -0
  190. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/migrations/__init__.py +0 -0
  191. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/migrations/v002_add_code_exec.py +0 -0
  192. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/path_resolver.py +0 -0
  193. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/prompt_loader.py +0 -0
  194. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/safe_execution.py +0 -0
  195. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/credential_manager/__init__.py +0 -0
  196. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/credential_manager/credential_manager.py +0 -0
  197. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/credential_manager/file_credential_manager.py +0 -0
  198. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/log_handlers.py +0 -0
  199. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/macro/__init__.py +0 -0
  200. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/macro/__main__.py +0 -0
  201. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/macro/cli.py +0 -0
  202. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/macro/replay.py +0 -0
  203. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/mcp/__init__.py +0 -0
  204. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/mcp/adapter.py +0 -0
  205. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/mcp/client.py +0 -0
  206. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/mcp/config.py +0 -0
  207. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/portal.py +0 -0
  208. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/__init__.py +0 -0
  209. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/events.py +0 -0
  210. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/langfuse_processor.py +0 -0
  211. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/phoenix.py +0 -0
  212. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/tracker.py +0 -0
  213. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/__init__.py +0 -0
  214. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/android/__init__.py +0 -0
  215. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/android/portal_client.py +0 -0
  216. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/__init__.py +0 -0
  217. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/android.py +0 -0
  218. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/base.py +0 -0
  219. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/cloud.py +0 -0
  220. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/ios.py +0 -0
  221. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/recording.py +0 -0
  222. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/stealth.py +0 -0
  223. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/filters/__init__.py +0 -0
  224. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/filters/base.py +0 -0
  225. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/filters/concise_filter.py +0 -0
  226. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/filters/detailed_filter.py +0 -0
  227. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/formatters/__init__.py +0 -0
  228. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/formatters/base.py +0 -0
  229. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/formatters/indexed_formatter.py +0 -0
  230. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/helpers/__init__.py +0 -0
  231. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/helpers/coordinate.py +0 -0
  232. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/helpers/element_search.py +0 -0
  233. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/helpers/geometry.py +0 -0
  234. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ios/__init__.py +0 -0
  235. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/__init__.py +0 -0
  236. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/ios_provider.py +0 -0
  237. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/provider.py +0 -0
  238. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/state.py +0 -0
  239. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/stealth_state.py +0 -0
  240. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/gen-docs-sdk-ref.sh +0 -0
  241. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/setup.py +0 -0
  242. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/static/droidrun-dark.png +0 -0
  243. {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/static/droidrun.png +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: droidrun
3
- Version: 0.5.0.dev2
3
+ Version: 0.5.0.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
@@ -408,7 +408,7 @@ class FastAgent(Workflow):
408
408
  else:
409
409
  # Dispatch via registry
410
410
  action_result = await self.registry.execute(
411
- call.name, call.parameters, self.action_ctx
411
+ call.name, call.parameters, self.action_ctx, workflow_ctx=ctx
412
412
  )
413
413
  results.append(
414
414
  ToolResult(
@@ -9,3 +9,12 @@ class ScreenshotEvent(Event):
9
9
 
10
10
  class RecordUIStateEvent(Event):
11
11
  ui_state: list[Dict[str, Any]]
12
+
13
+
14
+ class ToolExecutionEvent(Event):
15
+ """Emitted after every tool call dispatched through ToolRegistry."""
16
+
17
+ tool_name: str
18
+ tool_args: Dict[str, Any]
19
+ success: bool
20
+ summary: str
@@ -241,7 +241,9 @@ class ExecutorAgent(Workflow):
241
241
  action_type = action_dict.get("action", "unknown")
242
242
  action_args = {k: v for k, v in action_dict.items() if k != "action"}
243
243
 
244
- result = await self.registry.execute(action_type, action_args, self.action_ctx)
244
+ result = await self.registry.execute(
245
+ action_type, action_args, self.action_ctx, workflow_ctx=ctx
246
+ )
245
247
 
246
248
  await asyncio.sleep(self.agent_config.after_sleep_action)
247
249
 
@@ -15,6 +15,8 @@ from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Set
15
15
  from droidrun.agent.action_result import ActionResult
16
16
 
17
17
  if TYPE_CHECKING:
18
+ from llama_index.core.workflow import Context as WorkflowContext
19
+
18
20
  from droidrun.agent.action_context import ActionContext
19
21
 
20
22
  logger = logging.getLogger("droidrun")
@@ -105,11 +107,16 @@ class ToolRegistry:
105
107
  name: str,
106
108
  args: Dict[str, Any],
107
109
  ctx: "ActionContext",
110
+ workflow_ctx: "Optional[WorkflowContext]" = None,
108
111
  ) -> ActionResult:
109
112
  """Dispatch action by name.
110
113
 
111
114
  All actions receive ``ctx=ctx`` as a keyword argument.
112
115
 
116
+ Args:
117
+ workflow_ctx: Optional llama-index workflow Context. When provided,
118
+ a ``ToolExecutionEvent`` is streamed after execution.
119
+
113
120
  Handles:
114
121
  - Unknown tool names
115
122
  - Sync vs async functions
@@ -117,12 +124,14 @@ class ToolRegistry:
117
124
  - General exceptions
118
125
  """
119
126
  if name not in self.tools:
120
- return ActionResult(
127
+ result = ActionResult(
121
128
  success=False,
122
129
  summary=(
123
130
  f"Unknown tool: {name}. " f"Available: {list(self.tools.keys())}"
124
131
  ),
125
132
  )
133
+ self._emit_event(workflow_ctx, name, args, result)
134
+ return result
126
135
 
127
136
  entry = self.tools[name]
128
137
  try:
@@ -131,25 +140,55 @@ class ToolRegistry:
131
140
  else:
132
141
  result = entry.fn(**args, ctx=ctx)
133
142
  except TypeError as e:
134
- return ActionResult(
143
+ result = ActionResult(
135
144
  success=False,
136
145
  summary=f"Invalid arguments for {name}: {e}",
137
146
  )
147
+ self._emit_event(workflow_ctx, name, args, result)
148
+ return result
138
149
  except Exception as e:
139
- return ActionResult(
150
+ result = ActionResult(
140
151
  success=False,
141
152
  summary=f"Failed to execute {name}: {e}",
142
153
  )
154
+ self._emit_event(workflow_ctx, name, args, result)
155
+ return result
143
156
 
144
157
  # Normalise the return value into ActionResult
145
158
  if isinstance(result, ActionResult):
146
- return result
147
- if isinstance(result, tuple):
148
- return ActionResult(success=result[0], summary=str(result[1]))
149
- if isinstance(result, str):
159
+ action_result = result
160
+ elif isinstance(result, tuple):
161
+ action_result = ActionResult(success=result[0], summary=str(result[1]))
162
+ elif isinstance(result, str):
150
163
  success = not result.startswith("Failed")
151
- return ActionResult(success=success, summary=result)
152
- return ActionResult(success=True, summary=str(result) if result else "Done")
164
+ action_result = ActionResult(success=success, summary=result)
165
+ else:
166
+ action_result = ActionResult(
167
+ success=True, summary=str(result) if result else "Done"
168
+ )
169
+
170
+ self._emit_event(workflow_ctx, name, args, action_result)
171
+ return action_result
172
+
173
+ @staticmethod
174
+ def _emit_event(
175
+ workflow_ctx: "Optional[WorkflowContext]",
176
+ name: str,
177
+ args: Dict[str, Any],
178
+ result: ActionResult,
179
+ ) -> None:
180
+ if workflow_ctx is None:
181
+ return
182
+ from droidrun.agent.common.events import ToolExecutionEvent
183
+
184
+ workflow_ctx.write_event_to_stream(
185
+ ToolExecutionEvent(
186
+ tool_name=name,
187
+ tool_args=args,
188
+ success=result.success,
189
+ summary=result.summary,
190
+ )
191
+ )
153
192
 
154
193
  # -- prompt helpers ------------------------------------------------------
155
194
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "droidrun"
3
- version = "0.5.0.dev2"
3
+ version = "0.5.0.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.0.dev2"
763
+ version = "0.5.0.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
File without changes