cade-cli 0.20.1__tar.gz → 0.20.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.20.1 → cade_cli-0.20.2}/PKG-INFO +1 -1
- {cade_cli-0.20.1 → cade_cli-0.20.2}/pyproject.toml +1 -1
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/.claude-plugin/plugin.json +1 -1
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/.cursor-plugin/plugin.json +1 -1
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/providers/http_client.py +18 -8
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/providers/openai.py +12 -6
- {cade_cli-0.20.1 → cade_cli-0.20.2}/.gitignore +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/LICENSE +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/README.md +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/__main__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/_metadata.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/config.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/errors.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/grants.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/resources.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/sandbox.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/server.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/_read_cache.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/access.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/agents.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/filesystem.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/git.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/notifications.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/questions.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/results.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/schemas.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/search.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/shell.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/tasks.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/web_fetch.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/tools/web_search.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/utils.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/arcade_client.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/cache.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/extract.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/markdown.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/preapproved.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/prompts.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/scrape.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/search/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/search/arcade.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/search/base.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cade_mcp_local/web/search/http.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/ai/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/ai/prompts.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/app.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/auth.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/account.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/agent_group.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/agents.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/auth.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/chat.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/cron.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/daemon.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/grant.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/hooks.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/mcp.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/mem.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/tasks.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/thread.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/commands/tools.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/mcp_hosts.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/onboarding.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/cli/ui.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/agent.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/binary.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/comms.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/config.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/constants.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/errors.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/frozen.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/git.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/inbox.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/logging.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/memory.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/model_specs.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/names.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/paths.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/runtime.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/secrets.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/spawn.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/text.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/core/types.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/adapters/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/adapters/base.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/adapters/factory.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/adapters/imessage.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/adapters/registry.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/adapters/stub.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/adapters/telegram.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/allowlist.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/attach.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/chunker.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/client.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/commands.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/config.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/control.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/cron.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/elicitation.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/ensure.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/format.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/app.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/auth.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/constants.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/elicitation.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/exposure.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/host_agent.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/limits.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/middleware.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/resources.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/subscriptions.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/gateway/turn_bridge.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/grants.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/inbox.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/inbox_cron.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/install.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/lock.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/mesh.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/message_pump.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/observability.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/owner.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/progress_sink.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/registry.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/router.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/runner.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/runner_main.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/secrets.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/secrets_broker.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/server.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/services.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/sinks.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/supervisor.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/tokens.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/traffic.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/turns.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/daemon/wake.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/execution/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/execution/context_window.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/execution/mcp_schema_index.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/execution/orchestrator.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/execution/parallel.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/execution/tool_result_store.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/execution/tool_schema_cache.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/config.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/engine.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/executors/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/executors/callback.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/executors/command.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/executors/http.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/executors/prompt.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/executors/ssrf_guard.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/matchers.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/registry.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/hooks/types.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/.claude-plugin/marketplace.json +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/.cursor-plugin/marketplace.json +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/agents/operator.md +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/commands/ask.md +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/commands/memory.md +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/commands/tasks.md +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/mcp.json +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/rules/gateway.mdc +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/skills/ask/SKILL.md +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/skills/memory/SKILL.md +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/skills/tasks/SKILL.md +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/doctor.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/install.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/paths.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/state.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/providers/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/providers/anthropic.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/providers/base.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/providers/ollama.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/storage/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/storage/threads.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tasks/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tasks/scheduler.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tasks/store.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tasks/types.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/telemetry/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/telemetry/otel.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/templates/login_failed.html +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/templates/login_success.html +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/templates/serve/launchd.plist.tmpl +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/templates/serve/serve.toml.example +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/templates/serve/systemd.service.tmpl +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/templates/styles.css +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/manager/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/manager/_request_ctx.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/manager/base.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/manager/composite.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/manager/config.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/manager/mcp.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/search/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/search/discovered.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/search/scoring.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/tools/search/service.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/ui/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/ui/completion.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/ui/display.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/ui/elicitation.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/ui/input.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/ui/session.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/ui/slash.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/voice/__init__.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/voice/audio.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/voice/cleanup.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/voice/session.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.2}/src/cadecoder/voice/stt.py +0 -0
- {cade_cli-0.20.1 → cade_cli-0.20.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.20.
|
|
3
|
+
Version: 0.20.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
|
{cade_cli-0.20.1 → cade_cli-0.20.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.20.
|
|
5
|
+
"version": "0.20.2",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Arcade.dev",
|
|
8
8
|
"email": "support@arcade.dev"
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"""Shared httpx client helpers for LLM providers.
|
|
2
2
|
|
|
3
3
|
Frozen/PyInstaller builds have hit ``zlib.error: Error -3 while decompressing
|
|
4
|
-
data: incorrect header check`` on Anthropic SSE streams when
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
data: incorrect header check`` on Anthropic/OpenAI-compatible SSE streams when
|
|
5
|
+
httpx negotiates compression and the body is not actually compressed — common
|
|
6
|
+
with local vLLM/Ollama and some proxies. Default ``Accept-Encoding: identity``
|
|
7
|
+
so the client never attempts to decompress streams. Override with
|
|
8
|
+
``CADE_HTTP_ACCEPT_ENCODING`` (e.g. ``gzip, deflate``) if you want compression.
|
|
7
9
|
|
|
8
10
|
Also: shell profiles often export ``SSL_CERT_FILE`` / ``REQUESTS_CA_BUNDLE`` to a
|
|
9
11
|
path that exists on one machine and not another. httpx then raises
|
|
@@ -20,9 +22,10 @@ from pathlib import Path
|
|
|
20
22
|
|
|
21
23
|
import httpx
|
|
22
24
|
|
|
23
|
-
#
|
|
24
|
-
# binaries and
|
|
25
|
-
|
|
25
|
+
# Never advertise ``br`` / ``zstd`` / ``gzip`` by default — those decoders are
|
|
26
|
+
# fragile in frozen binaries and with OpenAI-compatible SSE servers that omit
|
|
27
|
+
# or mis-set Content-Encoding ("incorrect header check").
|
|
28
|
+
_DEFAULT_ACCEPT_ENCODING = "identity"
|
|
26
29
|
|
|
27
30
|
_SSL_ENV_KEYS = ("SSL_CERT_FILE", "REQUESTS_CA_BUNDLE", "CURL_CA_BUNDLE")
|
|
28
31
|
|
|
@@ -30,6 +33,12 @@ _SSL_ENV_KEYS = ("SSL_CERT_FILE", "REQUESTS_CA_BUNDLE", "CURL_CA_BUNDLE")
|
|
|
30
33
|
CLEARED_SSL_ENV_KEYS: list[str] = []
|
|
31
34
|
|
|
32
35
|
|
|
36
|
+
def accept_encoding_header() -> str:
|
|
37
|
+
"""Return the Accept-Encoding value for provider HTTP clients."""
|
|
38
|
+
raw = os.environ.get("CADE_HTTP_ACCEPT_ENCODING", "").strip()
|
|
39
|
+
return raw or _DEFAULT_ACCEPT_ENCODING
|
|
40
|
+
|
|
41
|
+
|
|
33
42
|
def scrub_broken_ssl_env() -> list[str]:
|
|
34
43
|
"""Unset SSL CA env vars that point at missing files.
|
|
35
44
|
|
|
@@ -94,7 +103,7 @@ def make_async_http_client(*, timeout: float = 600.0) -> httpx.AsyncClient:
|
|
|
94
103
|
"""Return an AsyncClient safe for Anthropic/OpenAI streaming in frozen apps."""
|
|
95
104
|
prepare_ssl_env()
|
|
96
105
|
return httpx.AsyncClient(
|
|
97
|
-
headers={"Accept-Encoding":
|
|
106
|
+
headers={"Accept-Encoding": accept_encoding_header()},
|
|
98
107
|
timeout=httpx.Timeout(timeout, connect=10.0),
|
|
99
108
|
follow_redirects=True,
|
|
100
109
|
verify=ssl_verify(),
|
|
@@ -105,7 +114,7 @@ def make_sync_http_client(*, timeout: float = 60.0) -> httpx.Client:
|
|
|
105
114
|
"""Return a sync Client with the same encoding constraints."""
|
|
106
115
|
prepare_ssl_env()
|
|
107
116
|
return httpx.Client(
|
|
108
|
-
headers={"Accept-Encoding":
|
|
117
|
+
headers={"Accept-Encoding": accept_encoding_header()},
|
|
109
118
|
timeout=httpx.Timeout(timeout, connect=10.0),
|
|
110
119
|
follow_redirects=True,
|
|
111
120
|
verify=ssl_verify(),
|
|
@@ -126,6 +135,7 @@ def is_decompress_error(exc: BaseException) -> bool:
|
|
|
126
135
|
|
|
127
136
|
__all__ = [
|
|
128
137
|
"CLEARED_SSL_ENV_KEYS",
|
|
138
|
+
"accept_encoding_header",
|
|
129
139
|
"is_decompress_error",
|
|
130
140
|
"make_async_http_client",
|
|
131
141
|
"make_sync_http_client",
|
|
@@ -220,12 +220,18 @@ class OpenAIProvider(Provider):
|
|
|
220
220
|
# Ask OpenAI (and compatible servers that honor it) for a final usage
|
|
221
221
|
# chunk so OTEL spans can record prompt/completion tokens. Some local
|
|
222
222
|
# OpenAI-compatible servers reject stream_options — fall back cleanly.
|
|
223
|
-
want_usage =
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
223
|
+
want_usage = False
|
|
224
|
+
if os.environ.get("CADE_OTEL", "").strip().lower() in ("1", "true", "yes", "on"):
|
|
225
|
+
# Official OpenAI honors stream_options; many local OpenAI-compatible
|
|
226
|
+
# servers (vLLM, etc.) mishandle it. Opt in for custom base_url with
|
|
227
|
+
# CADE_OTEL_STREAM_USAGE=1.
|
|
228
|
+
force_usage = os.environ.get("CADE_OTEL_STREAM_USAGE", "").strip().lower() in (
|
|
229
|
+
"1",
|
|
230
|
+
"true",
|
|
231
|
+
"yes",
|
|
232
|
+
"on",
|
|
233
|
+
)
|
|
234
|
+
want_usage = force_usage or not self.base_url
|
|
229
235
|
if want_usage:
|
|
230
236
|
openai_request["stream_options"] = {"include_usage": True}
|
|
231
237
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.1 → cade_cli-0.20.2}/src/cadecoder/host_plugin/assets/.claude-plugin/marketplace.json
RENAMED
|
File without changes
|
{cade_cli-0.20.1 → cade_cli-0.20.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
|
|
File without changes
|
|
File without changes
|