agent-cli 0.69.0__tar.gz → 0.69.1__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.69.0 → agent_cli-0.69.1}/PKG-INFO +1 -1
  2. agent_cli-0.69.1/docker/transcription-proxy.Dockerfile +55 -0
  3. {agent_cli-0.69.0 → agent_cli-0.69.1}/docker/tts.Dockerfile +51 -43
  4. {agent_cli-0.69.0 → agent_cli-0.69.1}/docker/whisper.Dockerfile +29 -35
  5. agent_cli-0.69.0/docker/transcription-proxy.Dockerfile +0 -51
  6. {agent_cli-0.69.0 → agent_cli-0.69.1}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
  7. {agent_cli-0.69.0 → agent_cli-0.69.1}/.claude/skills/agent-cli-dev/examples.md +0 -0
  8. {agent_cli-0.69.0 → agent_cli-0.69.1}/.claude-plugin/README.md +0 -0
  9. {agent_cli-0.69.0 → agent_cli-0.69.1}/.claude-plugin/marketplace.json +0 -0
  10. {agent_cli-0.69.0 → agent_cli-0.69.1}/.claude-plugin/plugin.json +0 -0
  11. {agent_cli-0.69.0 → agent_cli-0.69.1}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
  12. {agent_cli-0.69.0 → agent_cli-0.69.1}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
  13. {agent_cli-0.69.0 → agent_cli-0.69.1}/.cursorrules +0 -0
  14. {agent_cli-0.69.0 → agent_cli-0.69.1}/.env.example +0 -0
  15. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/logo.svg +0 -0
  16. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/release-drafter.yml +0 -0
  17. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/renovate.json +0 -0
  18. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/scripts/check_extras_sync.py +0 -0
  19. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/scripts/sync_requirements.py +0 -0
  20. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/workflows/automerge.yml +0 -0
  21. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/workflows/docker.yml +0 -0
  22. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/workflows/docs.yml +0 -0
  23. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/workflows/markdown-code-runner.yml +0 -0
  24. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/workflows/pytest.yml +0 -0
  25. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/workflows/release-drafter.yml +0 -0
  26. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/workflows/release.yml +0 -0
  27. {agent_cli-0.69.0 → agent_cli-0.69.1}/.github/workflows/toc.yaml +0 -0
  28. {agent_cli-0.69.0 → agent_cli-0.69.1}/.gitignore +0 -0
  29. {agent_cli-0.69.0 → agent_cli-0.69.1}/.jscpd.json +0 -0
  30. {agent_cli-0.69.0 → agent_cli-0.69.1}/.pre-commit-config.yaml +0 -0
  31. {agent_cli-0.69.0 → agent_cli-0.69.1}/.prompts/docs-review.md +0 -0
  32. {agent_cli-0.69.0 → agent_cli-0.69.1}/.prompts/pr-review.md +0 -0
  33. {agent_cli-0.69.0 → agent_cli-0.69.1}/CLAUDE.md +0 -0
  34. {agent_cli-0.69.0 → agent_cli-0.69.1}/LICENSE +0 -0
  35. {agent_cli-0.69.0 → agent_cli-0.69.1}/README.md +0 -0
  36. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/__init__.py +0 -0
  37. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/__main__.py +0 -0
  38. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_extras.json +0 -0
  39. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/.gitkeep +0 -0
  40. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/audio.txt +0 -0
  41. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/faster-whisper.txt +0 -0
  42. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/kokoro.txt +0 -0
  43. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/llm.txt +0 -0
  44. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/memory.txt +0 -0
  45. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/mlx-whisper.txt +0 -0
  46. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/piper.txt +0 -0
  47. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/rag.txt +0 -0
  48. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/server.txt +0 -0
  49. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/speed.txt +0 -0
  50. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_requirements/vad.txt +0 -0
  51. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/_tools.py +0 -0
  52. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/__init__.py +0 -0
  53. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/_voice_agent_common.py +0 -0
  54. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/assistant.py +0 -0
  55. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/autocorrect.py +0 -0
  56. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/chat.py +0 -0
  57. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/memory/__init__.py +0 -0
  58. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/memory/add.py +0 -0
  59. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/memory/proxy.py +0 -0
  60. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/rag_proxy.py +0 -0
  61. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/speak.py +0 -0
  62. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/transcribe.py +0 -0
  63. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/transcribe_daemon.py +0 -0
  64. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/agents/voice_edit.py +0 -0
  65. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/api.py +0 -0
  66. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/cli.py +0 -0
  67. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/config.py +0 -0
  68. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/config_cmd.py +0 -0
  69. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/constants.py +0 -0
  70. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/__init__.py +0 -0
  71. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/audio.py +0 -0
  72. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/audio_format.py +0 -0
  73. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/chroma.py +0 -0
  74. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/deps.py +0 -0
  75. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/openai_proxy.py +0 -0
  76. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/process.py +0 -0
  77. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/reranker.py +0 -0
  78. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/sse.py +0 -0
  79. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/transcription_logger.py +0 -0
  80. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/utils.py +0 -0
  81. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/vad.py +0 -0
  82. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/core/watch.py +0 -0
  83. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/__init__.py +0 -0
  84. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/cli.py +0 -0
  85. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/__init__.py +0 -0
  86. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/aider.py +0 -0
  87. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/base.py +0 -0
  88. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/claude.py +0 -0
  89. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/codex.py +0 -0
  90. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
  91. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/copilot.py +0 -0
  92. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
  93. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/gemini.py +0 -0
  94. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/opencode.py +0 -0
  95. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/coding_agents/registry.py +0 -0
  96. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/__init__.py +0 -0
  97. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/base.py +0 -0
  98. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/cursor.py +0 -0
  99. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/emacs.py +0 -0
  100. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/jetbrains.py +0 -0
  101. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/nano.py +0 -0
  102. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/neovim.py +0 -0
  103. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/registry.py +0 -0
  104. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/sublime.py +0 -0
  105. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/vim.py +0 -0
  106. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/vscode.py +0 -0
  107. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/editors/zed.py +0 -0
  108. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/project.py +0 -0
  109. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/registry.py +0 -0
  110. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/skill/SKILL.md +0 -0
  111. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/skill/examples.md +0 -0
  112. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/__init__.py +0 -0
  113. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/apple_terminal.py +0 -0
  114. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/base.py +0 -0
  115. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/gnome.py +0 -0
  116. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/iterm2.py +0 -0
  117. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/kitty.py +0 -0
  118. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/registry.py +0 -0
  119. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/tmux.py +0 -0
  120. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/warp.py +0 -0
  121. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/terminals/zellij.py +0 -0
  122. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/dev/worktree.py +0 -0
  123. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/docs_gen.py +0 -0
  124. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/example-config.toml +0 -0
  125. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/install/__init__.py +0 -0
  126. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/install/common.py +0 -0
  127. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/install/extras.py +0 -0
  128. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/install/hotkeys.py +0 -0
  129. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/install/services.py +0 -0
  130. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/__init__.py +0 -0
  131. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_files.py +0 -0
  132. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_filters.py +0 -0
  133. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_git.py +0 -0
  134. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_indexer.py +0 -0
  135. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_ingest.py +0 -0
  136. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_persistence.py +0 -0
  137. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_prompt.py +0 -0
  138. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_retrieval.py +0 -0
  139. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_store.py +0 -0
  140. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_streaming.py +0 -0
  141. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/_tasks.py +0 -0
  142. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/api.py +0 -0
  143. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/client.py +0 -0
  144. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/engine.py +0 -0
  145. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/entities.py +0 -0
  146. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/memory/models.py +0 -0
  147. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/opts.py +0 -0
  148. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/py.typed +0 -0
  149. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/__init__.py +0 -0
  150. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/_indexer.py +0 -0
  151. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/_indexing.py +0 -0
  152. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/_prompt.py +0 -0
  153. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/_retriever.py +0 -0
  154. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/_store.py +0 -0
  155. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/_utils.py +0 -0
  156. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/api.py +0 -0
  157. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/client.py +0 -0
  158. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/engine.py +0 -0
  159. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/rag/models.py +0 -0
  160. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/.runtime/.gitkeep +0 -0
  161. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/__init__.py +0 -0
  162. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/check_plugin_skill_sync.py +0 -0
  163. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
  164. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
  165. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
  166. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
  167. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
  168. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
  169. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
  170. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
  171. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
  172. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
  173. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
  174. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
  175. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
  176. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
  177. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/run-openwakeword.sh +0 -0
  178. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/run-piper-windows.ps1 +0 -0
  179. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/run-piper.sh +0 -0
  180. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/run-whisper-linux.sh +0 -0
  181. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/run-whisper-macos.sh +0 -0
  182. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/run-whisper-windows.ps1 +0 -0
  183. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/run-whisper.sh +0 -0
  184. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/run_faster_whisper_server.py +0 -0
  185. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
  186. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/setup-linux.sh +0 -0
  187. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
  188. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/setup-macos.sh +0 -0
  189. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/setup-windows.ps1 +0 -0
  190. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
  191. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/start-all-services.sh +0 -0
  192. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/scripts/sync_extras.py +0 -0
  193. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/__init__.py +0 -0
  194. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/cli.py +0 -0
  195. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/common.py +0 -0
  196. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/model_manager.py +0 -0
  197. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/model_registry.py +0 -0
  198. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/proxy/__init__.py +0 -0
  199. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/proxy/api.py +0 -0
  200. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/streaming.py +0 -0
  201. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/tts/__init__.py +0 -0
  202. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/tts/api.py +0 -0
  203. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/tts/backends/__init__.py +0 -0
  204. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/tts/backends/base.py +0 -0
  205. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/tts/backends/kokoro.py +0 -0
  206. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/tts/backends/piper.py +0 -0
  207. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/tts/model_manager.py +0 -0
  208. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/tts/model_registry.py +0 -0
  209. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/tts/wyoming_handler.py +0 -0
  210. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/__init__.py +0 -0
  211. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/api.py +0 -0
  212. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/backends/__init__.py +0 -0
  213. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/backends/base.py +0 -0
  214. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
  215. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/backends/mlx.py +0 -0
  216. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/languages.py +0 -0
  217. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/model_manager.py +0 -0
  218. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/model_registry.py +0 -0
  219. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/server/whisper/wyoming_handler.py +0 -0
  220. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/services/__init__.py +0 -0
  221. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/services/_wyoming_utils.py +0 -0
  222. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/services/asr.py +0 -0
  223. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/services/llm.py +0 -0
  224. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/services/tts.py +0 -0
  225. {agent_cli-0.69.0 → agent_cli-0.69.1}/agent_cli/services/wake_word.py +0 -0
  226. {agent_cli-0.69.0 → agent_cli-0.69.1}/docker/docker-compose.yml +0 -0
  227. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/CNAME +0 -0
  228. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/architecture/index.md +0 -0
  229. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/architecture/memory.md +0 -0
  230. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/architecture/rag.md +0 -0
  231. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/assistant.md +0 -0
  232. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/autocorrect.md +0 -0
  233. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/chat.md +0 -0
  234. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/config.md +0 -0
  235. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/dev.md +0 -0
  236. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/index.md +0 -0
  237. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/install-extras.md +0 -0
  238. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/install-hotkeys.md +0 -0
  239. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/install-services.md +0 -0
  240. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/memory.md +0 -0
  241. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/rag-proxy.md +0 -0
  242. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/server/index.md +0 -0
  243. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/server/transcription-proxy.md +0 -0
  244. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/server/tts.md +0 -0
  245. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/server/whisper.md +0 -0
  246. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/speak.md +0 -0
  247. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/start-services.md +0 -0
  248. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/transcribe-daemon.md +0 -0
  249. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/transcribe.md +0 -0
  250. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/commands/voice-edit.md +0 -0
  251. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/configuration.md +0 -0
  252. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/getting-started.md +0 -0
  253. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/iOS_Shortcut_Guide.md +0 -0
  254. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/index.md +0 -0
  255. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/installation/docker.md +0 -0
  256. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/installation/index.md +0 -0
  257. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/installation/linux.md +0 -0
  258. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/installation/macos.md +0 -0
  259. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/installation/nixos.md +0 -0
  260. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/installation/windows.md +0 -0
  261. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/logo-clean.svg +0 -0
  262. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
  263. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/run_markdown_code_runner.py +0 -0
  264. {agent_cli-0.69.0 → agent_cli-0.69.1}/docs/system-integration.md +0 -0
  265. {agent_cli-0.69.0 → agent_cli-0.69.1}/example.agent-cli-config.toml +0 -0
  266. {agent_cli-0.69.0 → agent_cli-0.69.1}/justfile +0 -0
  267. {agent_cli-0.69.0 → agent_cli-0.69.1}/pyproject.toml +0 -0
  268. {agent_cli-0.69.0 → agent_cli-0.69.1}/shell.nix +0 -0
  269. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/__init__.py +0 -0
  270. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/__init__.py +0 -0
  271. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_fix_my_text.py +0 -0
  272. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_interactive.py +0 -0
  273. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_interactive_extra.py +0 -0
  274. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_memory_add.py +0 -0
  275. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_speak.py +0 -0
  276. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_speak_e2e.py +0 -0
  277. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_transcribe.py +0 -0
  278. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_transcribe_agent.py +0 -0
  279. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_transcribe_daemon.py +0 -0
  280. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_transcribe_e2e.py +0 -0
  281. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_transcribe_recovery.py +0 -0
  282. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_tts_common.py +0 -0
  283. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_tts_common_extra.py +0 -0
  284. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_voice_agent_common.py +0 -0
  285. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_voice_edit.py +0 -0
  286. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_voice_edit_e2e.py +0 -0
  287. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/agents/test_wake_word_assistant.py +0 -0
  288. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/conftest.py +0 -0
  289. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/core/__init__.py +0 -0
  290. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/core/test_audio_format.py +0 -0
  291. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/core/test_chroma.py +0 -0
  292. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/core/test_sse.py +0 -0
  293. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/core/test_vad.py +0 -0
  294. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/core/test_watch.py +0 -0
  295. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/dev/__init__.py +0 -0
  296. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/dev/test_cli.py +0 -0
  297. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/dev/test_coding_agents.py +0 -0
  298. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/dev/test_editors.py +0 -0
  299. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/dev/test_project.py +0 -0
  300. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/dev/test_terminals.py +0 -0
  301. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/dev/test_verification.py +0 -0
  302. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/dev/test_worktree.py +0 -0
  303. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/install/__init__.py +0 -0
  304. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/install/test_extras.py +0 -0
  305. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/__init__.py +0 -0
  306. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_api_health.py +0 -0
  307. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_api_integration_liveish.py +0 -0
  308. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_client.py +0 -0
  309. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_engine.py +0 -0
  310. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_files.py +0 -0
  311. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_filters.py +0 -0
  312. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_git_integration.py +0 -0
  313. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_indexer.py +0 -0
  314. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_memory_integration.py +0 -0
  315. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_proxy_passthrough.py +0 -0
  316. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_store.py +0 -0
  317. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/memory/test_utils.py +0 -0
  318. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/mocks/__init__.py +0 -0
  319. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/mocks/audio.py +0 -0
  320. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/mocks/llm.py +0 -0
  321. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/mocks/wyoming.py +0 -0
  322. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/__init__.py +0 -0
  323. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_api.py +0 -0
  324. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_engine.py +0 -0
  325. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_history.py +0 -0
  326. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_indexer.py +0 -0
  327. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_indexing.py +0 -0
  328. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_rag_client.py +0 -0
  329. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_rag_integration_liveish.py +0 -0
  330. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_rag_proxy_passthrough.py +0 -0
  331. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_retriever.py +0 -0
  332. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_store.py +0 -0
  333. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/rag/test_utils.py +0 -0
  334. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_api.py +0 -0
  335. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_api_integration.py +0 -0
  336. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_asr.py +0 -0
  337. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_asr_recovery.py +0 -0
  338. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_audio_e2e.py +0 -0
  339. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_cli.py +0 -0
  340. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_config.py +0 -0
  341. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_config_cmd.py +0 -0
  342. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_docs_gen.py +0 -0
  343. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_env_vars.py +0 -0
  344. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_json_output.py +0 -0
  345. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_llm.py +0 -0
  346. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_llm_gemini.py +0 -0
  347. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_memory_tools.py +0 -0
  348. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_mlx_backend.py +0 -0
  349. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_process_manager.py +0 -0
  350. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_requires_extras.py +0 -0
  351. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_server_streaming.py +0 -0
  352. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_server_tts.py +0 -0
  353. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_server_whisper.py +0 -0
  354. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_services.py +0 -0
  355. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_tools.py +0 -0
  356. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_tts.py +0 -0
  357. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_utils.py +0 -0
  358. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_wake_word.py +0 -0
  359. {agent_cli-0.69.0 → agent_cli-0.69.1}/tests/test_wyoming_utils.py +0 -0
  360. {agent_cli-0.69.0 → agent_cli-0.69.1}/uv.lock +0 -0
  361. {agent_cli-0.69.0 → agent_cli-0.69.1}/zensical.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-cli
