cade-cli 0.16.4__tar.gz → 0.16.5__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.
Files changed (202) hide show
  1. {cade_cli-0.16.4 → cade_cli-0.16.5}/PKG-INFO +2 -2
  2. {cade_cli-0.16.4 → cade_cli-0.16.5}/README.md +1 -1
  3. {cade_cli-0.16.4 → cade_cli-0.16.5}/pyproject.toml +1 -1
  4. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/daemon.py +13 -5
  5. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/server.py +15 -1
  6. {cade_cli-0.16.4 → cade_cli-0.16.5}/.gitignore +0 -0
  7. {cade_cli-0.16.4 → cade_cli-0.16.5}/LICENSE +0 -0
  8. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/__init__.py +0 -0
  9. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/__main__.py +0 -0
  10. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/_metadata.py +0 -0
  11. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/config.py +0 -0
  12. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/errors.py +0 -0
  13. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/grants.py +0 -0
  14. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/resources.py +0 -0
  15. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/sandbox.py +0 -0
  16. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/server.py +0 -0
  17. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/__init__.py +0 -0
  18. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/_read_cache.py +0 -0
  19. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/access.py +0 -0
  20. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/agents.py +0 -0
  21. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/context.py +0 -0
  22. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/filesystem.py +0 -0
  23. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/git.py +0 -0
  24. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/notifications.py +0 -0
  25. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/questions.py +0 -0
  26. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/results.py +0 -0
  27. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/schemas.py +0 -0
  28. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/search.py +0 -0
  29. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/shell.py +0 -0
  30. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/snippets.py +0 -0
  31. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/tasks.py +0 -0
  32. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/web_fetch.py +0 -0
  33. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/tools/web_search.py +0 -0
  34. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/utils.py +0 -0
  35. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/__init__.py +0 -0
  36. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/arcade_client.py +0 -0
  37. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/cache.py +0 -0
  38. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/extract.py +0 -0
  39. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/markdown.py +0 -0
  40. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/preapproved.py +0 -0
  41. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/prompts.py +0 -0
  42. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/scrape.py +0 -0
  43. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/search/__init__.py +0 -0
  44. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/search/arcade.py +0 -0
  45. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/search/base.py +0 -0
  46. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cade_mcp_local/web/search/http.py +0 -0
  47. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/__init__.py +0 -0
  48. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/ai/__init__.py +0 -0
  49. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/ai/prompts.py +0 -0
  50. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/__init__.py +0 -0
  51. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/app.py +0 -0
  52. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/auth.py +0 -0
  53. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/__init__.py +0 -0
  54. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/account.py +0 -0
  55. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/agents.py +0 -0
  56. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/auth.py +0 -0
  57. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/chat.py +0 -0
  58. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/cron.py +0 -0
  59. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/grant.py +0 -0
  60. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/hooks.py +0 -0
  61. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/mcp.py +0 -0
  62. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/mem.py +0 -0
  63. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/tasks.py +0 -0
  64. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/thread.py +0 -0
  65. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/commands/tools.py +0 -0
  66. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/mcp_hosts.py +0 -0
  67. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/cli/onboarding.py +0 -0
  68. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/__init__.py +0 -0
  69. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/agent.py +0 -0
  70. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/comms.py +0 -0
  71. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/config.py +0 -0
  72. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/constants.py +0 -0
  73. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/errors.py +0 -0
  74. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/frozen.py +0 -0
  75. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/git.py +0 -0
  76. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/inbox.py +0 -0
  77. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/logging.py +0 -0
  78. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/memory.py +0 -0
  79. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/model_specs.py +0 -0
  80. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/names.py +0 -0
  81. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/paths.py +0 -0
  82. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/runtime.py +0 -0
  83. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/secrets.py +0 -0
  84. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/spawn.py +0 -0
  85. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/core/types.py +0 -0
  86. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/__init__.py +0 -0
  87. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/adapters/__init__.py +0 -0
  88. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/adapters/base.py +0 -0
  89. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/adapters/factory.py +0 -0
  90. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/adapters/imessage.py +0 -0
  91. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/adapters/registry.py +0 -0
  92. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/adapters/stub.py +0 -0
  93. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/adapters/telegram.py +0 -0
  94. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/allowlist.py +0 -0
  95. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/attach.py +0 -0
  96. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/chunker.py +0 -0
  97. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/client.py +0 -0
  98. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/commands.py +0 -0
  99. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/config.py +0 -0
  100. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/control.py +0 -0
  101. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/cron.py +0 -0
  102. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/elicitation.py +0 -0
  103. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/ensure.py +0 -0
  104. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/format.py +0 -0
  105. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/__init__.py +0 -0
  106. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/app.py +0 -0
  107. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/arcade_export.py +0 -0
  108. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/auth.py +0 -0
  109. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/constants.py +0 -0
  110. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/elicitation.py +0 -0
  111. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/exposure.py +0 -0
  112. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/limits.py +0 -0
  113. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/middleware.py +0 -0
  114. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/resources.py +0 -0
  115. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/subscriptions.py +0 -0
  116. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/gateway/turn_bridge.py +0 -0
  117. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/grants.py +0 -0
  118. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/inbox_cron.py +0 -0
  119. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/install.py +0 -0
  120. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/live.py +0 -0
  121. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/lock.py +0 -0
  122. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/mesh.py +0 -0
  123. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/message_pump.py +0 -0
  124. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/observability.py +0 -0
  125. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/owner.py +0 -0
  126. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/progress_sink.py +0 -0
  127. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/registry.py +0 -0
  128. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/router.py +0 -0
  129. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/runner.py +0 -0
  130. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/runner_main.py +0 -0
  131. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/secrets.py +0 -0
  132. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/secrets_broker.py +0 -0
  133. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/services.py +0 -0
  134. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/shim.py +0 -0
  135. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/sinks.py +0 -0
  136. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/supervisor.py +0 -0
  137. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/tokens.py +0 -0
  138. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/traffic.py +0 -0
  139. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/turns.py +0 -0
  140. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/daemon/wake.py +0 -0
  141. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/execution/__init__.py +0 -0
  142. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/execution/context_window.py +0 -0
  143. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/execution/mcp_schema_index.py +0 -0
  144. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/execution/orchestrator.py +0 -0
  145. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/execution/parallel.py +0 -0
  146. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/execution/tool_result_store.py +0 -0
  147. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/execution/tool_schema_cache.py +0 -0
  148. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/__init__.py +0 -0
  149. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/config.py +0 -0
  150. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/engine.py +0 -0
  151. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/executors/__init__.py +0 -0
  152. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/executors/callback.py +0 -0
  153. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/executors/command.py +0 -0
  154. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/executors/http.py +0 -0
  155. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/executors/prompt.py +0 -0
  156. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/executors/ssrf_guard.py +0 -0
  157. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/matchers.py +0 -0
  158. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/registry.py +0 -0
  159. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/hooks/types.py +0 -0
  160. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/providers/__init__.py +0 -0
  161. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/providers/anthropic.py +0 -0
  162. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/providers/base.py +0 -0
  163. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/providers/http_client.py +0 -0
  164. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/providers/ollama.py +0 -0
  165. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/providers/openai.py +0 -0
  166. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/serve/__init__.py +0 -0
  167. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/storage/__init__.py +0 -0
  168. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/storage/threads.py +0 -0
  169. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tasks/__init__.py +0 -0
  170. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tasks/scheduler.py +0 -0
  171. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tasks/store.py +0 -0
  172. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tasks/types.py +0 -0
  173. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/templates/login_failed.html +0 -0
  174. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/templates/login_success.html +0 -0
  175. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/templates/serve/launchd.plist.tmpl +0 -0
  176. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/templates/serve/serve.toml.example +0 -0
  177. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/templates/serve/systemd.service.tmpl +0 -0
  178. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/templates/styles.css +0 -0
  179. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/__init__.py +0 -0
  180. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/manager/__init__.py +0 -0
  181. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/manager/_request_ctx.py +0 -0
  182. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/manager/base.py +0 -0
  183. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/manager/composite.py +0 -0
  184. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/manager/config.py +0 -0
  185. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/manager/mcp.py +0 -0
  186. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/search/__init__.py +0 -0
  187. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/search/discovered.py +0 -0
  188. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/search/scoring.py +0 -0
  189. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/tools/search/service.py +0 -0
  190. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/ui/__init__.py +0 -0
  191. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/ui/completion.py +0 -0
  192. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/ui/display.py +0 -0
  193. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/ui/elicitation.py +0 -0
  194. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/ui/input.py +0 -0
  195. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/ui/session.py +0 -0
  196. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/ui/slash.py +0 -0
  197. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/voice/__init__.py +0 -0
  198. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/voice/audio.py +0 -0
  199. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/voice/cleanup.py +0 -0
  200. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/voice/session.py +0 -0
  201. {cade_cli-0.16.4 → cade_cli-0.16.5}/src/cadecoder/voice/stt.py +0 -0
  202. {cade_cli-0.16.4 → cade_cli-0.16.5}/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.16.4
