oagi-core 0.10.2__py3-none-any.whl → 0.11.0__py3-none-any.whl
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.
- oagi/agent/default.py +14 -4
- oagi/agent/factories.py +98 -16
- oagi/agent/tasker/planner.py +19 -8
- oagi/agent/tasker/taskee_agent.py +31 -9
- oagi/agent/tasker/tasker_agent.py +16 -5
- oagi/cli/agent.py +70 -31
- oagi/cli/display.py +2 -1
- oagi/cli/server.py +1 -1
- oagi/cli/utils.py +4 -3
- oagi/client/async_.py +19 -6
- oagi/client/base.py +14 -16
- oagi/client/sync.py +19 -6
- oagi/constants.py +43 -0
- oagi/handler/__init__.py +16 -0
- oagi/handler/_macos.py +137 -0
- oagi/handler/_windows.py +101 -0
- oagi/handler/async_pyautogui_action_handler.py +8 -0
- oagi/handler/capslock_manager.py +55 -0
- oagi/handler/pyautogui_action_handler.py +23 -40
- oagi/server/config.py +6 -3
- oagi/server/models.py +5 -3
- oagi/server/session_store.py +8 -6
- oagi/server/socketio_server.py +6 -5
- oagi/task/async_.py +4 -3
- oagi/task/async_short.py +3 -2
- oagi/task/base.py +2 -1
- oagi/task/short.py +3 -2
- oagi/task/sync.py +4 -3
- oagi/types/__init__.py +2 -1
- oagi/types/url.py +25 -0
- {oagi_core-0.10.2.dist-info → oagi_core-0.11.0.dist-info}/METADATA +34 -1
- {oagi_core-0.10.2.dist-info → oagi_core-0.11.0.dist-info}/RECORD +35 -32
- {oagi_core-0.10.2.dist-info → oagi_core-0.11.0.dist-info}/WHEEL +0 -0
- {oagi_core-0.10.2.dist-info → oagi_core-0.11.0.dist-info}/entry_points.txt +0 -0
- {oagi_core-0.10.2.dist-info → oagi_core-0.11.0.dist-info}/licenses/LICENSE +0 -0
oagi/server/session_store.py
CHANGED
|
@@ -11,15 +11,17 @@ from datetime import datetime
|
|
|
11
11
|
from typing import Any
|
|
12
12
|
from uuid import uuid4
|
|
13
13
|
|
|
14
|
+
from ..constants import DEFAULT_TEMPERATURE_LOW, MODE_ACTOR, MODEL_ACTOR
|
|
15
|
+
|
|
14
16
|
|
|
15
17
|
class Session:
|
|
16
18
|
def __init__(
|
|
17
19
|
self,
|
|
18
20
|
session_id: str,
|
|
19
21
|
instruction: str,
|
|
20
|
-
mode: str =
|
|
21
|
-
model: str =
|
|
22
|
-
temperature: float =
|
|
22
|
+
mode: str = MODE_ACTOR,
|
|
23
|
+
model: str = MODEL_ACTOR,
|
|
24
|
+
temperature: float = DEFAULT_TEMPERATURE_LOW,
|
|
23
25
|
):
|
|
24
26
|
self.session_id: str = session_id
|
|
25
27
|
self.instruction: str = instruction
|
|
@@ -53,9 +55,9 @@ class SessionStore:
|
|
|
53
55
|
def create_session(
|
|
54
56
|
self,
|
|
55
57
|
instruction: str,
|
|
56
|
-
mode: str =
|
|
57
|
-
model: str =
|
|
58
|
-
temperature: float =
|
|
58
|
+
mode: str = MODE_ACTOR,
|
|
59
|
+
model: str = MODEL_ACTOR,
|
|
60
|
+
temperature: float = DEFAULT_TEMPERATURE_LOW,
|
|
59
61
|
session_id: str | None = None,
|
|
60
62
|
) -> str:
|
|
61
63
|
if session_id is None:
|
oagi/server/socketio_server.py
CHANGED
|
@@ -15,6 +15,7 @@ from pydantic import ValidationError
|
|
|
15
15
|
|
|
16
16
|
from ..agent import AsyncDefaultAgent, create_agent
|
|
17
17
|
from ..client import AsyncClient
|
|
18
|
+
from ..constants import MODE_ACTOR
|
|
18
19
|
from ..exceptions import check_optional_dependency
|
|
19
20
|
from ..types.models.action import (
|
|
20
21
|
Action,
|
|
@@ -80,7 +81,7 @@ class SessionNamespace(socketio.AsyncNamespace):
|
|
|
80
81
|
session = Session(
|
|
81
82
|
session_id=session_id,
|
|
82
83
|
instruction="",
|
|
83
|
-
mode=
|
|
84
|
+
mode=MODE_ACTOR,
|
|
84
85
|
model=self.config.default_model,
|
|
85
86
|
temperature=self.config.default_temperature,
|
|
86
87
|
)
|
|
@@ -157,8 +158,8 @@ class SessionNamespace(socketio.AsyncNamespace):
|
|
|
157
158
|
session_store.update_activity(session_id)
|
|
158
159
|
|
|
159
160
|
logger.info(
|
|
160
|
-
f"Session {session_id} initialized with: {
|
|
161
|
-
f"(mode={
|
|
161
|
+
f"Session {session_id} initialized with: {session.instruction} "
|
|
162
|
+
f"(mode={session.mode}, model={session.model})"
|
|
162
163
|
)
|
|
163
164
|
|
|
164
165
|
# Create agent and wrappers
|
|
@@ -167,8 +168,8 @@ class SessionNamespace(socketio.AsyncNamespace):
|
|
|
167
168
|
api_key=self.config.oagi_api_key,
|
|
168
169
|
base_url=self.config.oagi_base_url,
|
|
169
170
|
max_steps=self.config.max_steps,
|
|
170
|
-
model=
|
|
171
|
-
temperature=
|
|
171
|
+
model=session.model,
|
|
172
|
+
temperature=session.temperature,
|
|
172
173
|
)
|
|
173
174
|
|
|
174
175
|
action_handler = SocketIOActionHandler(self, session)
|
oagi/task/async_.py
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import warnings
|
|
10
10
|
|
|
11
11
|
from ..client import AsyncClient
|
|
12
|
+
from ..constants import DEFAULT_MAX_STEPS, MODEL_ACTOR
|
|
12
13
|
from ..types import URL, Image, Step
|
|
13
14
|
from .base import BaseActor
|
|
14
15
|
|
|
@@ -20,7 +21,7 @@ class AsyncActor(BaseActor):
|
|
|
20
21
|
self,
|
|
21
22
|
api_key: str | None = None,
|
|
22
23
|
base_url: str | None = None,
|
|
23
|
-
model: str =
|
|
24
|
+
model: str = MODEL_ACTOR,
|
|
24
25
|
temperature: float | None = None,
|
|
25
26
|
):
|
|
26
27
|
super().__init__(api_key, base_url, model, temperature)
|
|
@@ -31,7 +32,7 @@ class AsyncActor(BaseActor):
|
|
|
31
32
|
async def init_task(
|
|
32
33
|
self,
|
|
33
34
|
task_desc: str,
|
|
34
|
-
max_steps: int =
|
|
35
|
+
max_steps: int = DEFAULT_MAX_STEPS,
|
|
35
36
|
):
|
|
36
37
|
"""Initialize a new task with the given description.
|
|
37
38
|
|
|
@@ -89,7 +90,7 @@ class AsyncTask(AsyncActor):
|
|
|
89
90
|
self,
|
|
90
91
|
api_key: str | None = None,
|
|
91
92
|
base_url: str | None = None,
|
|
92
|
-
model: str =
|
|
93
|
+
model: str = MODEL_ACTOR,
|
|
93
94
|
temperature: float | None = None,
|
|
94
95
|
):
|
|
95
96
|
warnings.warn(
|
oagi/task/async_short.py
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
import warnings
|
|
10
10
|
|
|
11
|
+
from ..constants import DEFAULT_MAX_STEPS, MODEL_ACTOR
|
|
11
12
|
from ..logging import get_logger
|
|
12
13
|
from ..types import AsyncActionHandler, AsyncImageProvider
|
|
13
14
|
from .async_ import AsyncActor
|
|
@@ -27,7 +28,7 @@ class AsyncShortTask(AsyncActor, BaseAutoMode):
|
|
|
27
28
|
self,
|
|
28
29
|
api_key: str | None = None,
|
|
29
30
|
base_url: str | None = None,
|
|
30
|
-
model: str =
|
|
31
|
+
model: str = MODEL_ACTOR,
|
|
31
32
|
temperature: float | None = None,
|
|
32
33
|
):
|
|
33
34
|
warnings.warn(
|
|
@@ -43,7 +44,7 @@ class AsyncShortTask(AsyncActor, BaseAutoMode):
|
|
|
43
44
|
async def auto_mode(
|
|
44
45
|
self,
|
|
45
46
|
task_desc: str,
|
|
46
|
-
max_steps: int =
|
|
47
|
+
max_steps: int = DEFAULT_MAX_STEPS,
|
|
47
48
|
executor: AsyncActionHandler = None,
|
|
48
49
|
image_provider: AsyncImageProvider = None,
|
|
49
50
|
temperature: float | None = None,
|
oagi/task/base.py
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
from uuid import uuid4
|
|
10
10
|
|
|
11
|
+
from ..constants import DEFAULT_MAX_STEPS
|
|
11
12
|
from ..logging import get_logger
|
|
12
13
|
from ..types import URL, Image, Step
|
|
13
14
|
from ..types.models import LLMResponse
|
|
@@ -30,7 +31,7 @@ class BaseActor:
|
|
|
30
31
|
self.model = model
|
|
31
32
|
self.temperature = temperature
|
|
32
33
|
self.message_history: list = [] # OpenAI-compatible message history
|
|
33
|
-
self.max_steps: int =
|
|
34
|
+
self.max_steps: int = DEFAULT_MAX_STEPS
|
|
34
35
|
self.current_step: int = 0 # Current step counter
|
|
35
36
|
# Client will be set by subclasses
|
|
36
37
|
self.api_key: str | None = None
|
oagi/task/short.py
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
import warnings
|
|
10
10
|
|
|
11
|
+
from ..constants import DEFAULT_MAX_STEPS, MODEL_ACTOR
|
|
11
12
|
from ..logging import get_logger
|
|
12
13
|
from ..types import ActionHandler, ImageProvider
|
|
13
14
|
from .base import BaseAutoMode
|
|
@@ -27,7 +28,7 @@ class ShortTask(Actor, BaseAutoMode):
|
|
|
27
28
|
self,
|
|
28
29
|
api_key: str | None = None,
|
|
29
30
|
base_url: str | None = None,
|
|
30
|
-
model: str =
|
|
31
|
+
model: str = MODEL_ACTOR,
|
|
31
32
|
temperature: float | None = None,
|
|
32
33
|
):
|
|
33
34
|
warnings.warn(
|
|
@@ -43,7 +44,7 @@ class ShortTask(Actor, BaseAutoMode):
|
|
|
43
44
|
def auto_mode(
|
|
44
45
|
self,
|
|
45
46
|
task_desc: str,
|
|
46
|
-
max_steps: int =
|
|
47
|
+
max_steps: int = DEFAULT_MAX_STEPS,
|
|
47
48
|
executor: ActionHandler = None,
|
|
48
49
|
image_provider: ImageProvider = None,
|
|
49
50
|
temperature: float | None = None,
|
oagi/task/sync.py
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import warnings
|
|
10
10
|
|
|
11
11
|
from ..client import SyncClient
|
|
12
|
+
from ..constants import DEFAULT_MAX_STEPS, MODEL_ACTOR
|
|
12
13
|
from ..types import URL, Image, Step
|
|
13
14
|
from .base import BaseActor
|
|
14
15
|
|
|
@@ -20,7 +21,7 @@ class Actor(BaseActor):
|
|
|
20
21
|
self,
|
|
21
22
|
api_key: str | None = None,
|
|
22
23
|
base_url: str | None = None,
|
|
23
|
-
model: str =
|
|
24
|
+
model: str = MODEL_ACTOR,
|
|
24
25
|
temperature: float | None = None,
|
|
25
26
|
):
|
|
26
27
|
super().__init__(api_key, base_url, model, temperature)
|
|
@@ -31,7 +32,7 @@ class Actor(BaseActor):
|
|
|
31
32
|
def init_task(
|
|
32
33
|
self,
|
|
33
34
|
task_desc: str,
|
|
34
|
-
max_steps: int =
|
|
35
|
+
max_steps: int = DEFAULT_MAX_STEPS,
|
|
35
36
|
):
|
|
36
37
|
"""Initialize a new task with the given description.
|
|
37
38
|
|
|
@@ -87,7 +88,7 @@ class Task(Actor):
|
|
|
87
88
|
self,
|
|
88
89
|
api_key: str | None = None,
|
|
89
90
|
base_url: str | None = None,
|
|
90
|
-
model: str =
|
|
91
|
+
model: str = MODEL_ACTOR,
|
|
91
92
|
temperature: float | None = None,
|
|
92
93
|
):
|
|
93
94
|
warnings.warn(
|
oagi/types/__init__.py
CHANGED
|
@@ -32,7 +32,7 @@ from .step_observer import (
|
|
|
32
32
|
SplitEvent,
|
|
33
33
|
StepEvent,
|
|
34
34
|
)
|
|
35
|
-
from .url import URL
|
|
35
|
+
from .url import URL, extract_uuid_from_url
|
|
36
36
|
|
|
37
37
|
__all__ = [
|
|
38
38
|
"Action",
|
|
@@ -55,6 +55,7 @@ __all__ = [
|
|
|
55
55
|
"ImageProvider",
|
|
56
56
|
"AsyncImageProvider",
|
|
57
57
|
"URL",
|
|
58
|
+
"extract_uuid_from_url",
|
|
58
59
|
"parse_coords",
|
|
59
60
|
"parse_drag_coords",
|
|
60
61
|
"parse_scroll",
|
oagi/types/url.py
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
import re
|
|
1
2
|
from typing import NewType
|
|
2
3
|
|
|
3
4
|
URL = NewType("URL", str)
|
|
5
|
+
|
|
6
|
+
# Pattern to extract UUID from S3 URL
|
|
7
|
+
# Formats:
|
|
8
|
+
# - https://bucket.s3.amazonaws.com/{user_id}/{uuid}.{ext} (download URL)
|
|
9
|
+
# - https://bucket.s3.amazonaws.com/{user_id}/{uuid}?... (presigned URL)
|
|
10
|
+
_UUID_PATTERN = re.compile(
|
|
11
|
+
r"/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\.[a-z]+)?(?:\?|$)",
|
|
12
|
+
re.IGNORECASE,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def extract_uuid_from_url(url: str) -> str | None:
|
|
17
|
+
"""Extract UUID from S3 URL.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
url: S3 URL in one of these formats:
|
|
21
|
+
- https://bucket.s3.amazonaws.com/{user_id}/{uuid}.jpg (download URL)
|
|
22
|
+
- https://bucket.s3.amazonaws.com/{user_id}/{uuid}?... (presigned URL)
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
UUID string if found, None otherwise
|
|
26
|
+
"""
|
|
27
|
+
match = _UUID_PATTERN.search(url)
|
|
28
|
+
return match.group(1) if match else None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: oagi-core
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: Official API of OpenAGI Foundation
|
|
5
5
|
Project-URL: Homepage, https://github.com/agiopen-org/oagi
|
|
6
6
|
Author-email: OpenAGI Foundation <contact@agiopen.org>
|
|
@@ -116,6 +116,39 @@ config = PyautoguiConfig(
|
|
|
116
116
|
action_handler = AsyncPyautoguiActionHandler(config=config)
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
+
### Command Line Interface
|
|
120
|
+
|
|
121
|
+
Run agents directly from the terminal:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Run with actor model
|
|
125
|
+
oagi agent run "Go to nasdaq.com, search for AAPL. Under More, go to Insider Activity" --model lux-actor-1
|
|
126
|
+
|
|
127
|
+
# Run with thinker mode (uses lux-thinker-1 model with more steps)
|
|
128
|
+
oagi agent run "Look up the store hours for the nearest Apple Store to zip code 23456 using the Apple Store Locator" --model lux-thinker-1
|
|
129
|
+
|
|
130
|
+
# Run pre-configured tasker workflows (no instruction needed)
|
|
131
|
+
oagi agent run --mode tasker:software_qa
|
|
132
|
+
|
|
133
|
+
# List all available modes
|
|
134
|
+
oagi agent modes
|
|
135
|
+
|
|
136
|
+
# Check macOS permissions (screen recording & accessibility)
|
|
137
|
+
oagi agent permission
|
|
138
|
+
|
|
139
|
+
# Export execution history
|
|
140
|
+
oagi agent run "Complete the form" --export html --export-file report.html
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
CLI options:
|
|
144
|
+
- `--mode`: Agent mode (default: actor). Use `oagi agent modes` to list available modes
|
|
145
|
+
- `--model`: Override the model (default: determined by mode)
|
|
146
|
+
- `--max-steps`: Maximum steps (default: determined by mode)
|
|
147
|
+
- `--temperature`: Sampling temperature (default: determined by mode)
|
|
148
|
+
- `--step-delay`: Delay after each action before next screenshot (default: 0.3s)
|
|
149
|
+
- `--export`: Export format (markdown, html, json)
|
|
150
|
+
- `--export-file`: Output file path for export
|
|
151
|
+
|
|
119
152
|
### Image Processing
|
|
120
153
|
|
|
121
154
|
Process and optimize images before sending to API:
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
oagi/__init__.py,sha256=xI--F3inDKuNQ2caI4Xx0rdFuUxO24cEeAX6WoGi170,4836
|
|
2
|
+
oagi/constants.py,sha256=ZhlY_g3Z8w8njvoVykuGe3nty8A1LoGpRo5oJPh6qS0,1142
|
|
2
3
|
oagi/exceptions.py,sha256=Rco37GQTPYUfc2vRO3hozxPF_s8mKFDpFvBg2UKWo3Y,3066
|
|
3
4
|
oagi/logging.py,sha256=YT3KCMFj5fzO98R9xlDDgfSotUuz1xRD6OZeYM2rKoo,1760
|
|
4
5
|
oagi/agent/__init__.py,sha256=KTVLUMhbjgpTJoOWMUZkkiqwhgumvbOZV2tJ9XCLfao,901
|
|
5
|
-
oagi/agent/default.py,sha256=
|
|
6
|
-
oagi/agent/factories.py,sha256=
|
|
6
|
+
oagi/agent/default.py,sha256=Ers1Dk6BX-s24ZZXOfiXt9wsilx_LHuTNgi3Yj7Hin4,4653
|
|
7
|
+
oagi/agent/factories.py,sha256=syi_EOlU4SUjo-0CKaML8eIPu3ToUEKua2VHp9lvNF0,5839
|
|
7
8
|
oagi/agent/protocol.py,sha256=IQJGiMN4yZIacrh5e9JQsoM9TyHb8wJRQR4LAk8dSA0,1615
|
|
8
9
|
oagi/agent/registry.py,sha256=7bMA2-pH3xQ9ZavrHB_mnc2fOGSMeICPbOGtHoM7It0,4851
|
|
9
10
|
oagi/agent/observer/__init__.py,sha256=YZ4qvR22pFB0mSDMX6iKKLbBA1dB-nqC7HZVvdMIVGw,909
|
|
@@ -15,55 +16,57 @@ oagi/agent/observer/report_template.html,sha256=NOp280_-P2g_4TYbtqPhYxv-y_x3Pwov
|
|
|
15
16
|
oagi/agent/tasker/__init__.py,sha256=1iTEFe7lzcqh96TL9R0QADPpLJLrUP0shtZ4DlZSv_8,764
|
|
16
17
|
oagi/agent/tasker/memory.py,sha256=NR13l5yxRA8GUE-oupAP4W1n80ZNG0SxpUfxsNltkUY,5033
|
|
17
18
|
oagi/agent/tasker/models.py,sha256=sMQgwIMKhT1tvVF2yoc1hh8GwEiJ6i6qPMy9WoiA8JM,2137
|
|
18
|
-
oagi/agent/tasker/planner.py,sha256=
|
|
19
|
-
oagi/agent/tasker/taskee_agent.py,sha256=
|
|
20
|
-
oagi/agent/tasker/tasker_agent.py,sha256=
|
|
19
|
+
oagi/agent/tasker/planner.py,sha256=nSOOcB4NzrOONFhfNvYzxxrelU5NxpbLMpC7B5Q-L-k,15211
|
|
20
|
+
oagi/agent/tasker/taskee_agent.py,sha256=jYG-c36zbhDM3EEt6-YzLlk-K6n7mjFNquEd6BPaRvw,17867
|
|
21
|
+
oagi/agent/tasker/tasker_agent.py,sha256=kbWvvRVS12S8eFd0PRszFrcSSWRzz_f6Jd7LuaRcwJQ,11285
|
|
21
22
|
oagi/cli/__init__.py,sha256=aDnJViTseShpo5fdGPTj-ELysZhmdvB6Z8mEj2D-_N4,359
|
|
22
|
-
oagi/cli/agent.py,sha256=
|
|
23
|
-
oagi/cli/display.py,sha256=
|
|
23
|
+
oagi/cli/agent.py,sha256=fd7WtR5zoRJmyHDr67zfBvEX-_BLIjPbBqp-dhy4AAk,11061
|
|
24
|
+
oagi/cli/display.py,sha256=Y8_Dn5RIEfRqZUHVGF6URItW0C3XC7bPLWoAmmhvBS0,1829
|
|
24
25
|
oagi/cli/main.py,sha256=faHns0HaQCGyylDn2YZLpjQESuEiMYjoQVoMkt8FsH4,2292
|
|
25
|
-
oagi/cli/server.py,sha256=
|
|
26
|
+
oagi/cli/server.py,sha256=JFpzCOeaftITxesz8Ya-_Efs03bgotBg7aYwmMZhPwU,3033
|
|
26
27
|
oagi/cli/tracking.py,sha256=TdrAcNq_-OjgXltFCoFc8NsO_k6yHbdzHnMn3vAAvKA,1707
|
|
27
|
-
oagi/cli/utils.py,sha256=
|
|
28
|
+
oagi/cli/utils.py,sha256=zIkTrr-ai__3cGSaxiXY-OJs69Fcxd1sHb2FoeyHFtE,3034
|
|
28
29
|
oagi/client/__init__.py,sha256=F9DShPUdb6vZYmN1fpM1VYzp4MWqUao_e_R1KYmM4Q4,410
|
|
29
|
-
oagi/client/async_.py,sha256=
|
|
30
|
-
oagi/client/base.py,sha256=
|
|
31
|
-
oagi/client/sync.py,sha256=
|
|
32
|
-
oagi/handler/__init__.py,sha256=
|
|
33
|
-
oagi/handler/_macos.py,sha256=
|
|
34
|
-
oagi/handler/
|
|
30
|
+
oagi/client/async_.py,sha256=Z8DyQHEl_XAyw1Fs0o3qQzEX9lGlZhqCTSEtQh5XHSw,11204
|
|
31
|
+
oagi/client/base.py,sha256=tKYmhJufg7sqEOOp7nn0S9jv4hDYfM-pBuluh0pqew0,16756
|
|
32
|
+
oagi/client/sync.py,sha256=CcesgCk_b26v_DF9OKpjfSHKSMjK0N2ywAxwaGnJ4fo,11040
|
|
33
|
+
oagi/handler/__init__.py,sha256=vEUvyiUvTRf1GE4vTiz_bQjLv3psdmHyt0mfKJHq24M,1247
|
|
34
|
+
oagi/handler/_macos.py,sha256=Gs8GrhA_WAyv9Yw0D41duliP32Xk6vouyMeWjWJJT90,5187
|
|
35
|
+
oagi/handler/_windows.py,sha256=MSgPDYEOetSjbn9eJDSrdzBVlUGgGsTlegaTDc4C4Ss,2828
|
|
36
|
+
oagi/handler/async_pyautogui_action_handler.py,sha256=wfNRBBURZnwQkNTcs9OPMmFJIAPtnXmcqxWbjda_q7I,1863
|
|
35
37
|
oagi/handler/async_screenshot_maker.py,sha256=8QCtUV59ozpOpvkqhUMb8QDI2qje2gsoFT1qB60tfJM,1689
|
|
38
|
+
oagi/handler/capslock_manager.py,sha256=40LzWt1_1wbncF5koUTdbd9V3eo5Ex_mEWwjtEmHAf4,1878
|
|
36
39
|
oagi/handler/pil_image.py,sha256=yUcAoGBL-aZ0PCjSaAmQsDwtyzjldXHqXQp_OYRk6e4,4080
|
|
37
|
-
oagi/handler/pyautogui_action_handler.py,sha256=
|
|
40
|
+
oagi/handler/pyautogui_action_handler.py,sha256=BVmpKuYAMINJ5Ue_PK_WxFScAqLeyXC64g4NWQUtG_M,10146
|
|
38
41
|
oagi/handler/screenshot_maker.py,sha256=j1jTW-awx3vAnb1N5_FIMBC0Z-rNVQbiBP-S6Gh5dlE,1284
|
|
39
42
|
oagi/server/__init__.py,sha256=uZx8u3vJUb87kkNzwmmVrgAgbqRu0WxyMIQCLSx56kk,452
|
|
40
43
|
oagi/server/agent_wrappers.py,sha256=j8va0A7u80bzOM82nndAplK1uaO_T3kufHWScK6kfWM,3263
|
|
41
|
-
oagi/server/config.py,sha256=
|
|
44
|
+
oagi/server/config.py,sha256=AJ1PLKuxrc6pRuur1hm5DwG2g2otxPwOCfKgzIACkSk,1691
|
|
42
45
|
oagi/server/main.py,sha256=jnTxk7Prc5CzlsUnkBNJp4MOoYN-7HN_Be_m1d3COa8,4829
|
|
43
|
-
oagi/server/models.py,sha256=
|
|
44
|
-
oagi/server/session_store.py,sha256=
|
|
45
|
-
oagi/server/socketio_server.py,sha256=
|
|
46
|
+
oagi/server/models.py,sha256=DXjuf5icpCOgCUGMzzoLfRCoreM541KBWKBZnCk5_S0,2688
|
|
47
|
+
oagi/server/session_store.py,sha256=l7t31rNWuZkIPLnaqrllVusHkJkE8j50PMfyb1di9mI,3750
|
|
48
|
+
oagi/server/socketio_server.py,sha256=8RRf8mAmsArOX2nWylT0g5T5On0gzMod0TWRmk0vrgA,14218
|
|
46
49
|
oagi/task/__init__.py,sha256=g_8_7ZLDLKuCGzyrB42OzY3gSOjd_SxzkJW3_pf-PXs,662
|
|
47
|
-
oagi/task/async_.py,sha256=
|
|
48
|
-
oagi/task/async_short.py,sha256=
|
|
49
|
-
oagi/task/base.py,sha256=
|
|
50
|
-
oagi/task/short.py,sha256=
|
|
51
|
-
oagi/task/sync.py,sha256=
|
|
52
|
-
oagi/types/__init__.py,sha256=
|
|
50
|
+
oagi/task/async_.py,sha256=12BrdE-51bEz2-PZv5X2VW__I_nwq2K1YxGfD3wFxos,3190
|
|
51
|
+
oagi/task/async_short.py,sha256=wVMYpsKGbvqYIe2Ws7cMf8-t7SZKmtrgjW1x_RENMgg,2820
|
|
52
|
+
oagi/task/base.py,sha256=6F_nmJsb2Zw6nUibJyAEW0uQBY_jHiQINUbd_jT5wkQ,5696
|
|
53
|
+
oagi/task/short.py,sha256=D5VX8QGy0o8W7njy74jx95PxU0Rv2Nvoa-2T17aBaZQ,2629
|
|
54
|
+
oagi/task/sync.py,sha256=pKRpIFcetm1n2BgmYGWQeWgV3kKLAQRG9xPlBVQ_pho,3024
|
|
55
|
+
oagi/types/__init__.py,sha256=_UyzzRnoKvp00BUBjxW9Tv3_xBNf8Lxb2PUC2DkjOkg,1384
|
|
53
56
|
oagi/types/action_handler.py,sha256=NH8E-m5qpGqWcXzTSWfF7W0Xdp8SkzJsbhCmQ0B96cg,1075
|
|
54
57
|
oagi/types/async_action_handler.py,sha256=k1AaqSkFcXlxwW8sn-w0WFHGsIqHFLbcOPrkknmSVug,1116
|
|
55
58
|
oagi/types/async_image_provider.py,sha256=UwDl7VOCA3tiSP5k1fnxK86iEa84Yr57MVaoBSa3hOE,1203
|
|
56
59
|
oagi/types/image.py,sha256=KgPCCTJ6D5vHIaGZdbTE7eQEa1WlT6G9tf59ZuUCV2U,537
|
|
57
60
|
oagi/types/image_provider.py,sha256=IhKEnwCGZ5l_rO3AvJ6xv5RZMTmTDmqsFRynI9h0R_M,1145
|
|
58
61
|
oagi/types/step_observer.py,sha256=wXuChzsof7Rh4azvDTIQ22gAwZAYjMAOVIuL8ZGtw-M,2315
|
|
59
|
-
oagi/types/url.py,sha256=
|
|
62
|
+
oagi/types/url.py,sha256=145jLl3yecFBVKhJDbrR63C48D3l9_w0kpA_8C_gM78,868
|
|
60
63
|
oagi/types/models/__init__.py,sha256=gnFh4TddritHjT0Chy-4fv3KZIC6bYCUyGmWm_2IuZw,879
|
|
61
64
|
oagi/types/models/action.py,sha256=Q14xfYJrj9IsrqxDpEIzd6iWS-gLmNHfIX6Ef8k0O9E,2497
|
|
62
65
|
oagi/types/models/client.py,sha256=1xIKBgLSheHfqYbcyRKMDOLQJaKijaKQ5l-COc6e7_k,1471
|
|
63
66
|
oagi/types/models/image_config.py,sha256=tl6abVg_-IAPLwpaWprgknXu7wRWriMg-AEVyUX73v0,1567
|
|
64
67
|
oagi/types/models/step.py,sha256=RSI4H_2rrUBq_xyCoWKaq7JHdJWNobtQppaKC1l0aWU,471
|
|
65
|
-
oagi_core-0.
|
|
66
|
-
oagi_core-0.
|
|
67
|
-
oagi_core-0.
|
|
68
|
-
oagi_core-0.
|
|
69
|
-
oagi_core-0.
|
|
68
|
+
oagi_core-0.11.0.dist-info/METADATA,sha256=y251pGqY3CfcN4umrr21EEMTUTRzvYUQXkruKv6d-e4,9497
|
|
69
|
+
oagi_core-0.11.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
70
|
+
oagi_core-0.11.0.dist-info/entry_points.txt,sha256=zzgsOSWX6aN3KUB0Z1it8DMxFFBJBqmZVqMVAJRjYuw,44
|
|
71
|
+
oagi_core-0.11.0.dist-info/licenses/LICENSE,sha256=sy5DLA2M29jFT4UfWsuBF9BAr3FnRkYtnAu6oDZiIf8,1075
|
|
72
|
+
oagi_core-0.11.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|