3
- Version: 0.69.0
3
+ Version: 0.69.1
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>
@@ -0,0 +1,55 @@
1
+ # Dockerfile for agent-cli Transcription Proxy server
2
+ # A lightweight proxy that forwards requests to configured ASR providers
3
+ #
4
+ # Build example:
5
+ # docker build -f docker/transcription-proxy.Dockerfile -t agent-cli-transcription-proxy .
6
+ #
7
+ # Run example:
8
+ # docker run -p 61337:61337 agent-cli-transcription-proxy
9
+
10
+ # =============================================================================
11
+ # Builder stage - install dependencies and project
12
+ # =============================================================================
13
+ FROM python:3.13-slim AS builder
14
+
15
+ RUN apt-get update && \
16
+ apt-get install -y --no-install-recommends git && \
17
+ apt-get clean && rm -rf /var/lib/apt/lists/*
18
+
19
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
20
+
21
+ WORKDIR /app
22
+
23
+ COPY pyproject.toml uv.lock README.md ./
24
+ COPY .git ./.git
25
+ COPY agent_cli ./agent_cli
26
+ COPY scripts ./scripts
27
+ RUN uv sync --frozen --no-dev --no-editable --extra server
28
+
29
+ # =============================================================================
30
+ # Runtime stage - minimal image
31
+ # =============================================================================
32
+ FROM python:3.13-slim
33
+
34
+ RUN groupadd -g 1000 transcribe && useradd -m -u 1000 -g transcribe transcribe
35
+
36
+ WORKDIR /app
37
+
38
+ COPY --from=builder /app/.venv /app/.venv
39
+
40
+ RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
41
+
42
+ USER transcribe
43
+
44
+ EXPOSE 61337
45
+
46
+ ENV PROXY_HOST=0.0.0.0 \
47
+ PROXY_PORT=61337
48
+
49
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
50
+ CMD python3 -c "import urllib.request; urllib.request.urlopen('http://localhost:${PROXY_PORT}/health')" || exit 1
51
+
52
+ ENTRYPOINT ["sh", "-c", "agent-cli server transcription-proxy \
53
+ --host ${PROXY_HOST} \
54
+ --port ${PROXY_PORT} \
55
+ ${PROXY_EXTRA_ARGS:-}"]
@@ -9,50 +9,73 @@
9
9
  # docker run -p 10200:10200 -p 10201:10201 --gpus all agent-cli-tts:cuda
10
10
  # docker run -p 10200:10200 -p 10201:10201 agent-cli-tts:cpu
11
11
 
12
+ # =============================================================================
13
+ # Builder stage for CUDA - Kokoro TTS (requires build tools)
14
+ # =============================================================================
15
+ FROM python:3.13-slim AS builder-cuda
16
+
17
+ RUN apt-get update && \
18
+ apt-get install -y --no-install-recommends build-essential git && \
19
+ apt-get clean && rm -rf /var/lib/apt/lists/*
20
+
21
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
22
+
23
+ WORKDIR /app
24
+
25
+ COPY pyproject.toml uv.lock README.md ./
26
+ COPY .git ./.git
27
+ COPY agent_cli ./agent_cli
28
+ COPY scripts ./scripts
29
+ RUN uv sync --frozen --no-dev --no-editable --extra server --extra kokoro && \
30
+ /app/.venv/bin/python -m spacy download en_core_web_sm
31
+
32
+ # =============================================================================
33
+ # Builder stage for CPU - Piper TTS
34
+ # =============================================================================
35
+ FROM python:3.13-slim AS builder-cpu
36
+
37
+ RUN apt-get update && \
38
+ apt-get install -y --no-install-recommends git && \
39
+ apt-get clean && rm -rf /var/lib/apt/lists/*
40
+
41
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
42
+
43
+ WORKDIR /app
44
+
45
+ COPY pyproject.toml uv.lock README.md ./
46
+ COPY .git ./.git
47
+ COPY agent_cli ./agent_cli
48
+ COPY scripts ./scripts
49
+ RUN uv sync --frozen --no-dev --no-editable --extra server --extra piper
50
+
12
51
  # =============================================================================
13
52
  # CUDA target: GPU-accelerated with Kokoro TTS
14
53
  # =============================================================================
15
54
  FROM nvidia/cuda:12.9.1-cudnn-runtime-ubuntu22.04 AS cuda
16
55
 
17
- # Install system dependencies
18
- # espeak-ng is required for Kokoro's phoneme generation
19
- # build-essential is required for compiling C++ extensions (curated-tokenizers)
20
56
  RUN apt-get update && \
21
57
  apt-get install -y --no-install-recommends \
22
- build-essential \
23
- curl \
58
+ python3.13 \
59
+ python3.13-venv \
24
60
  ffmpeg \
25
- git \
26
- ca-certificates \
27
61
  espeak-ng \
28
62
  libsndfile1 \
29
63
  && apt-get clean \
30
64
  && rm -rf /var/lib/apt/lists/*
31
65
 
32
- # Install uv
33
- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
34
-
35
- # Create non-root user with explicit UID:GID 1000:1000
36
66
  RUN groupadd -g 1000 tts && useradd -m -u 1000 -g tts tts
37
67
 
38
68
  WORKDIR /app
39
69
 
40
- # Install from lock file for reproducible builds
41
- COPY pyproject.toml uv.lock ./
42
- ENV UV_PYTHON=3.13
43
- RUN uv sync --frozen --no-dev --extra server --extra kokoro --no-install-project && \
44
- ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli && \
45
- /app/.venv/bin/python -m spacy download en_core_web_sm
70
+ COPY --from=builder-cuda /app/.venv /app/.venv
46
71
 
47
- # Create cache directory for models
48
- RUN mkdir -p /home/tts/.cache && chown -R tts:tts /home/tts
72
+ RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli && \
73
+ mkdir -p /home/tts/.cache && chown -R tts:tts /home/tts
49
74
 
50
75
  USER tts
51
76
 
52
- # Expose ports: Wyoming (10200) and HTTP API (10201)
53
77
  EXPOSE 10200 10201
54
78
 
55
- # Default environment variables
56
79
  ENV TTS_HOST=0.0.0.0 \
57
80
  TTS_PORT=10201 \
58
81
  TTS_WYOMING_PORT=10200 \
@@ -62,9 +85,8 @@ ENV TTS_HOST=0.0.0.0 \
62
85
  TTS_LOG_LEVEL=info \
63
86
  TTS_DEVICE=cuda
64
87
 
65
- # Health check
66
88
  HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
67
- CMD python3 -c "import urllib.request; urllib.request.urlopen('http://localhost:${TTS_PORT}/health')" || exit 1
89
+ CMD python3.13 -c "import urllib.request; urllib.request.urlopen('http://localhost:${TTS_PORT}/health')" || exit 1
68
90
 
69
91
  ENTRYPOINT ["sh", "-c", "agent-cli server tts \
70
92
  --host ${TTS_HOST} \
@@ -82,36 +104,23 @@ ENTRYPOINT ["sh", "-c", "agent-cli server tts \
82
104
  # =============================================================================
83
105
  FROM python:3.13-slim AS cpu
84
106
 
85
- # Install system dependencies
86
107
  RUN apt-get update && \
87
- apt-get install -y --no-install-recommends \
88
- ffmpeg \
89
- git \
90
- && apt-get clean \
91
- && rm -rf /var/lib/apt/lists/*
92
-
93
- # Install uv
94
- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
108
+ apt-get install -y --no-install-recommends ffmpeg && \
109
+ apt-get clean && rm -rf /var/lib/apt/lists/*
95
110
 
96
- # Create non-root user with explicit UID:GID 1000:1000
97
111
  RUN groupadd -g 1000 tts && useradd -m -u 1000 -g tts tts
98
112
 
99
113
  WORKDIR /app
100
114
 
101
- # Install from lock file for reproducible builds
102
- COPY pyproject.toml uv.lock ./
103
- RUN uv sync --frozen --no-dev --extra server --extra piper --no-install-project && \
104
- ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
115
+ COPY --from=builder-cpu /app/.venv /app/.venv
105
116
 
106
- # Create cache directory for models
107
- RUN mkdir -p /home/tts/.cache && chown -R tts:tts /home/tts
117
+ RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli && \
118
+ mkdir -p /home/tts/.cache && chown -R tts:tts /home/tts
108
119
 
109
120
  USER tts
110
121
 
111
- # Expose ports: Wyoming (10200) and HTTP API (10201)
112
122
  EXPOSE 10200 10201
113
123
 
114
- # Default environment variables
115
124
  ENV TTS_HOST=0.0.0.0 \
116
125
  TTS_PORT=10201 \
117
126
  TTS_WYOMING_PORT=10200 \
@@ -121,9 +130,8 @@ ENV TTS_HOST=0.0.0.0 \
121
130
  TTS_LOG_LEVEL=info \
122
131
  TTS_DEVICE=cpu
123
132
 
124
- # Health check
125
133
  HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
126
- CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${TTS_PORT}/health')" || exit 1
134
+ CMD python3 -c "import urllib.request; urllib.request.urlopen('http://localhost:${TTS_PORT}/health')" || exit 1
127
135
 
128
136
  ENTRYPOINT ["sh", "-c", "agent-cli server tts \
129
137
  --host ${TTS_HOST} \
@@ -9,44 +9,51 @@
9
9
  # docker run -p 10300:10300 -p 10301:10301 --gpus all agent-cli-whisper:cuda
10
10
  # docker run -p 10300:10300 -p 10301:10301 agent-cli-whisper:cpu
11
11
 
12
+ # =============================================================================
13
+ # Builder stage - install dependencies and project
14
+ # =============================================================================
15
+ FROM python:3.13-slim AS builder
16
+
17
+ RUN apt-get update && \
18
+ apt-get install -y --no-install-recommends git && \
19
+ apt-get clean && rm -rf /var/lib/apt/lists/*
20
+
21
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
22
+
23
+ WORKDIR /app
24
+
25
+ COPY pyproject.toml uv.lock README.md ./
26
+ COPY .git ./.git
27
+ COPY agent_cli ./agent_cli
28
+ COPY scripts ./scripts
29
+ RUN uv sync --frozen --no-dev --no-editable --extra server --extra faster-whisper
30
+
12
31
  # =============================================================================
13
32
  # CUDA target: GPU-accelerated with faster-whisper
14
33
  # =============================================================================
15
34
  FROM nvidia/cuda:12.9.1-cudnn-runtime-ubuntu22.04 AS cuda
16
35
 
17
- # Install system dependencies
18
36
  RUN apt-get update && \
19
37
  apt-get install -y --no-install-recommends \
20
- curl \
38
+ python3.13 \
39
+ python3.13-venv \
21
40
  ffmpeg \
22
- git \
23
- ca-certificates \
24
41
  && apt-get clean \
25
42
  && rm -rf /var/lib/apt/lists/*
26
43
 
27
- # Install uv
28
- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
29
-
30
- # Create non-root user with explicit UID:GID 1000:1000
31
44
  RUN groupadd -g 1000 whisper && useradd -m -u 1000 -g whisper whisper
32
45
 
33
46
  WORKDIR /app
34
47
 
35
- # Install from lock file for reproducible builds
36
- COPY pyproject.toml uv.lock ./
37
- ENV UV_PYTHON=3.13
38
- RUN uv sync --frozen --no-dev --extra server --extra faster-whisper --no-install-project && \
39
- ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
48
+ COPY --from=builder /app/.venv /app/.venv
40
49
 
41
- # Create cache directory for models
42
- RUN mkdir -p /home/whisper/.cache && chown -R whisper:whisper /home/whisper
50
+ RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli && \
51
+ mkdir -p /home/whisper/.cache && chown -R whisper:whisper /home/whisper
43
52
 
44
53
  USER whisper
45
54
 
46
- # Expose ports: Wyoming (10300) and HTTP API (10301)
47
55
  EXPOSE 10300 10301
48
56
 
49
- # Default environment variables
50
57
  ENV WHISPER_HOST=0.0.0.0 \
51
58
  WHISPER_PORT=10301 \
52
59
  WHISPER_WYOMING_PORT=10300 \
@@ -55,9 +62,8 @@ ENV WHISPER_HOST=0.0.0.0 \
55
62
  WHISPER_LOG_LEVEL=info \
56
63
  WHISPER_DEVICE=cuda
57
64
 
58
- # Health check
59
65
  HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
60
- CMD python3 -c "import urllib.request; urllib.request.urlopen('http://localhost:${WHISPER_PORT}/health')" || exit 1
66
+ CMD python3.13 -c "import urllib.request; urllib.request.urlopen('http://localhost:${WHISPER_PORT}/health')" || exit 1
61
67
 
62
68
  ENTRYPOINT ["sh", "-c", "agent-cli server whisper \
63
69
  --host ${WHISPER_HOST} \
@@ -74,36 +80,25 @@ ENTRYPOINT ["sh", "-c", "agent-cli server whisper \
74
80
  # =============================================================================
75
81
  FROM python:3.13-slim AS cpu
76
82
 
77
- # Install system dependencies
78
83
  RUN apt-get update && \
79
84
  apt-get install -y --no-install-recommends \
80
85
  ffmpeg \
81
- git \
82
86
  && apt-get clean \
83
87
  && rm -rf /var/lib/apt/lists/*
84
88
 
85
- # Install uv
86
- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
87
-
88
- # Create non-root user with explicit UID:GID 1000:1000
89
89
  RUN groupadd -g 1000 whisper && useradd -m -u 1000 -g whisper whisper
90
90
 
91
91
  WORKDIR /app
92
92
 
93
- # Install from lock file for reproducible builds
94
- COPY pyproject.toml uv.lock ./
95
- RUN uv sync --frozen --no-dev --extra server --extra faster-whisper --no-install-project && \
96
- ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
93
+ COPY --from=builder /app/.venv /app/.venv
97
94
 
98
- # Create cache directory for models
99
- RUN mkdir -p /home/whisper/.cache && chown -R whisper:whisper /home/whisper
95
+ RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli && \
96
+ mkdir -p /home/whisper/.cache && chown -R whisper:whisper /home/whisper
100
97
 
101
98
  USER whisper
102
99
 
103
- # Expose ports: Wyoming (10300) and HTTP API (10301)
104
100
  EXPOSE 10300 10301
105
101
 
106
- # Default environment variables
107
102
  ENV WHISPER_HOST=0.0.0.0 \
108
103
  WHISPER_PORT=10301 \
109
104
  WHISPER_WYOMING_PORT=10300 \
@@ -112,9 +107,8 @@ ENV WHISPER_HOST=0.0.0.0 \
112
107
  WHISPER_LOG_LEVEL=info \
113
108
  WHISPER_DEVICE=cpu
114
109
 
115
- # Health check
116
110
  HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
117
- CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${WHISPER_PORT}/health')" || exit 1
111
+ CMD python3 -c "import urllib.request; urllib.request.urlopen('http://localhost:${WHISPER_PORT}/health')" || exit 1
118
112
 
119
113
  ENTRYPOINT ["sh", "-c", "agent-cli server whisper \
120
114
  --host ${WHISPER_HOST} \
@@ -1,51 +0,0 @@
1
- # syntax=docker/dockerfile:1
2
- # Dockerfile for agent-cli Transcription Proxy server
3
- # A lightweight proxy that forwards requests to configured ASR providers
4
- #
5
- # Build example:
6
- # docker build -f docker/transcription-proxy.Dockerfile -t agent-cli-transcription-proxy .
7
- #
8
- # Run example:
9
- # docker run -p 61337:61337 agent-cli-transcription-proxy
10
-
11
- # Build stage - install with uv
12
- FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS builder
13
-
14
- # --refresh bypasses uv cache to ensure latest version from PyPI
15
- RUN uv tool install --refresh --compile-bytecode "agent-cli[server]"
16
-
17
- # Runtime stage - minimal image without uv
18
- FROM python:3.13-slim
19
-
20
- # Create non-root user with explicit UID:GID 1000:1000
21
- RUN groupadd -g 1000 transcribe && useradd -m -u 1000 -g transcribe transcribe
22
-
23
- # Copy installed tool virtualenv from builder with execute permissions
24
- # Using --chmod=755 avoids a duplicate layer from running chmod after COPY
25
- COPY --from=builder --chmod=755 /root/.local/share/uv/tools/agent-cli /root/.local/share/uv/tools/agent-cli
26
-
27
- # Make parent directories accessible to non-root users and create symlinks
28
- RUN chmod 755 /root /root/.local /root/.local/share /root/.local/share/uv /root/.local/share/uv/tools && \
29
- ln -s /root/.local/share/uv/tools/agent-cli/bin/agent-cli /usr/local/bin/agent-cli && \
30
- ln -s /root/.local/share/uv/tools/agent-cli/bin/agent /usr/local/bin/agent && \
31
- ln -s /root/.local/share/uv/tools/agent-cli/bin/ag /usr/local/bin/ag
32
-
33
- USER transcribe
34
-
35
- WORKDIR /app
36
-
37
- # Expose port
38
- EXPOSE 61337
39
-
40
- # Default environment variables
41
- ENV PROXY_HOST=0.0.0.0 \
42
- PROXY_PORT=61337
43
-
44
- # Health check
45
- HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
46
- CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${PROXY_PORT}/health')" || exit 1
47
-
48
- ENTRYPOINT ["sh", "-c", "agent-cli server transcription-proxy \
49
- --host ${PROXY_HOST} \
50
- --port ${PROXY_PORT} \
51
- ${PROXY_EXTRA_ARGS:-}"]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes