comodor 0.19.1__tar.gz → 0.19.2__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.
- {comodor-0.19.1 → comodor-0.19.2}/PKG-INFO +2 -2
- {comodor-0.19.1 → comodor-0.19.2}/README.md +1 -1
- {comodor-0.19.1 → comodor-0.19.2}/docs/README.md +1 -1
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/_version.py +2 -2
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/help.py +8 -3
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/setup.py +11 -2
- {comodor-0.19.1 → comodor-0.19.2}/.gitignore +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/LICENSE +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/pyproject.toml +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/__main__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/acp/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/acp/agent.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/acp/commands.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/acp/jsonrpc.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/agent/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/agent/context.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/agent/loop.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/agent/prompts.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/agent/spawn.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/agent/tokens.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/browser/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/browser/cdp.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/browser/launch.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/browser/page.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/catalogue.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/channels/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/channels/daemon.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/channels/unit.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/cli.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/config.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/desktop/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/desktop/guard.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/desktop/keys.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/desktop/overlay.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/desktop/png.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/desktop/screen.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/desktop/win32.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/doctor.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/events.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/associations.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/bm25.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/hotindex.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/memory.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/progress.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/reflect.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/rules.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/signals.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/store.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/learning/writer.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/local/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/local/catalogue.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/local/commands.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/local/download.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/local/models.json +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/local/provider.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/local/runtime.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/local/store.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/mcp/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/mcp/catalogue.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/mcp/commands.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/mcp/http.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/mcp/manager.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/mcp/protocol.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/migrate.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/net/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/net/http.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/net/sse.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/paths.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/anthropic.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/base.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/caching.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/discover.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/fake.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/gateway.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/models.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/oauth.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/openai_compat.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/providers/registry.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/questions.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/safety/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/safety/checkpoints.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/safety/permissions.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/safety/redact.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/session/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/session/search.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/session/store.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/skills/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/skills/catalogue.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/skills/commands.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/skills/examples.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/skills/loader.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/skills/propose.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/skills/registry.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/telegram/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/telegram/api.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/telegram/bot.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/telegram/commands.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/telegram/keyboard.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/telegram/service.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/telegram/unit.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/ask.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/base.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/browse.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/browser.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/computer.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/delegate.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/fs.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/history.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/mcp.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/overflow.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/registry.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/search.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/shell.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/skills.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/todo.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/tools/web.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/app.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/banner.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/bidi.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/chooser.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/clipboard.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/console.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/input/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/input/keys.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/input/reader.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/layout.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/markdown.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/screen.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/theme.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/buttons.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/chat.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/history.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/overlay.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/panel.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/progress.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/prompt.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/questions.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/statusbar.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/toast.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/ui/widgets/welcome.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/uninstall.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/update.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/web/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/web/commands.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/web/index.html +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/web/server.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/web/session.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/web/ui.css +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/web/ui.js +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/web/vazirmatn-OFL.txt +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/web/vazirmatn.woff2 +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/__init__.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/api.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/bot.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/commands.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/guide.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/menu.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/service.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/tunnel.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/unit.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/whatsapp/webhook.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/src/comodor/workspace.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/conftest.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/support/fake_mcp_server.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_acp.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_agent_loop.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_app.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_associations.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_banner.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_bidi.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_browser.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_caching.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_channel_service.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_chooser.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_computer_tool.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_config_save.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_copy_and_bands.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_delegate.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_desktop.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_discover.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_doctor.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_help.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_history.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_import_command.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_input.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_layout.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_learning.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_local.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_markdown.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_mcp.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_mcp_http.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_migrate.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_oauth.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_overflow.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_overlay.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_performance.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_prefix_stability.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_progress.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_propose.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_providers.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_questions.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_real_browser.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_real_desktop.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_real_web_ui.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_reflex.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_run_loop.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_setup.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_setup_import.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_skill_budget.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_skill_catalogue.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_skills.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_switching_model.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_telegram.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_tools.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_uninstall.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_update.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_web.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_welcome.py +0 -0
- {comodor-0.19.1 → comodor-0.19.2}/tests/test_whatsapp.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: comodor
|
|
3
|
-
Version: 0.19.
|
|
3
|
+
Version: 0.19.2
|
|
4
4
|
Summary: Comodor — a self-improving terminal coding agent with a Rich TUI
|
|
5
5
|
Project-URL: Homepage, https://comodor.ai
|
|
6
6
|
Project-URL: Repository, https://github.com/ifekri/Comodor
|
|
@@ -174,7 +174,7 @@ Esc stop it F3 cycle mode
|
|
|
174
174
|
| [What it can do](docs/tools.md) | The 13 tools, and when it uses each |
|
|
175
175
|
| [Safety and permissions](docs/safety.md) | What it asks, and what it never does |
|
|
176
176
|
| [From your phone](docs/telegram.md) | The Telegram bot, and who it answers |
|
|
177
|
-
| [From WhatsApp](docs/whatsapp.md) | The Cloud API
|
|
177
|
+
| [From WhatsApp](docs/whatsapp.md) | The Cloud API — longer to set up; Telegram does the same thing |
|
|
178
178
|
| [Models on your machine](docs/local-models.md) | Downloading one, running it offline |
|
|
179
179
|
| [Configuration](docs/configuration.md) | Every setting, and what wins |
|
|
180
180
|
| [Cost](docs/cost.md) | Caching, budgets, paying less |
|
|
@@ -147,7 +147,7 @@ Esc stop it F3 cycle mode
|
|
|
147
147
|
| [What it can do](docs/tools.md) | The 13 tools, and when it uses each |
|
|
148
148
|
| [Safety and permissions](docs/safety.md) | What it asks, and what it never does |
|
|
149
149
|
| [From your phone](docs/telegram.md) | The Telegram bot, and who it answers |
|
|
150
|
-
| [From WhatsApp](docs/whatsapp.md) | The Cloud API
|
|
150
|
+
| [From WhatsApp](docs/whatsapp.md) | The Cloud API — longer to set up; Telegram does the same thing |
|
|
151
151
|
| [Models on your machine](docs/local-models.md) | Downloading one, running it offline |
|
|
152
152
|
| [Configuration](docs/configuration.md) | Every setting, and what wins |
|
|
153
153
|
| [Cost](docs/cost.md) | Caching, budgets, paying less |
|
|
@@ -42,7 +42,7 @@ ends with the agent doing something useful.
|
|
|
42
42
|
| | |
|
|
43
43
|
|---|---|
|
|
44
44
|
| [From your phone](telegram.md) | The Telegram bot: pairing, the buttons, and who it answers |
|
|
45
|
-
| [From WhatsApp](whatsapp.md) | The Cloud API
|
|
45
|
+
| [From WhatsApp](whatsapp.md) | The Cloud API — about twenty minutes and technical. Telegram does the same in one |
|
|
46
46
|
| [Models on your machine](local-models.md) | Downloading one, running it offline, adding to the list |
|
|
47
47
|
| [Questions](questions.md) | The form it puts up when a request reads two ways |
|
|
48
48
|
| [How it learns](learning.md) | Corrections, lessons, rules, and the proof |
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.19.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 19,
|
|
21
|
+
__version__ = version = '0.19.2'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 19, 2)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -229,9 +229,14 @@ Full guide: docs/web.md"""),
|
|
|
229
229
|
comodor whatsapp start -b run it detached from this terminal
|
|
230
230
|
comodor whatsapp status what is set, who may talk, is it running
|
|
231
231
|
|
|
232
|
-
|
|
233
|
-
in Meta's dashboard
|
|
234
|
-
|
|
232
|
+
Telegram does the same thing in about a minute. This takes about twenty and is
|
|
233
|
+
technical, and most of it is in Meta's dashboard - so unless it has to be
|
|
234
|
+
WhatsApp, `comodor help telegram` is the shorter road.
|
|
235
|
+
|
|
236
|
+
What is NOT needed, because everybody assumes otherwise: no real phone number,
|
|
237
|
+
no payment method, no business verification. The test number Meta creates
|
|
238
|
+
messages five people for free, which is four more than one person talking to
|
|
239
|
+
their own agent needs.
|
|
235
240
|
|
|
236
241
|
Meta's Cloud API, which is the official one. The libraries that drive WhatsApp
|
|
237
242
|
Web instead need Node, break whenever the web client changes, and are against
|
|
@@ -660,12 +660,21 @@ class SetupWizard:
|
|
|
660
660
|
"otherwise.\n",
|
|
661
661
|
style=self.theme.style("dim")))
|
|
662
662
|
|
|
663
|
+
# The two are not equal work and the list says so. WhatsApp needs a
|
|
664
|
+
# Meta app, an app secret and a public HTTPS address — twenty minutes
|
|
665
|
+
# of somebody else's dashboard — and it does exactly what the one-token
|
|
666
|
+
# option does. Somebody choosing it because it was listed second, and
|
|
667
|
+
# discovering that twenty minutes later, is a question that cost them
|
|
668
|
+
# their evening.
|
|
663
669
|
wanted = self._choose(
|
|
664
670
|
[("no", "Not now", "you can set either up later"),
|
|
665
671
|
("telegram", "Telegram",
|
|
666
|
-
"
|
|
672
|
+
"recommended — one token from @BotFather, about a minute, "
|
|
673
|
+
"nothing else to set up"),
|
|
667
674
|
("whatsapp", "WhatsApp",
|
|
668
|
-
"
|
|
675
|
+
"about twenty minutes and technical: a Meta app, an app secret "
|
|
676
|
+
"and a public HTTPS address. It does the same thing Telegram "
|
|
677
|
+
"does — pick this only if it has to be WhatsApp")],
|
|
669
678
|
default=1, title="From your phone")
|
|
670
679
|
if wanted == "whatsapp":
|
|
671
680
|
self._point_at_whatsapp(step, total)
|
|
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
|
|
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
|