agent-cli 0.67.0__tar.gz → 0.67.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.
Files changed (361) hide show
  1. {agent_cli-0.67.0 → agent_cli-0.67.2}/PKG-INFO +5 -4
  2. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_extras.json +1 -1
  3. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/audio.txt +11 -0
  4. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/llm.txt +1 -2
  5. agent_cli-0.67.2/agent_cli/_requirements/mlx-whisper.txt +215 -0
  6. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/piper.txt +2 -3
  7. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/server.txt +1 -2
  8. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/speed.txt +12 -3
  9. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/vad.txt +12 -3
  10. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/deps.py +47 -26
  11. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/utils.py +2 -2
  12. {agent_cli-0.67.0 → agent_cli-0.67.2}/pyproject.toml +4 -4
  13. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_requires_extras.py +3 -2
  14. {agent_cli-0.67.0 → agent_cli-0.67.2}/uv.lock +20 -74
  15. agent_cli-0.67.0/agent_cli/_requirements/mlx-whisper.txt +0 -256
  16. {agent_cli-0.67.0 → agent_cli-0.67.2}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
  17. {agent_cli-0.67.0 → agent_cli-0.67.2}/.claude/skills/agent-cli-dev/examples.md +0 -0
  18. {agent_cli-0.67.0 → agent_cli-0.67.2}/.claude-plugin/README.md +0 -0
  19. {agent_cli-0.67.0 → agent_cli-0.67.2}/.claude-plugin/marketplace.json +0 -0
  20. {agent_cli-0.67.0 → agent_cli-0.67.2}/.claude-plugin/plugin.json +0 -0
  21. {agent_cli-0.67.0 → agent_cli-0.67.2}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
  22. {agent_cli-0.67.0 → agent_cli-0.67.2}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
  23. {agent_cli-0.67.0 → agent_cli-0.67.2}/.cursorrules +0 -0
  24. {agent_cli-0.67.0 → agent_cli-0.67.2}/.env.example +0 -0
  25. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/logo.svg +0 -0
  26. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/release-drafter.yml +0 -0
  27. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/renovate.json +0 -0
  28. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/scripts/check_extras_sync.py +0 -0
  29. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/scripts/sync_requirements.py +0 -0
  30. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/workflows/automerge.yml +0 -0
  31. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/workflows/docker.yml +0 -0
  32. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/workflows/docs.yml +0 -0
  33. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/workflows/markdown-code-runner.yml +0 -0
  34. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/workflows/pytest.yml +0 -0
  35. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/workflows/release-drafter.yml +0 -0
  36. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/workflows/release.yml +0 -0
  37. {agent_cli-0.67.0 → agent_cli-0.67.2}/.github/workflows/toc.yaml +0 -0
  38. {agent_cli-0.67.0 → agent_cli-0.67.2}/.gitignore +0 -0
  39. {agent_cli-0.67.0 → agent_cli-0.67.2}/.jscpd.json +0 -0
  40. {agent_cli-0.67.0 → agent_cli-0.67.2}/.pre-commit-config.yaml +0 -0
  41. {agent_cli-0.67.0 → agent_cli-0.67.2}/.prompts/docs-review.md +0 -0
  42. {agent_cli-0.67.0 → agent_cli-0.67.2}/.prompts/pr-review.md +0 -0
  43. {agent_cli-0.67.0 → agent_cli-0.67.2}/CLAUDE.md +0 -0
  44. {agent_cli-0.67.0 → agent_cli-0.67.2}/LICENSE +0 -0
  45. {agent_cli-0.67.0 → agent_cli-0.67.2}/README.md +0 -0
  46. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/__init__.py +0 -0
  47. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/__main__.py +0 -0
  48. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/.gitkeep +0 -0
  49. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/faster-whisper.txt +1 -1
  50. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/kokoro.txt +1 -1
  51. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/memory.txt +1 -1
  52. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_requirements/rag.txt +1 -1
  53. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/_tools.py +0 -0
  54. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/__init__.py +0 -0
  55. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/_voice_agent_common.py +0 -0
  56. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/assistant.py +0 -0
  57. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/autocorrect.py +0 -0
  58. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/chat.py +0 -0
  59. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/memory/__init__.py +0 -0
  60. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/memory/add.py +0 -0
  61. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/memory/proxy.py +0 -0
  62. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/rag_proxy.py +0 -0
  63. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/speak.py +0 -0
  64. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/transcribe.py +0 -0
  65. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/transcribe_daemon.py +0 -0
  66. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/agents/voice_edit.py +0 -0
  67. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/api.py +0 -0
  68. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/cli.py +0 -0
  69. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/config.py +0 -0
  70. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/config_cmd.py +0 -0
  71. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/constants.py +0 -0
  72. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/__init__.py +0 -0
  73. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/audio.py +0 -0
  74. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/audio_format.py +0 -0
  75. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/chroma.py +0 -0
  76. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/openai_proxy.py +0 -0
  77. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/process.py +0 -0
  78. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/reranker.py +0 -0
  79. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/sse.py +0 -0
  80. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/transcription_logger.py +0 -0
  81. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/vad.py +0 -0
  82. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/core/watch.py +0 -0
  83. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/__init__.py +0 -0
  84. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/cli.py +0 -0
  85. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/__init__.py +0 -0
  86. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/aider.py +0 -0
  87. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/base.py +0 -0
  88. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/claude.py +0 -0
  89. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/codex.py +0 -0
  90. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
  91. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/copilot.py +0 -0
  92. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
  93. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/gemini.py +0 -0
  94. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/opencode.py +0 -0
  95. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/coding_agents/registry.py +0 -0
  96. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/__init__.py +0 -0
  97. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/base.py +0 -0
  98. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/cursor.py +0 -0
  99. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/emacs.py +0 -0
  100. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/jetbrains.py +0 -0
  101. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/nano.py +0 -0
  102. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/neovim.py +0 -0
  103. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/registry.py +0 -0
  104. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/sublime.py +0 -0
  105. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/vim.py +0 -0
  106. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/vscode.py +0 -0
  107. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/editors/zed.py +0 -0
  108. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/project.py +0 -0
  109. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/registry.py +0 -0
  110. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/skill/SKILL.md +0 -0
  111. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/skill/examples.md +0 -0
  112. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/__init__.py +0 -0
  113. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/apple_terminal.py +0 -0
  114. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/base.py +0 -0
  115. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/gnome.py +0 -0
  116. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/iterm2.py +0 -0
  117. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/kitty.py +0 -0
  118. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/registry.py +0 -0
  119. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/tmux.py +0 -0
  120. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/warp.py +0 -0
  121. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/terminals/zellij.py +0 -0
  122. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/dev/worktree.py +0 -0
  123. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/docs_gen.py +0 -0
  124. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/example-config.toml +0 -0
  125. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/install/__init__.py +0 -0
  126. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/install/common.py +0 -0
  127. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/install/extras.py +0 -0
  128. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/install/hotkeys.py +0 -0
  129. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/install/services.py +0 -0
  130. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/__init__.py +0 -0
  131. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_files.py +0 -0
  132. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_filters.py +0 -0
  133. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_git.py +0 -0
  134. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_indexer.py +0 -0
  135. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_ingest.py +0 -0
  136. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_persistence.py +0 -0
  137. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_prompt.py +0 -0
  138. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_retrieval.py +0 -0
  139. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_store.py +0 -0
  140. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_streaming.py +0 -0
  141. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/_tasks.py +0 -0
  142. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/api.py +0 -0
  143. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/client.py +0 -0
  144. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/engine.py +0 -0
  145. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/entities.py +0 -0
  146. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/memory/models.py +0 -0
  147. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/opts.py +0 -0
  148. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/py.typed +0 -0
  149. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/__init__.py +0 -0
  150. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/_indexer.py +0 -0
  151. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/_indexing.py +0 -0
  152. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/_prompt.py +0 -0
  153. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/_retriever.py +0 -0
  154. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/_store.py +0 -0
  155. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/_utils.py +0 -0
  156. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/api.py +0 -0
  157. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/client.py +0 -0
  158. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/engine.py +0 -0
  159. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/rag/models.py +0 -0
  160. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/.runtime/.gitkeep +0 -0
  161. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/__init__.py +0 -0
  162. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/check_plugin_skill_sync.py +0 -0
  163. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
  164. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
  165. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
  166. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
  167. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
  168. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
  169. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
  170. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
  171. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
  172. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
  173. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
  174. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
  175. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
  176. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
  177. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/run-openwakeword.sh +0 -0
  178. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/run-piper-windows.ps1 +0 -0
  179. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/run-piper.sh +0 -0
  180. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/run-whisper-linux.sh +0 -0
  181. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/run-whisper-macos.sh +0 -0
  182. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/run-whisper-windows.ps1 +0 -0
  183. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/run-whisper.sh +0 -0
  184. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/run_faster_whisper_server.py +0 -0
  185. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
  186. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/setup-linux.sh +0 -0
  187. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
  188. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/setup-macos.sh +0 -0
  189. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/setup-windows.ps1 +0 -0
  190. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
  191. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/start-all-services.sh +0 -0
  192. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/scripts/sync_extras.py +0 -0
  193. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/__init__.py +0 -0
  194. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/cli.py +0 -0
  195. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/common.py +0 -0
  196. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/model_manager.py +0 -0
  197. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/model_registry.py +0 -0
  198. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/proxy/__init__.py +0 -0
  199. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/proxy/api.py +0 -0
  200. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/streaming.py +0 -0
  201. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/tts/__init__.py +0 -0
  202. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/tts/api.py +0 -0
  203. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/tts/backends/__init__.py +0 -0
  204. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/tts/backends/base.py +0 -0
  205. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/tts/backends/kokoro.py +0 -0
  206. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/tts/backends/piper.py +0 -0
  207. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/tts/model_manager.py +0 -0
  208. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/tts/model_registry.py +0 -0
  209. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/tts/wyoming_handler.py +0 -0
  210. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/__init__.py +0 -0
  211. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/api.py +0 -0
  212. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/backends/__init__.py +0 -0
  213. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/backends/base.py +0 -0
  214. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
  215. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/backends/mlx.py +0 -0
  216. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/languages.py +0 -0
  217. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/model_manager.py +0 -0
  218. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/model_registry.py +0 -0
  219. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/server/whisper/wyoming_handler.py +0 -0
  220. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/services/__init__.py +0 -0
  221. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/services/_wyoming_utils.py +0 -0
  222. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/services/asr.py +0 -0
  223. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/services/llm.py +0 -0
  224. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/services/tts.py +0 -0
  225. {agent_cli-0.67.0 → agent_cli-0.67.2}/agent_cli/services/wake_word.py +0 -0
  226. {agent_cli-0.67.0 → agent_cli-0.67.2}/docker/docker-compose.yml +0 -0
  227. {agent_cli-0.67.0 → agent_cli-0.67.2}/docker/transcription-proxy.Dockerfile +0 -0
  228. {agent_cli-0.67.0 → agent_cli-0.67.2}/docker/tts.Dockerfile +0 -0
  229. {agent_cli-0.67.0 → agent_cli-0.67.2}/docker/whisper.Dockerfile +0 -0
  230. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/CNAME +0 -0
  231. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/architecture/index.md +0 -0
  232. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/architecture/memory.md +0 -0
  233. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/architecture/rag.md +0 -0
  234. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/assistant.md +0 -0
  235. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/autocorrect.md +0 -0
  236. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/chat.md +0 -0
  237. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/config.md +0 -0
  238. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/dev.md +0 -0
  239. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/index.md +0 -0
  240. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/install-extras.md +0 -0
  241. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/install-hotkeys.md +0 -0
  242. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/install-services.md +0 -0
  243. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/memory.md +0 -0
  244. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/rag-proxy.md +0 -0
  245. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/server/index.md +0 -0
  246. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/server/transcription-proxy.md +0 -0
  247. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/server/tts.md +0 -0
  248. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/server/whisper.md +0 -0
  249. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/speak.md +0 -0
  250. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/start-services.md +0 -0
  251. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/transcribe-daemon.md +0 -0
  252. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/transcribe.md +0 -0
  253. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/commands/voice-edit.md +0 -0
  254. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/configuration.md +0 -0
  255. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/getting-started.md +0 -0
  256. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/iOS_Shortcut_Guide.md +0 -0
  257. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/index.md +0 -0
  258. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/installation/docker.md +0 -0
  259. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/installation/index.md +0 -0
  260. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/installation/linux.md +0 -0
  261. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/installation/macos.md +0 -0
  262. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/installation/nixos.md +0 -0
  263. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/installation/windows.md +0 -0
  264. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/logo-clean.svg +0 -0
  265. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
  266. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/run_markdown_code_runner.py +0 -0
  267. {agent_cli-0.67.0 → agent_cli-0.67.2}/docs/system-integration.md +0 -0
  268. {agent_cli-0.67.0 → agent_cli-0.67.2}/example.agent-cli-config.toml +0 -0
  269. {agent_cli-0.67.0 → agent_cli-0.67.2}/justfile +0 -0
  270. {agent_cli-0.67.0 → agent_cli-0.67.2}/shell.nix +0 -0
  271. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/__init__.py +0 -0
  272. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/__init__.py +0 -0
  273. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_fix_my_text.py +0 -0
  274. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_interactive.py +0 -0
  275. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_interactive_extra.py +0 -0
  276. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_memory_add.py +0 -0
  277. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_speak.py +0 -0
  278. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_speak_e2e.py +0 -0
  279. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_transcribe.py +0 -0
  280. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_transcribe_agent.py +0 -0
  281. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_transcribe_daemon.py +0 -0
  282. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_transcribe_e2e.py +0 -0
  283. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_transcribe_recovery.py +0 -0
  284. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_tts_common.py +0 -0
  285. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_tts_common_extra.py +0 -0
  286. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_voice_agent_common.py +0 -0
  287. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_voice_edit.py +0 -0
  288. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_voice_edit_e2e.py +0 -0
  289. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/agents/test_wake_word_assistant.py +0 -0
  290. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/conftest.py +0 -0
  291. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/core/__init__.py +0 -0
  292. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/core/test_audio_format.py +0 -0
  293. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/core/test_chroma.py +0 -0
  294. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/core/test_sse.py +0 -0
  295. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/core/test_vad.py +0 -0
  296. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/core/test_watch.py +0 -0
  297. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/dev/__init__.py +0 -0
  298. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/dev/test_cli.py +0 -0
  299. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/dev/test_coding_agents.py +0 -0
  300. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/dev/test_editors.py +0 -0
  301. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/dev/test_project.py +0 -0
  302. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/dev/test_terminals.py +0 -0
  303. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/dev/test_verification.py +0 -0
  304. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/dev/test_worktree.py +0 -0
  305. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/install/__init__.py +0 -0
  306. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/install/test_extras.py +0 -0
  307. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/__init__.py +0 -0
  308. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_api_health.py +0 -0
  309. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_api_integration_liveish.py +0 -0
  310. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_client.py +0 -0
  311. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_engine.py +0 -0
  312. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_files.py +0 -0
  313. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_filters.py +0 -0
  314. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_git_integration.py +0 -0
  315. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_indexer.py +0 -0
  316. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_memory_integration.py +0 -0
  317. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_proxy_passthrough.py +0 -0
  318. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_store.py +0 -0
  319. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/memory/test_utils.py +0 -0
  320. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/mocks/__init__.py +0 -0
  321. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/mocks/audio.py +0 -0
  322. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/mocks/llm.py +0 -0
  323. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/mocks/wyoming.py +0 -0
  324. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/__init__.py +0 -0
  325. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_api.py +0 -0
  326. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_engine.py +0 -0
  327. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_history.py +0 -0
  328. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_indexer.py +0 -0
  329. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_indexing.py +0 -0
  330. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_rag_client.py +0 -0
  331. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_rag_integration_liveish.py +0 -0
  332. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_rag_proxy_passthrough.py +0 -0
  333. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_retriever.py +0 -0
  334. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_store.py +0 -0
  335. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/rag/test_utils.py +0 -0
  336. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_api.py +0 -0
  337. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_api_integration.py +0 -0
  338. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_asr.py +0 -0
  339. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_asr_recovery.py +0 -0
  340. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_audio_e2e.py +0 -0
  341. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_cli.py +0 -0
  342. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_config.py +0 -0
  343. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_config_cmd.py +0 -0
  344. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_docs_gen.py +0 -0
  345. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_env_vars.py +0 -0
  346. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_json_output.py +0 -0
  347. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_llm.py +0 -0
  348. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_llm_gemini.py +0 -0
  349. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_memory_tools.py +0 -0
  350. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_mlx_backend.py +0 -0
  351. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_process_manager.py +0 -0
  352. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_server_streaming.py +0 -0
  353. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_server_tts.py +0 -0
  354. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_server_whisper.py +0 -0
  355. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_services.py +0 -0
  356. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_tools.py +0 -0
  357. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_tts.py +0 -0
  358. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_utils.py +0 -0
  359. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_wake_word.py +0 -0
  360. {agent_cli-0.67.0 → agent_cli-0.67.2}/tests/test_wyoming_utils.py +0 -0
  361. {agent_cli-0.67.0 → agent_cli-0.67.2}/zensical.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-cli
