dulus 0.2.41__tar.gz → 0.2.44__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 (204) hide show
  1. {dulus-0.2.41 → dulus-0.2.44}/MANIFEST.in +1 -0
  2. {dulus-0.2.41/dulus.egg-info → dulus-0.2.44}/PKG-INFO +17 -2
  3. {dulus-0.2.41 → dulus-0.2.44}/README.md +661 -646
  4. {dulus-0.2.41 → dulus-0.2.44}/common.py +1 -1
  5. {dulus-0.2.41 → dulus-0.2.44}/data/context.json +42 -12
  6. {dulus-0.2.41 → dulus-0.2.44/dulus.egg-info}/PKG-INFO +17 -2
  7. {dulus-0.2.41 → dulus-0.2.44}/dulus.egg-info/SOURCES.txt +23 -0
  8. {dulus-0.2.41 → dulus-0.2.44}/dulus.egg-info/top_level.txt +1 -0
  9. {dulus-0.2.41 → dulus-0.2.44}/dulus.py +45 -1
  10. {dulus-0.2.41 → dulus-0.2.44}/pyproject.toml +10 -2
  11. dulus-0.2.44/sandbox/README.md +73 -0
  12. dulus-0.2.44/sandbox/__init__.py +1 -0
  13. dulus-0.2.44/sandbox/components.json +22 -0
  14. dulus-0.2.44/sandbox/dist/assets/index-CsIO61nW.css +1 -0
  15. dulus-0.2.44/sandbox/dist/assets/index-Duhscm3W.js +360 -0
  16. dulus-0.2.44/sandbox/dist/index.html +13 -0
  17. dulus-0.2.44/sandbox/dist/wallpaper-default.jpg +0 -0
  18. dulus-0.2.44/sandbox/dist/wallpapers/default.jpeg +0 -0
  19. dulus-0.2.44/sandbox/dist/wallpapers/light.jpeg +0 -0
  20. dulus-0.2.44/sandbox/dist/wallpapers/nature.jpeg +0 -0
  21. dulus-0.2.44/sandbox/dist/wallpapers/tech.jpeg +0 -0
  22. dulus-0.2.44/sandbox/eslint.config.js +23 -0
  23. dulus-0.2.44/sandbox/index.html +12 -0
  24. dulus-0.2.44/sandbox/info.md +31 -0
  25. dulus-0.2.44/sandbox/package-lock.json +8274 -0
  26. dulus-0.2.44/sandbox/package.json +80 -0
  27. dulus-0.2.44/sandbox/postcss.config.js +6 -0
  28. dulus-0.2.44/sandbox/public/wallpaper-default.jpg +0 -0
  29. dulus-0.2.44/sandbox/src/index.css +169 -0
  30. dulus-0.2.44/sandbox/tailwind.config.js +84 -0
  31. dulus-0.2.44/sandbox/tsconfig.app.json +34 -0
  32. dulus-0.2.44/sandbox/tsconfig.json +17 -0
  33. dulus-0.2.44/sandbox/tsconfig.node.json +26 -0
  34. {dulus-0.2.41 → dulus-0.2.44}/task/store.py +10 -0
  35. {dulus-0.2.41 → dulus-0.2.44}/task/tools.py +17 -6
  36. {dulus-0.2.41 → dulus-0.2.44}/tools.py +39 -0
  37. {dulus-0.2.41 → dulus-0.2.44}/webchat_server.py +240 -44
  38. {dulus-0.2.41 → dulus-0.2.44}/LICENSE +0 -0
  39. {dulus-0.2.41 → dulus-0.2.44}/agent.py +0 -0
  40. {dulus-0.2.41 → dulus-0.2.44}/backend/__init__.py +0 -0
  41. {dulus-0.2.41 → dulus-0.2.44}/backend/compressor.py +0 -0
  42. {dulus-0.2.41 → dulus-0.2.44}/backend/context.py +0 -0
  43. {dulus-0.2.41 → dulus-0.2.44}/backend/githook.py +0 -0
  44. {dulus-0.2.41 → dulus-0.2.44}/backend/marketplace.py +0 -0
  45. {dulus-0.2.41 → dulus-0.2.44}/backend/mempalace_bridge.py +0 -0
  46. {dulus-0.2.41 → dulus-0.2.44}/backend/personas.py +0 -0
  47. {dulus-0.2.41 → dulus-0.2.44}/backend/plugins.py +0 -0
  48. {dulus-0.2.41 → dulus-0.2.44}/backend/server.py +0 -0
  49. {dulus-0.2.41 → dulus-0.2.44}/backend/tasks.py +0 -0
  50. {dulus-0.2.41 → dulus-0.2.44}/batch_api.py +0 -0
  51. {dulus-0.2.41 → dulus-0.2.44}/checkpoint/__init__.py +0 -0
  52. {dulus-0.2.41 → dulus-0.2.44}/checkpoint/hooks.py +0 -0
  53. {dulus-0.2.41 → dulus-0.2.44}/checkpoint/store.py +0 -0
  54. {dulus-0.2.41 → dulus-0.2.44}/checkpoint/types.py +0 -0
  55. {dulus-0.2.41 → dulus-0.2.44}/claude_code_watcher.py +0 -0
  56. {dulus-0.2.41 → dulus-0.2.44}/clipboard_utils.py +0 -0
  57. {dulus-0.2.41 → dulus-0.2.44}/cloudsave.py +0 -0
  58. {dulus-0.2.41 → dulus-0.2.44}/compaction.py +0 -0
  59. {dulus-0.2.41 → dulus-0.2.44}/config.py +0 -0
  60. {dulus-0.2.41 → dulus-0.2.44}/context.py +0 -0
  61. {dulus-0.2.41 → dulus-0.2.44}/data/__init__.py +0 -0
  62. {dulus-0.2.41 → dulus-0.2.44}/data/active_persona.json +0 -0
  63. {dulus-0.2.41 → dulus-0.2.44}/data/marketplace.json +0 -0
  64. {dulus-0.2.41 → dulus-0.2.44}/data/personas.json +0 -0
  65. {dulus-0.2.41 → dulus-0.2.44}/data/plugins/__init__.py +0 -0
  66. {dulus-0.2.41 → dulus-0.2.44}/data/plugins/composio/__init__.py +0 -0
  67. {dulus-0.2.41 → dulus-0.2.44}/data/plugins/composio/composio_plugin/__init__.py +0 -0
  68. {dulus-0.2.41 → dulus-0.2.44}/data/plugins/composio/composio_plugin/session_manager.py +0 -0
  69. {dulus-0.2.41 → dulus-0.2.44}/data/plugins/composio/composio_plugin/tool_generator.py +0 -0
  70. {dulus-0.2.41 → dulus-0.2.44}/data/plugins/composio/plugin.json +0 -0
  71. {dulus-0.2.41 → dulus-0.2.44}/data/plugins/composio/plugin_tool.py +0 -0
  72. {dulus-0.2.41 → dulus-0.2.44}/data/tasks.json +0 -0
  73. {dulus-0.2.41 → dulus-0.2.44}/docs/README.md +0 -0
  74. {dulus-0.2.41 → dulus-0.2.44}/docs/__init__.py +0 -0
  75. {dulus-0.2.41 → dulus-0.2.44}/docs/api.html +0 -0
  76. {dulus-0.2.41 → dulus-0.2.44}/docs/architecture.md +0 -0
  77. {dulus-0.2.41 → dulus-0.2.44}/docs/azure-speech-template.json +0 -0
  78. {dulus-0.2.41 → dulus-0.2.44}/docs/dashboard/index.html +0 -0
  79. {dulus-0.2.41 → dulus-0.2.44}/docs/divider.svg +0 -0
  80. {dulus-0.2.41 → dulus-0.2.44}/docs/generate.py +0 -0
  81. {dulus-0.2.41 → dulus-0.2.44}/docs/hero.svg +0 -0
  82. {dulus-0.2.41 → dulus-0.2.44}/docs/index.html +0 -0
  83. {dulus-0.2.41 → dulus-0.2.44}/docs/news.md +0 -0
  84. {dulus-0.2.41 → dulus-0.2.44}/docs/nvidia-models.svg +0 -0
  85. {dulus-0.2.41 → dulus-0.2.44}/docs/particle-playground.html +0 -0
  86. {dulus-0.2.41 → dulus-0.2.44}/docs/personas/index.html +0 -0
  87. {dulus-0.2.41 → dulus-0.2.44}/docs/poetry-banner.png +0 -0
  88. {dulus-0.2.41 → dulus-0.2.44}/docs/preview.html +0 -0
  89. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-agents.svg +0 -0
  90. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-brainstorm.svg +0 -0
  91. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-bridges.svg +0 -0
  92. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-features.svg +0 -0
  93. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-freetier.svg +0 -0
  94. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-memory.svg +0 -0
  95. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-models.svg +0 -0
  96. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-perms.svg +0 -0
  97. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-plugins.svg +0 -0
  98. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-quickstart.svg +0 -0
  99. {dulus-0.2.41 → dulus-0.2.44}/docs/sec-ssj.svg +0 -0
  100. {dulus-0.2.41 → dulus-0.2.44}/docs/spinners.svg +0 -0
  101. {dulus-0.2.41 → dulus-0.2.44}/docs/split-pane.svg +0 -0
  102. {dulus-0.2.41 → dulus-0.2.44}/docs/terminal-boot.svg +0 -0
  103. {dulus-0.2.41 → dulus-0.2.44}/docs/uploads/particle-playground.html +0 -0
  104. {dulus-0.2.41 → dulus-0.2.44}/dulus.egg-info/dependency_links.txt +0 -0
  105. {dulus-0.2.41 → dulus-0.2.44}/dulus.egg-info/entry_points.txt +0 -0
  106. {dulus-0.2.41 → dulus-0.2.44}/dulus.egg-info/requires.txt +0 -0
  107. {dulus-0.2.41 → dulus-0.2.44}/dulus_gui.py +0 -0
  108. {dulus-0.2.41 → dulus-0.2.44}/dulus_mcp/__init__.py +0 -0
  109. {dulus-0.2.41 → dulus-0.2.44}/dulus_mcp/client.py +0 -0
  110. {dulus-0.2.41 → dulus-0.2.44}/dulus_mcp/config.py +0 -0
  111. {dulus-0.2.41 → dulus-0.2.44}/dulus_mcp/tools.py +0 -0
  112. {dulus-0.2.41 → dulus-0.2.44}/dulus_mcp/types.py +0 -0
  113. {dulus-0.2.41 → dulus-0.2.44}/gui/__init__.py +0 -0
  114. {dulus-0.2.41 → dulus-0.2.44}/gui/agent_bridge.py +0 -0
  115. {dulus-0.2.41 → dulus-0.2.44}/gui/chat_widget.py +0 -0
  116. {dulus-0.2.41 → dulus-0.2.44}/gui/main_window.py +0 -0
  117. {dulus-0.2.41 → dulus-0.2.44}/gui/personas.py +0 -0
  118. {dulus-0.2.41 → dulus-0.2.44}/gui/session_utils.py +0 -0
  119. {dulus-0.2.41 → dulus-0.2.44}/gui/settings_dialog.py +0 -0
  120. {dulus-0.2.41 → dulus-0.2.44}/gui/sidebar.py +0 -0
  121. {dulus-0.2.41 → dulus-0.2.44}/gui/tasks_view.py +0 -0
  122. {dulus-0.2.41 → dulus-0.2.44}/gui/themes.py +0 -0
  123. {dulus-0.2.41 → dulus-0.2.44}/gui/tool_panel.py +0 -0
  124. {dulus-0.2.41 → dulus-0.2.44}/input.py +0 -0
  125. {dulus-0.2.41 → dulus-0.2.44}/license_manager.py +0 -0
  126. {dulus-0.2.41 → dulus-0.2.44}/memory/__init__.py +0 -0
  127. {dulus-0.2.41 → dulus-0.2.44}/memory/audit.py +0 -0
  128. {dulus-0.2.41 → dulus-0.2.44}/memory/consolidator.py +0 -0
  129. {dulus-0.2.41 → dulus-0.2.44}/memory/context.py +0 -0
  130. {dulus-0.2.41 → dulus-0.2.44}/memory/offload.py +0 -0
  131. {dulus-0.2.41 → dulus-0.2.44}/memory/palace.py +0 -0
  132. {dulus-0.2.41 → dulus-0.2.44}/memory/scan.py +0 -0
  133. {dulus-0.2.41 → dulus-0.2.44}/memory/sessions.py +0 -0
  134. {dulus-0.2.41 → dulus-0.2.44}/memory/store.py +0 -0
  135. {dulus-0.2.41 → dulus-0.2.44}/memory/tools.py +0 -0
  136. {dulus-0.2.41 → dulus-0.2.44}/memory/types.py +0 -0
  137. {dulus-0.2.41 → dulus-0.2.44}/memory/vector_search.py +0 -0
  138. {dulus-0.2.41 → dulus-0.2.44}/multi_agent/__init__.py +0 -0
  139. {dulus-0.2.41 → dulus-0.2.44}/multi_agent/subagent.py +0 -0
  140. {dulus-0.2.41 → dulus-0.2.44}/multi_agent/tools.py +0 -0
  141. {dulus-0.2.41 → dulus-0.2.44}/offload_helper.py +0 -0
  142. {dulus-0.2.41 → dulus-0.2.44}/plugin/__init__.py +0 -0
  143. {dulus-0.2.41 → dulus-0.2.44}/plugin/autoadapter.py +0 -0
  144. {dulus-0.2.41 → dulus-0.2.44}/plugin/loader.py +0 -0
  145. {dulus-0.2.41 → dulus-0.2.44}/plugin/recommend.py +0 -0
  146. {dulus-0.2.41 → dulus-0.2.44}/plugin/store.py +0 -0
  147. {dulus-0.2.41 → dulus-0.2.44}/plugin/types.py +0 -0
  148. {dulus-0.2.41 → dulus-0.2.44}/providers.py +0 -0
  149. {dulus-0.2.41 → dulus-0.2.44}/setup.cfg +0 -0
  150. {dulus-0.2.41 → dulus-0.2.44}/skill/__init__.py +0 -0
  151. {dulus-0.2.41 → dulus-0.2.44}/skill/builtin.py +0 -0
  152. {dulus-0.2.41 → dulus-0.2.44}/skill/clawhub.py +0 -0
  153. {dulus-0.2.41 → dulus-0.2.44}/skill/executor.py +0 -0
  154. {dulus-0.2.41 → dulus-0.2.44}/skill/loader.py +0 -0
  155. {dulus-0.2.41 → dulus-0.2.44}/skill/tools.py +0 -0
  156. {dulus-0.2.41 → dulus-0.2.44}/skills.py +0 -0
  157. {dulus-0.2.41 → dulus-0.2.44}/spinner.py +0 -0
  158. {dulus-0.2.41 → dulus-0.2.44}/string_utils.py +0 -0
  159. {dulus-0.2.41 → dulus-0.2.44}/subagent.py +0 -0
  160. {dulus-0.2.41 → dulus-0.2.44}/task/__init__.py +0 -0
  161. {dulus-0.2.41 → dulus-0.2.44}/task/types.py +0 -0
  162. {dulus-0.2.41 → dulus-0.2.44}/tests/test_afk_yolo.py +0 -0
  163. {dulus-0.2.41 → dulus-0.2.44}/tests/test_approval_runtime.py +0 -0
  164. {dulus-0.2.41 → dulus-0.2.44}/tests/test_background_task_tools.py +0 -0
  165. {dulus-0.2.41 → dulus-0.2.44}/tests/test_background_tasks.py +0 -0
  166. {dulus-0.2.41 → dulus-0.2.44}/tests/test_checkpoint.py +0 -0
  167. {dulus-0.2.41 → dulus-0.2.44}/tests/test_clipboard_utils.py +0 -0
  168. {dulus-0.2.41 → dulus-0.2.44}/tests/test_compaction.py +0 -0
  169. {dulus-0.2.41 → dulus-0.2.44}/tests/test_diff_view.py +0 -0
  170. {dulus-0.2.41 → dulus-0.2.44}/tests/test_diff_visualization.py +0 -0
  171. {dulus-0.2.41 → dulus-0.2.44}/tests/test_display_blocks.py +0 -0
  172. {dulus-0.2.41 → dulus-0.2.44}/tests/test_export_import.py +0 -0
  173. {dulus-0.2.41 → dulus-0.2.44}/tests/test_hook_engine.py +0 -0
  174. {dulus-0.2.41 → dulus-0.2.44}/tests/test_injection_fix.py +0 -0
  175. {dulus-0.2.41 → dulus-0.2.44}/tests/test_license.py +0 -0
  176. {dulus-0.2.41 → dulus-0.2.44}/tests/test_mcp.py +0 -0
  177. {dulus-0.2.41 → dulus-0.2.44}/tests/test_memory.py +0 -0
  178. {dulus-0.2.41 → dulus-0.2.44}/tests/test_notification_manager.py +0 -0
  179. {dulus-0.2.41 → dulus-0.2.44}/tests/test_plugin.py +0 -0
  180. {dulus-0.2.41 → dulus-0.2.44}/tests/test_session_fork.py +0 -0
  181. {dulus-0.2.41 → dulus-0.2.44}/tests/test_shell_mode.py +0 -0
  182. {dulus-0.2.41 → dulus-0.2.44}/tests/test_skills.py +0 -0
  183. {dulus-0.2.41 → dulus-0.2.44}/tests/test_steer_input.py +0 -0
  184. {dulus-0.2.41 → dulus-0.2.44}/tests/test_subagent.py +0 -0
  185. {dulus-0.2.41 → dulus-0.2.44}/tests/test_task.py +0 -0
  186. {dulus-0.2.41 → dulus-0.2.44}/tests/test_telegram_buffer.py +0 -0
  187. {dulus-0.2.41 → dulus-0.2.44}/tests/test_think_tool.py +0 -0
  188. {dulus-0.2.41 → dulus-0.2.44}/tests/test_todo_tool.py +0 -0
  189. {dulus-0.2.41 → dulus-0.2.44}/tests/test_todo_visualization.py +0 -0
  190. {dulus-0.2.41 → dulus-0.2.44}/tests/test_tool_registry.py +0 -0
  191. {dulus-0.2.41 → dulus-0.2.44}/tests/test_voice.py +0 -0
  192. {dulus-0.2.41 → dulus-0.2.44}/tests/test_wire_events.py +0 -0
  193. {dulus-0.2.41 → dulus-0.2.44}/tmux_offloader.py +0 -0
  194. {dulus-0.2.41 → dulus-0.2.44}/tmux_tools.py +0 -0
  195. {dulus-0.2.41 → dulus-0.2.44}/tool_registry.py +0 -0
  196. {dulus-0.2.41 → dulus-0.2.44}/ui/__init__.py +0 -0
  197. {dulus-0.2.41 → dulus-0.2.44}/ui/input.py +0 -0
  198. {dulus-0.2.41 → dulus-0.2.44}/ui/render.py +0 -0
  199. {dulus-0.2.41 → dulus-0.2.44}/voice/__init__.py +0 -0
  200. {dulus-0.2.41 → dulus-0.2.44}/voice/keyterms.py +0 -0
  201. {dulus-0.2.41 → dulus-0.2.44}/voice/recorder.py +0 -0
  202. {dulus-0.2.41 → dulus-0.2.44}/voice/stt.py +0 -0
  203. {dulus-0.2.41 → dulus-0.2.44}/voice/tts.py +0 -0
  204. {dulus-0.2.41 → dulus-0.2.44}/webchat.py +0 -0
