droidrun 0.3.10.dev6__tar.gz → 0.3.10.dev7__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.3.10.dev6 → droidrun-0.3.10.dev7}/PKG-INFO +1 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/codeact/codeact_agent.py +3 -4
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/context/task_manager.py +0 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/droid/droid_agent.py +1 -3
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/droid/events.py +2 -2
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/manager/__init__.py +1 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/executer.py +11 -10
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/llm_picker.py +1 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/app_cards/app_card_provider.py +0 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/app_cards/providers/composite_provider.py +4 -4
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/app_cards/providers/local_provider.py +1 -2
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/app_cards/providers/server_provider.py +1 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/cli/main.py +3 -4
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/config_manager/config_manager.py +0 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/macro/cli.py +0 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/pyproject.toml +1 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/uv.lock +2 -189
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/.github/workflows/bounty.yml +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/.github/workflows/publish.yml +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/.gitignore +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/.python-version +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/CHANGELOG.md +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/CONTRIBUTING.md +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/LICENSE +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/MANIFEST.in +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/README.md +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config/app_cards/README.md +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config/app_cards/app_cards.json +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config/app_cards/gmail.md +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config/prompts/codeact/system.jinja2 +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config/prompts/codeact/user.jinja2 +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config/prompts/executor/rev1.jinja2 +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config/prompts/executor/system.jinja2 +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config/prompts/manager/rev1.jinja2 +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config/prompts/manager/system.jinja2 +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/config_example.yaml +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/.generated-files.txt +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/docs.json +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/favicon.png +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/logo/dark.svg +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/logo/light.svg +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v1/concepts/agent.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v1/concepts/android-control.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v1/concepts/portal-app.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v1/overview.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v1/quickstart.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v2/concepts/agent.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v2/concepts/android-control.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v2/concepts/planning.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v2/concepts/portal-app.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v2/concepts/tracing.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v2/overview.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v2/quickstart.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/concepts/agent.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/concepts/android-tools.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/concepts/models.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/concepts/portal-app.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/guides/cli.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/guides/gemini.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/guides/ollama.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/guides/openailike.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/guides/overview.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/guides/telemetry.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/images/portal_apk.png +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/overview.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/quickstart.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/sdk/adb-tools.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/sdk/base-tools.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/sdk/droid-agent.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/docs/v3/sdk/ios-tools.mdx +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/__main__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/codeact/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/codeact/events.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/common/constants.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/common/events.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/context/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/context/episodic_memory.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/droid/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/executor/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/executor/events.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/executor/executor_agent.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/executor/prompts.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/manager/events.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/manager/manager_agent.py +4 -4
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/manager/prompts.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/oneflows/app_starter_workflow.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/oneflows/text_manipulator.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/usage.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/async_utils.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/chat_utils.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/device_state_formatter.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/inference.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/message_utils.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/tools.py +1 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/trajectory.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/app_cards/providers/__init__.py +1 -1
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/cli/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/cli/logs.py +4 -4
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/config_manager/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/config_manager/path_resolver.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/config_manager/prompt_loader.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/macro/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/macro/__main__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/macro/replay.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/portal.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/telemetry/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/telemetry/events.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/telemetry/phoenix.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/telemetry/tracker.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/tools/__init__.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/tools/adb.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/tools/ios.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/tools/tools.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/gen-docs-sdk-ref.sh +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/setup.py +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/static/droidrun-dark.png +0 -0
- {droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/static/droidrun.png +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: droidrun
|
3
|
-
Version: 0.3.10.
|
3
|
+
Version: 0.3.10.dev7
|
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
|
@@ -3,7 +3,7 @@ import json
|
|
3
3
|
import logging
|
4
4
|
import re
|
5
5
|
import time
|
6
|
-
from typing import
|
6
|
+
from typing import TYPE_CHECKING, List, Optional, Union
|
7
7
|
|
8
8
|
from llama_index.core.base.llms.types import ChatMessage, ChatResponse
|
9
9
|
from llama_index.core.llms.llm import LLM
|
@@ -23,9 +23,8 @@ from droidrun.agent.common.events import RecordUIStateEvent, ScreenshotEvent
|
|
23
23
|
from droidrun.agent.context.episodic_memory import EpisodicMemory, EpisodicMemoryStep
|
24
24
|
from droidrun.agent.usage import get_usage_from_response
|
25
25
|
from droidrun.agent.utils import chat_utils
|
26
|
-
from droidrun.agent.utils.executer import SimpleCodeExecutor, ExecuterState
|
27
26
|
from droidrun.agent.utils.device_state_formatter import format_device_state
|
28
|
-
|
27
|
+
from droidrun.agent.utils.executer import ExecuterState, SimpleCodeExecutor
|
29
28
|
from droidrun.agent.utils.tools import (
|
30
29
|
ATOMIC_ACTION_SIGNATURES,
|
31
30
|
build_custom_tool_descriptions,
|
@@ -489,7 +488,7 @@ Now, describe the next step you will take to address the original goal: {goal}""
|
|
489
488
|
try:
|
490
489
|
state = self.tools.get_state()
|
491
490
|
a11y_tree = state.get("a11y_tree", "")
|
492
|
-
phone_state = state.get("phone_state", "")
|
491
|
+
phone_state = state.get("phone_state", "") # noqa: F841
|
493
492
|
except Exception as e:
|
494
493
|
raise Exception(f"Failed to capture final UI state: {e}") from e
|
495
494
|
|
@@ -32,7 +32,7 @@ from droidrun.agent.droid.events import (
|
|
32
32
|
)
|
33
33
|
from droidrun.agent.executor import ExecutorAgent
|
34
34
|
from droidrun.agent.manager import ManagerAgent
|
35
|
-
from droidrun.agent.utils.tools import ATOMIC_ACTION_SIGNATURES
|
35
|
+
from droidrun.agent.utils.tools import ATOMIC_ACTION_SIGNATURES, open_app
|
36
36
|
from droidrun.agent.utils.trajectory import Trajectory
|
37
37
|
from droidrun.config_manager.config_manager import (
|
38
38
|
AgentConfig,
|
@@ -43,8 +43,6 @@ from droidrun.config_manager.config_manager import (
|
|
43
43
|
ToolsConfig,
|
44
44
|
TracingConfig,
|
45
45
|
)
|
46
|
-
|
47
|
-
from droidrun.agent.utils.tools import open_app
|
48
46
|
from droidrun.telemetry import (
|
49
47
|
DroidAgentFinalizeEvent,
|
50
48
|
DroidAgentInitEvent,
|
@@ -14,7 +14,7 @@ import asyncio
|
|
14
14
|
from typing import Dict, List
|
15
15
|
|
16
16
|
from llama_index.core.workflow import Event
|
17
|
-
from pydantic import BaseModel, Field
|
17
|
+
from pydantic import BaseModel, ConfigDict, Field
|
18
18
|
|
19
19
|
from droidrun.agent.context import Task
|
20
20
|
|
@@ -47,7 +47,7 @@ class DroidAgentState(BaseModel):
|
|
47
47
|
"""
|
48
48
|
State model for DroidAgent workflow - shared across parent and child workflows.
|
49
49
|
"""
|
50
|
-
|
50
|
+
model_config = ConfigDict(arbitrary_types_allowed=True)
|
51
51
|
# Task context
|
52
52
|
instruction: str = ""
|
53
53
|
# App Cards
|
@@ -3,7 +3,7 @@ Manager Agent - Planning and reasoning workflow.
|
|
3
3
|
"""
|
4
4
|
|
5
5
|
from droidrun.agent.droid.events import ManagerInputEvent, ManagerPlanEvent
|
6
|
-
from droidrun.agent.manager.events import
|
6
|
+
from droidrun.agent.manager.events import ManagerInternalPlanEvent, ManagerThinkingEvent
|
7
7
|
from droidrun.agent.manager.manager_agent import ManagerAgent
|
8
8
|
from droidrun.agent.manager.prompts import parse_manager_response
|
9
9
|
|
@@ -1,9 +1,10 @@
|
|
1
|
-
import io
|
2
1
|
import contextlib
|
3
|
-
import
|
2
|
+
import io
|
4
3
|
import logging
|
5
|
-
|
4
|
+
import traceback
|
6
5
|
from asyncio import AbstractEventLoop
|
6
|
+
from typing import Any, Dict, Optional
|
7
|
+
|
7
8
|
from pydantic import BaseModel
|
8
9
|
|
9
10
|
logger = logging.getLogger("droidrun")
|
@@ -11,7 +12,7 @@ logger = logging.getLogger("droidrun")
|
|
11
12
|
class ExecuterState(BaseModel):
|
12
13
|
"""State object for the code executor."""
|
13
14
|
ui_state: Optional[Any] = None
|
14
|
-
|
15
|
+
|
15
16
|
class Config:
|
16
17
|
arbitrary_types_allowed = True
|
17
18
|
|
@@ -70,7 +71,7 @@ class SimpleCodeExecutor:
|
|
70
71
|
self.locals = locals
|
71
72
|
self.loop = loop
|
72
73
|
self.use_same_scope = use_same_scope
|
73
|
-
|
74
|
+
|
74
75
|
if self.use_same_scope:
|
75
76
|
# If using the same scope, merge globals and locals
|
76
77
|
self.globals = self.locals = {
|
@@ -85,7 +86,7 @@ class SimpleCodeExecutor:
|
|
85
86
|
"""
|
86
87
|
# Update UI state
|
87
88
|
self.globals['ui_state'] = ui_state
|
88
|
-
|
89
|
+
|
89
90
|
# Capture stdout and stderr
|
90
91
|
stdout = io.StringIO()
|
91
92
|
stderr = io.StringIO()
|
@@ -111,7 +112,7 @@ class SimpleCodeExecutor:
|
|
111
112
|
async def execute(self, state: ExecuterState, code: str) -> str:
|
112
113
|
"""
|
113
114
|
Execute Python code and capture output and return values.
|
114
|
-
|
115
|
+
|
115
116
|
Runs the code in a separate thread to prevent blocking.
|
116
117
|
|
117
118
|
Args:
|
@@ -123,7 +124,7 @@ class SimpleCodeExecutor:
|
|
123
124
|
"""
|
124
125
|
# Get UI state from the state object
|
125
126
|
ui_state = state.ui_state
|
126
|
-
|
127
|
+
|
127
128
|
# Run the execution in a thread pool executor
|
128
129
|
output = await self.loop.run_in_executor(
|
129
130
|
None,
|
@@ -131,5 +132,5 @@ class SimpleCodeExecutor:
|
|
131
132
|
code,
|
132
133
|
ui_state
|
133
134
|
)
|
134
|
-
|
135
|
-
return output
|
135
|
+
|
136
|
+
return output
|
{droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/app_cards/providers/composite_provider.py
RENAMED
@@ -7,9 +7,9 @@ Tries server first, falls back to local if server fails or returns empty.
|
|
7
7
|
import logging
|
8
8
|
from typing import Dict
|
9
9
|
|
10
|
-
from droidrun.
|
11
|
-
from droidrun.
|
12
|
-
from droidrun.
|
10
|
+
from droidrun.app_cards.app_card_provider import AppCardProvider
|
11
|
+
from droidrun.app_cards.providers.local_provider import LocalAppCardProvider
|
12
|
+
from droidrun.app_cards.providers.server_provider import ServerAppCardProvider
|
13
13
|
|
14
14
|
logger = logging.getLogger("droidrun")
|
15
15
|
|
@@ -65,7 +65,7 @@ class CompositeAppCardProvider(AppCardProvider):
|
|
65
65
|
server_result = await self.server_provider.load_app_card(package_name, instruction)
|
66
66
|
|
67
67
|
if server_result:
|
68
|
-
return server_result
|
68
|
+
return server_result
|
69
69
|
|
70
70
|
# Server failed or returned empty, try local
|
71
71
|
logger.debug(f"Composite provider: falling back to local for {package_name}")
|
{droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/app_cards/providers/local_provider.py
RENAMED
@@ -6,10 +6,9 @@ Loads app cards from local filesystem using app_cards.json mapping.
|
|
6
6
|
|
7
7
|
import json
|
8
8
|
import logging
|
9
|
-
from pathlib import Path
|
10
9
|
from typing import Dict
|
11
10
|
|
12
|
-
from droidrun.
|
11
|
+
from droidrun.app_cards.app_card_provider import AppCardProvider
|
13
12
|
from droidrun.config_manager.path_resolver import PathResolver
|
14
13
|
|
15
14
|
logger = logging.getLogger("droidrun")
|
@@ -16,13 +16,14 @@ from rich.console import Console
|
|
16
16
|
from droidrun.agent.droid import DroidAgent
|
17
17
|
from droidrun.agent.utils.llm_picker import load_llm, load_llms_from_profiles
|
18
18
|
from droidrun.cli.logs import LogHandler
|
19
|
+
from droidrun.config_manager import ConfigManager
|
19
20
|
from droidrun.config_manager.config_manager import (
|
20
21
|
AgentConfig,
|
21
22
|
CodeActConfig,
|
22
|
-
ManagerConfig,
|
23
|
-
ExecutorConfig,
|
24
23
|
DeviceConfig,
|
24
|
+
ExecutorConfig,
|
25
25
|
LoggingConfig,
|
26
|
+
ManagerConfig,
|
26
27
|
ToolsConfig,
|
27
28
|
TracingConfig,
|
28
29
|
)
|
@@ -37,8 +38,6 @@ from droidrun.portal import (
|
|
37
38
|
)
|
38
39
|
from droidrun.telemetry import print_telemetry_message
|
39
40
|
from droidrun.tools import AdbTools, IOSTools
|
40
|
-
from droidrun.config_manager import ConfigManager
|
41
|
-
|
42
41
|
|
43
42
|
# Suppress all warnings
|
44
43
|
warnings.filterwarnings("ignore")
|
@@ -836,7 +836,7 @@ wheels = [
|
|
836
836
|
|
837
837
|
[[package]]
|
838
838
|
name = "droidrun"
|
839
|
-
version = "0.3.10.
|
839
|
+
version = "0.3.10.dev7"
|
840
840
|
source = { editable = "." }
|
841
841
|
dependencies = [
|
842
842
|
{ name = "adbutils" },
|
@@ -854,15 +854,6 @@ anthropic = [
|
|
854
854
|
{ name = "anthropic" },
|
855
855
|
{ name = "llama-index-llms-anthropic" },
|
856
856
|
]
|
857
|
-
backend = [
|
858
|
-
{ name = "aiohttp" },
|
859
|
-
{ name = "fastapi" },
|
860
|
-
{ name = "pydantic-settings" },
|
861
|
-
{ name = "python-dotenv" },
|
862
|
-
{ name = "python-multipart" },
|
863
|
-
{ name = "uvicorn", extra = ["standard"] },
|
864
|
-
{ name = "websockets" },
|
865
|
-
]
|
866
857
|
deepseek = [
|
867
858
|
{ name = "llama-index-llms-deepseek" },
|
868
859
|
]
|
@@ -900,13 +891,11 @@ dev = [
|
|
900
891
|
[package.metadata]
|
901
892
|
requires-dist = [
|
902
893
|
{ name = "adbutils", specifier = ">=2.10.2" },
|
903
|
-
{ name = "aiohttp", marker = "extra == 'backend'", specifier = ">=3.9.0" },
|
904
894
|
{ name = "anthropic", marker = "extra == 'anthropic'", specifier = ">=0.67.0" },
|
905
895
|
{ name = "apkutils", specifier = "==2.0.0" },
|
906
896
|
{ name = "arize-phoenix", specifier = ">=12.3.0" },
|
907
897
|
{ name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8.6" },
|
908
898
|
{ name = "black", marker = "extra == 'dev'", specifier = ">=23.0.0" },
|
909
|
-
{ name = "fastapi", marker = "extra == 'backend'", specifier = ">=0.104.0" },
|
910
899
|
{ name = "httpx", specifier = ">=0.27.0" },
|
911
900
|
{ name = "llama-index", specifier = "==0.14.4" },
|
912
901
|
{ name = "llama-index-llms-anthropic", marker = "extra == 'anthropic'", specifier = ">=0.8.6,<0.9.0" },
|
@@ -920,16 +909,11 @@ requires-dist = [
|
|
920
909
|
{ name = "openai", marker = "extra == 'openai'", specifier = ">=1.99.1" },
|
921
910
|
{ name = "posthog", specifier = ">=6.7.6" },
|
922
911
|
{ name = "pydantic", specifier = ">=2.11.10" },
|
923
|
-
{ name = "pydantic-settings", marker = "extra == 'backend'", specifier = ">=2.0.0" },
|
924
|
-
{ name = "python-dotenv", marker = "extra == 'backend'", specifier = ">=1.0.0" },
|
925
|
-
{ name = "python-multipart", marker = "extra == 'backend'", specifier = ">=0.0.6" },
|
926
912
|
{ name = "rich", specifier = ">=14.1.0" },
|
927
913
|
{ name = "ruff", marker = "extra == 'dev'", specifier = ">=0.13.0" },
|
928
914
|
{ name = "safety", marker = "extra == 'dev'", specifier = ">=3.2.11" },
|
929
|
-
{ name = "uvicorn", extras = ["standard"], marker = "extra == 'backend'", specifier = ">=0.24.0" },
|
930
|
-
{ name = "websockets", marker = "extra == 'backend'", specifier = ">=12.0" },
|
931
915
|
]
|
932
|
-
provides-extras = ["anthropic", "openai", "google", "deepseek", "ollama", "
|
916
|
+
provides-extras = ["anthropic", "openai", "google", "deepseek", "ollama", "dev", "openrouter"]
|
933
917
|
|
934
918
|
[package.metadata.requires-dev]
|
935
919
|
dev = [
|
@@ -1312,42 +1296,6 @@ wheels = [
|
|
1312
1296
|
{ url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" },
|
1313
1297
|
]
|
1314
1298
|
|
1315
|
-
[[package]]
|
1316
|
-
name = "httptools"
|
1317
|
-
version = "0.7.1"
|
1318
|
-
source = { registry = "https://pypi.org/simple" }
|
1319
|
-
sdist = { url = "https://files.pythonhosted.org/packages/b5/46/120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993/httptools-0.7.1.tar.gz", hash = "sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9", size = 258961, upload-time = "2025-10-10T03:55:08.559Z" }
|
1320
|
-
wheels = [
|
1321
|
-
{ url = "https://files.pythonhosted.org/packages/9c/08/17e07e8d89ab8f343c134616d72eebfe03798835058e2ab579dcc8353c06/httptools-0.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657", size = 206521, upload-time = "2025-10-10T03:54:31.002Z" },
|
1322
|
-
{ url = "https://files.pythonhosted.org/packages/aa/06/c9c1b41ff52f16aee526fd10fbda99fa4787938aa776858ddc4a1ea825ec/httptools-0.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70", size = 110375, upload-time = "2025-10-10T03:54:31.941Z" },
|
1323
|
-
{ url = "https://files.pythonhosted.org/packages/cc/cc/10935db22fda0ee34c76f047590ca0a8bd9de531406a3ccb10a90e12ea21/httptools-0.7.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df", size = 456621, upload-time = "2025-10-10T03:54:33.176Z" },
|
1324
|
-
{ url = "https://files.pythonhosted.org/packages/0e/84/875382b10d271b0c11aa5d414b44f92f8dd53e9b658aec338a79164fa548/httptools-0.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e", size = 454954, upload-time = "2025-10-10T03:54:34.226Z" },
|
1325
|
-
{ url = "https://files.pythonhosted.org/packages/30/e1/44f89b280f7e46c0b1b2ccee5737d46b3bb13136383958f20b580a821ca0/httptools-0.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274", size = 440175, upload-time = "2025-10-10T03:54:35.942Z" },
|
1326
|
-
{ url = "https://files.pythonhosted.org/packages/6f/7e/b9287763159e700e335028bc1824359dc736fa9b829dacedace91a39b37e/httptools-0.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec", size = 440310, upload-time = "2025-10-10T03:54:37.1Z" },
|
1327
|
-
{ url = "https://files.pythonhosted.org/packages/b3/07/5b614f592868e07f5c94b1f301b5e14a21df4e8076215a3bccb830a687d8/httptools-0.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb", size = 86875, upload-time = "2025-10-10T03:54:38.421Z" },
|
1328
|
-
{ url = "https://files.pythonhosted.org/packages/53/7f/403e5d787dc4942316e515e949b0c8a013d84078a915910e9f391ba9b3ed/httptools-0.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5", size = 206280, upload-time = "2025-10-10T03:54:39.274Z" },
|
1329
|
-
{ url = "https://files.pythonhosted.org/packages/2a/0d/7f3fd28e2ce311ccc998c388dd1c53b18120fda3b70ebb022b135dc9839b/httptools-0.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5", size = 110004, upload-time = "2025-10-10T03:54:40.403Z" },
|
1330
|
-
{ url = "https://files.pythonhosted.org/packages/84/a6/b3965e1e146ef5762870bbe76117876ceba51a201e18cc31f5703e454596/httptools-0.7.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03", size = 517655, upload-time = "2025-10-10T03:54:41.347Z" },
|
1331
|
-
{ url = "https://files.pythonhosted.org/packages/11/7d/71fee6f1844e6fa378f2eddde6c3e41ce3a1fb4b2d81118dd544e3441ec0/httptools-0.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2", size = 511440, upload-time = "2025-10-10T03:54:42.452Z" },
|
1332
|
-
{ url = "https://files.pythonhosted.org/packages/22/a5/079d216712a4f3ffa24af4a0381b108aa9c45b7a5cc6eb141f81726b1823/httptools-0.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362", size = 495186, upload-time = "2025-10-10T03:54:43.937Z" },
|
1333
|
-
{ url = "https://files.pythonhosted.org/packages/e9/9e/025ad7b65278745dee3bd0ebf9314934c4592560878308a6121f7f812084/httptools-0.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c", size = 499192, upload-time = "2025-10-10T03:54:45.003Z" },
|
1334
|
-
{ url = "https://files.pythonhosted.org/packages/6d/de/40a8f202b987d43afc4d54689600ff03ce65680ede2f31df348d7f368b8f/httptools-0.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321", size = 86694, upload-time = "2025-10-10T03:54:45.923Z" },
|
1335
|
-
{ url = "https://files.pythonhosted.org/packages/09/8f/c77b1fcbfd262d422f12da02feb0d218fa228d52485b77b953832105bb90/httptools-0.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3", size = 202889, upload-time = "2025-10-10T03:54:47.089Z" },
|
1336
|
-
{ url = "https://files.pythonhosted.org/packages/0a/1a/22887f53602feaa066354867bc49a68fc295c2293433177ee90870a7d517/httptools-0.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca", size = 108180, upload-time = "2025-10-10T03:54:48.052Z" },
|
1337
|
-
{ url = "https://files.pythonhosted.org/packages/32/6a/6aaa91937f0010d288d3d124ca2946d48d60c3a5ee7ca62afe870e3ea011/httptools-0.7.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c", size = 478596, upload-time = "2025-10-10T03:54:48.919Z" },
|
1338
|
-
{ url = "https://files.pythonhosted.org/packages/6d/70/023d7ce117993107be88d2cbca566a7c1323ccbaf0af7eabf2064fe356f6/httptools-0.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66", size = 473268, upload-time = "2025-10-10T03:54:49.993Z" },
|
1339
|
-
{ url = "https://files.pythonhosted.org/packages/32/4d/9dd616c38da088e3f436e9a616e1d0cc66544b8cdac405cc4e81c8679fc7/httptools-0.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346", size = 455517, upload-time = "2025-10-10T03:54:51.066Z" },
|
1340
|
-
{ url = "https://files.pythonhosted.org/packages/1d/3a/a6c595c310b7df958e739aae88724e24f9246a514d909547778d776799be/httptools-0.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650", size = 458337, upload-time = "2025-10-10T03:54:52.196Z" },
|
1341
|
-
{ url = "https://files.pythonhosted.org/packages/fd/82/88e8d6d2c51edc1cc391b6e044c6c435b6aebe97b1abc33db1b0b24cd582/httptools-0.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6", size = 85743, upload-time = "2025-10-10T03:54:53.448Z" },
|
1342
|
-
{ url = "https://files.pythonhosted.org/packages/34/50/9d095fcbb6de2d523e027a2f304d4551855c2f46e0b82befd718b8b20056/httptools-0.7.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270", size = 203619, upload-time = "2025-10-10T03:54:54.321Z" },
|
1343
|
-
{ url = "https://files.pythonhosted.org/packages/07/f0/89720dc5139ae54b03f861b5e2c55a37dba9a5da7d51e1e824a1f343627f/httptools-0.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3", size = 108714, upload-time = "2025-10-10T03:54:55.163Z" },
|
1344
|
-
{ url = "https://files.pythonhosted.org/packages/b3/cb/eea88506f191fb552c11787c23f9a405f4c7b0c5799bf73f2249cd4f5228/httptools-0.7.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1", size = 472909, upload-time = "2025-10-10T03:54:56.056Z" },
|
1345
|
-
{ url = "https://files.pythonhosted.org/packages/e0/4a/a548bdfae6369c0d078bab5769f7b66f17f1bfaa6fa28f81d6be6959066b/httptools-0.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b", size = 470831, upload-time = "2025-10-10T03:54:57.219Z" },
|
1346
|
-
{ url = "https://files.pythonhosted.org/packages/4d/31/14df99e1c43bd132eec921c2e7e11cda7852f65619bc0fc5bdc2d0cb126c/httptools-0.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60", size = 452631, upload-time = "2025-10-10T03:54:58.219Z" },
|
1347
|
-
{ url = "https://files.pythonhosted.org/packages/22/d2/b7e131f7be8d854d48cb6d048113c30f9a46dca0c9a8b08fcb3fcd588cdc/httptools-0.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca", size = 452910, upload-time = "2025-10-10T03:54:59.366Z" },
|
1348
|
-
{ url = "https://files.pythonhosted.org/packages/53/cf/878f3b91e4e6e011eff6d1fa9ca39f7eb17d19c9d7971b04873734112f30/httptools-0.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96", size = 88205, upload-time = "2025-10-10T03:55:00.389Z" },
|
1349
|
-
]
|
1350
|
-
|
1351
1299
|
[[package]]
|
1352
1300
|
name = "httpx"
|
1353
1301
|
version = "0.28.1"
|
@@ -3037,20 +2985,6 @@ wheels = [
|
|
3037
2985
|
{ url = "https://files.pythonhosted.org/packages/32/56/8a7ca5d2cd2cda1d245d34b1c9a942920a718082ae8e54e5f3e5a58b7add/pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1", size = 2066757, upload-time = "2025-04-23T18:33:30.645Z" },
|
3038
2986
|
]
|
3039
2987
|
|
3040
|
-
[[package]]
|
3041
|
-
name = "pydantic-settings"
|
3042
|
-
version = "2.11.0"
|
3043
|
-
source = { registry = "https://pypi.org/simple" }
|
3044
|
-
dependencies = [
|
3045
|
-
{ name = "pydantic" },
|
3046
|
-
{ name = "python-dotenv" },
|
3047
|
-
{ name = "typing-inspection" },
|
3048
|
-
]
|
3049
|
-
sdist = { url = "https://files.pythonhosted.org/packages/20/c5/dbbc27b814c71676593d1c3f718e6cd7d4f00652cefa24b75f7aa3efb25e/pydantic_settings-2.11.0.tar.gz", hash = "sha256:d0e87a1c7d33593beb7194adb8470fc426e95ba02af83a0f23474a04c9a08180", size = 188394, upload-time = "2025-09-24T14:19:11.764Z" }
|
3050
|
-
wheels = [
|
3051
|
-
{ url = "https://files.pythonhosted.org/packages/83/d6/887a1ff844e64aa823fb4905978d882a633cfe295c32eacad582b78a7d8b/pydantic_settings-2.11.0-py3-none-any.whl", hash = "sha256:fe2cea3413b9530d10f3a5875adffb17ada5c1e1bab0b2885546d7310415207c", size = 48608, upload-time = "2025-09-24T14:19:10.015Z" },
|
3052
|
-
]
|
3053
|
-
|
3054
2988
|
[[package]]
|
3055
2989
|
name = "pyelftools"
|
3056
2990
|
version = "0.27"
|
@@ -3989,127 +3923,6 @@ wheels = [
|
|
3989
3923
|
{ url = "https://files.pythonhosted.org/packages/85/cd/584a2ceb5532af99dd09e50919e3615ba99aa127e9850eafe5f31ddfdb9a/uvicorn-0.37.0-py3-none-any.whl", hash = "sha256:913b2b88672343739927ce381ff9e2ad62541f9f8289664fa1d1d3803fa2ce6c", size = 67976, upload-time = "2025-09-23T13:33:45.842Z" },
|
3990
3924
|
]
|
3991
3925
|
|
3992
|
-
[package.optional-dependencies]
|
3993
|
-
standard = [
|
3994
|
-
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
3995
|
-
{ name = "httptools" },
|
3996
|
-
{ name = "python-dotenv" },
|
3997
|
-
{ name = "pyyaml" },
|
3998
|
-
{ name = "uvloop", marker = "platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'" },
|
3999
|
-
{ name = "watchfiles" },
|
4000
|
-
{ name = "websockets" },
|
4001
|
-
]
|
4002
|
-
|
4003
|
-
[[package]]
|
4004
|
-
name = "uvloop"
|
4005
|
-
version = "0.21.0"
|
4006
|
-
source = { registry = "https://pypi.org/simple" }
|
4007
|
-
sdist = { url = "https://files.pythonhosted.org/packages/af/c0/854216d09d33c543f12a44b393c402e89a920b1a0a7dc634c42de91b9cf6/uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3", size = 2492741, upload-time = "2024-10-14T23:38:35.489Z" }
|
4008
|
-
wheels = [
|
4009
|
-
{ url = "https://files.pythonhosted.org/packages/57/a7/4cf0334105c1160dd6819f3297f8700fda7fc30ab4f61fbf3e725acbc7cc/uvloop-0.21.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c0f3fa6200b3108919f8bdabb9a7f87f20e7097ea3c543754cabc7d717d95cf8", size = 1447410, upload-time = "2024-10-14T23:37:33.612Z" },
|
4010
|
-
{ url = "https://files.pythonhosted.org/packages/8c/7c/1517b0bbc2dbe784b563d6ab54f2ef88c890fdad77232c98ed490aa07132/uvloop-0.21.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0878c2640cf341b269b7e128b1a5fed890adc4455513ca710d77d5e93aa6d6a0", size = 805476, upload-time = "2024-10-14T23:37:36.11Z" },
|
4011
|
-
{ url = "https://files.pythonhosted.org/packages/ee/ea/0bfae1aceb82a503f358d8d2fa126ca9dbdb2ba9c7866974faec1cb5875c/uvloop-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9fb766bb57b7388745d8bcc53a359b116b8a04c83a2288069809d2b3466c37e", size = 3960855, upload-time = "2024-10-14T23:37:37.683Z" },
|
4012
|
-
{ url = "https://files.pythonhosted.org/packages/8a/ca/0864176a649838b838f36d44bf31c451597ab363b60dc9e09c9630619d41/uvloop-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a375441696e2eda1c43c44ccb66e04d61ceeffcd76e4929e527b7fa401b90fb", size = 3973185, upload-time = "2024-10-14T23:37:40.226Z" },
|
4013
|
-
{ url = "https://files.pythonhosted.org/packages/30/bf/08ad29979a936d63787ba47a540de2132169f140d54aa25bc8c3df3e67f4/uvloop-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:baa0e6291d91649c6ba4ed4b2f982f9fa165b5bbd50a9e203c416a2797bab3c6", size = 3820256, upload-time = "2024-10-14T23:37:42.839Z" },
|
4014
|
-
{ url = "https://files.pythonhosted.org/packages/da/e2/5cf6ef37e3daf2f06e651aae5ea108ad30df3cb269102678b61ebf1fdf42/uvloop-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4509360fcc4c3bd2c70d87573ad472de40c13387f5fda8cb58350a1d7475e58d", size = 3937323, upload-time = "2024-10-14T23:37:45.337Z" },
|
4015
|
-
{ url = "https://files.pythonhosted.org/packages/8c/4c/03f93178830dc7ce8b4cdee1d36770d2f5ebb6f3d37d354e061eefc73545/uvloop-0.21.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c", size = 1471284, upload-time = "2024-10-14T23:37:47.833Z" },
|
4016
|
-
{ url = "https://files.pythonhosted.org/packages/43/3e/92c03f4d05e50f09251bd8b2b2b584a2a7f8fe600008bcc4523337abe676/uvloop-0.21.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2", size = 821349, upload-time = "2024-10-14T23:37:50.149Z" },
|
4017
|
-
{ url = "https://files.pythonhosted.org/packages/a6/ef/a02ec5da49909dbbfb1fd205a9a1ac4e88ea92dcae885e7c961847cd51e2/uvloop-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d", size = 4580089, upload-time = "2024-10-14T23:37:51.703Z" },
|
4018
|
-
{ url = "https://files.pythonhosted.org/packages/06/a7/b4e6a19925c900be9f98bec0a75e6e8f79bb53bdeb891916609ab3958967/uvloop-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc", size = 4693770, upload-time = "2024-10-14T23:37:54.122Z" },
|
4019
|
-
{ url = "https://files.pythonhosted.org/packages/ce/0c/f07435a18a4b94ce6bd0677d8319cd3de61f3a9eeb1e5f8ab4e8b5edfcb3/uvloop-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb", size = 4451321, upload-time = "2024-10-14T23:37:55.766Z" },
|
4020
|
-
{ url = "https://files.pythonhosted.org/packages/8f/eb/f7032be105877bcf924709c97b1bf3b90255b4ec251f9340cef912559f28/uvloop-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f", size = 4659022, upload-time = "2024-10-14T23:37:58.195Z" },
|
4021
|
-
{ url = "https://files.pythonhosted.org/packages/3f/8d/2cbef610ca21539f0f36e2b34da49302029e7c9f09acef0b1c3b5839412b/uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281", size = 1468123, upload-time = "2024-10-14T23:38:00.688Z" },
|
4022
|
-
{ url = "https://files.pythonhosted.org/packages/93/0d/b0038d5a469f94ed8f2b2fce2434a18396d8fbfb5da85a0a9781ebbdec14/uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af", size = 819325, upload-time = "2024-10-14T23:38:02.309Z" },
|
4023
|
-
{ url = "https://files.pythonhosted.org/packages/50/94/0a687f39e78c4c1e02e3272c6b2ccdb4e0085fda3b8352fecd0410ccf915/uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6", size = 4582806, upload-time = "2024-10-14T23:38:04.711Z" },
|
4024
|
-
{ url = "https://files.pythonhosted.org/packages/d2/19/f5b78616566ea68edd42aacaf645adbf71fbd83fc52281fba555dc27e3f1/uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816", size = 4701068, upload-time = "2024-10-14T23:38:06.385Z" },
|
4025
|
-
{ url = "https://files.pythonhosted.org/packages/47/57/66f061ee118f413cd22a656de622925097170b9380b30091b78ea0c6ea75/uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc", size = 4454428, upload-time = "2024-10-14T23:38:08.416Z" },
|
4026
|
-
{ url = "https://files.pythonhosted.org/packages/63/9a/0962b05b308494e3202d3f794a6e85abe471fe3cafdbcf95c2e8c713aabd/uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553", size = 4660018, upload-time = "2024-10-14T23:38:10.888Z" },
|
4027
|
-
]
|
4028
|
-
|
4029
|
-
[[package]]
|
4030
|
-
name = "watchfiles"
|
4031
|
-
version = "1.1.0"
|
4032
|
-
source = { registry = "https://pypi.org/simple" }
|
4033
|
-
dependencies = [
|
4034
|
-
{ name = "anyio" },
|
4035
|
-
]
|
4036
|
-
sdist = { url = "https://files.pythonhosted.org/packages/2a/9a/d451fcc97d029f5812e898fd30a53fd8c15c7bbd058fd75cfc6beb9bd761/watchfiles-1.1.0.tar.gz", hash = "sha256:693ed7ec72cbfcee399e92c895362b6e66d63dac6b91e2c11ae03d10d503e575", size = 94406, upload-time = "2025-06-15T19:06:59.42Z" }
|
4037
|
-
wheels = [
|
4038
|
-
{ url = "https://files.pythonhosted.org/packages/8b/78/7401154b78ab484ccaaeef970dc2af0cb88b5ba8a1b415383da444cdd8d3/watchfiles-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:c9649dfc57cc1f9835551deb17689e8d44666315f2e82d337b9f07bd76ae3aa2", size = 405751, upload-time = "2025-06-15T19:05:07.679Z" },
|
4039
|
-
{ url = "https://files.pythonhosted.org/packages/76/63/e6c3dbc1f78d001589b75e56a288c47723de28c580ad715eb116639152b5/watchfiles-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:406520216186b99374cdb58bc48e34bb74535adec160c8459894884c983a149c", size = 397313, upload-time = "2025-06-15T19:05:08.764Z" },
|
4040
|
-
{ url = "https://files.pythonhosted.org/packages/6c/a2/8afa359ff52e99af1632f90cbf359da46184207e893a5f179301b0c8d6df/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb45350fd1dc75cd68d3d72c47f5b513cb0578da716df5fba02fff31c69d5f2d", size = 450792, upload-time = "2025-06-15T19:05:09.869Z" },
|
4041
|
-
{ url = "https://files.pythonhosted.org/packages/1d/bf/7446b401667f5c64972a57a0233be1104157fc3abf72c4ef2666c1bd09b2/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:11ee4444250fcbeb47459a877e5e80ed994ce8e8d20283857fc128be1715dac7", size = 458196, upload-time = "2025-06-15T19:05:11.91Z" },
|
4042
|
-
{ url = "https://files.pythonhosted.org/packages/58/2f/501ddbdfa3fa874ea5597c77eeea3d413579c29af26c1091b08d0c792280/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bda8136e6a80bdea23e5e74e09df0362744d24ffb8cd59c4a95a6ce3d142f79c", size = 484788, upload-time = "2025-06-15T19:05:13.373Z" },
|
4043
|
-
{ url = "https://files.pythonhosted.org/packages/61/1e/9c18eb2eb5c953c96bc0e5f626f0e53cfef4bd19bd50d71d1a049c63a575/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b915daeb2d8c1f5cee4b970f2e2c988ce6514aace3c9296e58dd64dc9aa5d575", size = 597879, upload-time = "2025-06-15T19:05:14.725Z" },
|
4044
|
-
{ url = "https://files.pythonhosted.org/packages/8b/6c/1467402e5185d89388b4486745af1e0325007af0017c3384cc786fff0542/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed8fc66786de8d0376f9f913c09e963c66e90ced9aa11997f93bdb30f7c872a8", size = 477447, upload-time = "2025-06-15T19:05:15.775Z" },
|
4045
|
-
{ url = "https://files.pythonhosted.org/packages/2b/a1/ec0a606bde4853d6c4a578f9391eeb3684a9aea736a8eb217e3e00aa89a1/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe4371595edf78c41ef8ac8df20df3943e13defd0efcb732b2e393b5a8a7a71f", size = 453145, upload-time = "2025-06-15T19:05:17.17Z" },
|
4046
|
-
{ url = "https://files.pythonhosted.org/packages/90/b9/ef6f0c247a6a35d689fc970dc7f6734f9257451aefb30def5d100d6246a5/watchfiles-1.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b7c5f6fe273291f4d414d55b2c80d33c457b8a42677ad14b4b47ff025d0893e4", size = 626539, upload-time = "2025-06-15T19:05:18.557Z" },
|
4047
|
-
{ url = "https://files.pythonhosted.org/packages/34/44/6ffda5537085106ff5aaa762b0d130ac6c75a08015dd1621376f708c94de/watchfiles-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7738027989881e70e3723c75921f1efa45225084228788fc59ea8c6d732eb30d", size = 624472, upload-time = "2025-06-15T19:05:19.588Z" },
|
4048
|
-
{ url = "https://files.pythonhosted.org/packages/c3/e3/71170985c48028fa3f0a50946916a14055e741db11c2e7bc2f3b61f4d0e3/watchfiles-1.1.0-cp311-cp311-win32.whl", hash = "sha256:622d6b2c06be19f6e89b1d951485a232e3b59618def88dbeda575ed8f0d8dbf2", size = 279348, upload-time = "2025-06-15T19:05:20.856Z" },
|
4049
|
-
{ url = "https://files.pythonhosted.org/packages/89/1b/3e39c68b68a7a171070f81fc2561d23ce8d6859659406842a0e4bebf3bba/watchfiles-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:48aa25e5992b61debc908a61ab4d3f216b64f44fdaa71eb082d8b2de846b7d12", size = 292607, upload-time = "2025-06-15T19:05:21.937Z" },
|
4050
|
-
{ url = "https://files.pythonhosted.org/packages/61/9f/2973b7539f2bdb6ea86d2c87f70f615a71a1fc2dba2911795cea25968aea/watchfiles-1.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:00645eb79a3faa70d9cb15c8d4187bb72970b2470e938670240c7998dad9f13a", size = 285056, upload-time = "2025-06-15T19:05:23.12Z" },
|
4051
|
-
{ url = "https://files.pythonhosted.org/packages/f6/b8/858957045a38a4079203a33aaa7d23ea9269ca7761c8a074af3524fbb240/watchfiles-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9dc001c3e10de4725c749d4c2f2bdc6ae24de5a88a339c4bce32300a31ede179", size = 402339, upload-time = "2025-06-15T19:05:24.516Z" },
|
4052
|
-
{ url = "https://files.pythonhosted.org/packages/80/28/98b222cca751ba68e88521fabd79a4fab64005fc5976ea49b53fa205d1fa/watchfiles-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d9ba68ec283153dead62cbe81872d28e053745f12335d037de9cbd14bd1877f5", size = 394409, upload-time = "2025-06-15T19:05:25.469Z" },
|
4053
|
-
{ url = "https://files.pythonhosted.org/packages/86/50/dee79968566c03190677c26f7f47960aff738d32087087bdf63a5473e7df/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130fc497b8ee68dce163e4254d9b0356411d1490e868bd8790028bc46c5cc297", size = 450939, upload-time = "2025-06-15T19:05:26.494Z" },
|
4054
|
-
{ url = "https://files.pythonhosted.org/packages/40/45/a7b56fb129700f3cfe2594a01aa38d033b92a33dddce86c8dfdfc1247b72/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:50a51a90610d0845a5931a780d8e51d7bd7f309ebc25132ba975aca016b576a0", size = 457270, upload-time = "2025-06-15T19:05:27.466Z" },
|
4055
|
-
{ url = "https://files.pythonhosted.org/packages/b5/c8/fa5ef9476b1d02dc6b5e258f515fcaaecf559037edf8b6feffcbc097c4b8/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc44678a72ac0910bac46fa6a0de6af9ba1355669b3dfaf1ce5f05ca7a74364e", size = 483370, upload-time = "2025-06-15T19:05:28.548Z" },
|
4056
|
-
{ url = "https://files.pythonhosted.org/packages/98/68/42cfcdd6533ec94f0a7aab83f759ec11280f70b11bfba0b0f885e298f9bd/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a543492513a93b001975ae283a51f4b67973662a375a403ae82f420d2c7205ee", size = 598654, upload-time = "2025-06-15T19:05:29.997Z" },
|
4057
|
-
{ url = "https://files.pythonhosted.org/packages/d3/74/b2a1544224118cc28df7e59008a929e711f9c68ce7d554e171b2dc531352/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ac164e20d17cc285f2b94dc31c384bc3aa3dd5e7490473b3db043dd70fbccfd", size = 478667, upload-time = "2025-06-15T19:05:31.172Z" },
|
4058
|
-
{ url = "https://files.pythonhosted.org/packages/8c/77/e3362fe308358dc9f8588102481e599c83e1b91c2ae843780a7ded939a35/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7590d5a455321e53857892ab8879dce62d1f4b04748769f5adf2e707afb9d4f", size = 452213, upload-time = "2025-06-15T19:05:32.299Z" },
|
4059
|
-
{ url = "https://files.pythonhosted.org/packages/6e/17/c8f1a36540c9a1558d4faf08e909399e8133599fa359bf52ec8fcee5be6f/watchfiles-1.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:37d3d3f7defb13f62ece99e9be912afe9dd8a0077b7c45ee5a57c74811d581a4", size = 626718, upload-time = "2025-06-15T19:05:33.415Z" },
|
4060
|
-
{ url = "https://files.pythonhosted.org/packages/26/45/fb599be38b4bd38032643783d7496a26a6f9ae05dea1a42e58229a20ac13/watchfiles-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7080c4bb3efd70a07b1cc2df99a7aa51d98685be56be6038c3169199d0a1c69f", size = 623098, upload-time = "2025-06-15T19:05:34.534Z" },
|
4061
|
-
{ url = "https://files.pythonhosted.org/packages/a1/e7/fdf40e038475498e160cd167333c946e45d8563ae4dd65caf757e9ffe6b4/watchfiles-1.1.0-cp312-cp312-win32.whl", hash = "sha256:cbcf8630ef4afb05dc30107bfa17f16c0896bb30ee48fc24bf64c1f970f3b1fd", size = 279209, upload-time = "2025-06-15T19:05:35.577Z" },
|
4062
|
-
{ url = "https://files.pythonhosted.org/packages/3f/d3/3ae9d5124ec75143bdf088d436cba39812122edc47709cd2caafeac3266f/watchfiles-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:cbd949bdd87567b0ad183d7676feb98136cde5bb9025403794a4c0db28ed3a47", size = 292786, upload-time = "2025-06-15T19:05:36.559Z" },
|
4063
|
-
{ url = "https://files.pythonhosted.org/packages/26/2f/7dd4fc8b5f2b34b545e19629b4a018bfb1de23b3a496766a2c1165ca890d/watchfiles-1.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:0a7d40b77f07be87c6faa93d0951a0fcd8cbca1ddff60a1b65d741bac6f3a9f6", size = 284343, upload-time = "2025-06-15T19:05:37.5Z" },
|
4064
|
-
{ url = "https://files.pythonhosted.org/packages/d3/42/fae874df96595556a9089ade83be34a2e04f0f11eb53a8dbf8a8a5e562b4/watchfiles-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5007f860c7f1f8df471e4e04aaa8c43673429047d63205d1630880f7637bca30", size = 402004, upload-time = "2025-06-15T19:05:38.499Z" },
|
4065
|
-
{ url = "https://files.pythonhosted.org/packages/fa/55/a77e533e59c3003d9803c09c44c3651224067cbe7fb5d574ddbaa31e11ca/watchfiles-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:20ecc8abbd957046f1fe9562757903f5eaf57c3bce70929fda6c7711bb58074a", size = 393671, upload-time = "2025-06-15T19:05:39.52Z" },
|
4066
|
-
{ url = "https://files.pythonhosted.org/packages/05/68/b0afb3f79c8e832e6571022611adbdc36e35a44e14f129ba09709aa4bb7a/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2f0498b7d2a3c072766dba3274fe22a183dbea1f99d188f1c6c72209a1063dc", size = 449772, upload-time = "2025-06-15T19:05:40.897Z" },
|
4067
|
-
{ url = "https://files.pythonhosted.org/packages/ff/05/46dd1f6879bc40e1e74c6c39a1b9ab9e790bf1f5a2fe6c08b463d9a807f4/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:239736577e848678e13b201bba14e89718f5c2133dfd6b1f7846fa1b58a8532b", size = 456789, upload-time = "2025-06-15T19:05:42.045Z" },
|
4068
|
-
{ url = "https://files.pythonhosted.org/packages/8b/ca/0eeb2c06227ca7f12e50a47a3679df0cd1ba487ea19cf844a905920f8e95/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eff4b8d89f444f7e49136dc695599a591ff769300734446c0a86cba2eb2f9895", size = 482551, upload-time = "2025-06-15T19:05:43.781Z" },
|
4069
|
-
{ url = "https://files.pythonhosted.org/packages/31/47/2cecbd8694095647406645f822781008cc524320466ea393f55fe70eed3b/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12b0a02a91762c08f7264e2e79542f76870c3040bbc847fb67410ab81474932a", size = 597420, upload-time = "2025-06-15T19:05:45.244Z" },
|
4070
|
-
{ url = "https://files.pythonhosted.org/packages/d9/7e/82abc4240e0806846548559d70f0b1a6dfdca75c1b4f9fa62b504ae9b083/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:29e7bc2eee15cbb339c68445959108803dc14ee0c7b4eea556400131a8de462b", size = 477950, upload-time = "2025-06-15T19:05:46.332Z" },
|
4071
|
-
{ url = "https://files.pythonhosted.org/packages/25/0d/4d564798a49bf5482a4fa9416dea6b6c0733a3b5700cb8a5a503c4b15853/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9481174d3ed982e269c090f780122fb59cee6c3796f74efe74e70f7780ed94c", size = 451706, upload-time = "2025-06-15T19:05:47.459Z" },
|
4072
|
-
{ url = "https://files.pythonhosted.org/packages/81/b5/5516cf46b033192d544102ea07c65b6f770f10ed1d0a6d388f5d3874f6e4/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:80f811146831c8c86ab17b640801c25dc0a88c630e855e2bef3568f30434d52b", size = 625814, upload-time = "2025-06-15T19:05:48.654Z" },
|
4073
|
-
{ url = "https://files.pythonhosted.org/packages/0c/dd/7c1331f902f30669ac3e754680b6edb9a0dd06dea5438e61128111fadd2c/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:60022527e71d1d1fda67a33150ee42869042bce3d0fcc9cc49be009a9cded3fb", size = 622820, upload-time = "2025-06-15T19:05:50.088Z" },
|
4074
|
-
{ url = "https://files.pythonhosted.org/packages/1b/14/36d7a8e27cd128d7b1009e7715a7c02f6c131be9d4ce1e5c3b73d0e342d8/watchfiles-1.1.0-cp313-cp313-win32.whl", hash = "sha256:32d6d4e583593cb8576e129879ea0991660b935177c0f93c6681359b3654bfa9", size = 279194, upload-time = "2025-06-15T19:05:51.186Z" },
|
4075
|
-
{ url = "https://files.pythonhosted.org/packages/25/41/2dd88054b849aa546dbeef5696019c58f8e0774f4d1c42123273304cdb2e/watchfiles-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:f21af781a4a6fbad54f03c598ab620e3a77032c5878f3d780448421a6e1818c7", size = 292349, upload-time = "2025-06-15T19:05:52.201Z" },
|
4076
|
-
{ url = "https://files.pythonhosted.org/packages/c8/cf/421d659de88285eb13941cf11a81f875c176f76a6d99342599be88e08d03/watchfiles-1.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:5366164391873ed76bfdf618818c82084c9db7fac82b64a20c44d335eec9ced5", size = 283836, upload-time = "2025-06-15T19:05:53.265Z" },
|
4077
|
-
{ url = "https://files.pythonhosted.org/packages/45/10/6faf6858d527e3599cc50ec9fcae73590fbddc1420bd4fdccfebffeedbc6/watchfiles-1.1.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:17ab167cca6339c2b830b744eaf10803d2a5b6683be4d79d8475d88b4a8a4be1", size = 400343, upload-time = "2025-06-15T19:05:54.252Z" },
|
4078
|
-
{ url = "https://files.pythonhosted.org/packages/03/20/5cb7d3966f5e8c718006d0e97dfe379a82f16fecd3caa7810f634412047a/watchfiles-1.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:328dbc9bff7205c215a7807da7c18dce37da7da718e798356212d22696404339", size = 392916, upload-time = "2025-06-15T19:05:55.264Z" },
|
4079
|
-
{ url = "https://files.pythonhosted.org/packages/8c/07/d8f1176328fa9e9581b6f120b017e286d2a2d22ae3f554efd9515c8e1b49/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7208ab6e009c627b7557ce55c465c98967e8caa8b11833531fdf95799372633", size = 449582, upload-time = "2025-06-15T19:05:56.317Z" },
|
4080
|
-
{ url = "https://files.pythonhosted.org/packages/66/e8/80a14a453cf6038e81d072a86c05276692a1826471fef91df7537dba8b46/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a8f6f72974a19efead54195bc9bed4d850fc047bb7aa971268fd9a8387c89011", size = 456752, upload-time = "2025-06-15T19:05:57.359Z" },
|
4081
|
-
{ url = "https://files.pythonhosted.org/packages/5a/25/0853b3fe0e3c2f5af9ea60eb2e781eade939760239a72c2d38fc4cc335f6/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d181ef50923c29cf0450c3cd47e2f0557b62218c50b2ab8ce2ecaa02bd97e670", size = 481436, upload-time = "2025-06-15T19:05:58.447Z" },
|
4082
|
-
{ url = "https://files.pythonhosted.org/packages/fe/9e/4af0056c258b861fbb29dcb36258de1e2b857be4a9509e6298abcf31e5c9/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adb4167043d3a78280d5d05ce0ba22055c266cf8655ce942f2fb881262ff3cdf", size = 596016, upload-time = "2025-06-15T19:05:59.59Z" },
|
4083
|
-
{ url = "https://files.pythonhosted.org/packages/c5/fa/95d604b58aa375e781daf350897aaaa089cff59d84147e9ccff2447c8294/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5701dc474b041e2934a26d31d39f90fac8a3dee2322b39f7729867f932b1d4", size = 476727, upload-time = "2025-06-15T19:06:01.086Z" },
|
4084
|
-
{ url = "https://files.pythonhosted.org/packages/65/95/fe479b2664f19be4cf5ceeb21be05afd491d95f142e72d26a42f41b7c4f8/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b067915e3c3936966a8607f6fe5487df0c9c4afb85226613b520890049deea20", size = 451864, upload-time = "2025-06-15T19:06:02.144Z" },
|
4085
|
-
{ url = "https://files.pythonhosted.org/packages/d3/8a/3c4af14b93a15ce55901cd7a92e1a4701910f1768c78fb30f61d2b79785b/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:9c733cda03b6d636b4219625a4acb5c6ffb10803338e437fb614fef9516825ef", size = 625626, upload-time = "2025-06-15T19:06:03.578Z" },
|
4086
|
-
{ url = "https://files.pythonhosted.org/packages/da/f5/cf6aa047d4d9e128f4b7cde615236a915673775ef171ff85971d698f3c2c/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:cc08ef8b90d78bfac66f0def80240b0197008e4852c9f285907377b2947ffdcb", size = 622744, upload-time = "2025-06-15T19:06:05.066Z" },
|
4087
|
-
{ url = "https://files.pythonhosted.org/packages/2c/00/70f75c47f05dea6fd30df90f047765f6fc2d6eb8b5a3921379b0b04defa2/watchfiles-1.1.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:9974d2f7dc561cce3bb88dfa8eb309dab64c729de85fba32e98d75cf24b66297", size = 402114, upload-time = "2025-06-15T19:06:06.186Z" },
|
4088
|
-
{ url = "https://files.pythonhosted.org/packages/53/03/acd69c48db4a1ed1de26b349d94077cca2238ff98fd64393f3e97484cae6/watchfiles-1.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c68e9f1fcb4d43798ad8814c4c1b61547b014b667216cb754e606bfade587018", size = 393879, upload-time = "2025-06-15T19:06:07.369Z" },
|
4089
|
-
{ url = "https://files.pythonhosted.org/packages/2f/c8/a9a2a6f9c8baa4eceae5887fecd421e1b7ce86802bcfc8b6a942e2add834/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95ab1594377effac17110e1352989bdd7bdfca9ff0e5eeccd8c69c5389b826d0", size = 450026, upload-time = "2025-06-15T19:06:08.476Z" },
|
4090
|
-
{ url = "https://files.pythonhosted.org/packages/fe/51/d572260d98388e6e2b967425c985e07d47ee6f62e6455cefb46a6e06eda5/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fba9b62da882c1be1280a7584ec4515d0a6006a94d6e5819730ec2eab60ffe12", size = 457917, upload-time = "2025-06-15T19:06:09.988Z" },
|
4091
|
-
{ url = "https://files.pythonhosted.org/packages/c6/2d/4258e52917bf9f12909b6ec314ff9636276f3542f9d3807d143f27309104/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3434e401f3ce0ed6b42569128b3d1e3af773d7ec18751b918b89cd49c14eaafb", size = 483602, upload-time = "2025-06-15T19:06:11.088Z" },
|
4092
|
-
{ url = "https://files.pythonhosted.org/packages/84/99/bee17a5f341a4345fe7b7972a475809af9e528deba056f8963d61ea49f75/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa257a4d0d21fcbca5b5fcba9dca5a78011cb93c0323fb8855c6d2dfbc76eb77", size = 596758, upload-time = "2025-06-15T19:06:12.197Z" },
|
4093
|
-
{ url = "https://files.pythonhosted.org/packages/40/76/e4bec1d59b25b89d2b0716b41b461ed655a9a53c60dc78ad5771fda5b3e6/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7fd1b3879a578a8ec2076c7961076df540b9af317123f84569f5a9ddee64ce92", size = 477601, upload-time = "2025-06-15T19:06:13.391Z" },
|
4094
|
-
{ url = "https://files.pythonhosted.org/packages/1f/fa/a514292956f4a9ce3c567ec0c13cce427c158e9f272062685a8a727d08fc/watchfiles-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc7a30eeb0e20ecc5f4bd113cd69dcdb745a07c68c0370cea919f373f65d9e", size = 451936, upload-time = "2025-06-15T19:06:14.656Z" },
|
4095
|
-
{ url = "https://files.pythonhosted.org/packages/32/5d/c3bf927ec3bbeb4566984eba8dd7a8eb69569400f5509904545576741f88/watchfiles-1.1.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:891c69e027748b4a73847335d208e374ce54ca3c335907d381fde4e41661b13b", size = 626243, upload-time = "2025-06-15T19:06:16.232Z" },
|
4096
|
-
{ url = "https://files.pythonhosted.org/packages/e6/65/6e12c042f1a68c556802a84d54bb06d35577c81e29fba14019562479159c/watchfiles-1.1.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:12fe8eaffaf0faa7906895b4f8bb88264035b3f0243275e0bf24af0436b27259", size = 623073, upload-time = "2025-06-15T19:06:17.457Z" },
|
4097
|
-
{ url = "https://files.pythonhosted.org/packages/89/ab/7f79d9bf57329e7cbb0a6fd4c7bd7d0cee1e4a8ef0041459f5409da3506c/watchfiles-1.1.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:bfe3c517c283e484843cb2e357dd57ba009cff351edf45fb455b5fbd1f45b15f", size = 400872, upload-time = "2025-06-15T19:06:18.57Z" },
|
4098
|
-
{ url = "https://files.pythonhosted.org/packages/df/d5/3f7bf9912798e9e6c516094db6b8932df53b223660c781ee37607030b6d3/watchfiles-1.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a9ccbf1f129480ed3044f540c0fdbc4ee556f7175e5ab40fe077ff6baf286d4e", size = 392877, upload-time = "2025-06-15T19:06:19.55Z" },
|
4099
|
-
{ url = "https://files.pythonhosted.org/packages/0d/c5/54ec7601a2798604e01c75294770dbee8150e81c6e471445d7601610b495/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba0e3255b0396cac3cc7bbace76404dd72b5438bf0d8e7cefa2f79a7f3649caa", size = 449645, upload-time = "2025-06-15T19:06:20.66Z" },
|
4100
|
-
{ url = "https://files.pythonhosted.org/packages/0a/04/c2f44afc3b2fce21ca0b7802cbd37ed90a29874f96069ed30a36dfe57c2b/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4281cd9fce9fc0a9dbf0fc1217f39bf9cf2b4d315d9626ef1d4e87b84699e7e8", size = 457424, upload-time = "2025-06-15T19:06:21.712Z" },
|
4101
|
-
{ url = "https://files.pythonhosted.org/packages/9f/b0/eec32cb6c14d248095261a04f290636da3df3119d4040ef91a4a50b29fa5/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d2404af8db1329f9a3c9b79ff63e0ae7131986446901582067d9304ae8aaf7f", size = 481584, upload-time = "2025-06-15T19:06:22.777Z" },
|
4102
|
-
{ url = "https://files.pythonhosted.org/packages/d1/e2/ca4bb71c68a937d7145aa25709e4f5d68eb7698a25ce266e84b55d591bbd/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e78b6ed8165996013165eeabd875c5dfc19d41b54f94b40e9fff0eb3193e5e8e", size = 596675, upload-time = "2025-06-15T19:06:24.226Z" },
|
4103
|
-
{ url = "https://files.pythonhosted.org/packages/a1/dd/b0e4b7fb5acf783816bc950180a6cd7c6c1d2cf7e9372c0ea634e722712b/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:249590eb75ccc117f488e2fabd1bfa33c580e24b96f00658ad88e38844a040bb", size = 477363, upload-time = "2025-06-15T19:06:25.42Z" },
|
4104
|
-
{ url = "https://files.pythonhosted.org/packages/69/c4/088825b75489cb5b6a761a4542645718893d395d8c530b38734f19da44d2/watchfiles-1.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d05686b5487cfa2e2c28ff1aa370ea3e6c5accfe6435944ddea1e10d93872147", size = 452240, upload-time = "2025-06-15T19:06:26.552Z" },
|
4105
|
-
{ url = "https://files.pythonhosted.org/packages/10/8c/22b074814970eeef43b7c44df98c3e9667c1f7bf5b83e0ff0201b0bd43f9/watchfiles-1.1.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:d0e10e6f8f6dc5762adee7dece33b722282e1f59aa6a55da5d493a97282fedd8", size = 625607, upload-time = "2025-06-15T19:06:27.606Z" },
|
4106
|
-
{ url = "https://files.pythonhosted.org/packages/32/fa/a4f5c2046385492b2273213ef815bf71a0d4c1943b784fb904e184e30201/watchfiles-1.1.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:af06c863f152005c7592df1d6a7009c836a247c9d8adb78fef8575a5a98699db", size = 623315, upload-time = "2025-06-15T19:06:29.076Z" },
|
4107
|
-
{ url = "https://files.pythonhosted.org/packages/8c/6b/686dcf5d3525ad17b384fd94708e95193529b460a1b7bf40851f1328ec6e/watchfiles-1.1.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0ece16b563b17ab26eaa2d52230c9a7ae46cf01759621f4fbbca280e438267b3", size = 406910, upload-time = "2025-06-15T19:06:49.335Z" },
|
4108
|
-
{ url = "https://files.pythonhosted.org/packages/f3/d3/71c2dcf81dc1edcf8af9f4d8d63b1316fb0a2dd90cbfd427e8d9dd584a90/watchfiles-1.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:51b81e55d40c4b4aa8658427a3ee7ea847c591ae9e8b81ef94a90b668999353c", size = 398816, upload-time = "2025-06-15T19:06:50.433Z" },
|
4109
|
-
{ url = "https://files.pythonhosted.org/packages/b8/fa/12269467b2fc006f8fce4cd6c3acfa77491dd0777d2a747415f28ccc8c60/watchfiles-1.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2bcdc54ea267fe72bfc7d83c041e4eb58d7d8dc6f578dfddb52f037ce62f432", size = 451584, upload-time = "2025-06-15T19:06:51.834Z" },
|
4110
|
-
{ url = "https://files.pythonhosted.org/packages/bd/d3/254cea30f918f489db09d6a8435a7de7047f8cb68584477a515f160541d6/watchfiles-1.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:923fec6e5461c42bd7e3fd5ec37492c6f3468be0499bc0707b4bbbc16ac21792", size = 454009, upload-time = "2025-06-15T19:06:52.896Z" },
|
4111
|
-
]
|
4112
|
-
|
4113
3926
|
[[package]]
|
4114
3927
|
name = "websockets"
|
4115
3928
|
version = "15.0.1"
|
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
|
@@ -10,6 +10,7 @@ This agent is responsible for:
|
|
10
10
|
|
11
11
|
from __future__ import annotations
|
12
12
|
|
13
|
+
import asyncio
|
13
14
|
import logging
|
14
15
|
from typing import TYPE_CHECKING
|
15
16
|
|
@@ -23,19 +24,18 @@ from droidrun.agent.utils.chat_utils import remove_empty_messages
|
|
23
24
|
from droidrun.agent.utils.device_state_formatter import format_device_state
|
24
25
|
from droidrun.agent.utils.inference import acall_with_retries
|
25
26
|
from droidrun.agent.utils.tools import build_custom_tool_descriptions
|
26
|
-
from droidrun.config_manager.prompt_loader import PromptLoader
|
27
27
|
from droidrun.app_cards.app_card_provider import AppCardProvider
|
28
28
|
from droidrun.app_cards.providers import (
|
29
|
+
CompositeAppCardProvider,
|
29
30
|
LocalAppCardProvider,
|
30
31
|
ServerAppCardProvider,
|
31
|
-
CompositeAppCardProvider,
|
32
32
|
)
|
33
|
+
from droidrun.config_manager.prompt_loader import PromptLoader
|
33
34
|
|
34
|
-
import asyncio
|
35
35
|
if TYPE_CHECKING:
|
36
36
|
from droidrun.agent.droid.events import DroidAgentState
|
37
|
-
from droidrun.tools import Tools
|
38
37
|
from droidrun.config_manager.config_manager import AgentConfig
|
38
|
+
from droidrun.tools import Tools
|
39
39
|
|
40
40
|
|
41
41
|
logger = logging.getLogger("droidrun")
|
File without changes
|
{droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/oneflows/app_starter_workflow.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{droidrun-0.3.10.dev6 → droidrun-0.3.10.dev7}/droidrun/agent/utils/device_state_formatter.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"""App card provider implementations."""
|
2
2
|
|
3
|
+
from droidrun.app_cards.providers.composite_provider import CompositeAppCardProvider
|
3
4
|
from droidrun.app_cards.providers.local_provider import LocalAppCardProvider
|
4
5
|
from droidrun.app_cards.providers.server_provider import ServerAppCardProvider
|
5
|
-
from droidrun.app_cards.providers.composite_provider import CompositeAppCardProvider
|
6
6
|
|
7
7
|
__all__ = ["LocalAppCardProvider", "ServerAppCardProvider", "CompositeAppCardProvider"]
|
File without changes
|
@@ -21,14 +21,14 @@ from droidrun.agent.droid.events import (
|
|
21
21
|
FinalizeEvent,
|
22
22
|
TaskRunnerEvent,
|
23
23
|
)
|
24
|
-
from droidrun.agent.manager.events import (
|
25
|
-
ManagerInternalPlanEvent,
|
26
|
-
ManagerThinkingEvent,
|
27
|
-
)
|
28
24
|
from droidrun.agent.executor.events import (
|
29
25
|
ExecutorInternalActionEvent,
|
30
26
|
ExecutorInternalResultEvent,
|
31
27
|
)
|
28
|
+
from droidrun.agent.manager.events import (
|
29
|
+
ManagerInternalPlanEvent,
|
30
|
+
ManagerThinkingEvent,
|
31
|
+
)
|
32
32
|
|
33
33
|
|
34
34
|
class LogHandler(logging.Handler):
|
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
|