3
- Version: 0.67.0
3
+ Version: 0.67.2
4
4
  Summary: A suite of AI-powered command-line tools for text correction, audio transcription, and voice assistance.
5
5
  Project-URL: Homepage, https://github.com/basnijholt/agent-cli
6
6
  Author-email: Bas Nijholt <bas@nijho.lt>
@@ -8,13 +8,14 @@ License-File: LICENSE
8
8
  Requires-Python: <3.14,>=3.11
9
9
  Requires-Dist: dotenv
10
10
  Requires-Dist: httpx
11
- Requires-Dist: numpy
12
11
  Requires-Dist: psutil; sys_platform == 'win32'
12
+ Requires-Dist: pydantic
13
13
  Requires-Dist: pyperclip
14
14
  Requires-Dist: rich
15
15
  Requires-Dist: setproctitle
16
16
  Requires-Dist: typer
17
17
  Provides-Extra: audio
18
+ Requires-Dist: numpy; extra == 'audio'
18
19
  Requires-Dist: sounddevice>=0.4.6; extra == 'audio'
19
20
  Requires-Dist: wyoming>=1.5.2; extra == 'audio'
20
21
  Provides-Extra: dev
@@ -51,8 +52,8 @@ Requires-Dist: pyyaml>=6.0.0; extra == 'memory'
51
52
  Requires-Dist: transformers>=4.30.0; extra == 'memory'
