agent-cli 0.72.5__tar.gz → 0.72.6__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 (365) hide show
  1. {agent_cli-0.72.5 → agent_cli-0.72.6}/PKG-INFO +3 -1
  2. agent_cli-0.72.6/agent_cli/_extras.json +73 -0
  3. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/sync_extras.py +1 -0
  4. {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/memory-proxy.Dockerfile +4 -10
  5. {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/rag-proxy.Dockerfile +4 -10
  6. {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/transcribe-proxy.Dockerfile +10 -18
  7. {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/tts.Dockerfile +6 -12
  8. {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/whisper.Dockerfile +6 -12
  9. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/install-extras.md +7 -6
  10. {agent_cli-0.72.5 → agent_cli-0.72.6}/pyproject.toml +2 -1
  11. {agent_cli-0.72.5 → agent_cli-0.72.6}/uv.lock +5 -1
  12. agent_cli-0.72.5/agent_cli/_extras.json +0 -14
  13. {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
  14. {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude/skills/agent-cli-dev/examples.md +0 -0
  15. {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/README.md +0 -0
  16. {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/marketplace.json +0 -0
  17. {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/plugin.json +0 -0
  18. {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
  19. {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
  20. {agent_cli-0.72.5 → agent_cli-0.72.6}/.cursorrules +0 -0
  21. {agent_cli-0.72.5 → agent_cli-0.72.6}/.dockerignore +0 -0
  22. {agent_cli-0.72.5 → agent_cli-0.72.6}/.env.example +0 -0
  23. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/logo.svg +0 -0
  24. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/release-drafter.yml +0 -0
  25. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/renovate.json +0 -0
  26. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/scripts/check_extras_sync.py +0 -0
  27. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/scripts/sync_requirements.py +0 -0
  28. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/automerge.yml +0 -0
  29. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/docker.yml +0 -0
  30. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/docs.yml +0 -0
  31. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/markdown-code-runner.yml +0 -0
  32. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/pytest.yml +0 -0
  33. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/release-drafter.yml +0 -0
  34. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/release.yml +0 -0
  35. {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/toc.yaml +0 -0
  36. {agent_cli-0.72.5 → agent_cli-0.72.6}/.gitignore +0 -0
  37. {agent_cli-0.72.5 → agent_cli-0.72.6}/.jscpd.json +0 -0
  38. {agent_cli-0.72.5 → agent_cli-0.72.6}/.pre-commit-config.yaml +0 -0
  39. {agent_cli-0.72.5 → agent_cli-0.72.6}/.prompts/docs-review.md +0 -0
  40. {agent_cli-0.72.5 → agent_cli-0.72.6}/.prompts/pr-review.md +0 -0
  41. {agent_cli-0.72.5 → agent_cli-0.72.6}/CLAUDE.md +0 -0
  42. {agent_cli-0.72.5 → agent_cli-0.72.6}/LICENSE +0 -0
  43. {agent_cli-0.72.5 → agent_cli-0.72.6}/README.md +0 -0
  44. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/__init__.py +0 -0
  45. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/__main__.py +0 -0
  46. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/.gitkeep +0 -0
  47. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/audio.txt +0 -0
  48. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/faster-whisper.txt +0 -0
  49. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/kokoro.txt +0 -0
  50. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/llm.txt +0 -0
  51. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/memory.txt +0 -0
  52. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/mlx-whisper.txt +0 -0
  53. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/piper.txt +0 -0
  54. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/rag.txt +0 -0
  55. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/server.txt +0 -0
  56. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/speed.txt +0 -0
  57. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/vad.txt +0 -0
  58. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/wyoming.txt +0 -0
  59. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_tools.py +0 -0
  60. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/__init__.py +0 -0
  61. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/_voice_agent_common.py +0 -0
  62. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/assistant.py +0 -0
  63. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/autocorrect.py +0 -0
  64. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/chat.py +0 -0
  65. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/memory/__init__.py +0 -0
  66. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/memory/add.py +0 -0
  67. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/memory/proxy.py +0 -0
  68. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/rag_proxy.py +0 -0
  69. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/speak.py +0 -0
  70. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/transcribe.py +0 -0
  71. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/transcribe_daemon.py +0 -0
  72. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/voice_edit.py +0 -0
  73. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/api.py +0 -0
  74. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/cli.py +0 -0
  75. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/config.py +0 -0
  76. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/config_cmd.py +0 -0
  77. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/constants.py +0 -0
  78. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/__init__.py +0 -0
  79. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/audio.py +0 -0
  80. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/audio_format.py +0 -0
  81. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/chroma.py +0 -0
  82. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/deps.py +0 -0
  83. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/openai_proxy.py +0 -0
  84. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/process.py +0 -0
  85. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/reranker.py +0 -0
  86. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/sse.py +0 -0
  87. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/transcription_logger.py +0 -0
  88. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/utils.py +0 -0
  89. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/vad.py +0 -0
  90. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/watch.py +0 -0
  91. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/__init__.py +0 -0
  92. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/cli.py +0 -0
  93. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/__init__.py +0 -0
  94. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/aider.py +0 -0
  95. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/base.py +0 -0
  96. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/claude.py +0 -0
  97. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/codex.py +0 -0
  98. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
  99. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/copilot.py +0 -0
  100. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
  101. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/gemini.py +0 -0
  102. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/opencode.py +0 -0
  103. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/registry.py +0 -0
  104. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/__init__.py +0 -0
  105. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/base.py +0 -0
  106. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/cursor.py +0 -0
  107. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/emacs.py +0 -0
  108. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/jetbrains.py +0 -0
  109. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/nano.py +0 -0
  110. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/neovim.py +0 -0
  111. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/registry.py +0 -0
  112. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/sublime.py +0 -0
  113. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/vim.py +0 -0
  114. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/vscode.py +0 -0
  115. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/zed.py +0 -0
  116. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/project.py +0 -0
  117. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/registry.py +0 -0
  118. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/skill/SKILL.md +0 -0
  119. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/skill/examples.md +0 -0
  120. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/__init__.py +0 -0
  121. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/apple_terminal.py +0 -0
  122. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/base.py +0 -0
  123. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/gnome.py +0 -0
  124. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/iterm2.py +0 -0
  125. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/kitty.py +0 -0
  126. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/registry.py +0 -0
  127. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/tmux.py +0 -0
  128. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/warp.py +0 -0
  129. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/zellij.py +0 -0
  130. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/worktree.py +0 -0
  131. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/docs_gen.py +0 -0
  132. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/example-config.toml +0 -0
  133. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/__init__.py +0 -0
  134. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/common.py +0 -0
  135. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/extras.py +0 -0
  136. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/hotkeys.py +0 -0
  137. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/services.py +0 -0
  138. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/__init__.py +0 -0
  139. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_files.py +0 -0
  140. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_filters.py +0 -0
  141. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_git.py +0 -0
  142. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_indexer.py +0 -0
  143. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_ingest.py +0 -0
  144. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_persistence.py +0 -0
  145. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_prompt.py +0 -0
  146. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_retrieval.py +0 -0
  147. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_store.py +0 -0
  148. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_streaming.py +0 -0
  149. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_tasks.py +0 -0
  150. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/api.py +0 -0
  151. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/client.py +0 -0
  152. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/engine.py +0 -0
  153. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/entities.py +0 -0
  154. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/models.py +0 -0
  155. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/opts.py +0 -0
  156. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/py.typed +0 -0
  157. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/__init__.py +0 -0
  158. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_indexer.py +0 -0
  159. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_indexing.py +0 -0
  160. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_prompt.py +0 -0
  161. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_retriever.py +0 -0
  162. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_store.py +0 -0
  163. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_utils.py +0 -0
  164. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/api.py +0 -0
  165. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/client.py +0 -0
  166. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/engine.py +0 -0
  167. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/models.py +0 -0
  168. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/.runtime/.gitkeep +0 -0
  169. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/__init__.py +0 -0
  170. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/check_plugin_skill_sync.py +0 -0
  171. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
  172. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
  173. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
  174. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
  175. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
  176. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
  177. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
  178. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
  179. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
  180. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
  181. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
  182. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
  183. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
  184. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
  185. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-openwakeword.sh +0 -0
  186. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-piper-windows.ps1 +0 -0
  187. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-piper.sh +0 -0
  188. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-whisper-linux.sh +0 -0
  189. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-whisper-macos.sh +0 -0
  190. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-whisper-windows.ps1 +0 -0
  191. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-whisper.sh +0 -0
  192. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run_faster_whisper_server.py +0 -0
  193. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
  194. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-linux.sh +0 -0
  195. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
  196. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-macos.sh +0 -0
  197. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-windows.ps1 +0 -0
  198. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
  199. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/start-all-services.sh +0 -0
  200. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/__init__.py +0 -0
  201. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/cli.py +0 -0
  202. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/common.py +0 -0
  203. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/model_manager.py +0 -0
  204. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/model_registry.py +0 -0
  205. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/proxy/__init__.py +0 -0
  206. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/proxy/api.py +0 -0
  207. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/streaming.py +0 -0
  208. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/__init__.py +0 -0
  209. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/api.py +0 -0
  210. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/backends/__init__.py +0 -0
  211. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/backends/base.py +0 -0
  212. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/backends/kokoro.py +0 -0
  213. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/backends/piper.py +0 -0
  214. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/model_manager.py +0 -0
  215. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/model_registry.py +0 -0
  216. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/wyoming_handler.py +0 -0
  217. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/__init__.py +0 -0
  218. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/api.py +0 -0
  219. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/backends/__init__.py +0 -0
  220. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/backends/base.py +0 -0
  221. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
  222. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/backends/mlx.py +0 -0
  223. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/languages.py +0 -0
  224. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/model_manager.py +0 -0
  225. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/model_registry.py +0 -0
  226. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/wyoming_handler.py +0 -0
  227. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/__init__.py +0 -0
  228. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/_wyoming_utils.py +0 -0
  229. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/asr.py +0 -0
  230. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/llm.py +0 -0
  231. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/tts.py +0 -0
  232. {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/wake_word.py +0 -0
  233. {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/docker-compose.yml +0 -0
  234. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/CNAME +0 -0
  235. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/architecture/index.md +0 -0
  236. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/architecture/memory.md +0 -0
  237. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/architecture/rag.md +0 -0
  238. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/assistant.md +0 -0
  239. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/autocorrect.md +0 -0
  240. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/chat.md +0 -0
  241. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/config.md +0 -0
  242. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/dev.md +0 -0
  243. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/index.md +0 -0
  244. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/install-hotkeys.md +0 -0
  245. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/install-services.md +0 -0
  246. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/memory.md +0 -0
  247. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/rag-proxy.md +0 -0
  248. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/server/index.md +0 -0
  249. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/server/transcribe-proxy.md +0 -0
  250. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/server/tts.md +0 -0
  251. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/server/whisper.md +0 -0
  252. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/speak.md +0 -0
  253. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/start-services.md +0 -0
  254. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/transcribe-daemon.md +0 -0
  255. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/transcribe.md +0 -0
  256. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/voice-edit.md +0 -0
  257. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/configuration.md +0 -0
  258. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/getting-started.md +0 -0
  259. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/iOS_Shortcut_Guide.md +0 -0
  260. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/index.md +0 -0
  261. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/docker.md +0 -0
  262. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/index.md +0 -0
  263. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/linux.md +0 -0
  264. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/macos.md +0 -0
  265. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/nixos.md +0 -0
  266. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/windows.md +0 -0
  267. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/logo-clean.svg +0 -0
  268. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
  269. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/run_markdown_code_runner.py +0 -0
  270. {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/system-integration.md +0 -0
  271. {agent_cli-0.72.5 → agent_cli-0.72.6}/example.agent-cli-config.toml +0 -0
  272. {agent_cli-0.72.5 → agent_cli-0.72.6}/justfile +0 -0
  273. {agent_cli-0.72.5 → agent_cli-0.72.6}/shell.nix +0 -0
  274. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/__init__.py +0 -0
  275. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/__init__.py +0 -0
  276. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_fix_my_text.py +0 -0
  277. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_interactive.py +0 -0
  278. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_interactive_extra.py +0 -0
  279. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_memory_add.py +0 -0
  280. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_speak.py +0 -0
  281. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_speak_e2e.py +0 -0
  282. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe.py +0 -0
  283. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe_agent.py +0 -0
  284. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe_daemon.py +0 -0
  285. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe_e2e.py +0 -0
  286. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe_recovery.py +0 -0
  287. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_tts_common.py +0 -0
  288. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_tts_common_extra.py +0 -0
  289. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_voice_agent_common.py +0 -0
  290. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_voice_edit.py +0 -0
  291. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_voice_edit_e2e.py +0 -0
  292. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_wake_word_assistant.py +0 -0
  293. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/conftest.py +0 -0
  294. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/__init__.py +0 -0
  295. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_audio_format.py +0 -0
  296. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_chroma.py +0 -0
  297. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_sse.py +0 -0
  298. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_vad.py +0 -0
  299. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_watch.py +0 -0
  300. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/__init__.py +0 -0
  301. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_cli.py +0 -0
  302. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_coding_agents.py +0 -0
  303. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_editors.py +0 -0
  304. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_project.py +0 -0
  305. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_terminals.py +0 -0
  306. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_verification.py +0 -0
  307. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_worktree.py +0 -0
  308. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/install/__init__.py +0 -0
  309. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/install/test_extras.py +0 -0
  310. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/__init__.py +0 -0
  311. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_api_health.py +0 -0
  312. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_api_integration_liveish.py +0 -0
  313. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_client.py +0 -0
  314. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_engine.py +0 -0
  315. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_files.py +0 -0
  316. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_filters.py +0 -0
  317. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_git_integration.py +0 -0
  318. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_indexer.py +0 -0
  319. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_memory_integration.py +0 -0
  320. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_proxy_passthrough.py +0 -0
  321. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_store.py +0 -0
  322. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_utils.py +0 -0
  323. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/mocks/__init__.py +0 -0
  324. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/mocks/audio.py +0 -0
  325. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/mocks/llm.py +0 -0
  326. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/mocks/wyoming.py +0 -0
  327. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/__init__.py +0 -0
  328. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_api.py +0 -0
  329. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_engine.py +0 -0
  330. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_history.py +0 -0
  331. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_indexer.py +0 -0
  332. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_indexing.py +0 -0
  333. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_rag_client.py +0 -0
  334. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_rag_integration_liveish.py +0 -0
  335. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_rag_proxy_passthrough.py +0 -0
  336. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_retriever.py +0 -0
  337. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_store.py +0 -0
  338. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_utils.py +0 -0
  339. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_api.py +0 -0
  340. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_api_integration.py +0 -0
  341. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_asr.py +0 -0
  342. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_asr_recovery.py +0 -0
  343. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_audio_e2e.py +0 -0
  344. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_cli.py +0 -0
  345. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_config.py +0 -0
  346. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_config_cmd.py +0 -0
  347. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_docs_gen.py +0 -0
  348. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_env_vars.py +0 -0
  349. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_json_output.py +0 -0
  350. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_llm.py +0 -0
  351. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_llm_gemini.py +0 -0
  352. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_memory_tools.py +0 -0
  353. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_mlx_backend.py +0 -0
  354. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_process_manager.py +0 -0
  355. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_requires_extras.py +0 -0
  356. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_server_streaming.py +0 -0
  357. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_server_tts.py +0 -0
  358. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_server_whisper.py +0 -0
  359. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_services.py +0 -0
  360. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_tools.py +0 -0
  361. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_tts.py +0 -0
  362. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_utils.py +0 -0
  363. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_wake_word.py +0 -0
  364. {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_wyoming_utils.py +0 -0
  365. {agent_cli-0.72.5 → agent_cli-0.72.6}/zensical.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-cli
3
- Version: 0.72.5
3
+ Version: 0.72.6
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>
@@ -46,6 +46,8 @@ Requires-Dist: soundfile>=0.12.0; extra == 'kokoro'
46
46
  Requires-Dist: transformers>=4.40.0; extra == 'kokoro'
47
47
  Provides-Extra: llm
48
48
  Requires-Dist: pydantic-ai-slim[duckduckgo,google,openai,vertexai]>=0.1.1; extra == 'llm'
49
+ Provides-Extra: llm-core
50
+ Requires-Dist: pydantic-ai-slim[google,openai]>=0.1.1; extra == 'llm-core'
49
51
  Provides-Extra: memory
50
52
  Requires-Dist: chromadb>=0.4.22; extra == 'memory'
51
53
  Requires-Dist: fastapi[standard]; extra == 'memory'
@@ -0,0 +1,73 @@
1
+ {
2
+ "audio": [
3
+ "Audio recording/playback",
4
+ [
5
+ "sounddevice"
6
+ ]
7
+ ],
8
+ "faster-whisper": [
9
+ "TODO: add description",
10
+ []
11
+ ],
12
+ "kokoro": [
13
+ "TODO: add description",
14
+ []
15
+ ],
16
+ "llm": [
17
+ "LLM framework (pydantic-ai)",
18
+ [
19
+ "pydantic_ai"
20
+ ]
21
+ ],
22
+ "llm-core": [
23
+ "Minimal LLM support for Docker images",
24
+ [
25
+ "pydantic_ai"
26
+ ]
27
+ ],
28
+ "memory": [
29
+ "Long-term memory proxy",
30
+ [
31
+ "chromadb",
32
+ "yaml"
33
+ ]
34
+ ],
35
+ "mlx-whisper": [
36
+ "TODO: add description",
37
+ []
38
+ ],
39
+ "piper": [
40
+ "TODO: add description",
41
+ []
42
+ ],
43
+ "rag": [
44
+ "RAG proxy (ChromaDB, embeddings)",
45
+ [
46
+ "chromadb"
47
+ ]
48
+ ],
49
+ "server": [
50
+ "FastAPI server components",
51
+ [
52
+ "fastapi"
53
+ ]
54
+ ],
55
+ "speed": [
56
+ "Audio speed adjustment (audiostretchy)",
57
+ [
58
+ "audiostretchy"
59
+ ]
60
+ ],
61
+ "vad": [
62
+ "Voice Activity Detection (silero-vad)",
63
+ [
64
+ "silero_vad"
65
+ ]
66
+ ],
67
+ "wyoming": [
68
+ "Wyoming protocol support",
69
+ [
70
+ "wyoming"
71
+ ]
72
+ ]
73
+ }
@@ -33,6 +33,7 @@ EXTRA_METADATA: dict[str, tuple[str, list[str]]] = {
33
33
  "openai": ("OpenAI API provider", ["openai"]),
34
34
  "gemini": ("Google Gemini provider", ["google.genai"]),
35
35
  "llm": ("LLM framework (pydantic-ai)", ["pydantic_ai"]),
36
+ "llm-core": ("Minimal LLM support for Docker images", ["pydantic_ai"]),
36
37
  # Feature extras
37
38
  "rag": ("RAG proxy (ChromaDB, embeddings)", ["chromadb"]),
38
39
  "memory": ("Long-term memory proxy", ["chromadb", "yaml"]),
@@ -49,11 +49,9 @@ COPY scripts ./scripts
49
49
  RUN uv sync --frozen --no-dev --no-editable --extra memory
50
50
 
51
51
  # =============================================================================
52
- # Runtime stage - minimal image
52
+ # Runtime stage - minimal image using Python slim directly
53
53
  # =============================================================================
54
- FROM debian:bookworm-slim
55
-
56
- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
54
+ FROM python:3.13-slim
57
55
 
58
56
  # Install runtime dependencies:
59
57
  # - libgomp1: Required by onnxruntime for parallel processing
@@ -62,17 +60,13 @@ RUN apt-get update && \
62
60
  apt-get install -y --no-install-recommends libgomp1 git && \
63
61
  apt-get clean && rm -rf /var/lib/apt/lists/*
64
62
 
65
- ENV UV_PYTHON_INSTALL_DIR=/opt/python
66
- RUN uv python install 3.13
67
-
68
63
  RUN groupadd -g 1000 memory && useradd -m -u 1000 -g memory memory
69
64
 
70
65
  WORKDIR /app
71
66
 
72
67
  COPY --from=builder /app/.venv /app/.venv
73
68
 
74
- RUN ln -sf $(uv python find 3.13) /app/.venv/bin/python && \
75
- ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
69
+ RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
76
70
 
77
71
  # Create data directory
78
72
  RUN mkdir -p /data/memory && chown -R memory:memory /data
@@ -103,7 +97,7 @@ ENV MEMORY_HOST=0.0.0.0 \
103
97
  LOG_LEVEL=info
104
98
 
105
99
  HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
106
- CMD /app/.venv/bin/python -c "import urllib.request; urllib.request.urlopen('http://localhost:${MEMORY_PORT}/health')" || exit 1
100
+ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${MEMORY_PORT}/health')" || exit 1
107
101
 
108
102
  ENTRYPOINT ["sh", "-c", "agent-cli memory proxy \
109
103
  --host ${MEMORY_HOST} \
@@ -46,11 +46,9 @@ COPY scripts ./scripts
46
46
  RUN uv sync --frozen --no-dev --no-editable --extra rag
47
47
 
48
48
  # =============================================================================
49
- # Runtime stage - minimal image
49
+ # Runtime stage - minimal image using Python slim directly
50
50
  # =============================================================================
51
- FROM debian:bookworm-slim
52
-
53
- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
51
+ FROM python:3.13-slim
54
52
 
55
53
  # Install runtime dependencies:
56
54
  # - libgomp1: Required by onnxruntime for parallel processing
@@ -59,17 +57,13 @@ RUN apt-get update && \
59
57
  apt-get install -y --no-install-recommends libgomp1 git && \
60
58
  apt-get clean && rm -rf /var/lib/apt/lists/*
61
59
 
62
- ENV UV_PYTHON_INSTALL_DIR=/opt/python
63
- RUN uv python install 3.13
64
-
65
60
  RUN groupadd -g 1000 rag && useradd -m -u 1000 -g rag rag
66
61
 
67
62
  WORKDIR /app
68
63
 
69
64
  COPY --from=builder /app/.venv /app/.venv
70
65
 
71
- RUN ln -sf $(uv python find 3.13) /app/.venv/bin/python && \
72
- ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
66
+ RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
73
67
 
74
68
  # Create data directories
75
69
  RUN mkdir -p /data/docs /data/db && chown -R rag:rag /data
@@ -92,7 +86,7 @@ ENV RAG_HOST=0.0.0.0 \
92
86
  LOG_LEVEL=info
93
87
 
94
88
  HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
95
- CMD /app/.venv/bin/python -c "import urllib.request; urllib.request.urlopen('http://localhost:${RAG_PORT}/health')" || exit 1
89
+ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${RAG_PORT}/health')" || exit 1
96
90
 
97
91
  ENTRYPOINT ["sh", "-c", "agent-cli rag-proxy \
98
92
  --host ${RAG_HOST} \
@@ -24,11 +24,9 @@
24
24
  # =============================================================================
25
25
  # Builder stage - install dependencies and project
26
26
  # =============================================================================
27
- FROM python:3.13-slim AS builder
27
+ FROM python:3.13-alpine AS builder
28
28
 
29
- RUN apt-get update && \
30
- apt-get install -y --no-install-recommends git && \
31
- apt-get clean && rm -rf /var/lib/apt/lists/*
29
+ RUN apk add --no-cache git
32
30
 
33
31
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
34
32
 
@@ -38,30 +36,24 @@ COPY pyproject.toml uv.lock README.md ./
38
36
  COPY .git ./.git
39
37
  COPY agent_cli ./agent_cli
40
38
  COPY scripts ./scripts
41
- RUN uv sync --frozen --no-dev --no-editable --extra server --extra wyoming --extra llm
39
+ RUN uv sync --frozen --no-dev --no-editable --extra server --extra wyoming --extra llm-core
42
40
 
43
41
  # =============================================================================
44
- # Runtime stage - minimal image
42
+ # Runtime stage - minimal Alpine image
45
43
  # =============================================================================
46
- FROM debian:bookworm-slim
44
+ FROM python:3.13-alpine
47
45
 
48
- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
49
-
50
- RUN apt-get update && \
51
- apt-get install -y --no-install-recommends ffmpeg && \
52
- apt-get clean && rm -rf /var/lib/apt/lists/*
46
+ RUN apk add --no-cache ffmpeg
53
47
 
54
- ENV UV_PYTHON_INSTALL_DIR=/opt/python
55
- RUN uv python install 3.13
48
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
56
49
 
57
- RUN groupadd -g 1000 transcribe && useradd -m -u 1000 -g transcribe transcribe
50
+ RUN addgroup -g 1000 transcribe && adduser -u 1000 -G transcribe -D transcribe
58
51
 
59
52
  WORKDIR /app
60
53
 
61
54
  COPY --from=builder /app/.venv /app/.venv
62
55
 
63
- RUN ln -sf $(uv python find 3.13) /app/.venv/bin/python && \
64
- ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
56
+ RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
65
57
 
66
58
  USER transcribe
67
59
 
@@ -71,7 +63,7 @@ ENV PROXY_HOST=0.0.0.0 \
71
63
  PROXY_PORT=61337
72
64
 
73
65
  HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
74
- CMD /app/.venv/bin/python -c "import urllib.request; urllib.request.urlopen('http://localhost:${PROXY_PORT}/health')" || exit 1
66
+ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${PROXY_PORT}/health')" || exit 1
75
67
 
76
68
  ENTRYPOINT ["sh", "-c", "agent-cli server transcribe-proxy \
77
69
  --host ${PROXY_HOST} \
@@ -108,25 +108,19 @@ ENTRYPOINT ["sh", "-c", "agent-cli server tts \
108
108
  # =============================================================================
109
109
  # CPU target: CPU-only with Piper TTS
110
110
  # =============================================================================
111
- FROM debian:bookworm-slim AS cpu
111
+ FROM python:3.13-slim AS cpu
112
112
 
113
113
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
114
114
 
115
- RUN apt-get update && \
116
- apt-get install -y --no-install-recommends ffmpeg && \
117
- apt-get clean && rm -rf /var/lib/apt/lists/*
118
-
119
- ENV UV_PYTHON_INSTALL_DIR=/opt/python
120
- RUN uv python install 3.13
121
-
122
- RUN getent group 1000 || groupadd -g 1000 tts; \
123
- id -u 1000 >/dev/null 2>&1 || useradd -m -u 1000 -g 1000 tts
115
+ RUN groupadd -g 1000 tts && useradd -m -u 1000 -g 1000 tts
124
116
 
125
117
  WORKDIR /app
126
118
 
127
119
  COPY --from=builder-cpu /app/.venv /app/.venv
128
120
 
129
- RUN ln -sf $(uv python find 3.13) /app/.venv/bin/python && \
121
+ # Install imageio-ffmpeg for bundled static ffmpeg binary (77MB vs 420MB for Debian package)
122
+ RUN uv pip install --python /app/.venv/bin/python imageio-ffmpeg && \
123
+ ln -s $(/app/.venv/bin/python -c "import imageio_ffmpeg; print(imageio_ffmpeg.get_ffmpeg_exe())") /usr/local/bin/ffmpeg && \
130
124
  ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli && \
131
125
  mkdir -p /home/tts/.cache && chown -R tts:tts /home/tts
132
126
 
@@ -144,7 +138,7 @@ ENV TTS_HOST=0.0.0.0 \
144
138
  TTS_DEVICE=cpu
145
139
 
146
140
  HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
147
- CMD /app/.venv/bin/python -c "import urllib.request; urllib.request.urlopen('http://localhost:${TTS_PORT}/health')" || exit 1
141
+ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${TTS_PORT}/health')" || exit 1
148
142
 
149
143
  ENTRYPOINT ["sh", "-c", "agent-cli server tts \
150
144
  --host ${TTS_HOST} \
@@ -83,25 +83,19 @@ ENTRYPOINT ["sh", "-c", "agent-cli server whisper \
83
83
  # =============================================================================
84
84
  # CPU target: CPU-only with faster-whisper
85
85
  # =============================================================================
86
- FROM debian:bookworm-slim AS cpu
86
+ FROM python:3.13-slim AS cpu
87
87
 
88
88
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
89
89
 
90
- RUN apt-get update && \
91
- apt-get install -y --no-install-recommends ffmpeg && \
92
- apt-get clean && rm -rf /var/lib/apt/lists/*
93
-
94
- ENV UV_PYTHON_INSTALL_DIR=/opt/python
95
- RUN uv python install 3.13
96
-
97
- RUN getent group 1000 || groupadd -g 1000 whisper; \
98
- id -u 1000 >/dev/null 2>&1 || useradd -m -u 1000 -g 1000 whisper
90
+ RUN groupadd -g 1000 whisper && useradd -m -u 1000 -g 1000 whisper
99
91
 
100
92
  WORKDIR /app
101
93
 
102
94
  COPY --from=builder /app/.venv /app/.venv
103
95
 
104
- RUN ln -sf $(uv python find 3.13) /app/.venv/bin/python && \
96
+ # Install imageio-ffmpeg for bundled static ffmpeg binary (77MB vs 420MB for Debian package)
97
+ RUN uv pip install --python /app/.venv/bin/python imageio-ffmpeg && \
98
+ ln -s $(/app/.venv/bin/python -c "import imageio_ffmpeg; print(imageio_ffmpeg.get_ffmpeg_exe())") /usr/local/bin/ffmpeg && \
105
99
  ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli && \
106
100
  mkdir -p /home/whisper/.cache && chown -R whisper:whisper /home/whisper
107
101
 
@@ -118,7 +112,7 @@ ENV WHISPER_HOST=0.0.0.0 \
118
112
  WHISPER_DEVICE=cpu
119
113
 
120
114
  HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
121
- CMD /app/.venv/bin/python -c "import urllib.request; urllib.request.urlopen('http://localhost:${WHISPER_PORT}/health')" || exit 1
115
+ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${WHISPER_PORT}/health')" || exit 1
122
116
 
123
117
  ENTRYPOINT ["sh", "-c", "agent-cli server whisper \
124
118
  --host ${WHISPER_HOST} \
@@ -31,18 +31,19 @@ Available extras:
31
31
  <!-- ⚠️ This content is auto-generated by `markdown-code-runner`. -->
32
32
  | Extra | Description |
33
33
  |-------|-------------|
34
- | `wyoming` | Wyoming protocol for ASR/TTS servers |
35
- | `audio` | Local audio recording/playback |
34
+ | `audio` | Audio recording/playback |
35
+ | `faster-whisper` | TODO: add description |
36
+ | `kokoro` | TODO: add description |
36
37
  | `llm` | LLM framework (pydantic-ai) |
38
+ | `llm-core` | Minimal LLM support for Docker images |
37
39
  | `memory` | Long-term memory proxy |
40
+ | `mlx-whisper` | TODO: add description |
41
+ | `piper` | TODO: add description |
38
42
  | `rag` | RAG proxy (ChromaDB, embeddings) |
39
43
  | `server` | FastAPI server components |
40
44
  | `speed` | Audio speed adjustment (audiostretchy) |
41
- | `piper` | Local Piper TTS |
42
- | `kokoro` | Kokoro neural TTS |
43
45
  | `vad` | Voice Activity Detection (silero-vad) |
44
- | `faster-whisper` | Whisper ASR (CUDA/CPU) |
45
- | `mlx-whisper` | Whisper ASR (Apple Silicon) |
46
+ | `wyoming` | Wyoming protocol support |
46
47
 
47
48
  <!-- OUTPUT:END -->
48
49
 
@@ -33,7 +33,8 @@ Homepage = "https://github.com/basnijholt/agent-cli"
33
33
  # Provider extras (previously base dependencies, now optional)
34
34
  wyoming = ["wyoming>=1.5.2"] # Wyoming protocol only (for servers)
35
35
  audio = ["numpy", "sounddevice>=0.4.6", "agent-cli[wyoming]"] # Local audio recording
36
- llm = ["pydantic-ai-slim[openai,google,duckduckgo,vertexai]>=0.1.1"]
36
+ llm-core = ["pydantic-ai-slim[openai,google]>=0.1.1"] # Minimal LLM support for Docker
37
+ llm = ["pydantic-ai-slim[openai,google,duckduckgo,vertexai]>=0.1.1"] # Full LLM with tools
37
38
 
38
39
  # Feature extras
39
40
  server = [
@@ -71,6 +71,9 @@ kokoro = [
71
71
  llm = [
72
72
  { name = "pydantic-ai-slim", extra = ["duckduckgo", "google", "openai", "vertexai"] },
73
73
  ]
74
+ llm-core = [
75
+ { name = "pydantic-ai-slim", extra = ["google", "openai"] },
76
+ ]
74
77
  memory = [
75
78
  { name = "chromadb" },
76
79
  { name = "fastapi", extra = ["standard"] },
@@ -173,6 +176,7 @@ requires-dist = [
173
176
  { name = "psutil", marker = "sys_platform == 'win32'" },
174
177
  { name = "pydantic" },
175
178
  { name = "pydantic-ai-slim", extras = ["duckduckgo", "google", "openai", "vertexai"], marker = "extra == 'llm'", specifier = ">=0.1.1" },
179
+ { name = "pydantic-ai-slim", extras = ["google", "openai"], marker = "extra == 'llm-core'", specifier = ">=0.1.1" },
176
180
  { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.0.0" },
177
181
  { name = "pyperclip" },
178
182
  { name = "pytest", marker = "extra == 'dev'", specifier = ">=7.0.0" },
@@ -204,7 +208,7 @@ requires-dist = [
204
208
  { name = "wyoming", marker = "extra == 'wyoming'", specifier = ">=1.5.2" },
205
209
  { name = "zensical", marker = "extra == 'dev'" },
206
210
  ]
207
- provides-extras = ["audio", "dev", "faster-whisper", "kokoro", "llm", "memory", "mlx-whisper", "piper", "rag", "server", "speed", "test", "vad", "wyoming"]
211
+ provides-extras = ["audio", "dev", "faster-whisper", "kokoro", "llm", "llm-core", "memory", "mlx-whisper", "piper", "rag", "server", "speed", "test", "vad", "wyoming"]
208
212
 
209
213
  [package.metadata.requires-dev]
210
214
  dev = [
@@ -1,14 +0,0 @@
1
- {
2
- "wyoming": ["Wyoming protocol for ASR/TTS servers", ["wyoming"]],
3
- "audio": ["Local audio recording/playback", ["numpy", "sounddevice", "wyoming"]],
4
- "llm": ["LLM framework (pydantic-ai)", ["pydantic_ai"]],
5
- "memory": ["Long-term memory proxy", ["chromadb", "openai", "yaml"]],
6
- "rag": ["RAG proxy (ChromaDB, embeddings)", ["chromadb", "openai"]],
7
- "server": ["FastAPI server components", ["fastapi"]],
8
- "speed": ["Audio speed adjustment (audiostretchy)", ["audiostretchy"]],
9
- "piper": ["Local Piper TTS", ["piper"]],
10
- "kokoro": ["Kokoro neural TTS", ["kokoro"]],
11
- "vad": ["Voice Activity Detection (silero-vad)", ["silero_vad"]],
12
- "faster-whisper": ["Whisper ASR (CUDA/CPU)", ["faster_whisper"]],
13
- "mlx-whisper": ["Whisper ASR (Apple Silicon)", ["mlx_whisper"]]
14
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes