cade-cli 0.19.0__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.
- {cade_cli-0.19.0 → cade_cli-0.19.2}/PKG-INFO +1 -1
- {cade_cli-0.19.0 → cade_cli-0.19.2}/pyproject.toml +1 -1
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/account.py +27 -20
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/.claude-plugin/plugin.json +1 -1
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/.cursor-plugin/plugin.json +1 -1
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/doctor.py +28 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/manager/composite.py +26 -3
- {cade_cli-0.19.0 → cade_cli-0.19.2}/.gitignore +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/LICENSE +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/README.md +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/__main__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/_metadata.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/config.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/errors.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/grants.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/resources.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/sandbox.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/server.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/_read_cache.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/access.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/agents.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/filesystem.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/git.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/notifications.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/questions.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/results.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/schemas.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/search.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/shell.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/tasks.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/web_fetch.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/tools/web_search.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/utils.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/arcade_client.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/cache.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/extract.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/markdown.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/preapproved.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/prompts.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/scrape.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/search/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/search/arcade.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/search/base.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cade_mcp_local/web/search/http.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/ai/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/ai/prompts.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/app.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/auth.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/agent_group.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/agents.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/auth.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/chat.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/cron.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/daemon.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/grant.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/hooks.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/mcp.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/mem.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/tasks.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/thread.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/commands/tools.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/mcp_hosts.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/onboarding.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/cli/ui.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/agent.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/binary.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/comms.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/config.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/constants.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/errors.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/frozen.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/git.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/inbox.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/logging.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/memory.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/model_specs.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/names.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/paths.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/runtime.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/secrets.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/spawn.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/text.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/core/types.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/adapters/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/adapters/base.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/adapters/factory.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/adapters/imessage.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/adapters/registry.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/adapters/stub.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/adapters/telegram.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/allowlist.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/attach.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/chunker.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/client.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/commands.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/config.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/control.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/cron.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/elicitation.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/ensure.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/format.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/app.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/auth.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/constants.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/elicitation.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/exposure.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/host_agent.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/limits.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/middleware.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/resources.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/subscriptions.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/gateway/turn_bridge.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/grants.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/inbox.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/inbox_cron.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/install.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/lock.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/mesh.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/message_pump.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/observability.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/owner.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/progress_sink.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/registry.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/router.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/runner.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/runner_main.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/secrets.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/secrets_broker.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/server.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/services.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/sinks.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/supervisor.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/tokens.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/traffic.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/turns.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/daemon/wake.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/execution/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/execution/context_window.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/execution/mcp_schema_index.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/execution/orchestrator.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/execution/parallel.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/execution/tool_result_store.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/execution/tool_schema_cache.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/config.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/engine.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/executors/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/executors/callback.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/executors/command.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/executors/http.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/executors/prompt.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/executors/ssrf_guard.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/matchers.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/registry.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/hooks/types.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/.claude-plugin/marketplace.json +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/.cursor-plugin/marketplace.json +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/agents/operator.md +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/commands/ask.md +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/commands/memory.md +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/commands/tasks.md +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/mcp.json +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/rules/gateway.mdc +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/skills/ask/SKILL.md +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/skills/memory/SKILL.md +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/skills/tasks/SKILL.md +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/install.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/paths.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/state.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/providers/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/providers/anthropic.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/providers/base.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/providers/http_client.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/providers/ollama.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/providers/openai.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/storage/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/storage/threads.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tasks/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tasks/scheduler.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tasks/store.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tasks/types.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/templates/login_failed.html +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/templates/login_success.html +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/templates/serve/launchd.plist.tmpl +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/templates/serve/serve.toml.example +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/templates/serve/systemd.service.tmpl +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/templates/styles.css +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/manager/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/manager/_request_ctx.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/manager/base.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/manager/config.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/manager/mcp.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/search/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/search/discovered.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/search/scoring.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/tools/search/service.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/ui/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/ui/completion.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/ui/display.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/ui/elicitation.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/ui/input.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/ui/session.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/ui/slash.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/voice/__init__.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/voice/audio.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/voice/cleanup.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/voice/session.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/voice/stt.py +0 -0
- {cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/voice/tts.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cade-cli
|
|
3
|
-
Version: 0.19.
|
|
3
|
+
Version: 0.19.2
|
|
4
4
|
Summary: Cade - The CLI Agent from Arcade.dev (install: curl -fsSL https://arcadeagent.dev/install | sh)
|
|
5
5
|
Project-URL: Homepage, https://arcade.dev
|
|
6
6
|
Project-URL: Documentation, https://arcadeagent.dev/docs
|
|
@@ -96,6 +96,32 @@ def _doctor_paths(runtime: Any) -> dict[str, Any]:
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
|
|
99
|
+
# How `cade doctor` groups its output. A check whose name is absent here still
|
|
100
|
+
# runs but is never printed, so `test_every_doctor_check_is_rendered` asserts
|
|
101
|
+
# this stays exhaustive.
|
|
102
|
+
DOCTOR_SECTIONS: list[tuple[str, list[str]]] = [
|
|
103
|
+
(
|
|
104
|
+
"Setup",
|
|
105
|
+
["binary", "ssl-env", "anthropic-runtime", "onboarded", "model", "arcade-login", "arcade"],
|
|
106
|
+
),
|
|
107
|
+
(
|
|
108
|
+
"Hosts (Cursor / Claude)",
|
|
109
|
+
[
|
|
110
|
+
"host-plugin",
|
|
111
|
+
"cursor-plugin",
|
|
112
|
+
"claude-skills",
|
|
113
|
+
"mcp-entry",
|
|
114
|
+
"mcp-endpoint",
|
|
115
|
+
"mcp-agent",
|
|
116
|
+
"mcp-builtins",
|
|
117
|
+
"mcp-duplicate",
|
|
118
|
+
"host-plugin-state",
|
|
119
|
+
],
|
|
120
|
+
),
|
|
121
|
+
("Daemon & channels", ["daemon", "daemon-service", "adapters", "voice"]),
|
|
122
|
+
]
|
|
123
|
+
|
|
124
|
+
|
|
99
125
|
@account_app.command(
|
|
100
126
|
"doctor",
|
|
101
127
|
help="Show paths, the current agent, and check the Cade home for problems",
|
|
@@ -131,26 +157,7 @@ def doctor_cmd(
|
|
|
131
157
|
raise typer.Exit(1) from None
|
|
132
158
|
|
|
133
159
|
checks = run_host_doctor()
|
|
134
|
-
sections
|
|
135
|
-
(
|
|
136
|
-
"Setup",
|
|
137
|
-
["binary", "onboarded", "model", "arcade-login", "arcade"],
|
|
138
|
-
),
|
|
139
|
-
(
|
|
140
|
-
"Hosts (Cursor / Claude)",
|
|
141
|
-
[
|
|
142
|
-
"host-plugin",
|
|
143
|
-
"cursor-plugin",
|
|
144
|
-
"claude-skills",
|
|
145
|
-
"mcp-entry",
|
|
146
|
-
"mcp-command",
|
|
147
|
-
"mcp-agent",
|
|
148
|
-
"mcp-duplicate",
|
|
149
|
-
"host-plugin-state",
|
|
150
|
-
],
|
|
151
|
-
),
|
|
152
|
-
("Daemon & channels", ["daemon", "adapters", "voice"]),
|
|
153
|
-
]
|
|
160
|
+
sections = DOCTOR_SECTIONS
|
|
154
161
|
by_name = {c.name: c for c in checks}
|
|
155
162
|
failed = False
|
|
156
163
|
warned = False
|
{cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/.cursor-plugin/plugin.json
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "cade",
|
|
3
3
|
"displayName": "Cade",
|
|
4
4
|
"description": "Your persistent on-device agent: notes memory, durable tasks, and connected tools via Ask.",
|
|
5
|
-
"version": "0.19.
|
|
5
|
+
"version": "0.19.2",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Arcade.dev",
|
|
8
8
|
"email": "support@arcade.dev"
|
|
@@ -257,6 +257,33 @@ def _host_plugin_state(home: Path | None = None) -> DoctorCheck:
|
|
|
257
257
|
)
|
|
258
258
|
|
|
259
259
|
|
|
260
|
+
def _builtin_mcp_enabled() -> DoctorCheck:
|
|
261
|
+
"""Report built-in MCP servers an agent's ``mcp`` list has switched off.
|
|
262
|
+
|
|
263
|
+
A disabled built-in is filtered out of the loadout before it is ever
|
|
264
|
+
connected, so it produces no connect error anywhere — the session simply
|
|
265
|
+
comes up without its ``Local_*`` / ``Memory_*`` tools.
|
|
266
|
+
"""
|
|
267
|
+
try:
|
|
268
|
+
from cadecoder.tools.manager.composite import (
|
|
269
|
+
builtin_default_servers,
|
|
270
|
+
effective_mcp_servers,
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
present = {cfg.name for cfg in effective_mcp_servers()}
|
|
274
|
+
missing = [d.name for d in builtin_default_servers() if d.name not in present]
|
|
275
|
+
except Exception as exc: # noqa: BLE001
|
|
276
|
+
return DoctorCheck("mcp-builtins", "warn", f"could not resolve MCP loadout: {exc}")
|
|
277
|
+
if missing:
|
|
278
|
+
fixes = " · ".join(f"cade mcp enable {name}" for name in missing)
|
|
279
|
+
return DoctorCheck(
|
|
280
|
+
"mcp-builtins",
|
|
281
|
+
"fail",
|
|
282
|
+
f"disabled in the agent's mcp list: {', '.join(missing)} — {fixes}",
|
|
283
|
+
)
|
|
284
|
+
return DoctorCheck("mcp-builtins", "ok", "built-in local + memory servers enabled")
|
|
285
|
+
|
|
286
|
+
|
|
260
287
|
def _daemon_status() -> DoctorCheck:
|
|
261
288
|
try:
|
|
262
289
|
from cadecoder.daemon.services import read_gateway_manifest
|
|
@@ -497,6 +524,7 @@ def run_host_doctor(*, home: Path | None = None) -> list[DoctorCheck]:
|
|
|
497
524
|
_mcp_entry_present(home=home),
|
|
498
525
|
_mcp_endpoints(home=home),
|
|
499
526
|
_mcp_agent(),
|
|
527
|
+
_builtin_mcp_enabled(),
|
|
500
528
|
_duplicate_cursor_mcp(home=home),
|
|
501
529
|
_host_plugin_state(home=home),
|
|
502
530
|
_daemon_status(),
|
|
@@ -616,9 +616,29 @@ class CompositeToolManager(ToolManager):
|
|
|
616
616
|
self._mcp_store = MCPServerStore(persona) if (enable_mcp and not local_only) else None
|
|
617
617
|
if local_only:
|
|
618
618
|
log.info("Local-only mode: external MCP servers disabled")
|
|
619
|
-
|
|
619
|
+
effective = effective_mcp_servers(
|
|
620
620
|
persona=persona, enable_user=enable_mcp, local_only=local_only
|
|
621
|
-
)
|
|
621
|
+
)
|
|
622
|
+
# A built-in that an agent's mcp list disables is filtered out before it
|
|
623
|
+
# reaches us — it never connects, so it never errors, and the session
|
|
624
|
+
# loses every Local_*/Memory_* tool with nothing to explain it. Notice
|
|
625
|
+
# the gap here and carry it into connect_errors so it surfaces like any
|
|
626
|
+
# other unavailable server.
|
|
627
|
+
present = {cfg.name for cfg in effective}
|
|
628
|
+
self._disabled_builtins: list[tuple[str, str]] = [
|
|
629
|
+
(
|
|
630
|
+
default.name,
|
|
631
|
+
"disabled in this agent's mcp list; re-enable with "
|
|
632
|
+
f"'cade mcp enable {default.name}'",
|
|
633
|
+
)
|
|
634
|
+
for default in builtin_default_servers(persona)
|
|
635
|
+
if default.name not in present
|
|
636
|
+
]
|
|
637
|
+
for _name, _reason in self._disabled_builtins:
|
|
638
|
+
log.warning(f"built-in MCP server '{_name}' is {_reason}")
|
|
639
|
+
# Known before any load, so report it without waiting for get_tools().
|
|
640
|
+
self._connect_errors = list(self._disabled_builtins)
|
|
641
|
+
for server_config in effective:
|
|
622
642
|
if server_config.name == BUILTIN_MEMORY_NAME:
|
|
623
643
|
self._memory_config = server_config
|
|
624
644
|
continue
|
|
@@ -886,7 +906,7 @@ class CompositeToolManager(ToolManager):
|
|
|
886
906
|
self._defer_log_emitted = True
|
|
887
907
|
|
|
888
908
|
self._deferred_names = set()
|
|
889
|
-
self._connect_errors =
|
|
909
|
+
self._connect_errors = list(self._disabled_builtins)
|
|
890
910
|
|
|
891
911
|
# Process results (asyncio.gather preserves input order)
|
|
892
912
|
auth_warnings: list[tuple[str, str | None]] = []
|
|
@@ -1016,6 +1036,9 @@ class CompositeToolManager(ToolManager):
|
|
|
1016
1036
|
|
|
1017
1037
|
local_count += self._register_static_memory_tools(all_tools, server_statuses)
|
|
1018
1038
|
|
|
1039
|
+
for name, reason in self._disabled_builtins:
|
|
1040
|
+
server_statuses[name] = {"status": "disabled", "tool_count": 0, "error": reason}
|
|
1041
|
+
|
|
1019
1042
|
total_elapsed = time.monotonic() - total_start
|
|
1020
1043
|
|
|
1021
1044
|
# Summary
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/.claude-plugin/marketplace.json
RENAMED
|
File without changes
|
{cade_cli-0.19.0 → cade_cli-0.19.2}/src/cadecoder/host_plugin/assets/.cursor-plugin/marketplace.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|