52
53
  Requires-Dist: watchfiles>=0.21.0; extra == 'memory'
53
54
  Provides-Extra: mlx-whisper
54
- Requires-Dist: fastapi[standard]; extra == 'mlx-whisper'
55
- Requires-Dist: mlx-whisper>=0.4.0; extra == 'mlx-whisper'
55
+ Requires-Dist: fastapi[standard]; (sys_platform == 'darwin' and platform_machine == 'arm64') and extra == 'mlx-whisper'
56
+ Requires-Dist: mlx-whisper>=0.4.0; (sys_platform == 'darwin' and platform_machine == 'arm64') and extra == 'mlx-whisper'
56
57
  Provides-Extra: piper
57
58
  Requires-Dist: fastapi[standard]; extra == 'piper'
58
59
  Requires-Dist: piper-tts>=1.2.0; extra == 'piper'
@@ -1,5 +1,5 @@
1
1
  {
2
- "audio": ["Audio recording/playback with Wyoming protocol", ["sounddevice", "wyoming"]],
2
+ "audio": ["Audio recording/playback with Wyoming protocol", ["numpy", "sounddevice", "wyoming"]],
3
3
  "llm": ["LLM framework (pydantic-ai)", ["pydantic_ai"]],
4
4
  "memory": ["Long-term memory proxy", ["chromadb", "yaml"]],
5
5
  "rag": ["RAG proxy (ChromaDB, embeddings)", ["chromadb"]],
@@ -1,5 +1,7 @@
1
1
  # This file was autogenerated by uv via the following command:
2
2
  # uv export --extra audio --no-dev --no-emit-project --no-hashes
3
+ annotated-types==0.7.0
4
+ # via pydantic
3
5
  anyio==4.12.1
4
6
  # via httpx
5
7
  certifi==2026.1.4
@@ -34,6 +36,10 @@ psutil==7.2.1 ; sys_platform == 'win32'
34
36
  # via agent-cli
35
37
  pycparser==2.23 ; implementation_name != 'PyPy'
36
38
  # via cffi
39
+ pydantic==2.12.5
40
+ # via agent-cli
41
+ pydantic-core==2.41.5
42
+ # via pydantic
37
43
  pygments==2.19.2
38
44
  # via rich
39
45
  pyperclip==1.11.0
@@ -55,6 +61,11 @@ typer==0.21.1
55
61
  typing-extensions==4.15.0
56
62
  # via
57
63
  # anyio
64
+ # pydantic
65
+ # pydantic-core
58
66
  # typer
67
+ # typing-inspection
68
+ typing-inspection==0.4.2
69
+ # via pydantic
59
70
  wyoming==1.8.0
60
71
  # via agent-cli
@@ -85,8 +85,6 @@ markdown-it-py==4.0.0
85
85
  # via rich
86
86
  mdurl==0.1.2
87
87
  # via markdown-it-py
88
- numpy==2.3.5
89
- # via agent-cli
90
88
  openai==2.15.0
91
89
  # via pydantic-ai-slim
92
90
  opentelemetry-api==1.39.1
@@ -105,6 +103,7 @@ pycparser==2.23 ; implementation_name != 'PyPy' and platform_python_implementati
105
103
  # via cffi
106
104
  pydantic==2.12.5
107
105
  # via
106
+ # agent-cli
108
107
  # genai-prices
109
108
  # google-genai
110
109
  # openai
@@ -0,0 +1,215 @@
1
+ # This file was autogenerated by uv via the following command:
2
+ # uv export --extra mlx-whisper --no-dev --no-emit-project --no-hashes
3
+ annotated-doc==0.0.4 ; platform_machine == 'arm64' and sys_platform == 'darwin'
4
+ # via fastapi
5
+ annotated-types==0.7.0
6
+ # via pydantic
7
+ anyio==4.12.1
8
+ # via
9
+ # httpx
10
+ # starlette
11
+ # watchfiles
12
+ certifi==2026.1.4
13
+ # via
14
+ # httpcore
15
+ # httpx
16
+ # requests
17
+ # sentry-sdk
18
+ charset-normalizer==3.4.4 ; platform_machine == 'arm64' and sys_platform == 'darwin'
19
+ # via requests
20
+ click==8.3.1
21
+ # via
22
+ # rich-toolkit
23
+ # typer
24
+ # uvicorn
25
+ colorama==0.4.6 ; sys_platform == 'win32'
26
+ # via
27
+ # click
28
+ # tqdm
29
+ # uvicorn
30
+ dnspython==2.8.0
31
+ # via email-validator
32
+ dotenv==0.9.9
33
+ # via agent-cli
34
+ email-validator==2.3.0
35
+ # via
36
+ # fastapi
37
+ # pydantic
38
+ fastapi==0.128.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
39
+ # via agent-cli
40
+ fastapi-cli==0.0.20 ; platform_machine == 'arm64' and sys_platform == 'darwin'
41
+ # via fastapi
42
+ fastapi-cloud-cli==0.10.1 ; platform_machine == 'arm64' and sys_platform == 'darwin'
43
+ # via fastapi-cli
44
+ fastar==0.8.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
45
+ # via fastapi-cloud-cli
46
+ filelock==3.20.3 ; platform_machine == 'arm64' and sys_platform == 'darwin'
47
+ # via
48
+ # huggingface-hub
49
+ # torch
50
+ fsspec==2026.1.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
51
+ # via
52
+ # huggingface-hub
53
+ # torch
54
+ h11==0.16.0
55
+ # via
56
+ # httpcore
57
+ # uvicorn
58
+ hf-xet==1.2.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
59
+ # via huggingface-hub
60
+ httpcore==1.0.9
61
+ # via httpx
62
+ httptools==0.7.1 ; platform_machine == 'arm64' and sys_platform == 'darwin'
63
+ # via uvicorn
64
+ httpx==0.28.1
65
+ # via
66
+ # agent-cli
67
+ # fastapi
68
+ # fastapi-cloud-cli
69
+ huggingface-hub==0.36.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
70
+ # via mlx-whisper
71
+ idna==3.11
72
+ # via
73
+ # anyio
74
+ # email-validator
75
+ # httpx
76
+ # requests
77
+ jinja2==3.1.6 ; platform_machine == 'arm64' and sys_platform == 'darwin'
78
+ # via
79
+ # fastapi
80
+ # torch
81
+ llvmlite==0.46.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
82
+ # via numba
83
+ markdown-it-py==4.0.0
84
+ # via rich
85
+ markupsafe==3.0.3 ; platform_machine == 'arm64' and sys_platform == 'darwin'
86
+ # via jinja2
87
+ mdurl==0.1.2
88
+ # via markdown-it-py
89
+ mlx==0.30.3 ; platform_machine == 'arm64' and sys_platform == 'darwin'
90
+ # via mlx-whisper
91
+ mlx-metal==0.30.3 ; platform_machine == 'arm64' and sys_platform == 'darwin'
92
+ # via mlx
93
+ mlx-whisper==0.4.3 ; platform_machine == 'arm64' and sys_platform == 'darwin'
94
+ # via agent-cli
95
+ more-itertools==10.8.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
96
+ # via mlx-whisper
97
+ mpmath==1.3.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
98
+ # via sympy
99
+ networkx==3.6.1 ; platform_machine == 'arm64' and sys_platform == 'darwin'
100
+ # via torch
101
+ numba==0.63.1 ; platform_machine == 'arm64' and sys_platform == 'darwin'
102
+ # via mlx-whisper
103
+ numpy==2.3.5 ; platform_machine == 'arm64' and sys_platform == 'darwin'
104
+ # via
105
+ # mlx-whisper
106
+ # numba
107
+ # scipy
108
+ packaging==25.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
109
+ # via huggingface-hub
110
+ psutil==7.2.1 ; sys_platform == 'win32'
111
+ # via agent-cli
112
+ pydantic==2.12.5
113
+ # via
114
+ # agent-cli
115
+ # fastapi
116
+ # fastapi-cloud-cli
117
+ # pydantic-extra-types
118
+ # pydantic-settings
119
+ pydantic-core==2.41.5
120
+ # via pydantic
121
+ pydantic-extra-types==2.11.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
122
+ # via fastapi
123
+ pydantic-settings==2.12.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
124
+ # via fastapi
125
+ pygments==2.19.2
126
+ # via rich
127
+ pyperclip==1.11.0
128
+ # via agent-cli
129
+ python-dotenv==1.2.1
130
+ # via
131
+ # dotenv
132
+ # pydantic-settings
133
+ # uvicorn
134
+ python-multipart==0.0.21 ; platform_machine == 'arm64' and sys_platform == 'darwin'
135
+ # via fastapi
136
+ pyyaml==6.0.3 ; platform_machine == 'arm64' and sys_platform == 'darwin'
137
+ # via
138
+ # huggingface-hub
139
+ # uvicorn
140
+ regex==2026.1.15 ; platform_machine == 'arm64' and sys_platform == 'darwin'
141
+ # via tiktoken
142
+ requests==2.32.5 ; platform_machine == 'arm64' and sys_platform == 'darwin'
143
+ # via
144
+ # huggingface-hub
145
+ # tiktoken
146
+ rich==14.2.0
147
+ # via
148
+ # agent-cli
149
+ # rich-toolkit
150
+ # typer
151
+ rich-toolkit==0.17.1 ; platform_machine == 'arm64' and sys_platform == 'darwin'
152
+ # via
153
+ # fastapi-cli
154
+ # fastapi-cloud-cli
155
+ rignore==0.7.6 ; platform_machine == 'arm64' and sys_platform == 'darwin'
156
+ # via fastapi-cloud-cli
157
+ scipy==1.17.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
158
+ # via mlx-whisper
159
+ sentry-sdk==2.49.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
160
+ # via fastapi-cloud-cli
161
+ setproctitle==1.3.7
162
+ # via agent-cli
163
+ setuptools==80.9.0 ; python_full_version >= '3.12' and platform_machine == 'arm64' and sys_platform == 'darwin'
164
+ # via torch
165
+ shellingham==1.5.4
166
+ # via typer
167
+ starlette==0.50.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
168
+ # via fastapi
169
+ sympy==1.14.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
170
+ # via torch
171
+ tiktoken==0.12.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
172
+ # via mlx-whisper
173
+ torch==2.9.1 ; platform_machine == 'arm64' and sys_platform == 'darwin'
174
+ # via mlx-whisper
175
+ tqdm==4.67.1 ; platform_machine == 'arm64' and sys_platform == 'darwin'
176
+ # via
177
+ # huggingface-hub
178
+ # mlx-whisper
179
+ typer==0.21.1
180
+ # via
181
+ # agent-cli
182
+ # fastapi-cli
183
+ # fastapi-cloud-cli
184
+ typing-extensions==4.15.0
185
+ # via
186
+ # anyio
187
+ # fastapi
188
+ # huggingface-hub
189
+ # pydantic
190
+ # pydantic-core
191
+ # pydantic-extra-types
192
+ # rich-toolkit
193
+ # starlette
194
+ # torch
195
+ # typer
196
+ # typing-inspection
197
+ typing-inspection==0.4.2
198
+ # via
199
+ # pydantic
200
+ # pydantic-settings
201
+ urllib3==2.3.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
202
+ # via
203
+ # requests
204
+ # sentry-sdk
205
+ uvicorn==0.40.0 ; platform_machine == 'arm64' and sys_platform == 'darwin'
206
+ # via
207
+ # fastapi
208
+ # fastapi-cli
209
+ # fastapi-cloud-cli
210
+ uvloop==0.22.1 ; platform_machine == 'arm64' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'
211
+ # via uvicorn
212
+ watchfiles==1.1.1 ; platform_machine == 'arm64' and sys_platform == 'darwin'
213
+ # via uvicorn
214
+ websockets==15.0.1 ; platform_machine == 'arm64' and sys_platform == 'darwin'
215
+ # via uvicorn
@@ -74,9 +74,7 @@ mdurl==0.1.2
74
74
  mpmath==1.3.0
75
75
  # via sympy
76
76
  numpy==2.3.5
77
- # via
78
- # agent-cli
79
- # onnxruntime
77
+ # via onnxruntime
80
78
  onnxruntime==1.20.1
81
79
  # via piper-tts
82
80
  packaging==25.0
@@ -89,6 +87,7 @@ psutil==7.2.1 ; sys_platform == 'win32'
89
87
  # via agent-cli
90
88
  pydantic==2.12.5
91
89
  # via
90
+ # agent-cli
92
91
  # fastapi
93
92
  # fastapi-cloud-cli
94
93
  # pydantic-extra-types
@@ -65,12 +65,11 @@ markupsafe==3.0.3
65
65
  # via jinja2
66
66
  mdurl==0.1.2
67
67
  # via markdown-it-py
68
- numpy==2.3.5
69
- # via agent-cli
70
68
  psutil==7.2.1 ; sys_platform == 'win32'
71
69
  # via agent-cli
72
70
  pydantic==2.12.5
73
71
  # via
72
+ # agent-cli
74
73
  # fastapi
75
74
  # fastapi-cloud-cli
76
75
  # pydantic-extra-types
@@ -1,5 +1,7 @@
1
1
  # This file was autogenerated by uv via the following command:
2
2
  # uv export --extra speed --no-dev --no-emit-project --no-hashes
3
+ annotated-types==0.7.0
4
+ # via pydantic
3
5
  anyio==4.12.1
4
6
  # via httpx
5
7
  audiostretchy==1.3.5
@@ -31,11 +33,13 @@ markdown-it-py==4.0.0
31
33
  mdurl==0.1.2
32
34
  # via markdown-it-py
33
35
  numpy==2.3.5
34
- # via
35
- # agent-cli
36
- # audiostretchy
36
+ # via audiostretchy
37
37
  psutil==7.2.1 ; sys_platform == 'win32'
38
38
  # via agent-cli
39
+ pydantic==2.12.5
40
+ # via agent-cli
41
+ pydantic-core==2.41.5
42
+ # via pydantic
39
43
  pygments==2.19.2
40
44
  # via rich
41
45
  pyperclip==1.11.0
@@ -57,4 +61,9 @@ typer==0.21.1
57
61
  typing-extensions==4.15.0
58
62
  # via
59
63
  # anyio
64
+ # pydantic
65
+ # pydantic-core
60
66
  # typer
67
+ # typing-inspection
68
+ typing-inspection==0.4.2
69
+ # via pydantic
@@ -1,5 +1,7 @@
1
1
  # This file was autogenerated by uv via the following command:
2
2
  # uv export --extra vad --no-dev --no-emit-project --no-hashes
3
+ annotated-types==0.7.0
4
+ # via pydantic
3
5
  anyio==4.12.1
4
6
  # via httpx
5
7
  certifi==2026.1.4
@@ -45,9 +47,7 @@ mpmath==1.3.0
45
47
  networkx==3.6.1
46
48
  # via torch
47
49
  numpy==2.3.5
48
- # via
49
- # agent-cli
50
- # onnxruntime
50
+ # via onnxruntime
51
51
  nvidia-cublas-cu12==12.8.4.1 ; platform_machine == 'x86_64' and sys_platform == 'linux'
52
52
  # via
53
53
  # nvidia-cudnn-cu12
@@ -97,6 +97,10 @@ protobuf==6.33.4
97
97
  # via onnxruntime
98
98
  psutil==7.2.1 ; sys_platform == 'win32'
99
99
  # via agent-cli
100
+ pydantic==2.12.5
101
+ # via agent-cli
102
+ pydantic-core==2.41.5
103
+ # via pydantic
100
104
  pygments==2.19.2
101
105
  # via rich
102
106
  pyperclip==1.11.0
@@ -134,5 +138,10 @@ typer==0.21.1
134
138
  typing-extensions==4.15.0
135
139
  # via
136
140
  # anyio
141
+ # pydantic
142
+ # pydantic-core
137
143
  # torch
138
144
  # typer
145
+ # typing-inspection
146
+ typing-inspection==0.4.2
147
+ # via pydantic
@@ -51,46 +51,68 @@ def check_extra_installed(extra: str) -> bool:
51
51
  return all(_check_package_installed(pkg) for pkg in packages)
52
52
 
53
53
 
54
+ def _format_extra_item(extra: str) -> str:
55
+ """Format a single extra as a list item with description."""
56
+ desc, _ = EXTRAS.get(extra, ("", []))
57
+ if desc:
58
+ return f" - '{extra}' ({desc})"
59
+ return f" - '{extra}'"
60
+
61
+
62
+ def _format_install_commands(extras: list[str]) -> list[str]:
63
+ """Format install commands for one or more extras."""
64
+ combined = ",".join(extras)
65
+ extras_args = " ".join(extras)
66
+ return [
67
+ "Install with:",
68
+ f' [bold cyan]uv tool install -p 3.13 "agent-cli\\[{combined}]"[/bold cyan]',
69
+ " # or",
70
+ f" [bold cyan]agent-cli install-extras {extras_args}[/bold cyan]",
71
+ ]
72
+
73
+
54
74
  def get_install_hint(extra: str) -> str:
55
- """Get install command hint for an extra.
75
+ """Get install command hint for a single extra.
56
76
 
57
77
  Supports `|` syntax for alternatives: "piper|kokoro" shows both options.
58
78
  """
59
79
  # Handle "extra1|extra2" syntax - show all options
60
80
  if "|" in extra:
61
81
  alternatives = extra.split("|")
62
- options = []
63
- for alt in alternatives:
64
- desc, _ = EXTRAS.get(alt, ("", []))
65
- options.append((alt, desc))
66
-
67
82
  lines = ["This command requires one of:"]
68
- for alt, desc in options:
69
- if desc:
70
- lines.append(f" - '{alt}' ({desc})")
71
- else:
72
- lines.append(f" - '{alt}'")
83
+ lines.extend(_format_extra_item(alt) for alt in alternatives)
73
84
  lines.append("")
74
85
  lines.append("Install one with:")
75
- for alt, _ in options:
76
- lines.append(f' uv tool install "agent-cli[{alt}]" -p 3.13')
86
+ lines.extend(
87
+ f' [bold cyan]uv tool install -p 3.13 "agent-cli\\[{alt}]"[/bold cyan]'
88
+ for alt in alternatives
89
+ )
77
90
  lines.append(" # or")
78
- for alt, _ in options:
79
- lines.append(f" agent-cli install-extras {alt}")
91
+ lines.extend(
92
+ f" [bold cyan]agent-cli install-extras {alt}[/bold cyan]" for alt in alternatives
93
+ )
80
94
  return "\n".join(lines)
81
95
 
82
96
  desc, _ = EXTRAS.get(extra, ("", []))
83
- lines = [
84
- f"This command requires the '{extra}' extra",
85
- ]
97
+ header = f"This command requires the '{extra}' extra"
86
98
  if desc:
87
- lines[0] += f" ({desc})"
88
- lines[0] += "."
99
+ header += f" ({desc})"
100
+ header += "."
101
+
102
+ lines = [header, ""]
103
+ lines.extend(_format_install_commands([extra]))
104
+ return "\n".join(lines)
105
+
106
+
107
+ def get_combined_install_hint(extras: list[str]) -> str:
108
+ """Get a combined install hint for multiple missing extras."""
109
+ if len(extras) == 1:
110
+ return get_install_hint(extras[0])
111
+
112
+ lines = ["This command requires the following extras:"]
113
+ lines.extend(_format_extra_item(extra) for extra in extras)
89
114
  lines.append("")
90
- lines.append("Install with:")
91
- lines.append(f' uv tool install "agent-cli[{extra}]" -p 3.13')
92
- lines.append(" # or")
93
- lines.append(f" agent-cli install-extras {extra}")
115
+ lines.extend(_format_install_commands(extras))
94
116
  return "\n".join(lines)
95
117
 
96
118
 
@@ -127,8 +149,7 @@ def requires_extras(*extras: str) -> Callable[[F], F]:
127
149
 
128
150
  missing = [e for e in extras if not check_extra_installed(e)]
129
151
  if missing:
130
- for extra in missing:
131
- print_error_message(get_install_hint(extra))
152
+ print_error_message(get_combined_install_hint(missing))
132
153
  raise typer.Exit(1)
133
154
  return func(*args, **kwargs)
134
155
 
@@ -211,8 +211,8 @@ def print_output_panel(
211
211
 
212
212
 
213
213
  def print_error_message(message: str, suggestion: str | None = None) -> None:
214
- """Prints an error message in a panel."""
215
- error_text = Text(message)
214
+ """Prints an error message in a panel with rich markup support."""
215
+ error_text = Text.from_markup(message)
216
216
  if suggestion:
217
217
  error_text.append("\n\n")
218
218
  error_text.append(suggestion)
@@ -9,7 +9,7 @@ dynamic = ["version"]
9
9
  authors = [{ name = "Bas Nijholt", email = "bas@nijho.lt" }]
10
10
  dependencies = [
11
11
  # Core dependencies that are always required
12
- "numpy",
12
+ "pydantic", # Required for config.py models
13
13
  "rich",
14
14
  "pyperclip",
15
15
  "typer",
@@ -30,7 +30,7 @@ Homepage = "https://github.com/basnijholt/agent-cli"
30
30
 
31
31
  [project.optional-dependencies]
32
32
  # Provider extras (previously base dependencies, now optional)
33
- audio = ["sounddevice>=0.4.6", "wyoming>=1.5.2"]
33
+ audio = ["numpy", "sounddevice>=0.4.6", "wyoming>=1.5.2"]
34
34
  llm = ["pydantic-ai-slim[openai,google,duckduckgo,vertexai]>=0.1.1"]
35
35
 
36
36
  # Feature extras
@@ -65,8 +65,8 @@ faster-whisper = [
65
65
  "faster-whisper>=1.0.0",
66
66
  ]
67
67
  mlx-whisper = [
68
- "fastapi[standard]",
69
- "mlx-whisper>=0.4.0",
68
+ "fastapi[standard]; sys_platform == 'darwin' and platform_machine == 'arm64'",
69
+ "mlx-whisper>=0.4.0; sys_platform == 'darwin' and platform_machine == 'arm64'",
70
70
  ]
71
71
  piper = [
72
72
  "fastapi[standard]",
@@ -36,8 +36,9 @@ class TestRequiresExtrasDecorator:
36
36
  assert "requires one of:" in hint
37
37
  assert "'piper'" in hint
38
38
  assert "'kokoro'" in hint
39
- assert "agent-cli[piper]" in hint
40
- assert "agent-cli[kokoro]" in hint
39
+ # Brackets are escaped for rich markup (\\[)
40
+ assert "agent-cli\\[piper]" in hint
41
+ assert "agent-cli\\[kokoro]" in hint
41
42
 
42
43
 
43
44
  class TestExtrasMetadata: