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.
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/PKG-INFO +1 -1
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/tools_agent.py +1 -1
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/common/events.py +9 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/executor/executor_agent.py +3 -1
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/tool_registry.py +48 -9
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/pyproject.toml +1 -1
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/uv.lock +1 -1
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.dockerignore +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/black.yml +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/bounty.yml +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/claude-code-review.yml +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/claude.yml +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/docker.yml +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.github/workflows/publish.yml +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.gitignore +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/.python-version +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/CHANGELOG.md +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/CONTRIBUTING.md +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/Dockerfile +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/LICENSE +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/MANIFEST.in +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/README.md +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/SKILL.md +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/custom.css +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/docs.json +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/favicon.png +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/logo/dark.svg +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/logo/light.svg +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/concepts/agent.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/concepts/android-tools.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/concepts/models.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/concepts/portal-app.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/cli.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/gemini.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/ollama.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/openailike.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/overview.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/guides/telemetry.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/images/portal_apk.png +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/overview.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v3/quickstart.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/architecture.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/events-and-workflows.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/prompts.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/scripter-agent.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/concepts/shared-state.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/app-cards.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/credentials.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/custom-tools.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/custom-variables.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/structured-output.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/telemetry.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/features/tracing.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/cli.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/device-setup.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/docker.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/migration-v3-to-v4.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/guides/overview.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/overview.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/quickstart.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/adb-tools.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/base-tools.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/configuration.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/droid-agent.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/ios-tools.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v4/sdk/reference.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/architecture.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/events-and-workflows.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/prompts.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/scripter-agent.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/concepts/shared-state.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/app-cards.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/credentials.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/custom-tools.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/custom-variables.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/structured-output.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/telemetry.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/features/tracing.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/guides/cli.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/guides/device-setup.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/guides/docker.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/guides/overview.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/overview.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/quickstart.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/adb-tools.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/base-tools.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/configuration.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/droid-agent.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/ios-tools.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/docs/v5/sdk/reference.mdx +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/__main__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/action_context.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/action_result.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/codeact_agent.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/events.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/codeact/xml_parser.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/common/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/common/constants.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/droid/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/droid/droid_agent.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/droid/events.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/droid/state.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/executor/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/executor/events.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/executor/prompts.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/external/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/external/autoglm.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/external/mai_ui.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/events.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/manager_agent.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/prompts.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/stateless_manager_agent.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/oneflows/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/oneflows/app_starter_workflow.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/oneflows/structured_output_agent.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/oneflows/text_manipulator.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/scripter/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/scripter/events.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/scripter/scripter_agent.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/trajectory/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/trajectory/writer.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/usage.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/actions.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/chat_utils.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/code_checker.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/executer.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/inference.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/llm_loader.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/llm_picker.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/prompt_resolver.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/signatures.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/tracing_setup.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/utils/trajectory.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/app_card_provider.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/providers/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/providers/composite_provider.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/providers/local_provider.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/providers/server_provider.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/doctor.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/event_handler.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/logs.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/main.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/app.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/commands.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/css/advanced_tab.tcss +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/css/app.tcss +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/css/models_tab.tcss +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/css/settings_screen.tcss +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/advanced_tab.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/agent_tab.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/data.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/models_tab.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/section.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/settings/settings_screen.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/command_dropdown.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/device_picker.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/input_bar.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/log_view.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/cli/tui/widgets/status_bar.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/app_cards/README.md +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/app_cards/app_cards.json +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/app_cards/gmail.md +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/credentials_example.yaml +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/system.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/tools_system.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/tools_user.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/user.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/executor/rev1.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/executor/system.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/manager/rev1.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/manager/stateless.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/manager/system.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/manager/trained.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/scripter/system.jinja2 +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_example.yaml +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/config_manager.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/env_keys.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/loader.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/migrations/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/migrations/v002_add_code_exec.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/path_resolver.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/prompt_loader.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/safe_execution.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/credential_manager/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/credential_manager/credential_manager.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/credential_manager/file_credential_manager.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/log_handlers.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/macro/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/macro/__main__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/macro/cli.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/macro/replay.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/mcp/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/mcp/adapter.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/mcp/client.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/mcp/config.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/portal.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/events.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/langfuse_processor.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/phoenix.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/telemetry/tracker.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/android/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/android/portal_client.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/android.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/base.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/cloud.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/ios.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/recording.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/driver/stealth.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/filters/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/filters/base.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/filters/concise_filter.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/filters/detailed_filter.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/formatters/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/formatters/base.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/formatters/indexed_formatter.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/helpers/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/helpers/coordinate.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/helpers/element_search.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/helpers/geometry.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ios/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/__init__.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/ios_provider.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/provider.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/state.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/tools/ui/stealth_state.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/gen-docs-sdk-ref.sh +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/setup.py +0 -0
- {droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/static/droidrun-dark.png +0 -0
- {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.
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
152
|
-
|
|
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
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/manager/stateless_manager_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/agent/oneflows/structured_output_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/app_cards/providers/composite_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/tools_system.jinja2
RENAMED
|
File without changes
|
{droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/codeact/tools_user.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config/prompts/manager/stateless.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/config_manager/migrations/v002_add_code_exec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/credential_manager/credential_manager.py
RENAMED
|
File without changes
|
{droidrun-0.5.0.dev2 → droidrun-0.5.0.dev3}/droidrun/credential_manager/file_credential_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|