@@ -1,2 +1,3 @@
1
1
  recursive-include docs *
2
2
  recursive-include data *
3
+ recursive-include sandbox/dist *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dulus
3
- Version: 0.2.41
3
+ Version: 0.2.44
4
4
  Summary: Spanish-first multi-provider AI CLI — 14 NVIDIA models free, Mesa Redonda, voice, TTS, RTK token reducer, MemPalace
5
5
  Author: KevRojo
6
6
  License: GPL-3.0
@@ -69,7 +69,7 @@ SET /sticky_input ON since the first run for the best experience!
69
69
  <a href="https://pypi.org/project/dulus/"><img src="https://static.pepy.tech/badge/dulus?style=flat-square" alt="downloads"/></a>
70
70
  <img src="https://img.shields.io/badge/python-3.11+-ff6b1f?style=flat-square&labelColor=07070a" alt="python"/>
71
71
  <img src="https://img.shields.io/badge/license-GPLv3-ff6b1f?style=flat-square&labelColor=07070a" alt="license"/>
72
- <img src="https://img.shields.io/badge/version-v0.2.30-ff6b1f?style=flat-square&labelColor=07070a" alt="version"/>
72
+ <img src="https://img.shields.io/badge/version-v0.2.44-ff6b1f?style=flat-square&labelColor=07070a" alt="version"/>
73
73
  <img src="https://img.shields.io/badge/providers-11-ff6b1f?style=flat-square&labelColor=07070a" alt="providers"/>
