dulus 3.14.2__tar.gz → 3.14.4__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.14.2/dulus.egg-info → dulus-3.14.4}/PKG-INFO +3 -8
- {dulus-3.14.2 → dulus-3.14.4}/README.md +2 -7
- {dulus-3.14.2 → dulus-3.14.4/dulus.egg-info}/PKG-INFO +3 -8
- {dulus-3.14.2 → dulus-3.14.4}/dulus.py +21 -2
- {dulus-3.14.2 → dulus-3.14.4}/pyproject.toml +5 -5
- {dulus-3.14.2 → dulus-3.14.4}/LICENSE +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/MANIFEST.in +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/agent.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/algolia_search.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/analytics.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/agents_bridge.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/compressor.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/context.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/githook.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/marketplace.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/mempalace_bridge.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/paths.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/personas.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/plugins.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/server.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/backend/tasks.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/banners/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/banners/banner_rotator.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/banners/banners_dulus_ai.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/batch_api.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/checkpoint/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/checkpoint/hooks.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/checkpoint/store.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/checkpoint/types.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/__main__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/ansi.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/assets/ascii/dulus_logo.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/assets/ascii/eagle.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/assets/ascii/terminal_art.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/banners.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/demo.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/effects.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/effort_slider.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/progress.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/py.typed +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/spinners.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cli_animations/status.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/clipboard_utils.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/cloudsave.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/common.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/compaction.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/config.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/context.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/active_persona.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/marketplace.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/personas.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/plugins/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/plugins/composio/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/plugins/composio/composio_plugin/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/plugins/composio/composio_plugin/session_manager.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/plugins/composio/composio_plugin/tool_generator.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/plugins/composio/plugin.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/plugins/composio/plugin_tool.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/data/tasks.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/display_blocks.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/API.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/BRAND_GUIDE.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/CHANGELOG.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/CONTRIBUTING.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/DEPLOYMENT.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/FAQ.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/GETTING_STARTED.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README_AR.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README_EN.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README_ES.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README_FR.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README_JA.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README_KO.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README_PT.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README_RU.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/README_ZH.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/SECURITY.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/api.html +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/architecture.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/azure-speech-template.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/dashboard/index.html +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/divider.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/dulus-bird.png +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/generate.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/index.html +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/news.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/nvidia-models.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/particle-playground.html +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/personas/index.html +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/poetry-banner.png +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/preview.html +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/python-console.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/auto-adapter.png +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/dulus-os.png +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/hero.png +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/lookback_two_windows.png +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/pyc_heap.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/pyc_receipts.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/pyc_trap.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/roundtable.png +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/task-board.png +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/readme/webchat.png +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-agents.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-brainstorm.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-bridges.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-features.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-freetier.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-memory.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-models.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-perms.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-plugins.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-quickstart.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/sec-ssj.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/spinners.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/split-pane.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/terminal-boot.svg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/docs/termux-edge.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus.egg-info/SOURCES.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus.egg-info/dependency_links.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus.egg-info/entry_points.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus.egg-info/requires.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus.egg-info/top_level.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_account.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_bar_client.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_gui.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_mcp/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_mcp/client.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_mcp/commands.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_mcp/config.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_mcp/hub.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_mcp/tools.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_mcp/types.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_quick_menu.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/add_dir_manager.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/afk_mode.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/approval_runtime.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/background_tasks.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/clipboard_utils.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/diff_visualizer.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/export_import.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/hook_engine.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/isolate.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/notification_manager.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/session_fork.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/shell_mode.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/todo_visualizer.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/tree_ls.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/wire_events.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/dulus_tools/yolo_mode.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/file_filter.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/fs_compass.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/governance.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/agent_bridge.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/chat_widget.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/main_window.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/personas.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/sandbox_server.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/session_utils.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/settings_dialog.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/sidebar.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/tasks_view.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/themes.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/gui/tool_panel.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/input.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/license_manager.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/lookback.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/audit.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/consolidator.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/context.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/mempalace_bridge.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/offload.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/palace.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/scan.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/adaptation_guides.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/askuserquestion_after_numbered_list.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/background_jobs_no_extra_timers.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/cleverness_over_resources.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/corporate_tls_breaks_curl_cffi.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/hardened_rules.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/investigator_workflow_heuristic.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/native_code_over_sketchy_plugins.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/no_personal_info_in_code.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/searches_include_modified_date.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/tmux_send_keys_power_patterns.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/token_optimization_technique.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/tool_chaining_capability.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/insights/webbridge_evaluate_first_pattern.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/seeds/short_memory.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/sessions.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/store.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/tools.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/types.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/memory/vector_search.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/model_params.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/multi_agent/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/multi_agent/subagent.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/multi_agent/tools.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/paste_placeholders.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/personality_config.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/plugin/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/plugin/autoadapter.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/plugin/loader.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/plugin/recommend.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/plugin/store.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/plugin/types.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/profiles.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/providers.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/pyconsole.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/README.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/dist/assets/index-DE51D6wI.css +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/dist/assets/index-DMCCNE9Y.js +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/dist/index.html +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/dist/wallpaper-default.jpg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/dist/wallpapers/default.jpeg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/dist/wallpapers/light.jpeg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/dist/wallpapers/nature.jpeg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/dist/wallpapers/tech.jpeg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox/info.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/sandbox_bootstrap.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/setup.cfg +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/builtin.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/LICENSE-obsidian-skills +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/README.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/defuddle/SKILL.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/json-canvas/SKILL.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/json-canvas/references/EXAMPLES.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/obsidian-bases/SKILL.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/obsidian-cli/SKILL.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/obsidian-markdown/SKILL.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/obsidian-markdown/references/CALLOUTS.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/obsidian-markdown/references/EMBEDS.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/obsidian-markdown/references/PROPERTIES.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/README.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/SKILL.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/addresses.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/advancedbackgroundchecks.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/beenverified.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/clustal.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/clustrmaps.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/cyberbackgroundchecks.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/familytreenow.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/fastpeoplesearch.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/intelius.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/mylife.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/nuwber.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/peekyou.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/peoplefinders.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/radaris.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/rehold.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/searchpeoplefree.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/socialcatfish.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/spokeo.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/thatsthem.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/truepeoplesearch.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/usphonebook.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/brokers/whitepages.json +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/legal/ccpa.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/legal/drop.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/legal/gdpr.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/methods.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/site-playbooks.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/references/state-machine.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/autopilot.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/badbool.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/brokers.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/cdp.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/config.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/crypto.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/dossier.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/email_modes.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/emailer.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/ledger.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/legal.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/paths.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/pdd.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/registry.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/report.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/scan.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/storage.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/tiers.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/scripts/vectors.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/templates/consent/authorization.md +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/templates/emails/ccpa-authorized-agent.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/templates/emails/ccpa-deletion.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/templates/emails/ccpa-indirect-deletion.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/templates/emails/gdpr-erasure.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/bundled/unbroker/templates/emails/generic-optout.txt +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/clawhub.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/executor.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/loader.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skill/tools.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/skills.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/soul.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/spinner.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/steer_input.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/subagent.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/task/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/task/store.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/task/tools.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/task/types.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_afk_yolo.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_approval_runtime.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_background_task_tools.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_background_tasks.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_chatgpt_oauth.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_checkpoint.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_cli_animations_integration.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_clipboard_utils.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_compaction.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_composio_tool_generator.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_diff_view.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_diff_visualization.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_display_blocks.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_dulus_account.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_export_import.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_gold_memory_preload.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_grok_usage.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_hook_engine.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_injection_fix.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_json_protocol.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_license.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_lookback_cache.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_lookback_compact.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_mcp.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_mcp_algolia.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_memory.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_memory_home_resolution.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_notification_manager.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_plugin.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_profile_isolation.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_profile_plugin_scope.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_provider_errors.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_session_fork.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_shell_detection.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_shell_mode.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_skills.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_skillssh_algolia.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_steer_input.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_subagent.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_task.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_telegram_buffer.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_think_tool.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_todo_tool.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_todo_visualization.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_tool_registry.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_tree_ls.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_voice.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_webbridge_tabs.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tests/test_wire_events.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tmux_tools.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/token_budget.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tool_registry.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tools.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tools_background.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tools_think.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/tools_todo.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/ui/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/ui/input.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/ui/render.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/updater.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/voice/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/voice/audio_utils.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/voice/keyterms.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/voice/recorder.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/voice/stt.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/voice/tts.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/voice/wake_word.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/webbridge/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/webbridge/core.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/webbridge/tools.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/webchat.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/webchat_server.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/webchat_ui/__init__.py +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/webchat_ui/app.js +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/webchat_ui/index.html +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/webchat_ui/style.css +0 -0
- {dulus-3.14.2 → dulus-3.14.4}/welcome.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: dulus
|
|
3
|
-
Version: 3.14.
|
|
3
|
+
Version: 3.14.4
|
|
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>
|
|
@@ -104,10 +104,6 @@ Requires-Dist: pytesseract>=0.3.10; extra == "full"
|
|
|
104
104
|
|
|
105
105
|
# Dulus
|
|
106
106
|
|
|
107
|
-
<p align="center">
|
|
108
|
-
<img width="1382" height="938" alt="image" src="https://github.com/user-attachments/assets/a2b297e3-53f8-4fce-a91a-6123274c4fc4" />
|
|
109
|
-
</p>
|
|
110
|
-
|
|
111
107
|
<p align="center">
|
|
112
108
|
<img width="1179" height="761" alt="image" src="https://github.com/user-attachments/assets/95c8a306-88e6-4f9d-a1aa-009ac38ebeaf" />
|
|
113
109
|
</p>
|
|
@@ -159,9 +155,8 @@ Requires-Dist: pytesseract>=0.3.10; extra == "full"
|
|
|
159
155
|
<a href="docs/README_AR.md">العربية</a>
|
|
160
156
|
</p>
|
|
161
157
|
|
|
162
|
-
<p align="center">
|
|
163
|
-
|
|
164
|
-
</p>
|
|
158
|
+
<p align="center"> <img width="613" height="313" alt="image" src="https://github.com/user-attachments/assets/13e1bb03-6493-4679-9ed8-2dda0c836ff3" /> </p>
|
|
159
|
+
|
|
165
160
|
|
|
166
161
|
<p align="center">
|
|
167
162
|
Dulus is an open-source agent runtime that hands you a real AI agent the moment you install it —<br>
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# Dulus
|
|
2
2
|
|
|
3
|
-
<p align="center">
|
|
4
|
-
<img width="1382" height="938" alt="image" src="https://github.com/user-attachments/assets/a2b297e3-53f8-4fce-a91a-6123274c4fc4" />
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
3
|
<p align="center">
|
|
8
4
|
<img width="1179" height="761" alt="image" src="https://github.com/user-attachments/assets/95c8a306-88e6-4f9d-a1aa-009ac38ebeaf" />
|
|
9
5
|
</p>
|
|
@@ -55,9 +51,8 @@
|
|
|
55
51
|
<a href="docs/README_AR.md">العربية</a>
|
|
56
52
|
</p>
|
|
57
53
|
|
|
58
|
-
<p align="center">
|
|
59
|
-
|
|
60
|
-
</p>
|
|
54
|
+
<p align="center"> <img width="613" height="313" alt="image" src="https://github.com/user-attachments/assets/13e1bb03-6493-4679-9ed8-2dda0c836ff3" /> </p>
|
|
55
|
+
|
|
61
56
|
|
|
62
57
|
<p align="center">
|
|
63
58
|
Dulus is an open-source agent runtime that hands you a real AI agent the moment you install it —<br>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: dulus
|
|
3
|
-
Version: 3.14.
|
|
3
|
+
Version: 3.14.4
|
|
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>
|
|
@@ -104,10 +104,6 @@ Requires-Dist: pytesseract>=0.3.10; extra == "full"
|
|
|
104
104
|
|
|
105
105
|
# Dulus
|
|
106
106
|
|
|
107
|
-
<p align="center">
|
|
108
|
-
<img width="1382" height="938" alt="image" src="https://github.com/user-attachments/assets/a2b297e3-53f8-4fce-a91a-6123274c4fc4" />
|
|
109
|
-
</p>
|
|
110
|
-
|
|
111
107
|
<p align="center">
|
|
112
108
|
<img width="1179" height="761" alt="image" src="https://github.com/user-attachments/assets/95c8a306-88e6-4f9d-a1aa-009ac38ebeaf" />
|
|
113
109
|
</p>
|
|
@@ -159,9 +155,8 @@ Requires-Dist: pytesseract>=0.3.10; extra == "full"
|
|
|
159
155
|
<a href="docs/README_AR.md">العربية</a>
|
|
160
156
|
</p>
|
|
161
157
|
|
|
162
|
-
<p align="center">
|
|
163
|
-
|
|
164
|
-
</p>
|
|
158
|
+
<p align="center"> <img width="613" height="313" alt="image" src="https://github.com/user-attachments/assets/13e1bb03-6493-4679-9ed8-2dda0c836ff3" /> </p>
|
|
159
|
+
|
|
165
160
|
|
|
166
161
|
<p align="center">
|
|
167
162
|
Dulus is an open-source agent runtime that hands you a real AI agent the moment you install it —<br>
|
|
@@ -396,7 +396,7 @@ try:
|
|
|
396
396
|
from importlib.metadata import version as _pkg_version
|
|
397
397
|
VERSION = _pkg_version("dulus")
|
|
398
398
|
except Exception:
|
|
399
|
-
VERSION = "3.14.
|
|
399
|
+
VERSION = "3.14.4" # dev fallback — keep in sync with pyproject.toml
|
|
400
400
|
|
|
401
401
|
# ── Machine-readable protocol output (`--output json`) ─────────────────────
|
|
402
402
|
# Dulus is increasingly run as a child process by another agent runtime (an
|
|
@@ -12997,7 +12997,26 @@ def repl(config: dict, initial_prompt: str | None = None):
|
|
|
12997
12997
|
from mempalace.searcher import search_memories as _mp_search
|
|
12998
12998
|
from mempalace.config import MempalaceConfig as _MPCfg
|
|
12999
12999
|
_palace = _MPCfg().palace_path
|
|
13000
|
-
|
|
13000
|
+
# Hard timeout guard: chromadb can hang indefinitely on a
|
|
13001
|
+
# large/corrupt palace or a bad backend version, and a plain
|
|
13002
|
+
# try/except does NOT rescue a hang — it only catches raised
|
|
13003
|
+
# exceptions. Run the search on a worker thread and abandon it
|
|
13004
|
+
# if it doesn't answer fast, so a stuck palace can never freeze
|
|
13005
|
+
# the whole REPL. On timeout we fall through to local memory.
|
|
13006
|
+
# NOTE: deliberately NOT a `with` block — the executor's
|
|
13007
|
+
# __exit__ calls shutdown(wait=True), which would re-block the
|
|
13008
|
+
# turn until the stuck worker finishes, defeating the timeout.
|
|
13009
|
+
import concurrent.futures as _cf
|
|
13010
|
+
_MP_TIMEOUT_S = float(config.get("mem_palace_timeout", 3.0))
|
|
13011
|
+
_mp_ex = _cf.ThreadPoolExecutor(max_workers=1)
|
|
13012
|
+
_fut = _mp_ex.submit(_mp_search, _q, _palace, n_results=3)
|
|
13013
|
+
try:
|
|
13014
|
+
_res = _fut.result(timeout=_MP_TIMEOUT_S)
|
|
13015
|
+
except _cf.TimeoutError:
|
|
13016
|
+
_res = None
|
|
13017
|
+
_mp_log(f"mempalace search timed out after {_MP_TIMEOUT_S:.1f}s → falling back to local", "yellow")
|
|
13018
|
+
finally:
|
|
13019
|
+
_mp_ex.shutdown(wait=False)
|
|
13001
13020
|
for _hit in (_res or {}).get("results", []):
|
|
13002
13021
|
_meta = _hit.get("metadata") or {}
|
|
13003
13022
|
_src = _meta.get("source_file") or _meta.get("name") or "palace"
|
|
@@ -10,7 +10,7 @@ build-backend = "setuptools.build_meta"
|
|
|
10
10
|
|
|
11
11
|
[project]
|
|
12
12
|
name = "dulus"
|
|
13
|
-
version = "3.14.
|
|
13
|
+
version = "3.14.4"
|
|
14
14
|
description = "Provider-independent agent runtime for the terminal — cloud and local models, real tools, MCP, plugins, memory, sub-agents, and Dulus OS."
|
|
15
15
|
readme = "README.md"
|
|
16
16
|
requires-python = ">=3.10"
|
|
@@ -116,10 +116,10 @@ dependencies = [
|
|
|
116
116
|
# `pip install dulus[full]`, so shipping it here is the only way metrics
|
|
117
117
|
# actually reach us from real installs.
|
|
118
118
|
"posthog>=3.0.0",
|
|
119
|
-
# Memory Palace — per-turn semantic memory injection.
|
|
120
|
-
#
|
|
121
|
-
#
|
|
122
|
-
#
|
|
119
|
+
# Memory Palace — per-turn semantic memory injection. Shipped in core on
|
|
120
|
+
# purpose: it's a first-class Dulus feature (mem_palace is ON by default)
|
|
121
|
+
# and the chromadb wheels resolve fine on regular targets. The per-turn
|
|
122
|
+
# search is now guarded so a slow/stuck backend can't freeze the REPL.
|
|
123
123
|
"mempalace>=3.3.4",
|
|
124
124
|
# Voice I/O — mic capture + cloud TTS. On by default so `/voice` works out
|
|
125
125
|
# of the box; silent no-op on headless boxes with no audio device.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|