oagi-core 0.12.0__tar.gz → 0.13.0__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.
- {oagi_core-0.12.0 → oagi_core-0.13.0}/PKG-INFO +42 -1
- {oagi_core-0.12.0 → oagi_core-0.13.0}/README.md +40 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/metapackage/pyproject.toml +2 -2
- {oagi_core-0.12.0 → oagi_core-0.13.0}/metapackage/uv.lock +143 -5
- {oagi_core-0.12.0 → oagi_core-0.13.0}/pyproject.toml +2 -1
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/__init__.py +27 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/default.py +1 -1
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/tasker/taskee_agent.py +1 -1
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/tasker/tasker_agent.py +1 -1
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/cli/agent.py +17 -7
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/client/async_.py +6 -1
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/client/base.py +2 -1
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/client/sync.py +8 -1
- oagi_core-0.13.0/src/oagi/handler/__init__.py +63 -0
- oagi_core-0.13.0/src/oagi/handler/_ydotool.py +158 -0
- oagi_core-0.13.0/src/oagi/handler/async_ydotool_action_handler.py +52 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/handler/pil_image.py +6 -0
- oagi_core-0.12.0/src/oagi/handler/__init__.py → oagi_core-0.13.0/src/oagi/handler/utils.py +0 -19
- oagi_core-0.13.0/src/oagi/handler/wayland_support.py +219 -0
- oagi_core-0.13.0/src/oagi/handler/ydotool_action_handler.py +226 -0
- oagi_core-0.13.0/src/oagi/platform_info.py +51 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/uv.lock +31 -1
- {oagi_core-0.12.0 → oagi_core-0.13.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/.github/ISSUE_TEMPLATE/question.yml +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/.github/workflows/ci.yml +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/.github/workflows/release.yml +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/.gitignore +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/.python-version +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/CONTRIBUTING.md +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/LICENSE +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/Makefile +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/examples/async_google_weather.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/examples/execute_task_auto.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/examples/execute_task_manual.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/examples/google_weather.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/examples/openai_agent_loop_example.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/examples/screenshot_with_config.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/examples/tasker_agent_example.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/actor/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/actor/async_.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/actor/async_short.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/actor/base.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/actor/short.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/actor/sync.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/factories.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/observer/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/observer/agent_observer.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/observer/events.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/observer/exporters.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/observer/protocol.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/observer/report_template.html +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/protocol.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/registry.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/tasker/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/tasker/memory.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/tasker/models.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/agent/tasker/planner.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/cli/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/cli/display.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/cli/main.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/cli/server.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/cli/tracking.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/cli/utils.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/client/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/constants.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/exceptions.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/handler/_macos.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/handler/_windows.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/handler/async_pyautogui_action_handler.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/handler/async_screenshot_maker.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/handler/capslock_manager.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/handler/pyautogui_action_handler.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/handler/screenshot_maker.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/logging.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/server/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/server/agent_wrappers.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/server/config.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/server/main.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/server/models.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/server/session_store.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/server/socketio_server.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/task/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/action_handler.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/async_action_handler.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/async_image_provider.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/image.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/image_provider.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/models/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/models/action.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/models/client.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/models/image_config.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/models/step.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/step_observer.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/types/url.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/utils/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/utils/output_parser.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/src/oagi/utils/prompt_builder.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/conftest.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_action_parsing.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_actor.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_agent/test_agent_wrappers.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_agent/test_default_agent.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_agent_registry.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_async_actor.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_async_client.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_async_handlers.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_cli.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_logging.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_mac_double_click.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_observer.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_pil_image.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_planner.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_planner_memory.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_pyautogui_action_handler.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_screenshot_maker.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_server/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_server/test_config.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_server/test_session_store.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_server/test_socketio_integration.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_sync_client.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_taskee_agent.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/test_tasker_agent.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/utils/__init__.py +0 -0
- {oagi_core-0.12.0 → oagi_core-0.13.0}/tests/utils/test_output_parser.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: oagi-core
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.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>
|
|
@@ -35,6 +35,7 @@ Requires-Dist: pillow>=9.0.0; extra == 'desktop'
|
|
|
35
35
|
Requires-Dist: pyautogui>=0.9.54; extra == 'desktop'
|
|
36
36
|
Requires-Dist: pyobjc-framework-applicationservices>=8.0; (sys_platform == 'darwin') and extra == 'desktop'
|
|
37
37
|
Requires-Dist: pyobjc-framework-quartz>=8.0; (sys_platform == 'darwin') and extra == 'desktop'
|
|
38
|
+
Requires-Dist: screeninfo>=0.8.1; extra == 'desktop'
|
|
38
39
|
Provides-Extra: server
|
|
39
40
|
Requires-Dist: fastapi[standard]>=0.100.0; extra == 'server'
|
|
40
41
|
Requires-Dist: pydantic-settings>=2.0.0; extra == 'server'
|
|
@@ -82,6 +83,7 @@ With Lux, possibilities are endless. Here are a few examples:
|
|
|
82
83
|
- [Command Line Interface](#command-line-interface)
|
|
83
84
|
- [Image Processing](#image-processing)
|
|
84
85
|
- [Manual Control with Actor](#manual-control-with-actor)
|
|
86
|
+
- [Run On System With Wayland](#run-on-system-with-wayland)
|
|
85
87
|
- [Examples](#examples)
|
|
86
88
|
- [Socket.IO Server (Optional)](#socketio-server-optional)
|
|
87
89
|
- [Installation](#installation-1)
|
|
@@ -239,6 +241,45 @@ async def main():
|
|
|
239
241
|
asyncio.run(main())
|
|
240
242
|
```
|
|
241
243
|
|
|
244
|
+
### Run On System With Wayland
|
|
245
|
+
The SDK includes support for desktop automation on systems with Wayland display, such as Ubuntu/Debain. It leverages `ydotool` and `flameshot` for mouse/keyboard actions and screenshot capture respectively. Please install these two tools on your system in advance and ensure `ydotoold` server is running in the background when running the script.
|
|
246
|
+
|
|
247
|
+
Refer to [ydotool](https://github.com/ReimuNotMoe/ydotool) and [flameshot](https://flameshot.org/#download) for installation instructions. Disable mouse acceleration for more precise mouse control. (In GNOME, run `gsettings set org.gnome.desktop.peripherals.mouse accel-profile 'flat'`)
|
|
248
|
+
|
|
249
|
+
Run tasks automatically with screenshot capture and action execution:
|
|
250
|
+
```python
|
|
251
|
+
import asyncio
|
|
252
|
+
from oagi import AsyncDefaultAgent, AsyncYdotoolActionHandler, AsyncScreenshotMaker
|
|
253
|
+
|
|
254
|
+
async def main():
|
|
255
|
+
agent = AsyncDefaultAgent(max_steps=10)
|
|
256
|
+
completed = await agent.execute(
|
|
257
|
+
"Search weather on Google",
|
|
258
|
+
action_handler=AsyncYdotoolActionHandler(), # Executes mouse/keyboard actions, based on 'ydotool'
|
|
259
|
+
image_provider=AsyncScreenshotMaker(), # Captures screenshots, based on 'flameshot'
|
|
260
|
+
)
|
|
261
|
+
return completed
|
|
262
|
+
|
|
263
|
+
asyncio.run(main())
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Configure Ydotool behavior with custom settings:
|
|
267
|
+
|
|
268
|
+
```python
|
|
269
|
+
from oagi import AsyncYdotoolActionHandler, YdotoolConfig
|
|
270
|
+
|
|
271
|
+
# Customize action behavior
|
|
272
|
+
config = YdotoolConfig(
|
|
273
|
+
scroll_amount=50, # Larger scroll steps (default: 20)
|
|
274
|
+
wait_duration=2.0, # Longer waits (default: 1.0)
|
|
275
|
+
action_pause=1.0, # More pause between actions (default: 0.5)
|
|
276
|
+
capslock_mode="session", # Caps lock mode: 'session' or 'system' (default: 'session')
|
|
277
|
+
socket_address="/tmp/ydotool.sock" # Customized Socket address for ydotool (ydotool uses 'YDOTOOL_SOCKET' environment variable by default)
|
|
278
|
+
)
|
|
279
|
+
|
|
280
|
+
action_handler = AsyncYdotoolActionHandler(config=config)
|
|
281
|
+
```
|
|
282
|
+
|
|
242
283
|
## Examples
|
|
243
284
|
|
|
244
285
|
See the [`examples/`](examples/) directory for more usage patterns:
|
|
@@ -38,6 +38,7 @@ With Lux, possibilities are endless. Here are a few examples:
|
|
|
38
38
|
- [Command Line Interface](#command-line-interface)
|
|
39
39
|
- [Image Processing](#image-processing)
|
|
40
40
|
- [Manual Control with Actor](#manual-control-with-actor)
|
|
41
|
+
- [Run On System With Wayland](#run-on-system-with-wayland)
|
|
41
42
|
- [Examples](#examples)
|
|
42
43
|
- [Socket.IO Server (Optional)](#socketio-server-optional)
|
|
43
44
|
- [Installation](#installation-1)
|
|
@@ -195,6 +196,45 @@ async def main():
|
|
|
195
196
|
asyncio.run(main())
|
|
196
197
|
```
|
|
197
198
|
|
|
199
|
+
### Run On System With Wayland
|
|
200
|
+
The SDK includes support for desktop automation on systems with Wayland display, such as Ubuntu/Debain. It leverages `ydotool` and `flameshot` for mouse/keyboard actions and screenshot capture respectively. Please install these two tools on your system in advance and ensure `ydotoold` server is running in the background when running the script.
|
|
201
|
+
|
|
202
|
+
Refer to [ydotool](https://github.com/ReimuNotMoe/ydotool) and [flameshot](https://flameshot.org/#download) for installation instructions. Disable mouse acceleration for more precise mouse control. (In GNOME, run `gsettings set org.gnome.desktop.peripherals.mouse accel-profile 'flat'`)
|
|
203
|
+
|
|
204
|
+
Run tasks automatically with screenshot capture and action execution:
|
|
205
|
+
```python
|
|
206
|
+
import asyncio
|
|
207
|
+
from oagi import AsyncDefaultAgent, AsyncYdotoolActionHandler, AsyncScreenshotMaker
|
|
208
|
+
|
|
209
|
+
async def main():
|
|
210
|
+
agent = AsyncDefaultAgent(max_steps=10)
|
|
211
|
+
completed = await agent.execute(
|
|
212
|
+
"Search weather on Google",
|
|
213
|
+
action_handler=AsyncYdotoolActionHandler(), # Executes mouse/keyboard actions, based on 'ydotool'
|
|
214
|
+
image_provider=AsyncScreenshotMaker(), # Captures screenshots, based on 'flameshot'
|
|
215
|
+
)
|
|
216
|
+
return completed
|
|
217
|
+
|
|
218
|
+
asyncio.run(main())
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Configure Ydotool behavior with custom settings:
|
|
222
|
+
|
|
223
|
+
```python
|
|
224
|
+
from oagi import AsyncYdotoolActionHandler, YdotoolConfig
|
|
225
|
+
|
|
226
|
+
# Customize action behavior
|
|
227
|
+
config = YdotoolConfig(
|
|
228
|
+
scroll_amount=50, # Larger scroll steps (default: 20)
|
|
229
|
+
wait_duration=2.0, # Longer waits (default: 1.0)
|
|
230
|
+
action_pause=1.0, # More pause between actions (default: 0.5)
|
|
231
|
+
capslock_mode="session", # Caps lock mode: 'session' or 'system' (default: 'session')
|
|
232
|
+
socket_address="/tmp/ydotool.sock" # Customized Socket address for ydotool (ydotool uses 'YDOTOOL_SOCKET' environment variable by default)
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
action_handler = AsyncYdotoolActionHandler(config=config)
|
|
236
|
+
```
|
|
237
|
+
|
|
198
238
|
## Examples
|
|
199
239
|
|
|
200
240
|
See the [`examples/`](examples/) directory for more usage patterns:
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "oagi"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.13.0"
|
|
8
8
|
description = "Official API of OpenAGI Foundation (metapackage with all features)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -16,7 +16,7 @@ authors = [
|
|
|
16
16
|
requires-python = ">= 3.10"
|
|
17
17
|
|
|
18
18
|
dependencies = [
|
|
19
|
-
"oagi-core[desktop,server]==0.
|
|
19
|
+
"oagi-core[desktop,server]==0.13.0",
|
|
20
20
|
]
|
|
21
21
|
|
|
22
22
|
[project.urls]
|
|
@@ -79,6 +79,15 @@ wheels = [
|
|
|
79
79
|
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
|
|
80
80
|
]
|
|
81
81
|
|
|
82
|
+
[[package]]
|
|
83
|
+
name = "distro"
|
|
84
|
+
version = "1.9.0"
|
|
85
|
+
source = { registry = "https://pypi.org/simple" }
|
|
86
|
+
sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" }
|
|
87
|
+
wheels = [
|
|
88
|
+
{ url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" },
|
|
89
|
+
]
|
|
90
|
+
|
|
82
91
|
[[package]]
|
|
83
92
|
name = "dnspython"
|
|
84
93
|
version = "2.8.0"
|
|
@@ -278,6 +287,103 @@ wheels = [
|
|
|
278
287
|
{ url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" },
|
|
279
288
|
]
|
|
280
289
|
|
|
290
|
+
[[package]]
|
|
291
|
+
name = "jiter"
|
|
292
|
+
version = "0.12.0"
|
|
293
|
+
source = { registry = "https://pypi.org/simple" }
|
|
294
|
+
sdist = { url = "https://files.pythonhosted.org/packages/45/9d/e0660989c1370e25848bb4c52d061c71837239738ad937e83edca174c273/jiter-0.12.0.tar.gz", hash = "sha256:64dfcd7d5c168b38d3f9f8bba7fc639edb3418abcc74f22fdbe6b8938293f30b", size = 168294, upload-time = "2025-11-09T20:49:23.302Z" }
|
|
295
|
+
wheels = [
|
|
296
|
+
{ url = "https://files.pythonhosted.org/packages/3b/91/13cb9505f7be74a933f37da3af22e029f6ba64f5669416cb8b2774bc9682/jiter-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:e7acbaba9703d5de82a2c98ae6a0f59ab9770ab5af5fa35e43a303aee962cf65", size = 316652, upload-time = "2025-11-09T20:46:41.021Z" },
|
|
297
|
+
{ url = "https://files.pythonhosted.org/packages/4e/76/4e9185e5d9bb4e482cf6dec6410d5f78dfeb374cfcecbbe9888d07c52daa/jiter-0.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:364f1a7294c91281260364222f535bc427f56d4de1d8ffd718162d21fbbd602e", size = 319829, upload-time = "2025-11-09T20:46:43.281Z" },
|
|
298
|
+
{ url = "https://files.pythonhosted.org/packages/86/af/727de50995d3a153138139f259baae2379d8cb0522c0c00419957bc478a6/jiter-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ee4d25805d4fb23f0a5167a962ef8e002dbfb29c0989378488e32cf2744b62", size = 350568, upload-time = "2025-11-09T20:46:45.075Z" },
|
|
299
|
+
{ url = "https://files.pythonhosted.org/packages/6a/c1/d6e9f4b7a3d5ac63bcbdfddeb50b2dcfbdc512c86cffc008584fdc350233/jiter-0.12.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:796f466b7942107eb889c08433b6e31b9a7ed31daceaecf8af1be26fb26c0ca8", size = 369052, upload-time = "2025-11-09T20:46:46.818Z" },
|
|
300
|
+
{ url = "https://files.pythonhosted.org/packages/eb/be/00824cd530f30ed73fa8a4f9f3890a705519e31ccb9e929f1e22062e7c76/jiter-0.12.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:35506cb71f47dba416694e67af996bbdefb8e3608f1f78799c2e1f9058b01ceb", size = 481585, upload-time = "2025-11-09T20:46:48.319Z" },
|
|
301
|
+
{ url = "https://files.pythonhosted.org/packages/74/b6/2ad7990dff9504d4b5052eef64aa9574bd03d722dc7edced97aad0d47be7/jiter-0.12.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:726c764a90c9218ec9e4f99a33d6bf5ec169163f2ca0fc21b654e88c2abc0abc", size = 380541, upload-time = "2025-11-09T20:46:49.643Z" },
|
|
302
|
+
{ url = "https://files.pythonhosted.org/packages/b5/c7/f3c26ecbc1adbf1db0d6bba99192143d8fe8504729d9594542ecc4445784/jiter-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa47810c5565274810b726b0dc86d18dce5fd17b190ebdc3890851d7b2a0e74", size = 364423, upload-time = "2025-11-09T20:46:51.731Z" },
|
|
303
|
+
{ url = "https://files.pythonhosted.org/packages/18/51/eac547bf3a2d7f7e556927278e14c56a0604b8cddae75815d5739f65f81d/jiter-0.12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8ec0259d3f26c62aed4d73b198c53e316ae11f0f69c8fbe6682c6dcfa0fcce2", size = 389958, upload-time = "2025-11-09T20:46:53.432Z" },
|
|
304
|
+
{ url = "https://files.pythonhosted.org/packages/2c/1f/9ca592e67175f2db156cff035e0d817d6004e293ee0c1d73692d38fcb596/jiter-0.12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:79307d74ea83465b0152fa23e5e297149506435535282f979f18b9033c0bb025", size = 522084, upload-time = "2025-11-09T20:46:54.848Z" },
|
|
305
|
+
{ url = "https://files.pythonhosted.org/packages/83/ff/597d9cdc3028f28224f53e1a9d063628e28b7a5601433e3196edda578cdd/jiter-0.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cf6e6dd18927121fec86739f1a8906944703941d000f0639f3eb6281cc601dca", size = 513054, upload-time = "2025-11-09T20:46:56.487Z" },
|
|
306
|
+
{ url = "https://files.pythonhosted.org/packages/24/6d/1970bce1351bd02e3afcc5f49e4f7ef3dabd7fb688f42be7e8091a5b809a/jiter-0.12.0-cp310-cp310-win32.whl", hash = "sha256:b6ae2aec8217327d872cbfb2c1694489057b9433afce447955763e6ab015b4c4", size = 206368, upload-time = "2025-11-09T20:46:58.638Z" },
|
|
307
|
+
{ url = "https://files.pythonhosted.org/packages/e3/6b/eb1eb505b2d86709b59ec06681a2b14a94d0941db091f044b9f0e16badc0/jiter-0.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:c7f49ce90a71e44f7e1aa9e7ec415b9686bbc6a5961e57eab511015e6759bc11", size = 204847, upload-time = "2025-11-09T20:47:00.295Z" },
|
|
308
|
+
{ url = "https://files.pythonhosted.org/packages/32/f9/eaca4633486b527ebe7e681c431f529b63fe2709e7c5242fc0f43f77ce63/jiter-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8f8a7e317190b2c2d60eb2e8aa835270b008139562d70fe732e1c0020ec53c9", size = 316435, upload-time = "2025-11-09T20:47:02.087Z" },
|
|
309
|
+
{ url = "https://files.pythonhosted.org/packages/10/c1/40c9f7c22f5e6ff715f28113ebaba27ab85f9af2660ad6e1dd6425d14c19/jiter-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2218228a077e784c6c8f1a8e5d6b8cb1dea62ce25811c356364848554b2056cd", size = 320548, upload-time = "2025-11-09T20:47:03.409Z" },
|
|
310
|
+
{ url = "https://files.pythonhosted.org/packages/6b/1b/efbb68fe87e7711b00d2cfd1f26bb4bfc25a10539aefeaa7727329ffb9cb/jiter-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9354ccaa2982bf2188fd5f57f79f800ef622ec67beb8329903abf6b10da7d423", size = 351915, upload-time = "2025-11-09T20:47:05.171Z" },
|
|
311
|
+
{ url = "https://files.pythonhosted.org/packages/15/2d/c06e659888c128ad1e838123d0638f0efad90cc30860cb5f74dd3f2fc0b3/jiter-0.12.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f2607185ea89b4af9a604d4c7ec40e45d3ad03ee66998b031134bc510232bb7", size = 368966, upload-time = "2025-11-09T20:47:06.508Z" },
|
|
312
|
+
{ url = "https://files.pythonhosted.org/packages/6b/20/058db4ae5fb07cf6a4ab2e9b9294416f606d8e467fb74c2184b2a1eeacba/jiter-0.12.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a585a5e42d25f2e71db5f10b171f5e5ea641d3aa44f7df745aa965606111cc2", size = 482047, upload-time = "2025-11-09T20:47:08.382Z" },
|
|
313
|
+
{ url = "https://files.pythonhosted.org/packages/49/bb/dc2b1c122275e1de2eb12905015d61e8316b2f888bdaac34221c301495d6/jiter-0.12.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd9e21d34edff5a663c631f850edcb786719c960ce887a5661e9c828a53a95d9", size = 380835, upload-time = "2025-11-09T20:47:09.81Z" },
|
|
314
|
+
{ url = "https://files.pythonhosted.org/packages/23/7d/38f9cd337575349de16da575ee57ddb2d5a64d425c9367f5ef9e4612e32e/jiter-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a612534770470686cd5431478dc5a1b660eceb410abade6b1b74e320ca98de6", size = 364587, upload-time = "2025-11-09T20:47:11.529Z" },
|
|
315
|
+
{ url = "https://files.pythonhosted.org/packages/f0/a3/b13e8e61e70f0bb06085099c4e2462647f53cc2ca97614f7fedcaa2bb9f3/jiter-0.12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3985aea37d40a908f887b34d05111e0aae822943796ebf8338877fee2ab67725", size = 390492, upload-time = "2025-11-09T20:47:12.993Z" },
|
|
316
|
+
{ url = "https://files.pythonhosted.org/packages/07/71/e0d11422ed027e21422f7bc1883c61deba2d9752b720538430c1deadfbca/jiter-0.12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b1207af186495f48f72529f8d86671903c8c10127cac6381b11dddc4aaa52df6", size = 522046, upload-time = "2025-11-09T20:47:14.6Z" },
|
|
317
|
+
{ url = "https://files.pythonhosted.org/packages/9f/59/b968a9aa7102a8375dbbdfbd2aeebe563c7e5dddf0f47c9ef1588a97e224/jiter-0.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef2fb241de583934c9915a33120ecc06d94aa3381a134570f59eed784e87001e", size = 513392, upload-time = "2025-11-09T20:47:16.011Z" },
|
|
318
|
+
{ url = "https://files.pythonhosted.org/packages/ca/e4/7df62002499080dbd61b505c5cb351aa09e9959d176cac2aa8da6f93b13b/jiter-0.12.0-cp311-cp311-win32.whl", hash = "sha256:453b6035672fecce8007465896a25b28a6b59cfe8fbc974b2563a92f5a92a67c", size = 206096, upload-time = "2025-11-09T20:47:17.344Z" },
|
|
319
|
+
{ url = "https://files.pythonhosted.org/packages/bb/60/1032b30ae0572196b0de0e87dce3b6c26a1eff71aad5fe43dee3082d32e0/jiter-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:ca264b9603973c2ad9435c71a8ec8b49f8f715ab5ba421c85a51cde9887e421f", size = 204899, upload-time = "2025-11-09T20:47:19.365Z" },
|
|
320
|
+
{ url = "https://files.pythonhosted.org/packages/49/d5/c145e526fccdb834063fb45c071df78b0cc426bbaf6de38b0781f45d956f/jiter-0.12.0-cp311-cp311-win_arm64.whl", hash = "sha256:cb00ef392e7d684f2754598c02c409f376ddcef857aae796d559e6cacc2d78a5", size = 188070, upload-time = "2025-11-09T20:47:20.75Z" },
|
|
321
|
+
{ url = "https://files.pythonhosted.org/packages/92/c9/5b9f7b4983f1b542c64e84165075335e8a236fa9e2ea03a0c79780062be8/jiter-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:305e061fa82f4680607a775b2e8e0bcb071cd2205ac38e6ef48c8dd5ebe1cf37", size = 314449, upload-time = "2025-11-09T20:47:22.999Z" },
|
|
322
|
+
{ url = "https://files.pythonhosted.org/packages/98/6e/e8efa0e78de00db0aee82c0cf9e8b3f2027efd7f8a71f859d8f4be8e98ef/jiter-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5c1860627048e302a528333c9307c818c547f214d8659b0705d2195e1a94b274", size = 319855, upload-time = "2025-11-09T20:47:24.779Z" },
|
|
323
|
+
{ url = "https://files.pythonhosted.org/packages/20/26/894cd88e60b5d58af53bec5c6759d1292bd0b37a8b5f60f07abf7a63ae5f/jiter-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df37577a4f8408f7e0ec3205d2a8f87672af8f17008358063a4d6425b6081ce3", size = 350171, upload-time = "2025-11-09T20:47:26.469Z" },
|
|
324
|
+
{ url = "https://files.pythonhosted.org/packages/f5/27/a7b818b9979ac31b3763d25f3653ec3a954044d5e9f5d87f2f247d679fd1/jiter-0.12.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:75fdd787356c1c13a4f40b43c2156276ef7a71eb487d98472476476d803fb2cf", size = 365590, upload-time = "2025-11-09T20:47:27.918Z" },
|
|
325
|
+
{ url = "https://files.pythonhosted.org/packages/ba/7e/e46195801a97673a83746170b17984aa8ac4a455746354516d02ca5541b4/jiter-0.12.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1eb5db8d9c65b112aacf14fcd0faae9913d07a8afea5ed06ccdd12b724e966a1", size = 479462, upload-time = "2025-11-09T20:47:29.654Z" },
|
|
326
|
+
{ url = "https://files.pythonhosted.org/packages/ca/75/f833bfb009ab4bd11b1c9406d333e3b4357709ed0570bb48c7c06d78c7dd/jiter-0.12.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73c568cc27c473f82480abc15d1301adf333a7ea4f2e813d6a2c7d8b6ba8d0df", size = 378983, upload-time = "2025-11-09T20:47:31.026Z" },
|
|
327
|
+
{ url = "https://files.pythonhosted.org/packages/71/b3/7a69d77943cc837d30165643db753471aff5df39692d598da880a6e51c24/jiter-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4321e8a3d868919bcb1abb1db550d41f2b5b326f72df29e53b2df8b006eb9403", size = 361328, upload-time = "2025-11-09T20:47:33.286Z" },
|
|
328
|
+
{ url = "https://files.pythonhosted.org/packages/b0/ac/a78f90caf48d65ba70d8c6efc6f23150bc39dc3389d65bbec2a95c7bc628/jiter-0.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a51bad79f8cc9cac2b4b705039f814049142e0050f30d91695a2d9a6611f126", size = 386740, upload-time = "2025-11-09T20:47:34.703Z" },
|
|
329
|
+
{ url = "https://files.pythonhosted.org/packages/39/b6/5d31c2cc8e1b6a6bcf3c5721e4ca0a3633d1ab4754b09bc7084f6c4f5327/jiter-0.12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2a67b678f6a5f1dd6c36d642d7db83e456bc8b104788262aaefc11a22339f5a9", size = 520875, upload-time = "2025-11-09T20:47:36.058Z" },
|
|
330
|
+
{ url = "https://files.pythonhosted.org/packages/30/b5/4df540fae4e9f68c54b8dab004bd8c943a752f0b00efd6e7d64aa3850339/jiter-0.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efe1a211fe1fd14762adea941e3cfd6c611a136e28da6c39272dbb7a1bbe6a86", size = 511457, upload-time = "2025-11-09T20:47:37.932Z" },
|
|
331
|
+
{ url = "https://files.pythonhosted.org/packages/07/65/86b74010e450a1a77b2c1aabb91d4a91dd3cd5afce99f34d75fd1ac64b19/jiter-0.12.0-cp312-cp312-win32.whl", hash = "sha256:d779d97c834b4278276ec703dc3fc1735fca50af63eb7262f05bdb4e62203d44", size = 204546, upload-time = "2025-11-09T20:47:40.47Z" },
|
|
332
|
+
{ url = "https://files.pythonhosted.org/packages/1c/c7/6659f537f9562d963488e3e55573498a442503ced01f7e169e96a6110383/jiter-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e8269062060212b373316fe69236096aaf4c49022d267c6736eebd66bbbc60bb", size = 205196, upload-time = "2025-11-09T20:47:41.794Z" },
|
|
333
|
+
{ url = "https://files.pythonhosted.org/packages/21/f4/935304f5169edadfec7f9c01eacbce4c90bb9a82035ac1de1f3bd2d40be6/jiter-0.12.0-cp312-cp312-win_arm64.whl", hash = "sha256:06cb970936c65de926d648af0ed3d21857f026b1cf5525cb2947aa5e01e05789", size = 186100, upload-time = "2025-11-09T20:47:43.007Z" },
|
|
334
|
+
{ url = "https://files.pythonhosted.org/packages/3d/a6/97209693b177716e22576ee1161674d1d58029eb178e01866a0422b69224/jiter-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6cc49d5130a14b732e0612bc76ae8db3b49898732223ef8b7599aa8d9810683e", size = 313658, upload-time = "2025-11-09T20:47:44.424Z" },
|
|
335
|
+
{ url = "https://files.pythonhosted.org/packages/06/4d/125c5c1537c7d8ee73ad3d530a442d6c619714b95027143f1b61c0b4dfe0/jiter-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:37f27a32ce36364d2fa4f7fdc507279db604d27d239ea2e044c8f148410defe1", size = 318605, upload-time = "2025-11-09T20:47:45.973Z" },
|
|
336
|
+
{ url = "https://files.pythonhosted.org/packages/99/bf/a840b89847885064c41a5f52de6e312e91fa84a520848ee56c97e4fa0205/jiter-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbc0944aa3d4b4773e348cda635252824a78f4ba44328e042ef1ff3f6080d1cf", size = 349803, upload-time = "2025-11-09T20:47:47.535Z" },
|
|
337
|
+
{ url = "https://files.pythonhosted.org/packages/8a/88/e63441c28e0db50e305ae23e19c1d8fae012d78ed55365da392c1f34b09c/jiter-0.12.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da25c62d4ee1ffbacb97fac6dfe4dcd6759ebdc9015991e92a6eae5816287f44", size = 365120, upload-time = "2025-11-09T20:47:49.284Z" },
|
|
338
|
+
{ url = "https://files.pythonhosted.org/packages/0a/7c/49b02714af4343970eb8aca63396bc1c82fa01197dbb1e9b0d274b550d4e/jiter-0.12.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:048485c654b838140b007390b8182ba9774621103bd4d77c9c3f6f117474ba45", size = 479918, upload-time = "2025-11-09T20:47:50.807Z" },
|
|
339
|
+
{ url = "https://files.pythonhosted.org/packages/69/ba/0a809817fdd5a1db80490b9150645f3aae16afad166960bcd562be194f3b/jiter-0.12.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:635e737fbb7315bef0037c19b88b799143d2d7d3507e61a76751025226b3ac87", size = 379008, upload-time = "2025-11-09T20:47:52.211Z" },
|
|
340
|
+
{ url = "https://files.pythonhosted.org/packages/5f/c3/c9fc0232e736c8877d9e6d83d6eeb0ba4e90c6c073835cc2e8f73fdeef51/jiter-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e017c417b1ebda911bd13b1e40612704b1f5420e30695112efdbed8a4b389ed", size = 361785, upload-time = "2025-11-09T20:47:53.512Z" },
|
|
341
|
+
{ url = "https://files.pythonhosted.org/packages/96/61/61f69b7e442e97ca6cd53086ddc1cf59fb830549bc72c0a293713a60c525/jiter-0.12.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:89b0bfb8b2bf2351fba36bb211ef8bfceba73ef58e7f0c68fb67b5a2795ca2f9", size = 386108, upload-time = "2025-11-09T20:47:54.893Z" },
|
|
342
|
+
{ url = "https://files.pythonhosted.org/packages/e9/2e/76bb3332f28550c8f1eba3bf6e5efe211efda0ddbbaf24976bc7078d42a5/jiter-0.12.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:f5aa5427a629a824a543672778c9ce0c5e556550d1569bb6ea28a85015287626", size = 519937, upload-time = "2025-11-09T20:47:56.253Z" },
|
|
343
|
+
{ url = "https://files.pythonhosted.org/packages/84/d6/fa96efa87dc8bff2094fb947f51f66368fa56d8d4fc9e77b25d7fbb23375/jiter-0.12.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed53b3d6acbcb0fd0b90f20c7cb3b24c357fe82a3518934d4edfa8c6898e498c", size = 510853, upload-time = "2025-11-09T20:47:58.32Z" },
|
|
344
|
+
{ url = "https://files.pythonhosted.org/packages/8a/28/93f67fdb4d5904a708119a6ab58a8f1ec226ff10a94a282e0215402a8462/jiter-0.12.0-cp313-cp313-win32.whl", hash = "sha256:4747de73d6b8c78f2e253a2787930f4fffc68da7fa319739f57437f95963c4de", size = 204699, upload-time = "2025-11-09T20:47:59.686Z" },
|
|
345
|
+
{ url = "https://files.pythonhosted.org/packages/c4/1f/30b0eb087045a0abe2a5c9c0c0c8da110875a1d3be83afd4a9a4e548be3c/jiter-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:e25012eb0c456fcc13354255d0338cd5397cce26c77b2832b3c4e2e255ea5d9a", size = 204258, upload-time = "2025-11-09T20:48:01.01Z" },
|
|
346
|
+
{ url = "https://files.pythonhosted.org/packages/2c/f4/2b4daf99b96bce6fc47971890b14b2a36aef88d7beb9f057fafa032c6141/jiter-0.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:c97b92c54fe6110138c872add030a1f99aea2401ddcdaa21edf74705a646dd60", size = 185503, upload-time = "2025-11-09T20:48:02.35Z" },
|
|
347
|
+
{ url = "https://files.pythonhosted.org/packages/39/ca/67bb15a7061d6fe20b9b2a2fd783e296a1e0f93468252c093481a2f00efa/jiter-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:53839b35a38f56b8be26a7851a48b89bc47e5d88e900929df10ed93b95fea3d6", size = 317965, upload-time = "2025-11-09T20:48:03.783Z" },
|
|
348
|
+
{ url = "https://files.pythonhosted.org/packages/18/af/1788031cd22e29c3b14bc6ca80b16a39a0b10e611367ffd480c06a259831/jiter-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94f669548e55c91ab47fef8bddd9c954dab1938644e715ea49d7e117015110a4", size = 345831, upload-time = "2025-11-09T20:48:05.55Z" },
|
|
349
|
+
{ url = "https://files.pythonhosted.org/packages/05/17/710bf8472d1dff0d3caf4ced6031060091c1320f84ee7d5dcbed1f352417/jiter-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:351d54f2b09a41600ffea43d081522d792e81dcfb915f6d2d242744c1cc48beb", size = 361272, upload-time = "2025-11-09T20:48:06.951Z" },
|
|
350
|
+
{ url = "https://files.pythonhosted.org/packages/fb/f1/1dcc4618b59761fef92d10bcbb0b038b5160be653b003651566a185f1a5c/jiter-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2a5e90604620f94bf62264e7c2c038704d38217b7465b863896c6d7c902b06c7", size = 204604, upload-time = "2025-11-09T20:48:08.328Z" },
|
|
351
|
+
{ url = "https://files.pythonhosted.org/packages/d9/32/63cb1d9f1c5c6632a783c0052cde9ef7ba82688f7065e2f0d5f10a7e3edb/jiter-0.12.0-cp313-cp313t-win_arm64.whl", hash = "sha256:88ef757017e78d2860f96250f9393b7b577b06a956ad102c29c8237554380db3", size = 185628, upload-time = "2025-11-09T20:48:09.572Z" },
|
|
352
|
+
{ url = "https://files.pythonhosted.org/packages/a8/99/45c9f0dbe4a1416b2b9a8a6d1236459540f43d7fb8883cff769a8db0612d/jiter-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:c46d927acd09c67a9fb1416df45c5a04c27e83aae969267e98fba35b74e99525", size = 312478, upload-time = "2025-11-09T20:48:10.898Z" },
|
|
353
|
+
{ url = "https://files.pythonhosted.org/packages/4c/a7/54ae75613ba9e0f55fcb0bc5d1f807823b5167cc944e9333ff322e9f07dd/jiter-0.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:774ff60b27a84a85b27b88cd5583899c59940bcc126caca97eb2a9df6aa00c49", size = 318706, upload-time = "2025-11-09T20:48:12.266Z" },
|
|
354
|
+
{ url = "https://files.pythonhosted.org/packages/59/31/2aa241ad2c10774baf6c37f8b8e1f39c07db358f1329f4eb40eba179c2a2/jiter-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5433fab222fb072237df3f637d01b81f040a07dcac1cb4a5c75c7aa9ed0bef1", size = 351894, upload-time = "2025-11-09T20:48:13.673Z" },
|
|
355
|
+
{ url = "https://files.pythonhosted.org/packages/54/4f/0f2759522719133a9042781b18cc94e335b6d290f5e2d3e6899d6af933e3/jiter-0.12.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8c593c6e71c07866ec6bfb790e202a833eeec885022296aff6b9e0b92d6a70e", size = 365714, upload-time = "2025-11-09T20:48:15.083Z" },
|
|
356
|
+
{ url = "https://files.pythonhosted.org/packages/dc/6f/806b895f476582c62a2f52c453151edd8a0fde5411b0497baaa41018e878/jiter-0.12.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90d32894d4c6877a87ae00c6b915b609406819dce8bc0d4e962e4de2784e567e", size = 478989, upload-time = "2025-11-09T20:48:16.706Z" },
|
|
357
|
+
{ url = "https://files.pythonhosted.org/packages/86/6c/012d894dc6e1033acd8db2b8346add33e413ec1c7c002598915278a37f79/jiter-0.12.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:798e46eed9eb10c3adbbacbd3bdb5ecd4cf7064e453d00dbef08802dae6937ff", size = 378615, upload-time = "2025-11-09T20:48:18.614Z" },
|
|
358
|
+
{ url = "https://files.pythonhosted.org/packages/87/30/d718d599f6700163e28e2c71c0bbaf6dace692e7df2592fd793ac9276717/jiter-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3f1368f0a6719ea80013a4eb90ba72e75d7ea67cfc7846db2ca504f3df0169a", size = 364745, upload-time = "2025-11-09T20:48:20.117Z" },
|
|
359
|
+
{ url = "https://files.pythonhosted.org/packages/8f/85/315b45ce4b6ddc7d7fceca24068543b02bdc8782942f4ee49d652e2cc89f/jiter-0.12.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65f04a9d0b4406f7e51279710b27484af411896246200e461d80d3ba0caa901a", size = 386502, upload-time = "2025-11-09T20:48:21.543Z" },
|
|
360
|
+
{ url = "https://files.pythonhosted.org/packages/74/0b/ce0434fb40c5b24b368fe81b17074d2840748b4952256bab451b72290a49/jiter-0.12.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:fd990541982a24281d12b67a335e44f117e4c6cbad3c3b75c7dea68bf4ce3a67", size = 519845, upload-time = "2025-11-09T20:48:22.964Z" },
|
|
361
|
+
{ url = "https://files.pythonhosted.org/packages/e8/a3/7a7a4488ba052767846b9c916d208b3ed114e3eb670ee984e4c565b9cf0d/jiter-0.12.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:b111b0e9152fa7df870ecaebb0bd30240d9f7fff1f2003bcb4ed0f519941820b", size = 510701, upload-time = "2025-11-09T20:48:24.483Z" },
|
|
362
|
+
{ url = "https://files.pythonhosted.org/packages/c3/16/052ffbf9d0467b70af24e30f91e0579e13ded0c17bb4a8eb2aed3cb60131/jiter-0.12.0-cp314-cp314-win32.whl", hash = "sha256:a78befb9cc0a45b5a5a0d537b06f8544c2ebb60d19d02c41ff15da28a9e22d42", size = 205029, upload-time = "2025-11-09T20:48:25.749Z" },
|
|
363
|
+
{ url = "https://files.pythonhosted.org/packages/e4/18/3cf1f3f0ccc789f76b9a754bdb7a6977e5d1d671ee97a9e14f7eb728d80e/jiter-0.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:e1fe01c082f6aafbe5c8faf0ff074f38dfb911d53f07ec333ca03f8f6226debf", size = 204960, upload-time = "2025-11-09T20:48:27.415Z" },
|
|
364
|
+
{ url = "https://files.pythonhosted.org/packages/02/68/736821e52ecfdeeb0f024b8ab01b5a229f6b9293bbdb444c27efade50b0f/jiter-0.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:d72f3b5a432a4c546ea4bedc84cce0c3404874f1d1676260b9c7f048a9855451", size = 185529, upload-time = "2025-11-09T20:48:29.125Z" },
|
|
365
|
+
{ url = "https://files.pythonhosted.org/packages/30/61/12ed8ee7a643cce29ac97c2281f9ce3956eb76b037e88d290f4ed0d41480/jiter-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e6ded41aeba3603f9728ed2b6196e4df875348ab97b28fc8afff115ed42ba7a7", size = 318974, upload-time = "2025-11-09T20:48:30.87Z" },
|
|
366
|
+
{ url = "https://files.pythonhosted.org/packages/2d/c6/f3041ede6d0ed5e0e79ff0de4c8f14f401bbf196f2ef3971cdbe5fd08d1d/jiter-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a947920902420a6ada6ad51892082521978e9dd44a802663b001436e4b771684", size = 345932, upload-time = "2025-11-09T20:48:32.658Z" },
|
|
367
|
+
{ url = "https://files.pythonhosted.org/packages/d5/5d/4d94835889edd01ad0e2dbfc05f7bdfaed46292e7b504a6ac7839aa00edb/jiter-0.12.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:add5e227e0554d3a52cf390a7635edaffdf4f8fce4fdbcef3cc2055bb396a30c", size = 367243, upload-time = "2025-11-09T20:48:34.093Z" },
|
|
368
|
+
{ url = "https://files.pythonhosted.org/packages/fd/76/0051b0ac2816253a99d27baf3dda198663aff882fa6ea7deeb94046da24e/jiter-0.12.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f9b1cda8fcb736250d7e8711d4580ebf004a46771432be0ae4796944b5dfa5d", size = 479315, upload-time = "2025-11-09T20:48:35.507Z" },
|
|
369
|
+
{ url = "https://files.pythonhosted.org/packages/70/ae/83f793acd68e5cb24e483f44f482a1a15601848b9b6f199dacb970098f77/jiter-0.12.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:deeb12a2223fe0135c7ff1356a143d57f95bbf1f4a66584f1fc74df21d86b993", size = 380714, upload-time = "2025-11-09T20:48:40.014Z" },
|
|
370
|
+
{ url = "https://files.pythonhosted.org/packages/b1/5e/4808a88338ad2c228b1126b93fcd8ba145e919e886fe910d578230dabe3b/jiter-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c596cc0f4cb574877550ce4ecd51f8037469146addd676d7c1a30ebe6391923f", size = 365168, upload-time = "2025-11-09T20:48:41.462Z" },
|
|
371
|
+
{ url = "https://files.pythonhosted.org/packages/0c/d4/04619a9e8095b42aef436b5aeb4c0282b4ff1b27d1db1508df9f5dc82750/jiter-0.12.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ab4c823b216a4aeab3fdbf579c5843165756bd9ad87cc6b1c65919c4715f783", size = 387893, upload-time = "2025-11-09T20:48:42.921Z" },
|
|
372
|
+
{ url = "https://files.pythonhosted.org/packages/17/ea/d3c7e62e4546fdc39197fa4a4315a563a89b95b6d54c0d25373842a59cbe/jiter-0.12.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:e427eee51149edf962203ff8db75a7514ab89be5cb623fb9cea1f20b54f1107b", size = 520828, upload-time = "2025-11-09T20:48:44.278Z" },
|
|
373
|
+
{ url = "https://files.pythonhosted.org/packages/cc/0b/c6d3562a03fd767e31cb119d9041ea7958c3c80cb3d753eafb19b3b18349/jiter-0.12.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:edb868841f84c111255ba5e80339d386d937ec1fdce419518ce1bd9370fac5b6", size = 511009, upload-time = "2025-11-09T20:48:45.726Z" },
|
|
374
|
+
{ url = "https://files.pythonhosted.org/packages/aa/51/2cb4468b3448a8385ebcd15059d325c9ce67df4e2758d133ab9442b19834/jiter-0.12.0-cp314-cp314t-win32.whl", hash = "sha256:8bbcfe2791dfdb7c5e48baf646d37a6a3dcb5a97a032017741dea9f817dca183", size = 205110, upload-time = "2025-11-09T20:48:47.033Z" },
|
|
375
|
+
{ url = "https://files.pythonhosted.org/packages/b2/c5/ae5ec83dec9c2d1af805fd5fe8f74ebded9c8670c5210ec7820ce0dbeb1e/jiter-0.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2fa940963bf02e1d8226027ef461e36af472dea85d36054ff835aeed944dd873", size = 205223, upload-time = "2025-11-09T20:48:49.076Z" },
|
|
376
|
+
{ url = "https://files.pythonhosted.org/packages/97/9a/3c5391907277f0e55195550cf3fa8e293ae9ee0c00fb402fec1e38c0c82f/jiter-0.12.0-cp314-cp314t-win_arm64.whl", hash = "sha256:506c9708dd29b27288f9f8f1140c3cb0e3d8ddb045956d7757b1fa0e0f39a473", size = 185564, upload-time = "2025-11-09T20:48:50.376Z" },
|
|
377
|
+
{ url = "https://files.pythonhosted.org/packages/fe/54/5339ef1ecaa881c6948669956567a64d2670941925f245c434f494ffb0e5/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:4739a4657179ebf08f85914ce50332495811004cc1747852e8b2041ed2aab9b8", size = 311144, upload-time = "2025-11-09T20:49:10.503Z" },
|
|
378
|
+
{ url = "https://files.pythonhosted.org/packages/27/74/3446c652bffbd5e81ab354e388b1b5fc1d20daac34ee0ed11ff096b1b01a/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:41da8def934bf7bec16cb24bd33c0ca62126d2d45d81d17b864bd5ad721393c3", size = 305877, upload-time = "2025-11-09T20:49:12.269Z" },
|
|
379
|
+
{ url = "https://files.pythonhosted.org/packages/a1/f4/ed76ef9043450f57aac2d4fbeb27175aa0eb9c38f833be6ef6379b3b9a86/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c44ee814f499c082e69872d426b624987dbc5943ab06e9bbaa4f81989fdb79e", size = 340419, upload-time = "2025-11-09T20:49:13.803Z" },
|
|
380
|
+
{ url = "https://files.pythonhosted.org/packages/21/01/857d4608f5edb0664aa791a3d45702e1a5bcfff9934da74035e7b9803846/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd2097de91cf03eaa27b3cbdb969addf83f0179c6afc41bbc4513705e013c65d", size = 347212, upload-time = "2025-11-09T20:49:15.643Z" },
|
|
381
|
+
{ url = "https://files.pythonhosted.org/packages/cb/f5/12efb8ada5f5c9edc1d4555fe383c1fb2eac05ac5859258a72d61981d999/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:e8547883d7b96ef2e5fe22b88f8a4c8725a56e7f4abafff20fd5272d634c7ecb", size = 309974, upload-time = "2025-11-09T20:49:17.187Z" },
|
|
382
|
+
{ url = "https://files.pythonhosted.org/packages/85/15/d6eb3b770f6a0d332675141ab3962fd4a7c270ede3515d9f3583e1d28276/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:89163163c0934854a668ed783a2546a0617f71706a2551a4a0666d91ab365d6b", size = 304233, upload-time = "2025-11-09T20:49:18.734Z" },
|
|
383
|
+
{ url = "https://files.pythonhosted.org/packages/8c/3e/e7e06743294eea2cf02ced6aa0ff2ad237367394e37a0e2b4a1108c67a36/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d96b264ab7d34bbb2312dedc47ce07cd53f06835eacbc16dde3761f47c3a9e7f", size = 338537, upload-time = "2025-11-09T20:49:20.317Z" },
|
|
384
|
+
{ url = "https://files.pythonhosted.org/packages/2f/9c/6753e6522b8d0ef07d3a3d239426669e984fb0eba15a315cdbc1253904e4/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24e864cb30ab82311c6425655b0cdab0a98c5d973b065c66a3f020740c2324c", size = 346110, upload-time = "2025-11-09T20:49:21.817Z" },
|
|
385
|
+
]
|
|
386
|
+
|
|
281
387
|
[[package]]
|
|
282
388
|
name = "markdown-it-py"
|
|
283
389
|
version = "4.0.0"
|
|
@@ -397,27 +503,28 @@ sdist = { url = "https://files.pythonhosted.org/packages/28/fa/b2ba8229b9381e8f6
|
|
|
397
503
|
|
|
398
504
|
[[package]]
|
|
399
505
|
name = "oagi"
|
|
400
|
-
version = "0.
|
|
506
|
+
version = "0.13.0"
|
|
401
507
|
source = { editable = "." }
|
|
402
508
|
dependencies = [
|
|
403
509
|
{ name = "oagi-core", extra = ["desktop", "server"] },
|
|
404
510
|
]
|
|
405
511
|
|
|
406
512
|
[package.metadata]
|
|
407
|
-
requires-dist = [{ name = "oagi-core", extras = ["desktop", "server"], specifier = "==0.
|
|
513
|
+
requires-dist = [{ name = "oagi-core", extras = ["desktop", "server"], specifier = "==0.12.1" }]
|
|
408
514
|
|
|
409
515
|
[[package]]
|
|
410
516
|
name = "oagi-core"
|
|
411
|
-
version = "0.
|
|
517
|
+
version = "0.12.1"
|
|
412
518
|
source = { registry = "https://pypi.org/simple" }
|
|
413
519
|
dependencies = [
|
|
414
520
|
{ name = "httpx" },
|
|
521
|
+
{ name = "openai" },
|
|
415
522
|
{ name = "pydantic" },
|
|
416
523
|
{ name = "rich" },
|
|
417
524
|
]
|
|
418
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
525
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f8/70/0977d856ebfb2af41b1d4804f902ef1f8b929de6663ea9a97d879051a6da/oagi_core-0.12.1.tar.gz", hash = "sha256:d04a73849709833b16c55e24edc06f8f17a58d3389ef8849a66c9d7e93183863", size = 297360, upload-time = "2025-12-17T06:46:59.237Z" }
|
|
419
526
|
wheels = [
|
|
420
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
527
|
+
{ url = "https://files.pythonhosted.org/packages/0b/4c/29d774abb3b1dc1cff021021a941caa2926fffd1b9effd0845e9b1fb5afd/oagi_core-0.12.1-py3-none-any.whl", hash = "sha256:32d7638c701990e42d1d4e3c6cee6530b99aed61eea2d36eb5bba1d6cb12ff38", size = 100565, upload-time = "2025-12-17T06:46:57.868Z" },
|
|
421
528
|
]
|
|
422
529
|
|
|
423
530
|
[package.optional-dependencies]
|
|
@@ -434,6 +541,25 @@ server = [
|
|
|
434
541
|
{ name = "uvicorn", extra = ["standard"] },
|
|
435
542
|
]
|
|
436
543
|
|
|
544
|
+
[[package]]
|
|
545
|
+
name = "openai"
|
|
546
|
+
version = "2.13.0"
|
|
547
|
+
source = { registry = "https://pypi.org/simple" }
|
|
548
|
+
dependencies = [
|
|
549
|
+
{ name = "anyio" },
|
|
550
|
+
{ name = "distro" },
|
|
551
|
+
{ name = "httpx" },
|
|
552
|
+
{ name = "jiter" },
|
|
553
|
+
{ name = "pydantic" },
|
|
554
|
+
{ name = "sniffio" },
|
|
555
|
+
{ name = "tqdm" },
|
|
556
|
+
{ name = "typing-extensions" },
|
|
557
|
+
]
|
|
558
|
+
sdist = { url = "https://files.pythonhosted.org/packages/0f/39/8e347e9fda125324d253084bb1b82407e5e3c7777a03dc398f79b2d95626/openai-2.13.0.tar.gz", hash = "sha256:9ff633b07a19469ec476b1e2b5b26c5ef700886524a7a72f65e6f0b5203142d5", size = 626583, upload-time = "2025-12-16T18:19:44.387Z" }
|
|
559
|
+
wheels = [
|
|
560
|
+
{ url = "https://files.pythonhosted.org/packages/bb/d5/eb52edff49d3d5ea116e225538c118699ddeb7c29fa17ec28af14bc10033/openai-2.13.0-py3-none-any.whl", hash = "sha256:746521065fed68df2f9c2d85613bb50844343ea81f60009b60e6a600c9352c79", size = 1066837, upload-time = "2025-12-16T18:19:43.124Z" },
|
|
561
|
+
]
|
|
562
|
+
|
|
437
563
|
[[package]]
|
|
438
564
|
name = "pillow"
|
|
439
565
|
version = "12.0.0"
|
|
@@ -1225,6 +1351,18 @@ wheels = [
|
|
|
1225
1351
|
{ url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408, upload-time = "2025-10-08T22:01:46.04Z" },
|
|
1226
1352
|
]
|
|
1227
1353
|
|
|
1354
|
+
[[package]]
|
|
1355
|
+
name = "tqdm"
|
|
1356
|
+
version = "4.67.1"
|
|
1357
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1358
|
+
dependencies = [
|
|
1359
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
1360
|
+
]
|
|
1361
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" }
|
|
1362
|
+
wheels = [
|
|
1363
|
+
{ url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" },
|
|
1364
|
+
]
|
|
1365
|
+
|
|
1228
1366
|
[[package]]
|
|
1229
1367
|
name = "typer"
|
|
1230
1368
|
version = "0.20.0"
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "oagi-core"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.13.0"
|
|
8
8
|
description = "Official API of OpenAGI Foundation"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { file = "LICENSE" }
|
|
@@ -33,6 +33,7 @@ desktop = [
|
|
|
33
33
|
"pyautogui>=0.9.54",
|
|
34
34
|
"pyobjc-framework-Quartz>=8.0; sys_platform == 'darwin'",
|
|
35
35
|
"pyobjc-framework-ApplicationServices>=8.0; sys_platform == 'darwin'",
|
|
36
|
+
"screeninfo>=0.8.1"
|
|
36
37
|
]
|
|
37
38
|
server = [
|
|
38
39
|
"fastapi[standard]>=0.100.0",
|
|
@@ -6,8 +6,11 @@
|
|
|
6
6
|
# Licensed under the MIT License.
|
|
7
7
|
# -----------------------------------------------------------------------------
|
|
8
8
|
import importlib
|
|
9
|
+
import importlib.metadata
|
|
9
10
|
from typing import TYPE_CHECKING
|
|
10
11
|
|
|
12
|
+
__version__ = importlib.metadata.version("oagi-core")
|
|
13
|
+
|
|
11
14
|
from oagi.actor import Actor, AsyncActor, AsyncShortTask, AsyncTask, ShortTask, Task
|
|
12
15
|
from oagi.client import AsyncClient, SyncClient
|
|
13
16
|
from oagi.exceptions import (
|
|
@@ -62,6 +65,22 @@ _LAZY_IMPORTS_DATA: dict[str, tuple[str, str | None, str | None]] = {
|
|
|
62
65
|
"create_app": ("oagi.server.main", "socketio", "server"),
|
|
63
66
|
"ServerConfig": ("oagi.server.config", "pydantic_settings", "server"),
|
|
64
67
|
"sio": ("oagi.server.socketio_server", "socketio", "server"),
|
|
68
|
+
# Wayland handlers
|
|
69
|
+
"AsyncYdotoolActionHandler": (
|
|
70
|
+
"oagi.handler.async_ydotool_action_handler",
|
|
71
|
+
"screeninfo",
|
|
72
|
+
"desktop",
|
|
73
|
+
),
|
|
74
|
+
"YdotoolActionHandler": (
|
|
75
|
+
"oagi.handler.ydotool_action_handler",
|
|
76
|
+
"screeninfo",
|
|
77
|
+
"desktop",
|
|
78
|
+
),
|
|
79
|
+
"YdotoolConfig": (
|
|
80
|
+
"oagi.handler.ydotool_action_handler",
|
|
81
|
+
"screeninfo",
|
|
82
|
+
"desktop",
|
|
83
|
+
),
|
|
65
84
|
}
|
|
66
85
|
|
|
67
86
|
if TYPE_CHECKING:
|
|
@@ -70,12 +89,14 @@ if TYPE_CHECKING:
|
|
|
70
89
|
from oagi.agent.tasker import TaskerAgent
|
|
71
90
|
from oagi.handler.async_pyautogui_action_handler import AsyncPyautoguiActionHandler
|
|
72
91
|
from oagi.handler.async_screenshot_maker import AsyncScreenshotMaker
|
|
92
|
+
from oagi.handler.async_ydotool_action_handler import AsyncYdotoolActionHandler
|
|
73
93
|
from oagi.handler.pil_image import PILImage
|
|
74
94
|
from oagi.handler.pyautogui_action_handler import (
|
|
75
95
|
PyautoguiActionHandler,
|
|
76
96
|
PyautoguiConfig,
|
|
77
97
|
)
|
|
78
98
|
from oagi.handler.screenshot_maker import ScreenshotMaker
|
|
99
|
+
from oagi.handler.ydotool_action_handler import YdotoolActionHandler, YdotoolConfig
|
|
79
100
|
from oagi.server.config import ServerConfig
|
|
80
101
|
from oagi.server.main import create_app
|
|
81
102
|
from oagi.server.socketio_server import sio
|
|
@@ -98,6 +119,8 @@ def __dir__() -> list[str]:
|
|
|
98
119
|
|
|
99
120
|
|
|
100
121
|
__all__ = [
|
|
122
|
+
# Version
|
|
123
|
+
"__version__",
|
|
101
124
|
# Core sync classes
|
|
102
125
|
"Actor",
|
|
103
126
|
"AsyncActor",
|
|
@@ -143,4 +166,8 @@ __all__ = [
|
|
|
143
166
|
"create_app",
|
|
144
167
|
"ServerConfig",
|
|
145
168
|
"sio",
|
|
169
|
+
# Lazy imports - Wayland handler classes
|
|
170
|
+
"AsyncYdotoolActionHandler",
|
|
171
|
+
"YdotoolActionHandler",
|
|
172
|
+
"YdotoolConfig",
|
|
146
173
|
]
|
|
@@ -16,7 +16,7 @@ from oagi.constants import (
|
|
|
16
16
|
DEFAULT_TEMPERATURE,
|
|
17
17
|
MODEL_ACTOR,
|
|
18
18
|
)
|
|
19
|
-
from oagi.handler import reset_handler
|
|
19
|
+
from oagi.handler.utils import reset_handler
|
|
20
20
|
from oagi.types import AsyncActionHandler, AsyncImageProvider, AsyncObserver, SplitEvent
|
|
21
21
|
|
|
22
22
|
from ..protocol import AsyncAgent
|
|
@@ -206,14 +206,25 @@ def _warn_missing_permissions() -> None:
|
|
|
206
206
|
|
|
207
207
|
def run_agent(args: argparse.Namespace) -> None:
|
|
208
208
|
# Check if desktop extras are installed
|
|
209
|
-
check_optional_dependency("pyautogui", "Agent execution", "desktop")
|
|
210
209
|
check_optional_dependency("PIL", "Agent execution", "desktop")
|
|
211
210
|
|
|
212
|
-
|
|
213
|
-
_warn_missing_permissions()
|
|
214
|
-
|
|
215
|
-
from oagi import AsyncPyautoguiActionHandler, AsyncScreenshotMaker # noqa: PLC0415
|
|
211
|
+
from oagi import AsyncScreenshotMaker # noqa: PLC0415
|
|
216
212
|
from oagi.agent import create_agent # noqa: PLC0415
|
|
213
|
+
from oagi.handler.wayland_support import is_wayland_display_server # noqa: PLC0415
|
|
214
|
+
|
|
215
|
+
# Select appropriate action handler based on display server
|
|
216
|
+
if is_wayland_display_server():
|
|
217
|
+
check_optional_dependency("screeninfo", "Agent execution (Wayland)", "desktop")
|
|
218
|
+
from oagi import AsyncYdotoolActionHandler # noqa: PLC0415
|
|
219
|
+
|
|
220
|
+
action_handler = AsyncYdotoolActionHandler()
|
|
221
|
+
else:
|
|
222
|
+
check_optional_dependency("pyautogui", "Agent execution", "desktop")
|
|
223
|
+
# Warn about missing macOS permissions (non-blocking)
|
|
224
|
+
_warn_missing_permissions()
|
|
225
|
+
from oagi import AsyncPyautoguiActionHandler # noqa: PLC0415
|
|
226
|
+
|
|
227
|
+
action_handler = AsyncPyautoguiActionHandler()
|
|
217
228
|
|
|
218
229
|
# Get configuration
|
|
219
230
|
api_key = args.oagi_api_key or os.getenv("OAGI_API_KEY")
|
|
@@ -266,8 +277,7 @@ def run_agent(args: argparse.Namespace) -> None:
|
|
|
266
277
|
# Create agent
|
|
267
278
|
agent = create_agent(**agent_kwargs)
|
|
268
279
|
|
|
269
|
-
# Create
|
|
270
|
-
action_handler = AsyncPyautoguiActionHandler()
|
|
280
|
+
# Create image provider
|
|
271
281
|
image_provider = AsyncScreenshotMaker()
|
|
272
282
|
|
|
273
283
|
if args.instruction:
|
|
@@ -19,6 +19,7 @@ from ..constants import (
|
|
|
19
19
|
HTTP_CLIENT_TIMEOUT,
|
|
20
20
|
)
|
|
21
21
|
from ..logging import get_logger
|
|
22
|
+
from ..platform_info import get_sdk_headers
|
|
22
23
|
from ..types import Image
|
|
23
24
|
from ..types.models import GenerateResponse, UploadFileResponse, Usage
|
|
24
25
|
from ..types.models.step import Step
|
|
@@ -54,17 +55,21 @@ class AsyncClient(BaseClient[httpx.AsyncClient]):
|
|
|
54
55
|
):
|
|
55
56
|
super().__init__(base_url, api_key, max_retries)
|
|
56
57
|
|
|
58
|
+
# Get SDK headers for all clients
|
|
59
|
+
sdk_headers = get_sdk_headers()
|
|
60
|
+
|
|
57
61
|
# OpenAI client for chat completions (with retries)
|
|
58
62
|
self.openai_client = AsyncOpenAI(
|
|
59
63
|
api_key=self.api_key,
|
|
60
64
|
base_url=f"{self.base_url}/v1",
|
|
61
65
|
max_retries=self.max_retries,
|
|
66
|
+
default_headers=sdk_headers,
|
|
62
67
|
)
|
|
63
68
|
|
|
64
69
|
# httpx clients for S3 uploads and other endpoints (with retries)
|
|
65
70
|
transport = AsyncHTTPTransport(retries=self.max_retries)
|
|
66
71
|
self.http_client = httpx.AsyncClient(
|
|
67
|
-
transport=transport, base_url=self.base_url
|
|
72
|
+
transport=transport, base_url=self.base_url, headers=sdk_headers
|
|
68
73
|
)
|
|
69
74
|
self.upload_client = httpx.AsyncClient(
|
|
70
75
|
transport=transport, timeout=HTTP_CLIENT_TIMEOUT
|
|
@@ -29,6 +29,7 @@ from ..exceptions import (
|
|
|
29
29
|
ValidationError,
|
|
30
30
|
)
|
|
31
31
|
from ..logging import get_logger
|
|
32
|
+
from ..platform_info import get_sdk_headers
|
|
32
33
|
from ..types.models import (
|
|
33
34
|
ErrorResponse,
|
|
34
35
|
GenerateResponse,
|
|
@@ -73,7 +74,7 @@ class BaseClient(Generic[HttpClientT]):
|
|
|
73
74
|
logger.info(f"Client initialized with base_url: {self.base_url}")
|
|
74
75
|
|
|
75
76
|
def _build_headers(self, api_version: str | None = None) -> dict[str, str]:
|
|
76
|
-
headers
|
|
77
|
+
headers = get_sdk_headers()
|
|
77
78
|
if api_version:
|
|
78
79
|
headers["x-api-version"] = api_version
|
|
79
80
|
if self.api_key:
|
|
@@ -19,6 +19,7 @@ from ..constants import (
|
|
|
19
19
|
HTTP_CLIENT_TIMEOUT,
|
|
20
20
|
)
|
|
21
21
|
from ..logging import get_logger
|
|
22
|
+
from ..platform_info import get_sdk_headers
|
|
22
23
|
from ..types import Image
|
|
23
24
|
from ..types.models import GenerateResponse, UploadFileResponse, Usage
|
|
24
25
|
from ..types.models.step import Step
|
|
@@ -54,16 +55,22 @@ class SyncClient(BaseClient[httpx.Client]):
|
|
|
54
55
|
):
|
|
55
56
|
super().__init__(base_url, api_key, max_retries)
|
|
56
57
|
|
|
58
|
+
# Get SDK headers for all clients
|
|
59
|
+
sdk_headers = get_sdk_headers()
|
|
60
|
+
|
|
57
61
|
# OpenAI client for chat completions (with retries)
|
|
58
62
|
self.openai_client = OpenAI(
|
|
59
63
|
api_key=self.api_key,
|
|
60
64
|
base_url=f"{self.base_url}/v1",
|
|
61
65
|
max_retries=self.max_retries,
|
|
66
|
+
default_headers=sdk_headers,
|
|
62
67
|
)
|
|
63
68
|
|
|
64
69
|
# httpx clients for S3 uploads and other endpoints (with retries)
|
|
65
70
|
transport = HTTPTransport(retries=self.max_retries)
|
|
66
|
-
self.http_client = httpx.Client(
|
|
71
|
+
self.http_client = httpx.Client(
|
|
72
|
+
transport=transport, base_url=self.base_url, headers=sdk_headers
|
|
73
|
+
)
|
|
67
74
|
self.upload_client = httpx.Client(
|
|
68
75
|
transport=transport, timeout=HTTP_CLIENT_TIMEOUT
|
|
69
76
|
)
|