3
+ Version: 0.16.5
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
@@ -129,7 +129,7 @@ The script detects your OS/arch, downloads the matching prebuilt binary
129
129
  `~/.local/bin`. Pin a version or install location:
130
130
 
131
131
  ```bash
132
- CADE_VERSION=0.16.4 CADE_INSTALL_DIR=/usr/local/bin \
132
+ CADE_VERSION=0.16.5 CADE_INSTALL_DIR=/usr/local/bin \
133
133
  sh -c "$(curl -fsSL https://arcadeagent.dev/install)"
134
134
  ```
135
135
 
@@ -38,7 +38,7 @@ The script detects your OS/arch, downloads the matching prebuilt binary
38
38
  `~/.local/bin`. Pin a version or install location:
39
39
 
40
40
  ```bash
41
- CADE_VERSION=0.16.4 CADE_INSTALL_DIR=/usr/local/bin \
41
+ CADE_VERSION=0.16.5 CADE_INSTALL_DIR=/usr/local/bin \
42
42
  sh -c "$(curl -fsSL https://arcadeagent.dev/install)"
43
43
  ```
44
44
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cade-cli"
3
- version = "0.16.4"
3
+ version = "0.16.5"
4
4
  description = "Cade - The CLI Agent from Arcade.dev (install: curl -fsSL https://arcadeagent.dev/install | sh)"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -103,9 +103,16 @@ def start(
103
103
  prewarm: list[str] = typer.Option(
104
104
  None, "--prewarm", help="Agent to start at boot (repeatable)."
105
105
  ),
106
- no_auth: bool = typer.Option(
107
- False, "--no-auth", help="Loopback only: treat every caller as the local principal."
108
- ),
106
+ auth: Annotated[
107
+ bool | None,
108
+ typer.Option(
109
+ "--auth/--no-auth",
110
+ help=(
111
+ "Require bearer tokens. Default: off on loopback (stdio MCP hosts / "
112
+ "CLI attach), on for non-loopback binds. --no-auth is refused off-loopback."
113
+ ),
114
+ ),
115
+ ] = None,
109
116
  verbose: Annotated[
110
117
  bool,
111
118
  typer.Option(
@@ -117,7 +124,7 @@ def start(
117
124
  ) -> None:
118
125
  """Run the gateway supervisor in the foreground (serves all agents)."""
119
126
  from cadecoder.daemon.lock import DaemonAlreadyRunningError
120
- from cadecoder.daemon.server import UnsafeBindError, run_daemon
127
+ from cadecoder.daemon.server import UnsafeBindError, resolve_require_auth, run_daemon
121
128
 
122
129
  if verbose:
123
130
  from cadecoder.core.logging import setup_logging
@@ -130,9 +137,10 @@ def start(
130
137
  "(recv/send/turn/tool/cron/wake/reject) to stdout[/dim]"
131
138
  )
132
139
 
140
+ require_auth = resolve_require_auth(bind=bind, auth=auth)
133
141
  try:
134
142
  code = asyncio.run(
135
- run_daemon(bind=bind, prewarm=list(prewarm or []), require_auth=not no_auth)
143
+ run_daemon(bind=bind, prewarm=list(prewarm or []), require_auth=require_auth)
136
144
  )
137
145
  except DaemonAlreadyRunningError as e:
138
146
  console.print(f"[red]{e}[/red]")
@@ -42,6 +42,20 @@ class UnsafeBindError(RuntimeError):
42
42
  """Refused: auth is off but the bind is reachable off-box."""
43
43
 
44
44
 
45
+ def resolve_require_auth(*, bind: str, auth: bool | None) -> bool:
46
+ """Decide whether the gateway should require bearer tokens.
47
+
48
+ When ``auth`` is ``None`` (CLI default), loopback binds run unauthenticated
49
+ so stdio MCP hosts and CLI attach work without a token; non-loopback binds
50
+ require auth. Explicit ``--auth`` / ``--no-auth`` always win (subject to
51
+ :func:`_guard_auth_bind`).
52
+ """
53
+ host, _ = _parse_bind(bind)
54
+ if auth is not None:
55
+ return auth
56
+ return host not in _LOOPBACK_HOSTS
57
+
58
+
45
59
  def _guard_auth_bind(host: str, require_auth: bool) -> None:
46
60
  """Refuse to run unauthenticated on a non-loopback bind.
47
61
 
@@ -52,7 +66,7 @@ def _guard_auth_bind(host: str, require_auth: bool) -> None:
52
66
  if not require_auth and host not in _LOOPBACK_HOSTS:
53
67
  raise UnsafeBindError(
54
68
  f"refusing to run with auth disabled on non-loopback bind {host!r}; "
55
- "mint a token and drop --no-auth, or bind 127.0.0.1"
69
+ "mint a token and pass --auth, or bind 127.0.0.1"
56
70
  )
57
71
 
58
72
 
File without changes
File without changes