74
74
  <img src="https://img.shields.io/badge/tools-27-ff6b1f?style=flat-square&labelColor=07070a" alt="tools"/>
75
75
  <img src="https://img.shields.io/badge/tests-263+-ff6b1f?style=flat-square&labelColor=07070a" alt="tests"/>
@@ -227,6 +227,21 @@ echo "explain this diff" | git diff | dulus -p --accept-all
227
227
 
228
228
  <p align="center"><sub>↑ session boot. soul loaded, gold memory warm, shell sniffed. the little circles are real buttons on your Mac.</sub></p>
229
229
 
230
+ ### 💻 Dulus OS (Sandbox)
231
+ > [!NOTE]
232
+ > **Experimental features:** The folder `sandbox/` contains the early implementation of **Dulus OS** — a mini-operating system that runs entirely in your browser. It is currently in heavy development and not 100% functional yet. It will serve as a secure, isolated environment for browser-based tool execution and visualizations.
233
+
234
+ <img width="1309" height="778" alt="image" src="https://github.com/user-attachments/assets/1c627990-7f87-489b-a0a2-14ad62fe2bb8" />
235
+
236
+ ---
237
+ <img width="1608" height="1903" alt="image" src="https://github.com/user-attachments/assets/450defa2-437b-470d-891a-9285d9e5e312" />
238
+
239
+ ---
240
+ <img width="3763" height="1975" alt="image" src="https://github.com/user-attachments/assets/10752aa2-6837-4097-a9a8-e02938992174" />
241
+
242
+ ---
243
+ The dulus sandbox is an early feature, expect bugs
244
+
230
245
  ---
231
246
 
232
247
  <p align="center"><img src="https://raw.githubusercontent.com/KevRojo/Dulus/main/docs/sec-features.svg" alt="Features" width="100%"></p>