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.
@@ -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 = "actor",
21
- model: str = "lux-actor-1",
22
- temperature: float = 0.0,
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 = "actor",
57
- model: str = "lux-actor-1",
58
- temperature: float = 0.0,
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:
@@ -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="actor", # Default 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: {event_data.instruction} "
161
- f"(mode={event_data.mode}, model={event_data.model})"
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=event_data.model,
171
- temperature=event_data.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 = "lux-actor-1",
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 = 20,
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 = "lux-actor-1",
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 = "lux-actor-1",
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 = 20,
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 = 20 # Maximum steps allowed
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 = "lux-actor-1",
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 = 20,
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 = "lux-actor-1",
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 = 20,
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 = "lux-actor-1",
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.10.2
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=JZ4N2RRl0i5W60jumVg9j22XYWi9wn3yMFL92YVdpQA,4359
6
- oagi/agent/factories.py,sha256=QF-Ivey9yx2uDcVSHLXidM-gAPLj1L9jkoQ0tgGJFBw,2293
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=1NJQ2279GlGLMTB6JUhgnJtN46iiEGy2O_czaxRQwsE,14437
19
- oagi/agent/tasker/taskee_agent.py,sha256=X5pFcZIG3uE6p23c2FDdIUZtOnCgW0a9Sdt13NLR5-E,17040
20
- oagi/agent/tasker/tasker_agent.py,sha256=YrblKaTDTjiBt0N3_jDgmJAB7smSxvCJy_2nC9-vtnk,10920
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=fTqr50Q0QO9Gsy_P7iJcb4K7TaDeY3kUXTDQrePVlVQ,9756
23
- oagi/cli/display.py,sha256=rkAxuHa40ZtKdmvwARev1rgyfsNyVvQ-J6RdjOZIPwc,1729
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=Z1ic8r55yaeQBFRCsMNZStC1jRiJdnDGqe9On9LmFzQ,3031
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=BI6C7WvC51NBsXEsjDONjSNwqdD4i0nHA_rsfpyLwmA,2986
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=iEOQun2kxW1iQ4h_TsSKqj-w3LviKLDxddXrteY61Fk,10894
30
- oagi/client/base.py,sha256=lczoKI1FqlqJbfAB6lAuXH2oDCVT-F0_LBVu6OS1pDo,16739
31
- oagi/client/sync.py,sha256=LPCG136BVzzL9yQOW7QdBiEXCDwRzzqL3GXnJHA6ui8,10730
32
- oagi/handler/__init__.py,sha256=Ha11L42K33K3L9S4lQ10UC0DnD5g6egtQUsJpS_tKgg,835
33
- oagi/handler/_macos.py,sha256=aHkp-xGzvWL_SBjuS690i9jf93OITFJfGHzHeYCK65I,1957
34
- oagi/handler/async_pyautogui_action_handler.py,sha256=hQzseR1yBD0QMpgsEVNsUmuApGVAIIyGYD06BXd82Dc,1615
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=AIzxLCZipWlIP8wsJ4qtwhT-bp06KW5ly4FADl_odjQ,10559
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=2gJ-pDpYAxNUubwSsGKOieGcOtNX9b5YGuSqtf6g2P0,1607
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=7zsmjvnIZ0JUcCpE8F2A1OqX4_kGJydraRkbvPHnvn8,2593
44
- oagi/server/session_store.py,sha256=922Sz00_Ao-9fA0dhA1lrzs7yd6wo7xpdYJH4hZmEaI,3634
45
- oagi/server/socketio_server.py,sha256=9FNkx6K-ZbRWylHCKv8zrW0pkiKybDN5pWBANTnouts,14211
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=ev1jnuOQIYahjjMlSCFwtaeyOliePZCpEVt3ocsZXAI,3124
48
- oagi/task/async_short.py,sha256=VMIBKcTQMjadWXPHiJXWlYZqr5v4MeGVYnuKOs7dS3Y,2752
49
- oagi/task/base.py,sha256=D4e4N1cWoObMzaGcXyXGBPKyNbzmxABIjxbHiVrK548,5664
50
- oagi/task/short.py,sha256=xSR5_9BX35UMfITXtCgKXRLU92f4vnqa06c-HSjUO0A,2561
51
- oagi/task/sync.py,sha256=ciDkQYJQZkQyp8buNIKXU9Oy6kD7WIezCh2L0trLDDc,2958
52
- oagi/types/__init__.py,sha256=nhxQBaDssygtscetliQa3AaryvuNZhkVmBYsVcuR-qg,1332
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=Q-1jf5L_4rad4dxyLTg4MXadGgpkH3w4dcoVrVupW-A,54
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.10.2.dist-info/METADATA,sha256=zEpy_q3jUhSphhGi6QYKkvjGvZKLnDq6QSPlOtJ8ppw,8269
66
- oagi_core-0.10.2.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
67
- oagi_core-0.10.2.dist-info/entry_points.txt,sha256=zzgsOSWX6aN3KUB0Z1it8DMxFFBJBqmZVqMVAJRjYuw,44
68
- oagi_core-0.10.2.dist-info/licenses/LICENSE,sha256=sy5DLA2M29jFT4UfWsuBF9BAr3FnRkYtnAu6oDZiIf8,1075
69
- oagi_core-0.10.2.dist-info/RECORD,,
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,,