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.
Files changed (387) hide show
  1. {dulus-3.13.7/dulus.egg-info → dulus-3.13.8}/PKG-INFO +48 -47
  2. {dulus-3.13.7 → dulus-3.13.8}/README.md +47 -46
  3. {dulus-3.13.7 → dulus-3.13.8}/docs/CHANGELOG.md +5 -0
  4. {dulus-3.13.7 → dulus-3.13.8}/docs/news.md +3 -1
  5. {dulus-3.13.7 → dulus-3.13.8/dulus.egg-info}/PKG-INFO +48 -47
  6. {dulus-3.13.7 → dulus-3.13.8}/dulus.py +2 -245
  7. {dulus-3.13.7 → dulus-3.13.8}/pyproject.toml +1 -1
  8. {dulus-3.13.7 → dulus-3.13.8}/LICENSE +0 -0
  9. {dulus-3.13.7 → dulus-3.13.8}/MANIFEST.in +0 -0
  10. {dulus-3.13.7 → dulus-3.13.8}/agent.py +0 -0
  11. {dulus-3.13.7 → dulus-3.13.8}/algolia_search.py +0 -0
  12. {dulus-3.13.7 → dulus-3.13.8}/analytics.py +0 -0
  13. {dulus-3.13.7 → dulus-3.13.8}/backend/__init__.py +0 -0
  14. {dulus-3.13.7 → dulus-3.13.8}/backend/agents_bridge.py +0 -0
  15. {dulus-3.13.7 → dulus-3.13.8}/backend/compressor.py +0 -0
  16. {dulus-3.13.7 → dulus-3.13.8}/backend/context.py +0 -0
  17. {dulus-3.13.7 → dulus-3.13.8}/backend/githook.py +0 -0
  18. {dulus-3.13.7 → dulus-3.13.8}/backend/marketplace.py +0 -0
  19. {dulus-3.13.7 → dulus-3.13.8}/backend/mempalace_bridge.py +0 -0
  20. {dulus-3.13.7 → dulus-3.13.8}/backend/paths.py +0 -0
  21. {dulus-3.13.7 → dulus-3.13.8}/backend/personas.py +0 -0
  22. {dulus-3.13.7 → dulus-3.13.8}/backend/plugins.py +0 -0
  23. {dulus-3.13.7 → dulus-3.13.8}/backend/server.py +0 -0
  24. {dulus-3.13.7 → dulus-3.13.8}/backend/tasks.py +0 -0
  25. {dulus-3.13.7 → dulus-3.13.8}/banners/__init__.py +0 -0
  26. {dulus-3.13.7 → dulus-3.13.8}/banners/banner_rotator.py +0 -0
  27. {dulus-3.13.7 → dulus-3.13.8}/banners/banners_dulus_ai.txt +0 -0
  28. {dulus-3.13.7 → dulus-3.13.8}/batch_api.py +0 -0
  29. {dulus-3.13.7 → dulus-3.13.8}/checkpoint/__init__.py +0 -0
  30. {dulus-3.13.7 → dulus-3.13.8}/checkpoint/hooks.py +0 -0
  31. {dulus-3.13.7 → dulus-3.13.8}/checkpoint/store.py +0 -0
  32. {dulus-3.13.7 → dulus-3.13.8}/checkpoint/types.py +0 -0
  33. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/__init__.py +0 -0
  34. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/__main__.py +0 -0
  35. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/ansi.py +0 -0
  36. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/assets/ascii/dulus_logo.txt +0 -0
  37. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/assets/ascii/eagle.txt +0 -0
  38. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/assets/ascii/terminal_art.txt +0 -0
  39. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/banners.py +0 -0
  40. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/demo.py +0 -0
  41. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/effects.py +0 -0
  42. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/effort_slider.py +0 -0
  43. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/progress.py +0 -0
  44. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/py.typed +0 -0
  45. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/spinners.py +0 -0
  46. {dulus-3.13.7 → dulus-3.13.8}/cli_animations/status.py +0 -0
  47. {dulus-3.13.7 → dulus-3.13.8}/clipboard_utils.py +0 -0
  48. {dulus-3.13.7 → dulus-3.13.8}/cloudsave.py +0 -0
  49. {dulus-3.13.7 → dulus-3.13.8}/common.py +0 -0
  50. {dulus-3.13.7 → dulus-3.13.8}/compaction.py +0 -0
  51. {dulus-3.13.7 → dulus-3.13.8}/config.py +0 -0
  52. {dulus-3.13.7 → dulus-3.13.8}/context.py +0 -0
  53. {dulus-3.13.7 → dulus-3.13.8}/data/__init__.py +0 -0
  54. {dulus-3.13.7 → dulus-3.13.8}/data/active_persona.json +0 -0
  55. {dulus-3.13.7 → dulus-3.13.8}/data/marketplace.json +0 -0
  56. {dulus-3.13.7 → dulus-3.13.8}/data/personas.json +0 -0
  57. {dulus-3.13.7 → dulus-3.13.8}/data/plugins/__init__.py +0 -0
  58. {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/__init__.py +0 -0
  59. {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/composio_plugin/__init__.py +0 -0
  60. {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/composio_plugin/session_manager.py +0 -0
  61. {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/composio_plugin/tool_generator.py +0 -0
  62. {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/plugin.json +0 -0
  63. {dulus-3.13.7 → dulus-3.13.8}/data/plugins/composio/plugin_tool.py +0 -0
  64. {dulus-3.13.7 → dulus-3.13.8}/data/tasks.json +0 -0
  65. {dulus-3.13.7 → dulus-3.13.8}/display_blocks.py +0 -0
  66. {dulus-3.13.7 → dulus-3.13.8}/docs/API.md +0 -0
  67. {dulus-3.13.7 → dulus-3.13.8}/docs/BRAND_GUIDE.md +0 -0
  68. {dulus-3.13.7 → dulus-3.13.8}/docs/CONTRIBUTING.md +0 -0
  69. {dulus-3.13.7 → dulus-3.13.8}/docs/DEPLOYMENT.md +0 -0
  70. {dulus-3.13.7 → dulus-3.13.8}/docs/FAQ.md +0 -0
  71. {dulus-3.13.7 → dulus-3.13.8}/docs/GETTING_STARTED.md +0 -0
  72. {dulus-3.13.7 → dulus-3.13.8}/docs/README.md +0 -0
  73. {dulus-3.13.7 → dulus-3.13.8}/docs/README_AR.md +0 -0
  74. {dulus-3.13.7 → dulus-3.13.8}/docs/README_EN.md +0 -0
  75. {dulus-3.13.7 → dulus-3.13.8}/docs/README_ES.md +0 -0
  76. {dulus-3.13.7 → dulus-3.13.8}/docs/README_FR.md +0 -0
  77. {dulus-3.13.7 → dulus-3.13.8}/docs/README_JA.md +0 -0
  78. {dulus-3.13.7 → dulus-3.13.8}/docs/README_KO.md +0 -0
  79. {dulus-3.13.7 → dulus-3.13.8}/docs/README_PT.md +0 -0
  80. {dulus-3.13.7 → dulus-3.13.8}/docs/README_RU.md +0 -0
  81. {dulus-3.13.7 → dulus-3.13.8}/docs/README_ZH.md +0 -0
  82. {dulus-3.13.7 → dulus-3.13.8}/docs/SECURITY.md +0 -0
  83. {dulus-3.13.7 → dulus-3.13.8}/docs/__init__.py +0 -0
  84. {dulus-3.13.7 → dulus-3.13.8}/docs/api.html +0 -0
  85. {dulus-3.13.7 → dulus-3.13.8}/docs/architecture.md +0 -0
  86. {dulus-3.13.7 → dulus-3.13.8}/docs/azure-speech-template.json +0 -0
  87. {dulus-3.13.7 → dulus-3.13.8}/docs/dashboard/index.html +0 -0
  88. {dulus-3.13.7 → dulus-3.13.8}/docs/divider.svg +0 -0
  89. {dulus-3.13.7 → dulus-3.13.8}/docs/dulus-bird.png +0 -0
  90. {dulus-3.13.7 → dulus-3.13.8}/docs/generate.py +0 -0
  91. {dulus-3.13.7 → dulus-3.13.8}/docs/index.html +0 -0
  92. {dulus-3.13.7 → dulus-3.13.8}/docs/nvidia-models.svg +0 -0
  93. {dulus-3.13.7 → dulus-3.13.8}/docs/particle-playground.html +0 -0
  94. {dulus-3.13.7 → dulus-3.13.8}/docs/personas/index.html +0 -0
  95. {dulus-3.13.7 → dulus-3.13.8}/docs/poetry-banner.png +0 -0
  96. {dulus-3.13.7 → dulus-3.13.8}/docs/preview.html +0 -0
  97. {dulus-3.13.7 → dulus-3.13.8}/docs/python-console.md +0 -0
  98. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/auto-adapter.png +0 -0
  99. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/dulus-os.png +0 -0
  100. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/hero.png +0 -0
  101. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/lookback_two_windows.png +0 -0
  102. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/pyc_heap.svg +0 -0
  103. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/pyc_receipts.svg +0 -0
  104. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/pyc_trap.svg +0 -0
  105. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/roundtable.png +0 -0
  106. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/task-board.png +0 -0
  107. {dulus-3.13.7 → dulus-3.13.8}/docs/readme/webchat.png +0 -0
  108. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-agents.svg +0 -0
  109. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-brainstorm.svg +0 -0
  110. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-bridges.svg +0 -0
  111. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-features.svg +0 -0
  112. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-freetier.svg +0 -0
  113. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-memory.svg +0 -0
  114. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-models.svg +0 -0
  115. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-perms.svg +0 -0
  116. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-plugins.svg +0 -0
  117. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-quickstart.svg +0 -0
  118. {dulus-3.13.7 → dulus-3.13.8}/docs/sec-ssj.svg +0 -0
  119. {dulus-3.13.7 → dulus-3.13.8}/docs/spinners.svg +0 -0
  120. {dulus-3.13.7 → dulus-3.13.8}/docs/split-pane.svg +0 -0
  121. {dulus-3.13.7 → dulus-3.13.8}/docs/terminal-boot.svg +0 -0
  122. {dulus-3.13.7 → dulus-3.13.8}/docs/termux-edge.md +0 -0
  123. {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/SOURCES.txt +0 -0
  124. {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/dependency_links.txt +0 -0
  125. {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/entry_points.txt +0 -0
  126. {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/requires.txt +0 -0
  127. {dulus-3.13.7 → dulus-3.13.8}/dulus.egg-info/top_level.txt +0 -0
  128. {dulus-3.13.7 → dulus-3.13.8}/dulus_account.py +0 -0
  129. {dulus-3.13.7 → dulus-3.13.8}/dulus_bar_client.py +0 -0
  130. {dulus-3.13.7 → dulus-3.13.8}/dulus_gui.py +0 -0
  131. {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/__init__.py +0 -0
  132. {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/client.py +0 -0
  133. {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/commands.py +0 -0
  134. {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/config.py +0 -0
  135. {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/hub.py +0 -0
  136. {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/tools.py +0 -0
  137. {dulus-3.13.7 → dulus-3.13.8}/dulus_mcp/types.py +0 -0
  138. {dulus-3.13.7 → dulus-3.13.8}/dulus_quick_menu.py +0 -0
  139. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/__init__.py +0 -0
  140. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/add_dir_manager.py +0 -0
  141. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/afk_mode.py +0 -0
  142. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/approval_runtime.py +0 -0
  143. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/background_tasks.py +0 -0
  144. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/clipboard_utils.py +0 -0
  145. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/diff_visualizer.py +0 -0
  146. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/export_import.py +0 -0
  147. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/hook_engine.py +0 -0
  148. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/notification_manager.py +0 -0
  149. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/session_fork.py +0 -0
  150. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/shell_mode.py +0 -0
  151. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/todo_visualizer.py +0 -0
  152. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/tree_ls.py +0 -0
  153. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/wire_events.py +0 -0
  154. {dulus-3.13.7 → dulus-3.13.8}/dulus_tools/yolo_mode.py +0 -0
  155. {dulus-3.13.7 → dulus-3.13.8}/file_filter.py +0 -0
  156. {dulus-3.13.7 → dulus-3.13.8}/fs_compass.py +0 -0
  157. {dulus-3.13.7 → dulus-3.13.8}/governance.py +0 -0
  158. {dulus-3.13.7 → dulus-3.13.8}/gui/__init__.py +0 -0
  159. {dulus-3.13.7 → dulus-3.13.8}/gui/agent_bridge.py +0 -0
  160. {dulus-3.13.7 → dulus-3.13.8}/gui/chat_widget.py +0 -0
  161. {dulus-3.13.7 → dulus-3.13.8}/gui/main_window.py +0 -0
  162. {dulus-3.13.7 → dulus-3.13.8}/gui/personas.py +0 -0
  163. {dulus-3.13.7 → dulus-3.13.8}/gui/sandbox_server.py +0 -0
  164. {dulus-3.13.7 → dulus-3.13.8}/gui/session_utils.py +0 -0
  165. {dulus-3.13.7 → dulus-3.13.8}/gui/settings_dialog.py +0 -0
  166. {dulus-3.13.7 → dulus-3.13.8}/gui/sidebar.py +0 -0
  167. {dulus-3.13.7 → dulus-3.13.8}/gui/tasks_view.py +0 -0
  168. {dulus-3.13.7 → dulus-3.13.8}/gui/themes.py +0 -0
  169. {dulus-3.13.7 → dulus-3.13.8}/gui/tool_panel.py +0 -0
  170. {dulus-3.13.7 → dulus-3.13.8}/input.py +0 -0
  171. {dulus-3.13.7 → dulus-3.13.8}/license_manager.py +0 -0
  172. {dulus-3.13.7 → dulus-3.13.8}/lookback.py +0 -0
  173. {dulus-3.13.7 → dulus-3.13.8}/memory/__init__.py +0 -0
  174. {dulus-3.13.7 → dulus-3.13.8}/memory/audit.py +0 -0
  175. {dulus-3.13.7 → dulus-3.13.8}/memory/consolidator.py +0 -0
  176. {dulus-3.13.7 → dulus-3.13.8}/memory/context.py +0 -0
  177. {dulus-3.13.7 → dulus-3.13.8}/memory/mempalace_bridge.py +0 -0
  178. {dulus-3.13.7 → dulus-3.13.8}/memory/offload.py +0 -0
  179. {dulus-3.13.7 → dulus-3.13.8}/memory/palace.py +0 -0
  180. {dulus-3.13.7 → dulus-3.13.8}/memory/scan.py +0 -0
  181. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/adaptation_guides.md +0 -0
  182. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/askuserquestion_after_numbered_list.md +0 -0
  183. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/background_jobs_no_extra_timers.md +0 -0
  184. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/cleverness_over_resources.md +0 -0
  185. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/corporate_tls_breaks_curl_cffi.md +0 -0
  186. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/hardened_rules.md +0 -0
  187. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/investigator_workflow_heuristic.md +0 -0
  188. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/native_code_over_sketchy_plugins.md +0 -0
  189. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/no_personal_info_in_code.md +0 -0
  190. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/searches_include_modified_date.md +0 -0
  191. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/tmux_send_keys_power_patterns.md +0 -0
  192. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/token_optimization_technique.md +0 -0
  193. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/tool_chaining_capability.md +0 -0
  194. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/insights/webbridge_evaluate_first_pattern.md +0 -0
  195. {dulus-3.13.7 → dulus-3.13.8}/memory/seeds/short_memory.md +0 -0
  196. {dulus-3.13.7 → dulus-3.13.8}/memory/sessions.py +0 -0
  197. {dulus-3.13.7 → dulus-3.13.8}/memory/store.py +0 -0
  198. {dulus-3.13.7 → dulus-3.13.8}/memory/tools.py +0 -0
  199. {dulus-3.13.7 → dulus-3.13.8}/memory/types.py +0 -0
  200. {dulus-3.13.7 → dulus-3.13.8}/memory/vector_search.py +0 -0
  201. {dulus-3.13.7 → dulus-3.13.8}/model_params.py +0 -0
  202. {dulus-3.13.7 → dulus-3.13.8}/multi_agent/__init__.py +0 -0
  203. {dulus-3.13.7 → dulus-3.13.8}/multi_agent/subagent.py +0 -0
  204. {dulus-3.13.7 → dulus-3.13.8}/multi_agent/tools.py +0 -0
  205. {dulus-3.13.7 → dulus-3.13.8}/paste_placeholders.py +0 -0
  206. {dulus-3.13.7 → dulus-3.13.8}/personality_config.py +0 -0
  207. {dulus-3.13.7 → dulus-3.13.8}/plugin/__init__.py +0 -0
  208. {dulus-3.13.7 → dulus-3.13.8}/plugin/autoadapter.py +0 -0
  209. {dulus-3.13.7 → dulus-3.13.8}/plugin/loader.py +0 -0
  210. {dulus-3.13.7 → dulus-3.13.8}/plugin/recommend.py +0 -0
  211. {dulus-3.13.7 → dulus-3.13.8}/plugin/store.py +0 -0
  212. {dulus-3.13.7 → dulus-3.13.8}/plugin/types.py +0 -0
  213. {dulus-3.13.7 → dulus-3.13.8}/profiles.py +0 -0
  214. {dulus-3.13.7 → dulus-3.13.8}/providers.py +0 -0
  215. {dulus-3.13.7 → dulus-3.13.8}/pyconsole.py +0 -0
  216. {dulus-3.13.7 → dulus-3.13.8}/sandbox/README.md +0 -0
  217. {dulus-3.13.7 → dulus-3.13.8}/sandbox/__init__.py +0 -0
  218. {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/assets/index-DE51D6wI.css +0 -0
  219. {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/assets/index-DMCCNE9Y.js +0 -0
  220. {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/index.html +0 -0
  221. {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpaper-default.jpg +0 -0
  222. {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpapers/default.jpeg +0 -0
  223. {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpapers/light.jpeg +0 -0
  224. {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpapers/nature.jpeg +0 -0
  225. {dulus-3.13.7 → dulus-3.13.8}/sandbox/dist/wallpapers/tech.jpeg +0 -0
  226. {dulus-3.13.7 → dulus-3.13.8}/sandbox/info.md +0 -0
  227. {dulus-3.13.7 → dulus-3.13.8}/sandbox_bootstrap.py +0 -0
  228. {dulus-3.13.7 → dulus-3.13.8}/setup.cfg +0 -0
  229. {dulus-3.13.7 → dulus-3.13.8}/skill/__init__.py +0 -0
  230. {dulus-3.13.7 → dulus-3.13.8}/skill/builtin.py +0 -0
  231. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/LICENSE-obsidian-skills +0 -0
  232. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/README.md +0 -0
  233. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/defuddle/SKILL.md +0 -0
  234. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/json-canvas/SKILL.md +0 -0
  235. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/json-canvas/references/EXAMPLES.md +0 -0
  236. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-bases/SKILL.md +0 -0
  237. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -0
  238. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-cli/SKILL.md +0 -0
  239. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-markdown/SKILL.md +0 -0
  240. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-markdown/references/CALLOUTS.md +0 -0
  241. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-markdown/references/EMBEDS.md +0 -0
  242. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/obsidian-markdown/references/PROPERTIES.md +0 -0
  243. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/README.md +0 -0
  244. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/SKILL.md +0 -0
  245. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/addresses.json +0 -0
  246. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/advancedbackgroundchecks.json +0 -0
  247. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/beenverified.json +0 -0
  248. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/clustal.json +0 -0
  249. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/clustrmaps.json +0 -0
  250. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/cyberbackgroundchecks.json +0 -0
  251. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/familytreenow.json +0 -0
  252. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/fastpeoplesearch.json +0 -0
  253. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/intelius.json +0 -0
  254. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/mylife.json +0 -0
  255. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/nuwber.json +0 -0
  256. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/peekyou.json +0 -0
  257. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/peoplefinders.json +0 -0
  258. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/radaris.json +0 -0
  259. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/rehold.json +0 -0
  260. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/searchpeoplefree.json +0 -0
  261. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/socialcatfish.json +0 -0
  262. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/spokeo.json +0 -0
  263. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/thatsthem.json +0 -0
  264. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/truepeoplesearch.json +0 -0
  265. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/usphonebook.json +0 -0
  266. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/brokers/whitepages.json +0 -0
  267. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/legal/ccpa.md +0 -0
  268. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/legal/drop.md +0 -0
  269. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/legal/gdpr.md +0 -0
  270. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/methods.md +0 -0
  271. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/site-playbooks.md +0 -0
  272. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/references/state-machine.md +0 -0
  273. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/autopilot.py +0 -0
  274. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/badbool.py +0 -0
  275. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/brokers.py +0 -0
  276. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/cdp.py +0 -0
  277. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/config.py +0 -0
  278. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/crypto.py +0 -0
  279. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/dossier.py +0 -0
  280. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/email_modes.py +0 -0
  281. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/emailer.py +0 -0
  282. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/ledger.py +0 -0
  283. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/legal.py +0 -0
  284. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/paths.py +0 -0
  285. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/pdd.py +0 -0
  286. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/registry.py +0 -0
  287. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/report.py +0 -0
  288. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/scan.py +0 -0
  289. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/storage.py +0 -0
  290. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/tiers.py +0 -0
  291. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/scripts/vectors.py +0 -0
  292. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/consent/authorization.md +0 -0
  293. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/ccpa-authorized-agent.txt +0 -0
  294. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/ccpa-deletion.txt +0 -0
  295. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/ccpa-indirect-deletion.txt +0 -0
  296. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/gdpr-erasure.txt +0 -0
  297. {dulus-3.13.7 → dulus-3.13.8}/skill/bundled/unbroker/templates/emails/generic-optout.txt +0 -0
  298. {dulus-3.13.7 → dulus-3.13.8}/skill/clawhub.py +0 -0
  299. {dulus-3.13.7 → dulus-3.13.8}/skill/executor.py +0 -0
  300. {dulus-3.13.7 → dulus-3.13.8}/skill/loader.py +0 -0
  301. {dulus-3.13.7 → dulus-3.13.8}/skill/tools.py +0 -0
  302. {dulus-3.13.7 → dulus-3.13.8}/skills.py +0 -0
  303. {dulus-3.13.7 → dulus-3.13.8}/soul.py +0 -0
  304. {dulus-3.13.7 → dulus-3.13.8}/spinner.py +0 -0
  305. {dulus-3.13.7 → dulus-3.13.8}/steer_input.py +0 -0
  306. {dulus-3.13.7 → dulus-3.13.8}/subagent.py +0 -0
  307. {dulus-3.13.7 → dulus-3.13.8}/task/__init__.py +0 -0
  308. {dulus-3.13.7 → dulus-3.13.8}/task/store.py +0 -0
  309. {dulus-3.13.7 → dulus-3.13.8}/task/tools.py +0 -0
  310. {dulus-3.13.7 → dulus-3.13.8}/task/types.py +0 -0
  311. {dulus-3.13.7 → dulus-3.13.8}/tests/test_afk_yolo.py +0 -0
  312. {dulus-3.13.7 → dulus-3.13.8}/tests/test_approval_runtime.py +0 -0
  313. {dulus-3.13.7 → dulus-3.13.8}/tests/test_background_task_tools.py +0 -0
  314. {dulus-3.13.7 → dulus-3.13.8}/tests/test_background_tasks.py +0 -0
  315. {dulus-3.13.7 → dulus-3.13.8}/tests/test_chatgpt_oauth.py +0 -0
  316. {dulus-3.13.7 → dulus-3.13.8}/tests/test_checkpoint.py +0 -0
  317. {dulus-3.13.7 → dulus-3.13.8}/tests/test_cli_animations_integration.py +0 -0
  318. {dulus-3.13.7 → dulus-3.13.8}/tests/test_clipboard_utils.py +0 -0
  319. {dulus-3.13.7 → dulus-3.13.8}/tests/test_compaction.py +0 -0
  320. {dulus-3.13.7 → dulus-3.13.8}/tests/test_composio_tool_generator.py +0 -0
  321. {dulus-3.13.7 → dulus-3.13.8}/tests/test_diff_view.py +0 -0
  322. {dulus-3.13.7 → dulus-3.13.8}/tests/test_diff_visualization.py +0 -0
  323. {dulus-3.13.7 → dulus-3.13.8}/tests/test_display_blocks.py +0 -0
  324. {dulus-3.13.7 → dulus-3.13.8}/tests/test_dulus_account.py +0 -0
  325. {dulus-3.13.7 → dulus-3.13.8}/tests/test_export_import.py +0 -0
  326. {dulus-3.13.7 → dulus-3.13.8}/tests/test_gold_memory_preload.py +0 -0
  327. {dulus-3.13.7 → dulus-3.13.8}/tests/test_grok_usage.py +0 -0
  328. {dulus-3.13.7 → dulus-3.13.8}/tests/test_hook_engine.py +0 -0
  329. {dulus-3.13.7 → dulus-3.13.8}/tests/test_injection_fix.py +0 -0
  330. {dulus-3.13.7 → dulus-3.13.8}/tests/test_json_protocol.py +0 -0
  331. {dulus-3.13.7 → dulus-3.13.8}/tests/test_license.py +0 -0
  332. {dulus-3.13.7 → dulus-3.13.8}/tests/test_lookback_cache.py +0 -0
  333. {dulus-3.13.7 → dulus-3.13.8}/tests/test_lookback_compact.py +0 -0
  334. {dulus-3.13.7 → dulus-3.13.8}/tests/test_mcp.py +0 -0
  335. {dulus-3.13.7 → dulus-3.13.8}/tests/test_mcp_algolia.py +0 -0
  336. {dulus-3.13.7 → dulus-3.13.8}/tests/test_memory.py +0 -0
  337. {dulus-3.13.7 → dulus-3.13.8}/tests/test_memory_home_resolution.py +0 -0
  338. {dulus-3.13.7 → dulus-3.13.8}/tests/test_notification_manager.py +0 -0
  339. {dulus-3.13.7 → dulus-3.13.8}/tests/test_plugin.py +0 -0
  340. {dulus-3.13.7 → dulus-3.13.8}/tests/test_profile_isolation.py +0 -0
  341. {dulus-3.13.7 → dulus-3.13.8}/tests/test_profile_plugin_scope.py +0 -0
  342. {dulus-3.13.7 → dulus-3.13.8}/tests/test_provider_errors.py +0 -0
  343. {dulus-3.13.7 → dulus-3.13.8}/tests/test_session_fork.py +0 -0
  344. {dulus-3.13.7 → dulus-3.13.8}/tests/test_shell_detection.py +0 -0
  345. {dulus-3.13.7 → dulus-3.13.8}/tests/test_shell_mode.py +0 -0
  346. {dulus-3.13.7 → dulus-3.13.8}/tests/test_skills.py +0 -0
  347. {dulus-3.13.7 → dulus-3.13.8}/tests/test_skillssh_algolia.py +0 -0
  348. {dulus-3.13.7 → dulus-3.13.8}/tests/test_steer_input.py +0 -0
  349. {dulus-3.13.7 → dulus-3.13.8}/tests/test_subagent.py +0 -0
  350. {dulus-3.13.7 → dulus-3.13.8}/tests/test_task.py +0 -0
  351. {dulus-3.13.7 → dulus-3.13.8}/tests/test_telegram_buffer.py +0 -0
  352. {dulus-3.13.7 → dulus-3.13.8}/tests/test_think_tool.py +0 -0
  353. {dulus-3.13.7 → dulus-3.13.8}/tests/test_todo_tool.py +0 -0
  354. {dulus-3.13.7 → dulus-3.13.8}/tests/test_todo_visualization.py +0 -0
  355. {dulus-3.13.7 → dulus-3.13.8}/tests/test_tool_registry.py +0 -0
  356. {dulus-3.13.7 → dulus-3.13.8}/tests/test_tree_ls.py +0 -0
  357. {dulus-3.13.7 → dulus-3.13.8}/tests/test_voice.py +0 -0
  358. {dulus-3.13.7 → dulus-3.13.8}/tests/test_webbridge_tabs.py +0 -0
  359. {dulus-3.13.7 → dulus-3.13.8}/tests/test_wire_events.py +0 -0
  360. {dulus-3.13.7 → dulus-3.13.8}/tmux_tools.py +0 -0
  361. {dulus-3.13.7 → dulus-3.13.8}/token_budget.py +0 -0
  362. {dulus-3.13.7 → dulus-3.13.8}/tool_registry.py +0 -0
  363. {dulus-3.13.7 → dulus-3.13.8}/tools.py +0 -0
  364. {dulus-3.13.7 → dulus-3.13.8}/tools_background.py +0 -0
  365. {dulus-3.13.7 → dulus-3.13.8}/tools_think.py +0 -0
  366. {dulus-3.13.7 → dulus-3.13.8}/tools_todo.py +0 -0
  367. {dulus-3.13.7 → dulus-3.13.8}/ui/__init__.py +0 -0
  368. {dulus-3.13.7 → dulus-3.13.8}/ui/input.py +0 -0
  369. {dulus-3.13.7 → dulus-3.13.8}/ui/render.py +0 -0
  370. {dulus-3.13.7 → dulus-3.13.8}/updater.py +0 -0
  371. {dulus-3.13.7 → dulus-3.13.8}/voice/__init__.py +0 -0
  372. {dulus-3.13.7 → dulus-3.13.8}/voice/audio_utils.py +0 -0
  373. {dulus-3.13.7 → dulus-3.13.8}/voice/keyterms.py +0 -0
  374. {dulus-3.13.7 → dulus-3.13.8}/voice/recorder.py +0 -0
  375. {dulus-3.13.7 → dulus-3.13.8}/voice/stt.py +0 -0
  376. {dulus-3.13.7 → dulus-3.13.8}/voice/tts.py +0 -0
  377. {dulus-3.13.7 → dulus-3.13.8}/voice/wake_word.py +0 -0
  378. {dulus-3.13.7 → dulus-3.13.8}/webbridge/__init__.py +0 -0
  379. {dulus-3.13.7 → dulus-3.13.8}/webbridge/core.py +0 -0
  380. {dulus-3.13.7 → dulus-3.13.8}/webbridge/tools.py +0 -0
  381. {dulus-3.13.7 → dulus-3.13.8}/webchat.py +0 -0
  382. {dulus-3.13.7 → dulus-3.13.8}/webchat_server.py +0 -0
  383. {dulus-3.13.7 → dulus-3.13.8}/webchat_ui/__init__.py +0 -0
  384. {dulus-3.13.7 → dulus-3.13.8}/webchat_ui/app.js +0 -0
  385. {dulus-3.13.7 → dulus-3.13.8}/webchat_ui/index.html +0 -0
  386. {dulus-3.13.7 → dulus-3.13.8}/webchat_ui/style.css +0 -0
  387. {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.7
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.** **~25,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. Google’s **GDPR / “Before you continue” consent walls**, cookie banners, and privacy popups used to brick keyless Gemini harvest on EEA and headless EU boxes (OVH, Hetzner, and friends) — no human to click **Accept**, composer never mounts, intercept times out. Dulus now ships a real **popup / consent solver**: pre-seeds Google `CONSENT` + `SOCS` cookies, dismisses EU privacy gates across the main page **and** consent iframes, multi-locale Accept clicks (`Accept all` / `Aceptar todo` / `Tout accepter` / `Alle akzeptieren` / …), so the agent can actually reach the chat. `/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`. 🦅🇩🇴
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.7
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