comodor 1.1.2__tar.gz → 1.2.0__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-1.1.2 → comodor-1.2.0}/PKG-INFO +4 -1
- {comodor-1.1.2 → comodor-1.2.0}/README.md +3 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/README.md +2 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/_version.py +2 -2
- comodor-1.2.0/src/comodor/agent/background.py +875 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/daemon.py +19 -13
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cli.py +8 -2
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/overlay.py +28 -14
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/catalogue.py +12 -1
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/app.py +71 -8
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/layout.py +124 -4
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/screen.py +81 -6
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/theme.py +39 -2
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/chat.py +96 -54
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/prompt.py +165 -6
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/statusbar.py +23 -5
- comodor-1.2.0/src/comodor/ui/widgets/welcome.py +380 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/session.py +13 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_app.py +212 -0
- comodor-1.2.0/tests/test_background_delegates.py +2191 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_bidi.py +3 -1
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_channel_service.py +97 -6
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_copy_and_bands.py +109 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_layout.py +305 -4
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_local.py +245 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_overlay_buttons.py +23 -32
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_run_loop.py +9 -3
- comodor-1.2.0/tests/test_slash_completions.py +821 -0
- comodor-1.2.0/tests/test_surface_impact_contract.py +1027 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_web.py +22 -0
- comodor-1.2.0/tests/test_welcome.py +371 -0
- comodor-1.1.2/src/comodor/agent/background.py +0 -412
- comodor-1.1.2/src/comodor/ui/widgets/welcome.py +0 -163
- comodor-1.1.2/tests/test_background_delegates.py +0 -288
- comodor-1.1.2/tests/test_welcome.py +0 -151
- {comodor-1.1.2 → comodor-1.2.0}/.gitignore +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/LICENSE +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/bench/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/bench/tasks/careful-unknowable/repo/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/AR/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/DE/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/ES/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/FA/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/FR/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/RU/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/TR/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/ZH/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/docs/upgrade-specs/README.md +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/pyproject.toml +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/__main__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/acp/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/acp/agent.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/acp/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/acp/jsonrpc.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/claims.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/constraints.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/context.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/loop.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/plan.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/prompts.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/spawn.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/staleness.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/tokens.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/tool_bridge.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/verify.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/api/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/api/schema.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/api/server.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/api/session_map.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/browser/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/browser/cdp.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/browser/launch.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/browser/page.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/catalogue.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/breaker.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/busy.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/ledger.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/markdown.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/settings.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/unit.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/config.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/context_refs.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/deliver.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/jobs.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/parse.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/runner.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/scheduler.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/guard.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/keys.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/png.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/quartz.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/screen.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/win32.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/x11.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/api.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/bot.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/gateway.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/service.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/unit.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/doctor.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/events.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/api.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/connect.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/identity.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/repos.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/tokens.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/help.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/image_gen/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/image_gen/registry.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/insights.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/associations.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/bm25.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/curator.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/facts.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/hotindex.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/journey.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/journey_commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/memory.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/progress.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/providers/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/providers/base.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/providers/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/providers/http_generic.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/reflect.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/render.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/review.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/rules.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/signals.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/store.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/writer.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/download.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/models.json +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/provider.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/runtime.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/store.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/catalogue.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/http.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/manager.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/protocol.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/media/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/media/ingest.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/media/route.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/migrate.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/net/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/net/http.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/net/sse.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/net/ws.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/paths.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/plugins/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/plugins/api.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/plugins/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/plugins/manager.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/anthropic.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/base.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/caching.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/discover.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/fake.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/gateway.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/models.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/oauth.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/openai_compat.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/pool.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/profile.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/registry.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/questions.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/backends.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/checkpoints.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/mining.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/permissions.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/redact.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/smart.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/ssrf.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/session/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/session/search.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/session/store.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/setup.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/catalogue.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/examples.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/ledger.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/linter.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/loader.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/propose.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/registry.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/threats.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/usage.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/api.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/blocks.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/bot.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/service.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/socket.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/unit.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/api.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/bot.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/keyboard.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/service.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/unit.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/ask.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/base.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/browse.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/browser.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/computer.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/cronjob.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/delegate.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/fs.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/github.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/history.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/image_gen.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/matching.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/mcp.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/mcp_resources.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/memory.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/overflow.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/plugin.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/propose_mode.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/registry.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/search.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/shell.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/skill_manage.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/skills.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/todo.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/verify.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/vision.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/web.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/banner.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/bidi.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/chooser.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/clipboard.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/console.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/input/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/input/keys.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/input/reader.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/markdown.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/buttons.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/history.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/overlay.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/panel.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/progress.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/questions.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/toast.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/uninstall.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/update.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/vision.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/voice/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/voice/stt.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/voice/tts.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/index.html +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/server.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/ui.css +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/ui.js +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/vazirmatn-OFL.txt +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/vazirmatn.woff2 +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/webhook/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/webhook/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/webhook/server.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/webhook/subs.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/__init__.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/api.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/bot.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/commands.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/guide.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/menu.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/service.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/tunnel.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/unit.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/webhook.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/src/comodor/workspace.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/conftest.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/support/fake_mcp_server.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_acp.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_agent_loop.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_api.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_approval_mining.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_associations.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_backends.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_banner.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_bench.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_blind_writes.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_breaker.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_browser.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_busy_modes.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_caching.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_capability_map.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_chooser.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_claims.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_computer_tool.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_config_save.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_constraints.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_context_refs.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_cron.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_cronjob.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_curator.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_delegate.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_delivery_ledger.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_desktop.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_discord.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_discover.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_docker.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_doctor.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_facts.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_github.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_github_identity.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_github_tool.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_headless.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_help.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_history.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_image_gen.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_import_command.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_input.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_insights.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_journey.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_key_pool.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_learning.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_live_settings.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_markdown.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_matching.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_mcp.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_mcp_http.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_mcp_resources.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_media.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_memory_provider.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_memory_tool.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_migrate.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_nothing_is_left_running.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_oauth.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_overflow.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_overlay.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_performance.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_plan_memory.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_plugins.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_prefix_stability.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_profile.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_profiles.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_progress.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_project_check.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_propose.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_propose_mode.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_providers.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_quartz_backend.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_questions.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_real_browser.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_real_desktop.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_real_web_ui.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_reflex.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_release_workflow.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_revoked_writes.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_setup.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_setup_import.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_skill_budget.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_skill_catalogue.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_skill_manage.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_skills.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_slack.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_smart_approvals.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_source_hygiene.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_ssrf.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_staleness.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_switching_model.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_telegram.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_tool_bridge.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_tools.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_uninstall.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_update.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_verify.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_vision_tool.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_voice.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_webhook.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_whatsapp.py +0 -0
- {comodor-1.1.2 → comodor-1.2.0}/tests/test_x11_backend.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: comodor
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.0
|
|
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
|
|
@@ -80,6 +80,9 @@ or the next one. Not a setting you turn on. Not a file you maintain.
|
|
|
80
80
|
---
|
|
81
81
|
|
|
82
82
|
[]()
|
|
83
|
+
|
|
84
|
+
[](https://comodor.ai 'Comodor.ai Install in Linux and Mac')
|
|
85
|
+
|
|
83
86
|
</div>
|
|
84
87
|
|
|
85
88
|
## Why this one
|
|
@@ -51,6 +51,8 @@ ends with the agent doing something useful.
|
|
|
51
51
|
| [Safety and permissions](safety.md) | What it can do, what it asks, what it never does |
|
|
52
52
|
| [Cost](cost.md) | Caching, budgets, and paying less for the same work |
|
|
53
53
|
| [Configuration](configuration.md) | Every setting, where files live, what wins |
|
|
54
|
+
| [Architecture](architecture.md) | Shared ownership, dependency direction, and product surfaces |
|
|
55
|
+
| [Surface parity contract](surface-parity.md) | Required PR impact assessment and verification evidence |
|
|
54
56
|
|
|
55
57
|
### When something is wrong
|
|
56
58
|
|
|
@@ -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 = '1.
|
|
22
|
-
__version_tuple__ = version_tuple = (1,
|
|
21
|
+
__version__ = version = '1.2.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 0)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|