dulus 3.13.7__tar.gz → 3.13.8__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.
- {dulus-3.13.7/dulus.egg-info → dulus-3.13.8}/PKG-INFO +48 -47
- {dulus-3.13.7 → dulus-3.13.8}/README.md +47 -46
- {dulus-3.13.7 → dulus-3.13.8}/docs/CHANGELOG.md +5 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/news.md +3 -1
- {dulus-3.13.7 → dulus-3.13.8/dulus.egg-info}/PKG-INFO +48 -47
- {dulus-3.13.7 → dulus-3.13.8}/dulus.py +2 -245
- {dulus-3.13.7 → dulus-3.13.8}/pyproject.toml +1 -1
- {dulus-3.13.7 → dulus-3.13.8}/LICENSE +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/MANIFEST.in +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/agent.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/algolia_search.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/analytics.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/agents_bridge.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/compressor.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/context.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/githook.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/marketplace.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/mempalace_bridge.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/paths.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/personas.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/plugins.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/server.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/backend/tasks.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/banners/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/banners/banner_rotator.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/banners/banners_dulus_ai.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/batch_api.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/checkpoint/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/checkpoint/hooks.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/checkpoint/store.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/checkpoint/types.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/__main__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/ansi.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/assets/ascii/dulus_logo.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/assets/ascii/eagle.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/assets/ascii/terminal_art.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/banners.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/demo.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/effects.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/effort_slider.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/progress.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/py.typed +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/spinners.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cli_animations/status.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/clipboard_utils.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/cloudsave.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/common.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/compaction.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/config.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/context.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/active_persona.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/marketplace.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/personas.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/plugins/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/composio_plugin/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/composio_plugin/session_manager.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/composio_plugin/tool_generator.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/plugin.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/plugin_tool.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/data/tasks.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/display_blocks.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/API.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/BRAND_GUIDE.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/CONTRIBUTING.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/DEPLOYMENT.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/FAQ.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/GETTING_STARTED.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README_AR.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README_EN.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README_ES.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README_FR.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README_JA.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README_KO.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README_PT.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README_RU.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/README_ZH.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/SECURITY.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/api.html +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/architecture.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/azure-speech-template.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/dashboard/index.html +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/divider.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/dulus-bird.png +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/generate.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/index.html +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/nvidia-models.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/particle-playground.html +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/personas/index.html +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/poetry-banner.png +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/preview.html +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/python-console.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/auto-adapter.png +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/dulus-os.png +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/hero.png +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/lookback_two_windows.png +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/pyc_heap.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/pyc_receipts.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/pyc_trap.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/roundtable.png +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/task-board.png +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/readme/webchat.png +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-agents.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-brainstorm.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-bridges.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-features.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-freetier.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-memory.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-models.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-perms.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-plugins.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-quickstart.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/sec-ssj.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/spinners.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/split-pane.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/terminal-boot.svg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/docs/termux-edge.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/SOURCES.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/dependency_links.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/entry_points.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/requires.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/top_level.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_account.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_bar_client.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_gui.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/client.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/commands.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/config.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/hub.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/tools.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/types.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_quick_menu.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/add_dir_manager.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/afk_mode.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/approval_runtime.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/background_tasks.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/clipboard_utils.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/diff_visualizer.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/export_import.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/hook_engine.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/notification_manager.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/session_fork.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/shell_mode.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/todo_visualizer.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/tree_ls.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/wire_events.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/yolo_mode.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/file_filter.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/fs_compass.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/governance.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/agent_bridge.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/chat_widget.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/main_window.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/personas.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/sandbox_server.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/session_utils.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/settings_dialog.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/sidebar.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/tasks_view.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/themes.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/gui/tool_panel.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/input.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/license_manager.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/lookback.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/audit.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/consolidator.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/context.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/mempalace_bridge.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/offload.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/palace.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/scan.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/adaptation_guides.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/askuserquestion_after_numbered_list.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/background_jobs_no_extra_timers.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/cleverness_over_resources.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/corporate_tls_breaks_curl_cffi.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/hardened_rules.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/investigator_workflow_heuristic.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/native_code_over_sketchy_plugins.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/no_personal_info_in_code.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/searches_include_modified_date.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/tmux_send_keys_power_patterns.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/token_optimization_technique.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/tool_chaining_capability.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/webbridge_evaluate_first_pattern.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/short_memory.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/sessions.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/store.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/tools.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/types.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/memory/vector_search.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/model_params.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/multi_agent/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/multi_agent/subagent.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/multi_agent/tools.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/paste_placeholders.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/personality_config.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/plugin/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/plugin/autoadapter.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/plugin/loader.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/plugin/recommend.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/plugin/store.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/plugin/types.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/profiles.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/providers.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/pyconsole.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/README.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/assets/index-DE51D6wI.css +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/assets/index-DMCCNE9Y.js +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/index.html +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpaper-default.jpg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpapers/default.jpeg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpapers/light.jpeg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpapers/nature.jpeg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpapers/tech.jpeg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox/info.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/sandbox_bootstrap.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/setup.cfg +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/builtin.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/LICENSE-obsidian-skills +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/README.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/defuddle/SKILL.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/json-canvas/SKILL.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/json-canvas/references/EXAMPLES.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-bases/SKILL.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-cli/SKILL.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-markdown/SKILL.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-markdown/references/CALLOUTS.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-markdown/references/EMBEDS.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-markdown/references/PROPERTIES.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/README.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/SKILL.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/addresses.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/advancedbackgroundchecks.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/beenverified.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/clustal.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/clustrmaps.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/cyberbackgroundchecks.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/familytreenow.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/fastpeoplesearch.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/intelius.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/mylife.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/nuwber.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/peekyou.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/peoplefinders.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/radaris.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/rehold.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/searchpeoplefree.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/socialcatfish.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/spokeo.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/thatsthem.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/truepeoplesearch.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/usphonebook.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/whitepages.json +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/legal/ccpa.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/legal/drop.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/legal/gdpr.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/methods.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/site-playbooks.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/state-machine.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/autopilot.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/badbool.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/brokers.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/cdp.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/config.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/crypto.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/dossier.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/email_modes.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/emailer.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/ledger.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/legal.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/paths.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/pdd.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/registry.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/report.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/scan.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/storage.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/tiers.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/vectors.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/consent/authorization.md +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/ccpa-authorized-agent.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/ccpa-deletion.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/ccpa-indirect-deletion.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/gdpr-erasure.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/generic-optout.txt +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/clawhub.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/executor.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/loader.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skill/tools.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/skills.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/soul.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/spinner.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/steer_input.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/subagent.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/task/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/task/store.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/task/tools.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/task/types.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_afk_yolo.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_approval_runtime.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_background_task_tools.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_background_tasks.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_chatgpt_oauth.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_checkpoint.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_cli_animations_integration.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_clipboard_utils.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_compaction.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_composio_tool_generator.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_diff_view.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_diff_visualization.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_display_blocks.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_dulus_account.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_export_import.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_gold_memory_preload.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_grok_usage.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_hook_engine.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_injection_fix.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_json_protocol.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_license.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_lookback_cache.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_lookback_compact.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_mcp.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_mcp_algolia.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_memory.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_memory_home_resolution.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_notification_manager.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_plugin.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_profile_isolation.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_profile_plugin_scope.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_provider_errors.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_session_fork.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_shell_detection.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_shell_mode.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_skills.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_skillssh_algolia.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_steer_input.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_subagent.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_task.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_telegram_buffer.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_think_tool.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_todo_tool.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_todo_visualization.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_tool_registry.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_tree_ls.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_voice.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_webbridge_tabs.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tests/test_wire_events.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tmux_tools.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/token_budget.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tool_registry.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tools.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tools_background.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tools_think.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/tools_todo.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/ui/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/ui/input.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/ui/render.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/updater.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/voice/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/voice/audio_utils.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/voice/keyterms.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/voice/recorder.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/voice/stt.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/voice/tts.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/voice/wake_word.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/webbridge/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/webbridge/core.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/webbridge/tools.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/webchat.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/webchat_server.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/webchat_ui/__init__.py +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/webchat_ui/app.js +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/webchat_ui/index.html +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/webchat_ui/style.css +0 -0
- {dulus-3.13.7 → dulus-3.13.8}/welcome.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: dulus
|
|
3
|
-
Version: 3.13.
|
|
3
|
+
Version: 3.13.8
|
|
4
4
|
Summary: Provider-independent agent runtime for the terminal — cloud and local models, real tools, MCP, plugins, memory, sub-agents, and Dulus OS.
|
|
5
5
|
Author-email: KevRojo <dev@dulus.ai>
|
|
6
6
|
Maintainer-email: KevRojo <dev@dulus.ai>
|
|
@@ -106,6 +106,53 @@ Requires-Dist: pytesseract>=0.3.10; extra == "full"
|
|
|
106
106
|
<img width="1179" height="761" alt="image" src="https://github.com/user-attachments/assets/95c8a306-88e6-4f9d-a1aa-009ac38ebeaf" />
|
|
107
107
|
</p>
|
|
108
108
|
|
|
109
|
+
<p align="center">
|
|
110
|
+
<a href="#fuel--reload-wallet-qr-ready"><strong>⛽ /fuel walkthrough →</strong></a>
|
|
111
|
+
·
|
|
112
|
+
<a href="#get-your-dulus-api-key-no-website-required"><strong>🔑 API key from pip →</strong></a>
|
|
113
|
+
·
|
|
114
|
+
<a href="https://dulus.online"><strong>🚀 dulus.online</strong></a>
|
|
115
|
+
</p>
|
|
116
|
+
|
|
117
|
+
<p align="center">
|
|
118
|
+
<strong>🖥️ Prefer a desktop app?</strong> Download <strong>Dulus Premium</strong> — a signed, auto-updating build for Windows, macOS and Linux.<br>
|
|
119
|
+
<a href="https://github.com/Dulus-Ai/dulus-updates/releases/latest"><strong>⬇️ Download the latest binaries → github.com/Dulus-Ai/dulus-updates</strong></a>
|
|
120
|
+
</p>
|
|
121
|
+
|
|
122
|
+
<p align="center">
|
|
123
|
+
<a href="https://pypi.org/project/dulus/"><img src="https://img.shields.io/pypi/v/dulus.svg?style=flat-square&color=ff6b1f&labelColor=07070a&label=pypi" alt="PyPI version"></a>
|
|
124
|
+
<a href="https://pypi.org/project/dulus/"><img src="https://static.pepy.tech/badge/dulus?style=flat-square" alt="PyPI downloads"></a>
|
|
125
|
+
<a href="https://github.com/KevRojo/Dulus/releases"><img src="https://img.shields.io/github/v/release/KevRojo/Dulus?style=flat-square&color=ff6b1f&labelColor=07070a" alt="Latest release"></a>
|
|
126
|
+
<a href="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml"><img src="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml/badge.svg" alt="Quality checks"></a>
|
|
127
|
+
<a href="https://github.com/KevRojo/Dulus/pkgs/container/dulus"><img src="https://img.shields.io/badge/docker-ghcr.io%2Fkevrojo%2Fdulus-ff6b1f?style=flat-square&labelColor=07070a&logo=docker" alt="Docker image"></a>
|
|
128
|
+
<img src="https://img.shields.io/badge/python-3.10%2B-ff6b1f?style=flat-square&labelColor=07070a&logo=python" alt="Python 3.10+">
|
|
129
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-ff6b1f?style=flat-square&labelColor=07070a" alt="GPLv3 license"></a>
|
|
130
|
+
</p>
|
|
131
|
+
|
|
132
|
+
<p align="center">
|
|
133
|
+
<a href="#install-in-30-seconds"><strong>Install</strong></a> ·
|
|
134
|
+
<a href="#get-your-dulus-api-key-no-website-required"><strong>API key</strong></a> ·
|
|
135
|
+
<a href="#fuel--reload-wallet-qr-ready"><strong>Fuel / QR</strong></a> ·
|
|
136
|
+
<a href="#why-dulus"><strong>Why Dulus</strong></a> ·
|
|
137
|
+
<a href="#one-runtime-every-model"><strong>Models</strong></a> ·
|
|
138
|
+
<a href="#turn-any-python-repo-into-tools"><strong>Extensions</strong></a> ·
|
|
139
|
+
<a href="#agents-that-can-work-without-disappearing"><strong>Agents</strong></a> ·
|
|
140
|
+
<a href="#one-engine-four-surfaces"><strong>Surfaces</strong></a> ·
|
|
141
|
+
<a href="#command-map"><strong>Commands</strong></a> ·
|
|
142
|
+
<a href="https://kevrojo.github.io/Dulus/"><strong>Live tour ↗</strong></a>
|
|
143
|
+
</p>
|
|
144
|
+
|
|
145
|
+
<p align="center">
|
|
146
|
+
<a href="docs/README_ES.md">Español</a> ·
|
|
147
|
+
<a href="docs/README_FR.md">Français</a> ·
|
|
148
|
+
<a href="docs/README_ZH.md">中文</a> ·
|
|
149
|
+
<a href="docs/README_JA.md">日本語</a> ·
|
|
150
|
+
<a href="docs/README_KO.md">한국어</a> ·
|
|
151
|
+
<a href="docs/README_PT.md">Português</a> ·
|
|
152
|
+
<a href="docs/README_RU.md">Русский</a> ·
|
|
153
|
+
<a href="docs/README_AR.md">العربية</a>
|
|
154
|
+
</p>
|
|
155
|
+
|
|
109
156
|
<p align="center">
|
|
110
157
|
<strong>Agentic AI for everyone. No API key. No credit card. Just <code>pip install</code>.</strong>
|
|
111
158
|
</p>
|
|
@@ -181,52 +228,6 @@ dulus
|
|
|
181
228
|
<strong>$DULUS</strong> · <code>control.dulus.ai/v1</code> · 12+ models · spent by the token 🦅
|
|
182
229
|
</p>
|
|
183
230
|
|
|
184
|
-
<p align="center">
|
|
185
|
-
<a href="#fuel--reload-wallet-qr-ready"><strong>⛽ /fuel walkthrough →</strong></a>
|
|
186
|
-
·
|
|
187
|
-
<a href="#get-your-dulus-api-key-no-website-required"><strong>🔑 API key from pip →</strong></a>
|
|
188
|
-
·
|
|
189
|
-
<a href="https://dulus.online"><strong>🚀 dulus.online</strong></a>
|
|
190
|
-
</p>
|
|
191
|
-
|
|
192
|
-
<p align="center">
|
|
193
|
-
<strong>🖥️ Prefer a desktop app?</strong> Download <strong>Dulus Premium</strong> — a signed, auto-updating build for Windows, macOS and Linux.<br>
|
|
194
|
-
<a href="https://github.com/Dulus-Ai/dulus-updates/releases/latest"><strong>⬇️ Download the latest binaries → github.com/Dulus-Ai/dulus-updates</strong></a>
|
|
195
|
-
</p>
|
|
196
|
-
|
|
197
|
-
<p align="center">
|
|
198
|
-
<a href="https://pypi.org/project/dulus/"><img src="https://img.shields.io/pypi/v/dulus.svg?style=flat-square&color=ff6b1f&labelColor=07070a&label=pypi" alt="PyPI version"></a>
|
|
199
|
-
<a href="https://pypi.org/project/dulus/"><img src="https://static.pepy.tech/badge/dulus?style=flat-square" alt="PyPI downloads"></a>
|
|
200
|
-
<a href="https://github.com/KevRojo/Dulus/releases"><img src="https://img.shields.io/github/v/release/KevRojo/Dulus?style=flat-square&color=ff6b1f&labelColor=07070a" alt="Latest release"></a>
|
|
201
|
-
<a href="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml"><img src="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml/badge.svg" alt="Quality checks"></a>
|
|
202
|
-
<a href="https://github.com/KevRojo/Dulus/pkgs/container/dulus"><img src="https://img.shields.io/badge/docker-ghcr.io%2Fkevrojo%2Fdulus-ff6b1f?style=flat-square&labelColor=07070a&logo=docker" alt="Docker image"></a>
|
|
203
|
-
<img src="https://img.shields.io/badge/python-3.10%2B-ff6b1f?style=flat-square&labelColor=07070a&logo=python" alt="Python 3.10+">
|
|
204
|
-
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-ff6b1f?style=flat-square&labelColor=07070a" alt="GPLv3 license"></a>
|
|
205
|
-
</p>
|
|
206
|
-
|
|
207
|
-
<p align="center">
|
|
208
|
-
<a href="#install-in-30-seconds"><strong>Install</strong></a> ·
|
|
209
|
-
<a href="#get-your-dulus-api-key-no-website-required"><strong>API key</strong></a> ·
|
|
210
|
-
<a href="#fuel--reload-wallet-qr-ready"><strong>Fuel / QR</strong></a> ·
|
|
211
|
-
<a href="#why-dulus"><strong>Why Dulus</strong></a> ·
|
|
212
|
-
<a href="#one-runtime-every-model"><strong>Models</strong></a> ·
|
|
213
|
-
<a href="#turn-any-python-repo-into-tools"><strong>Extensions</strong></a> ·
|
|
214
|
-
<a href="#agents-that-can-work-without-disappearing"><strong>Agents</strong></a> ·
|
|
215
|
-
<a href="#one-engine-four-surfaces"><strong>Surfaces</strong></a> ·
|
|
216
|
-
<a href="#command-map"><strong>Commands</strong></a> ·
|
|
217
|
-
<a href="https://kevrojo.github.io/Dulus/"><strong>Live tour ↗</strong></a>
|
|
218
|
-
</p>
|
|
219
|
-
|
|
220
|
-
<p align="center">
|
|
221
|
-
<a href="docs/README_ES.md">Español</a> ·
|
|
222
|
-
<a href="docs/README_FR.md">Français</a> ·
|
|
223
|
-
<a href="docs/README_ZH.md">中文</a> ·
|
|
224
|
-
<a href="docs/README_JA.md">日本語</a> ·
|
|
225
|
-
<a href="docs/README_KO.md">한국어</a> ·
|
|
226
|
-
<a href="docs/README_PT.md">Português</a> ·
|
|
227
|
-
<a href="docs/README_RU.md">Русский</a> ·
|
|
228
|
-
<a href="docs/README_AR.md">العربية</a>
|
|
229
|
-
</p>
|
|
230
231
|
|
|
231
232
|
---
|
|
232
233
|
|
|
@@ -8,6 +8,53 @@
|
|
|
8
8
|
<img width="1179" height="761" alt="image" src="https://github.com/user-attachments/assets/95c8a306-88e6-4f9d-a1aa-009ac38ebeaf" />
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="#fuel--reload-wallet-qr-ready"><strong>⛽ /fuel walkthrough →</strong></a>
|
|
13
|
+
·
|
|
14
|
+
<a href="#get-your-dulus-api-key-no-website-required"><strong>🔑 API key from pip →</strong></a>
|
|
15
|
+
·
|
|
16
|
+
<a href="https://dulus.online"><strong>🚀 dulus.online</strong></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<strong>🖥️ Prefer a desktop app?</strong> Download <strong>Dulus Premium</strong> — a signed, auto-updating build for Windows, macOS and Linux.<br>
|
|
21
|
+
<a href="https://github.com/Dulus-Ai/dulus-updates/releases/latest"><strong>⬇️ Download the latest binaries → github.com/Dulus-Ai/dulus-updates</strong></a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<p align="center">
|
|
25
|
+
<a href="https://pypi.org/project/dulus/"><img src="https://img.shields.io/pypi/v/dulus.svg?style=flat-square&color=ff6b1f&labelColor=07070a&label=pypi" alt="PyPI version"></a>
|
|
26
|
+
<a href="https://pypi.org/project/dulus/"><img src="https://static.pepy.tech/badge/dulus?style=flat-square" alt="PyPI downloads"></a>
|
|
27
|
+
<a href="https://github.com/KevRojo/Dulus/releases"><img src="https://img.shields.io/github/v/release/KevRojo/Dulus?style=flat-square&color=ff6b1f&labelColor=07070a" alt="Latest release"></a>
|
|
28
|
+
<a href="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml"><img src="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml/badge.svg" alt="Quality checks"></a>
|
|
29
|
+
<a href="https://github.com/KevRojo/Dulus/pkgs/container/dulus"><img src="https://img.shields.io/badge/docker-ghcr.io%2Fkevrojo%2Fdulus-ff6b1f?style=flat-square&labelColor=07070a&logo=docker" alt="Docker image"></a>
|
|
30
|
+
<img src="https://img.shields.io/badge/python-3.10%2B-ff6b1f?style=flat-square&labelColor=07070a&logo=python" alt="Python 3.10+">
|
|
31
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-ff6b1f?style=flat-square&labelColor=07070a" alt="GPLv3 license"></a>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<a href="#install-in-30-seconds"><strong>Install</strong></a> ·
|
|
36
|
+
<a href="#get-your-dulus-api-key-no-website-required"><strong>API key</strong></a> ·
|
|
37
|
+
<a href="#fuel--reload-wallet-qr-ready"><strong>Fuel / QR</strong></a> ·
|
|
38
|
+
<a href="#why-dulus"><strong>Why Dulus</strong></a> ·
|
|
39
|
+
<a href="#one-runtime-every-model"><strong>Models</strong></a> ·
|
|
40
|
+
<a href="#turn-any-python-repo-into-tools"><strong>Extensions</strong></a> ·
|
|
41
|
+
<a href="#agents-that-can-work-without-disappearing"><strong>Agents</strong></a> ·
|
|
42
|
+
<a href="#one-engine-four-surfaces"><strong>Surfaces</strong></a> ·
|
|
43
|
+
<a href="#command-map"><strong>Commands</strong></a> ·
|
|
44
|
+
<a href="https://kevrojo.github.io/Dulus/"><strong>Live tour ↗</strong></a>
|
|
45
|
+
</p>
|
|
46
|
+
|
|
47
|
+
<p align="center">
|
|
48
|
+
<a href="docs/README_ES.md">Español</a> ·
|
|
49
|
+
<a href="docs/README_FR.md">Français</a> ·
|
|
50
|
+
<a href="docs/README_ZH.md">中文</a> ·
|
|
51
|
+
<a href="docs/README_JA.md">日本語</a> ·
|
|
52
|
+
<a href="docs/README_KO.md">한국어</a> ·
|
|
53
|
+
<a href="docs/README_PT.md">Português</a> ·
|
|
54
|
+
<a href="docs/README_RU.md">Русский</a> ·
|
|
55
|
+
<a href="docs/README_AR.md">العربية</a>
|
|
56
|
+
</p>
|
|
57
|
+
|
|
11
58
|
<p align="center">
|
|
12
59
|
<strong>Agentic AI for everyone. No API key. No credit card. Just <code>pip install</code>.</strong>
|
|
13
60
|
</p>
|
|
@@ -83,52 +130,6 @@ dulus
|
|
|
83
130
|
<strong>$DULUS</strong> · <code>control.dulus.ai/v1</code> · 12+ models · spent by the token 🦅
|
|
84
131
|
</p>
|
|
85
132
|
|
|
86
|
-
<p align="center">
|
|
87
|
-
<a href="#fuel--reload-wallet-qr-ready"><strong>⛽ /fuel walkthrough →</strong></a>
|
|
88
|
-
·
|
|
89
|
-
<a href="#get-your-dulus-api-key-no-website-required"><strong>🔑 API key from pip →</strong></a>
|
|
90
|
-
·
|
|
91
|
-
<a href="https://dulus.online"><strong>🚀 dulus.online</strong></a>
|
|
92
|
-
</p>
|
|
93
|
-
|
|
94
|
-
<p align="center">
|
|
95
|
-
<strong>🖥️ Prefer a desktop app?</strong> Download <strong>Dulus Premium</strong> — a signed, auto-updating build for Windows, macOS and Linux.<br>
|
|
96
|
-
<a href="https://github.com/Dulus-Ai/dulus-updates/releases/latest"><strong>⬇️ Download the latest binaries → github.com/Dulus-Ai/dulus-updates</strong></a>
|
|
97
|
-
</p>
|
|
98
|
-
|
|
99
|
-
<p align="center">
|
|
100
|
-
<a href="https://pypi.org/project/dulus/"><img src="https://img.shields.io/pypi/v/dulus.svg?style=flat-square&color=ff6b1f&labelColor=07070a&label=pypi" alt="PyPI version"></a>
|
|
101
|
-
<a href="https://pypi.org/project/dulus/"><img src="https://static.pepy.tech/badge/dulus?style=flat-square" alt="PyPI downloads"></a>
|
|
102
|
-
<a href="https://github.com/KevRojo/Dulus/releases"><img src="https://img.shields.io/github/v/release/KevRojo/Dulus?style=flat-square&color=ff6b1f&labelColor=07070a" alt="Latest release"></a>
|
|
103
|
-
<a href="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml"><img src="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml/badge.svg" alt="Quality checks"></a>
|
|
104
|
-
<a href="https://github.com/KevRojo/Dulus/pkgs/container/dulus"><img src="https://img.shields.io/badge/docker-ghcr.io%2Fkevrojo%2Fdulus-ff6b1f?style=flat-square&labelColor=07070a&logo=docker" alt="Docker image"></a>
|
|
105
|
-
<img src="https://img.shields.io/badge/python-3.10%2B-ff6b1f?style=flat-square&labelColor=07070a&logo=python" alt="Python 3.10+">
|
|
106
|
-
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-ff6b1f?style=flat-square&labelColor=07070a" alt="GPLv3 license"></a>
|
|
107
|
-
</p>
|
|
108
|
-
|
|
109
|
-
<p align="center">
|
|
110
|
-
<a href="#install-in-30-seconds"><strong>Install</strong></a> ·
|
|
111
|
-
<a href="#get-your-dulus-api-key-no-website-required"><strong>API key</strong></a> ·
|
|
112
|
-
<a href="#fuel--reload-wallet-qr-ready"><strong>Fuel / QR</strong></a> ·
|
|
113
|
-
<a href="#why-dulus"><strong>Why Dulus</strong></a> ·
|
|
114
|
-
<a href="#one-runtime-every-model"><strong>Models</strong></a> ·
|
|
115
|
-
<a href="#turn-any-python-repo-into-tools"><strong>Extensions</strong></a> ·
|
|
116
|
-
<a href="#agents-that-can-work-without-disappearing"><strong>Agents</strong></a> ·
|
|
117
|
-
<a href="#one-engine-four-surfaces"><strong>Surfaces</strong></a> ·
|
|
118
|
-
<a href="#command-map"><strong>Commands</strong></a> ·
|
|
119
|
-
<a href="https://kevrojo.github.io/Dulus/"><strong>Live tour ↗</strong></a>
|
|
120
|
-
</p>
|
|
121
|
-
|
|
122
|
-
<p align="center">
|
|
123
|
-
<a href="docs/README_ES.md">Español</a> ·
|
|
124
|
-
<a href="docs/README_FR.md">Français</a> ·
|
|
125
|
-
<a href="docs/README_ZH.md">中文</a> ·
|
|
126
|
-
<a href="docs/README_JA.md">日本語</a> ·
|
|
127
|
-
<a href="docs/README_KO.md">한국어</a> ·
|
|
128
|
-
<a href="docs/README_PT.md">Português</a> ·
|
|
129
|
-
<a href="docs/README_RU.md">Русский</a> ·
|
|
130
|
-
<a href="docs/README_AR.md">العربية</a>
|
|
131
|
-
</p>
|
|
132
133
|
|
|
133
134
|
---
|
|
134
135
|
|
|
@@ -5,6 +5,11 @@ All notable changes to Dulus will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## 3.13.8 — 2026-09-01
|
|
9
|
+
|
|
10
|
+
- **fix(gemini-web):** revert EU consent helpers that broke harvest (composer never mounted / spray-clicked Gemini UI).
|
|
11
|
+
- **docs:** README top nav under first 2 photos; community installs blurb → 100,000+.
|
|
12
|
+
|
|
8
13
|
## [Unreleased]
|
|
9
14
|
|
|
10
15
|
## [3.13.7] - 2026-09-01
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## 🔥🔥🔥 News (Pacific Time)
|
|
4
4
|
|
|
5
|
+
- September 1, 2026 (**v3.13.8**): **Gemini-web harvest unblocked.** Reverted the EU/GDPR consent spray-click helpers (`_dismiss_eu_privacy_gates` / fabricated SOCS seed) that broke composer mount and left harvest hanging. Public `/harvest-gemini` is back to the pre-3.13.7 path. README top nav tightened under the first two photos; community blurb corrected to **100,000+ pip installs**. `pip install -U dulus`. 🦅
|
|
6
|
+
|
|
5
7
|
- September 1, 2026 (**v3.13.7 — 🔥 TODAY — Qwen UNCENSORED on the endpoint**): **Stock Fuel. Now.** Run `/login dulus`, then `/fuel` for balance + a console QR you can scan with Phantom/Solflare. Our router is **OpenAI-compatible** at `https://control.dulus.ai/v1` — drop it into anything that speaks `/v1/chat/completions`. **Today** we put **Qwen UNCENSORED** on that endpoint. Buy `$DULUS`, load Fuel, go. No premium pitch, no binary wall — the open runtime stays free; Fuel pays for hosted compute. `pip install -U dulus`. 🦅🇩🇴⛽
|
|
6
8
|
|
|
7
|
-
- August 31, 2026 (**Community — EU & the world**): **Something is happening — and we’re not slowing down.**
|
|
9
|
+
- August 31, 2026 (**Community — EU & the world**): **Something is happening — and we’re not slowing down.** **100,000+ pip installs** and climbing. Git clones just ripped: **2,058 clones / 326 unique cloners in 14 days**, with a vertical spike at the end of the month. To our people in **Europe**, this one’s for you. `/news` is now a live **broadcast** (latest 3 by default — no more dumping the whole archive into your console). Same posture as always — **no API key, no credit card, your machine**. Humans built this for humans. Europe, you’re in. Everybody else too. We’ll keep shipping like this. Love you. `pip install -U dulus`. 🦅🇩🇴
|
|
8
10
|
|
|
9
11
|
- August 31, 2026 (**v3.13.6**): **CI quality locked green.** WebChat guards `CONFIG` before pop (pyright clean) and background workers launch Windows-safe without bash-quoted `python -c` — win-3.13 flake gone. Hotfix patch on top of 3.13.5. `pip install -U dulus`. 🦅
|
|
10
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: dulus
|
|
3
|
-
Version: 3.13.
|
|
3
|
+
Version: 3.13.8
|
|
4
4
|
Summary: Provider-independent agent runtime for the terminal — cloud and local models, real tools, MCP, plugins, memory, sub-agents, and Dulus OS.
|
|
5
5
|
Author-email: KevRojo <dev@dulus.ai>
|
|
6
6
|
Maintainer-email: KevRojo <dev@dulus.ai>
|
|
@@ -106,6 +106,53 @@ Requires-Dist: pytesseract>=0.3.10; extra == "full"
|
|
|
106
106
|
<img width="1179" height="761" alt="image" src="https://github.com/user-attachments/assets/95c8a306-88e6-4f9d-a1aa-009ac38ebeaf" />
|
|
107
107
|
</p>
|
|
108
108
|
|
|
109
|
+
<p align="center">
|
|
110
|
+
<a href="#fuel--reload-wallet-qr-ready"><strong>⛽ /fuel walkthrough →</strong></a>
|
|
111
|
+
·
|
|
112
|
+
<a href="#get-your-dulus-api-key-no-website-required"><strong>🔑 API key from pip →</strong></a>
|
|
113
|
+
·
|
|
114
|
+
<a href="https://dulus.online"><strong>🚀 dulus.online</strong></a>
|
|
115
|
+
</p>
|
|
116
|
+
|
|
117
|
+
<p align="center">
|
|
118
|
+
<strong>🖥️ Prefer a desktop app?</strong> Download <strong>Dulus Premium</strong> — a signed, auto-updating build for Windows, macOS and Linux.<br>
|
|
119
|
+
<a href="https://github.com/Dulus-Ai/dulus-updates/releases/latest"><strong>⬇️ Download the latest binaries → github.com/Dulus-Ai/dulus-updates</strong></a>
|
|
120
|
+
</p>
|
|
121
|
+
|
|
122
|
+
<p align="center">
|
|
123
|
+
<a href="https://pypi.org/project/dulus/"><img src="https://img.shields.io/pypi/v/dulus.svg?style=flat-square&color=ff6b1f&labelColor=07070a&label=pypi" alt="PyPI version"></a>
|
|
124
|
+
<a href="https://pypi.org/project/dulus/"><img src="https://static.pepy.tech/badge/dulus?style=flat-square" alt="PyPI downloads"></a>
|
|
125
|
+
<a href="https://github.com/KevRojo/Dulus/releases"><img src="https://img.shields.io/github/v/release/KevRojo/Dulus?style=flat-square&color=ff6b1f&labelColor=07070a" alt="Latest release"></a>
|
|
126
|
+
<a href="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml"><img src="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml/badge.svg" alt="Quality checks"></a>
|
|
127
|
+
<a href="https://github.com/KevRojo/Dulus/pkgs/container/dulus"><img src="https://img.shields.io/badge/docker-ghcr.io%2Fkevrojo%2Fdulus-ff6b1f?style=flat-square&labelColor=07070a&logo=docker" alt="Docker image"></a>
|
|
128
|
+
<img src="https://img.shields.io/badge/python-3.10%2B-ff6b1f?style=flat-square&labelColor=07070a&logo=python" alt="Python 3.10+">
|
|
129
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-ff6b1f?style=flat-square&labelColor=07070a" alt="GPLv3 license"></a>
|
|
130
|
+
</p>
|
|
131
|
+
|
|
132
|
+
<p align="center">
|
|
133
|
+
<a href="#install-in-30-seconds"><strong>Install</strong></a> ·
|
|
134
|
+
<a href="#get-your-dulus-api-key-no-website-required"><strong>API key</strong></a> ·
|
|
135
|
+
<a href="#fuel--reload-wallet-qr-ready"><strong>Fuel / QR</strong></a> ·
|
|
136
|
+
<a href="#why-dulus"><strong>Why Dulus</strong></a> ·
|
|
137
|
+
<a href="#one-runtime-every-model"><strong>Models</strong></a> ·
|
|
138
|
+
<a href="#turn-any-python-repo-into-tools"><strong>Extensions</strong></a> ·
|
|
139
|
+
<a href="#agents-that-can-work-without-disappearing"><strong>Agents</strong></a> ·
|
|
140
|
+
<a href="#one-engine-four-surfaces"><strong>Surfaces</strong></a> ·
|
|
141
|
+
<a href="#command-map"><strong>Commands</strong></a> ·
|
|
142
|
+
<a href="https://kevrojo.github.io/Dulus/"><strong>Live tour ↗</strong></a>
|
|
143
|
+
</p>
|
|
144
|
+
|
|
145
|
+
<p align="center">
|
|
146
|
+
<a href="docs/README_ES.md">Español</a> ·
|
|
147
|
+
<a href="docs/README_FR.md">Français</a> ·
|
|
148
|
+
<a href="docs/README_ZH.md">中文</a> ·
|
|
149
|
+
<a href="docs/README_JA.md">日本語</a> ·
|
|
150
|
+
<a href="docs/README_KO.md">한국어</a> ·
|
|
151
|
+
<a href="docs/README_PT.md">Português</a> ·
|
|
152
|
+
<a href="docs/README_RU.md">Русский</a> ·
|
|
153
|
+
<a href="docs/README_AR.md">العربية</a>
|
|
154
|
+
</p>
|
|
155
|
+
|
|
109
156
|
<p align="center">
|
|
110
157
|
<strong>Agentic AI for everyone. No API key. No credit card. Just <code>pip install</code>.</strong>
|
|
111
158
|
</p>
|
|
@@ -181,52 +228,6 @@ dulus
|
|
|
181
228
|
<strong>$DULUS</strong> · <code>control.dulus.ai/v1</code> · 12+ models · spent by the token 🦅
|
|
182
229
|
</p>
|
|
183
230
|
|
|
184
|
-
<p align="center">
|
|
185
|
-
<a href="#fuel--reload-wallet-qr-ready"><strong>⛽ /fuel walkthrough →</strong></a>
|
|
186
|
-
·
|
|
187
|
-
<a href="#get-your-dulus-api-key-no-website-required"><strong>🔑 API key from pip →</strong></a>
|
|
188
|
-
·
|
|
189
|
-
<a href="https://dulus.online"><strong>🚀 dulus.online</strong></a>
|
|
190
|
-
</p>
|
|
191
|
-
|
|
192
|
-
<p align="center">
|
|
193
|
-
<strong>🖥️ Prefer a desktop app?</strong> Download <strong>Dulus Premium</strong> — a signed, auto-updating build for Windows, macOS and Linux.<br>
|
|
194
|
-
<a href="https://github.com/Dulus-Ai/dulus-updates/releases/latest"><strong>⬇️ Download the latest binaries → github.com/Dulus-Ai/dulus-updates</strong></a>
|
|
195
|
-
</p>
|
|
196
|
-
|
|
197
|
-
<p align="center">
|
|
198
|
-
<a href="https://pypi.org/project/dulus/"><img src="https://img.shields.io/pypi/v/dulus.svg?style=flat-square&color=ff6b1f&labelColor=07070a&label=pypi" alt="PyPI version"></a>
|
|
199
|
-
<a href="https://pypi.org/project/dulus/"><img src="https://static.pepy.tech/badge/dulus?style=flat-square" alt="PyPI downloads"></a>
|
|
200
|
-
<a href="https://github.com/KevRojo/Dulus/releases"><img src="https://img.shields.io/github/v/release/KevRojo/Dulus?style=flat-square&color=ff6b1f&labelColor=07070a" alt="Latest release"></a>
|
|
201
|
-
<a href="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml"><img src="https://github.com/KevRojo/Dulus/actions/workflows/ci.yml/badge.svg" alt="Quality checks"></a>
|
|
202
|
-
<a href="https://github.com/KevRojo/Dulus/pkgs/container/dulus"><img src="https://img.shields.io/badge/docker-ghcr.io%2Fkevrojo%2Fdulus-ff6b1f?style=flat-square&labelColor=07070a&logo=docker" alt="Docker image"></a>
|
|
203
|
-
<img src="https://img.shields.io/badge/python-3.10%2B-ff6b1f?style=flat-square&labelColor=07070a&logo=python" alt="Python 3.10+">
|
|
204
|
-
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-ff6b1f?style=flat-square&labelColor=07070a" alt="GPLv3 license"></a>
|
|
205
|
-
</p>
|
|
206
|
-
|
|
207
|
-
<p align="center">
|
|
208
|
-
<a href="#install-in-30-seconds"><strong>Install</strong></a> ·
|
|
209
|
-
<a href="#get-your-dulus-api-key-no-website-required"><strong>API key</strong></a> ·
|
|
210
|
-
<a href="#fuel--reload-wallet-qr-ready"><strong>Fuel / QR</strong></a> ·
|
|
211
|
-
<a href="#why-dulus"><strong>Why Dulus</strong></a> ·
|
|
212
|
-
<a href="#one-runtime-every-model"><strong>Models</strong></a> ·
|
|
213
|
-
<a href="#turn-any-python-repo-into-tools"><strong>Extensions</strong></a> ·
|
|
214
|
-
<a href="#agents-that-can-work-without-disappearing"><strong>Agents</strong></a> ·
|
|
215
|
-
<a href="#one-engine-four-surfaces"><strong>Surfaces</strong></a> ·
|
|
216
|
-
<a href="#command-map"><strong>Commands</strong></a> ·
|
|
217
|
-
<a href="https://kevrojo.github.io/Dulus/"><strong>Live tour ↗</strong></a>
|
|
218
|
-
</p>
|
|
219
|
-
|
|
220
|
-
<p align="center">
|
|
221
|
-
<a href="docs/README_ES.md">Español</a> ·
|
|
222
|
-
<a href="docs/README_FR.md">Français</a> ·
|
|
223
|
-
<a href="docs/README_ZH.md">中文</a> ·
|
|
224
|
-
<a href="docs/README_JA.md">日本語</a> ·
|
|
225
|
-
<a href="docs/README_KO.md">한국어</a> ·
|
|
226
|
-
<a href="docs/README_PT.md">Português</a> ·
|
|
227
|
-
<a href="docs/README_RU.md">Русский</a> ·
|
|
228
|
-
<a href="docs/README_AR.md">العربية</a>
|
|
229
|
-
</p>
|
|
230
231
|
|
|
231
232
|
---
|
|
232
233
|
|