cade-cli 0.20.3__tar.gz → 0.20.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.
- {cade_cli-0.20.3 → cade_cli-0.20.4}/PKG-INFO +1 -1
- {cade_cli-0.20.3 → cade_cli-0.20.4}/pyproject.toml +1 -1
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/app.py +5 -2
- cade_cli-0.20.4/src/cadecoder/daemon/gateway/principal.py +40 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/resources.py +6 -3
- {cade_cli-0.20.3 → cade_cli-0.20.4}/.gitignore +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/LICENSE +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/README.md +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/__main__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/_metadata.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/config.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/errors.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/grants.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/resources.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/sandbox.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/server.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/_read_cache.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/access.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/agents.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/filesystem.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/git.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/notifications.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/questions.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/results.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/schemas.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/search.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/shell.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/tasks.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/web_fetch.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/tools/web_search.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/utils.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/arcade_client.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/cache.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/extract.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/markdown.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/preapproved.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/prompts.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/scrape.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/search/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/search/arcade.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/search/base.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cade_mcp_local/web/search/http.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/ai/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/ai/prompts.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/app.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/auth.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/account.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/agent_group.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/agents.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/auth.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/chat.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/cron.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/daemon.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/grant.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/hooks.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/mcp.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/mem.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/tasks.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/thread.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/commands/tools.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/mcp_hosts.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/onboarding.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/cli/ui.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/agent.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/binary.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/comms.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/config.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/constants.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/errors.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/frozen.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/git.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/inbox.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/logging.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/memory.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/model_specs.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/names.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/paths.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/runtime.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/secrets.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/spawn.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/text.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/core/types.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/adapters/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/adapters/base.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/adapters/factory.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/adapters/imessage.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/adapters/registry.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/adapters/stub.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/adapters/telegram.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/allowlist.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/attach.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/chunker.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/client.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/commands.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/config.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/control.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/cron.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/elicitation.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/ensure.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/format.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/auth.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/constants.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/elicitation.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/exposure.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/host_agent.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/limits.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/middleware.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/subscriptions.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/gateway/turn_bridge.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/grants.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/inbox.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/inbox_cron.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/install.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/lock.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/mesh.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/message_pump.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/observability.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/owner.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/progress_sink.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/registry.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/router.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/runner.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/runner_main.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/secrets.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/secrets_broker.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/server.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/services.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/sinks.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/supervisor.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/tokens.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/traffic.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/turns.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/daemon/wake.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/execution/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/execution/context_window.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/execution/mcp_schema_index.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/execution/orchestrator.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/execution/parallel.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/execution/tool_result_store.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/execution/tool_schema_cache.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/config.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/engine.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/executors/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/executors/callback.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/executors/command.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/executors/http.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/executors/prompt.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/executors/ssrf_guard.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/matchers.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/registry.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/hooks/types.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/.claude-plugin/marketplace.json +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/.claude-plugin/plugin.json +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/.cursor-plugin/marketplace.json +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/.cursor-plugin/plugin.json +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/agents/operator.md +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/commands/ask.md +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/commands/memory.md +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/commands/tasks.md +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/mcp.json +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/rules/gateway.mdc +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/skills/ask/SKILL.md +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/skills/memory/SKILL.md +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/skills/tasks/SKILL.md +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/doctor.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/install.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/paths.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/state.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/providers/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/providers/anthropic.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/providers/base.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/providers/http_client.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/providers/ollama.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/providers/openai.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/storage/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/storage/threads.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tasks/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tasks/scheduler.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tasks/store.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tasks/types.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/telemetry/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/telemetry/otel.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/templates/login_failed.html +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/templates/login_success.html +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/templates/serve/launchd.plist.tmpl +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/templates/serve/serve.toml.example +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/templates/serve/systemd.service.tmpl +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/templates/styles.css +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/manager/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/manager/_request_ctx.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/manager/base.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/manager/composite.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/manager/config.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/manager/mcp.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/search/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/search/discovered.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/search/scoring.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/tools/search/service.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/ui/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/ui/completion.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/ui/display.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/ui/elicitation.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/ui/input.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/ui/session.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/ui/slash.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/voice/__init__.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/voice/audio.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/voice/cleanup.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/voice/session.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/voice/stt.py +0 -0
- {cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/voice/tts.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: cade-cli
|
|
3
|
-
Version: 0.20.
|
|
3
|
+
Version: 0.20.4
|
|
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
|
|
@@ -24,6 +24,7 @@ from cadecoder.daemon.gateway.exposure import LOCAL_GROUPS, ExposurePolicy
|
|
|
24
24
|
from cadecoder.daemon.gateway.host_agent import get_host_agent
|
|
25
25
|
from cadecoder.daemon.gateway.limits import PrincipalLimits
|
|
26
26
|
from cadecoder.daemon.gateway.middleware import ExposureMiddleware, HostAgentMiddleware
|
|
27
|
+
from cadecoder.daemon.gateway.principal import local_principal
|
|
27
28
|
from cadecoder.daemon.gateway.resources import register_gateway_resources
|
|
28
29
|
from cadecoder.daemon.gateway.turn_bridge import TurnBridge, TurnBridgeError
|
|
29
30
|
from cadecoder.daemon.supervisor import Supervisor
|
|
@@ -56,9 +57,11 @@ def _principal_and_policy(context: Context) -> tuple[str, list[str], list[str]]:
|
|
|
56
57
|
"""
|
|
57
58
|
owner = getattr(context, "_resource_owner", None)
|
|
58
59
|
if owner is None:
|
|
59
|
-
return
|
|
60
|
+
return local_principal(context), [], list(LOCAL_GROUPS)
|
|
60
61
|
claims = getattr(owner, "claims", {}) or {}
|
|
61
|
-
principal = str(
|
|
62
|
+
principal = str(
|
|
63
|
+
claims.get("cade_principal") or getattr(context, "user_id", "") or local_principal(context)
|
|
64
|
+
)
|
|
62
65
|
agents = claims.get("cade_agents")
|
|
63
66
|
expose = claims.get("cade_expose")
|
|
64
67
|
return (
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Shared principal fallback for unauthenticated (loopback/local) MCP callers.
|
|
2
|
+
|
|
3
|
+
Used by both the ``Cade_Ask`` tool (``app.py``) and the ``threads://``
|
|
4
|
+
resource listing (``resources.py``) so a thread written under one is found
|
|
5
|
+
under the other.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import re
|
|
11
|
+
|
|
12
|
+
from arcade_mcp_server import Context
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def client_app_name(context: Context | None) -> str | None:
|
|
16
|
+
"""Best-effort slug of the connecting MCP client (e.g. ``claude``, ``cursor``).
|
|
17
|
+
|
|
18
|
+
Read from the ``clientInfo.name`` negotiated during MCP ``initialize``.
|
|
19
|
+
Returns ``None`` when unavailable, so the caller can fall back to a flat
|
|
20
|
+
``"local"`` principal.
|
|
21
|
+
"""
|
|
22
|
+
session = getattr(context, "_session", None)
|
|
23
|
+
params = getattr(session, "client_params", None)
|
|
24
|
+
client_info = getattr(params, "clientInfo", None)
|
|
25
|
+
name = getattr(client_info, "name", None)
|
|
26
|
+
if not name:
|
|
27
|
+
return None
|
|
28
|
+
slug = re.sub(r"[^a-z0-9]+", "-", name.strip().lower()).strip("-")
|
|
29
|
+
return slug or None
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def local_principal(context: Context | None) -> str:
|
|
33
|
+
"""Principal for an unauthenticated (loopback/local) caller.
|
|
34
|
+
|
|
35
|
+
Scoped per connecting app when its ``clientInfo.name`` is known, so e.g.
|
|
36
|
+
Claude Desktop and Cursor each keep their own default thread rather than
|
|
37
|
+
sharing one ``local:default`` conversation across every local MCP client.
|
|
38
|
+
"""
|
|
39
|
+
app_name = client_app_name(context)
|
|
40
|
+
return f"local:{app_name}" if app_name else "local"
|
|
@@ -30,6 +30,7 @@ from cadecoder.daemon.gateway.constants import (
|
|
|
30
30
|
THREADS_URI,
|
|
31
31
|
)
|
|
32
32
|
from cadecoder.daemon.gateway.host_agent import active_agent_name, get_host_agent
|
|
33
|
+
from cadecoder.daemon.gateway.principal import local_principal
|
|
33
34
|
from cadecoder.storage.threads import BaseThreadHistory, get_thread_history
|
|
34
35
|
|
|
35
36
|
if TYPE_CHECKING:
|
|
@@ -37,13 +38,15 @@ if TYPE_CHECKING:
|
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
def _current_principal() -> str:
|
|
40
|
-
"""Principal name from the active model context;
|
|
41
|
+
"""Principal name from the active model context; scoped per local app when unauthenticated."""
|
|
41
42
|
context = get_current_model_context()
|
|
42
43
|
owner = getattr(context, "_resource_owner", None) if context else None
|
|
43
44
|
if owner is None:
|
|
44
|
-
return
|
|
45
|
+
return local_principal(context)
|
|
45
46
|
claims = getattr(owner, "claims", {}) or {}
|
|
46
|
-
return str(
|
|
47
|
+
return str(
|
|
48
|
+
claims.get("cade_principal") or getattr(owner, "user_id", "") or local_principal(context)
|
|
49
|
+
)
|
|
47
50
|
|
|
48
51
|
|
|
49
52
|
def _active_agent_name() -> str:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/.claude-plugin/marketplace.json
RENAMED
|
File without changes
|
{cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/.claude-plugin/plugin.json
RENAMED
|
File without changes
|
{cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/.cursor-plugin/marketplace.json
RENAMED
|
File without changes
|
{cade_cli-0.20.3 → cade_cli-0.20.4}/src/cadecoder/host_plugin/assets/.cursor-plugin/plugin.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|