agent-cli 0.89.0__tar.gz → 0.91.0__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 (389) hide show
  1. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/scripts/sync_extras.py +1 -0
  2. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/workflows/docs.yml +1 -1
  3. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/workflows/markdown-code-runner.yml +1 -1
  4. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/workflows/pytest.yml +3 -3
  5. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/workflows/release.yml +1 -1
  6. {agent_cli-0.89.0 → agent_cli-0.91.0}/.pre-commit-config.yaml +2 -2
  7. {agent_cli-0.89.0 → agent_cli-0.91.0}/PKG-INFO +85 -13
  8. {agent_cli-0.89.0 → agent_cli-0.91.0}/README.md +82 -12
  9. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_extras.json +6 -0
  10. agent_cli-0.91.0/agent_cli/_requirements/diarization.txt +402 -0
  11. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/kokoro.txt +4 -5
  12. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/mlx-whisper.txt +4 -2
  13. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/whisper-transformers.txt +7 -7
  14. agent_cli-0.91.0/agent_cli/agents/diarize_live_session.py +897 -0
  15. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/transcribe.py +227 -46
  16. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/cli.py +1 -0
  17. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/config.py +40 -5
  18. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/config_cmd.py +14 -6
  19. agent_cli-0.91.0/agent_cli/core/alignment.py +446 -0
  20. agent_cli-0.91.0/agent_cli/core/diarization.py +466 -0
  21. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/docs_gen.py +5 -0
  22. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/install/extras.py +4 -3
  23. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/opts.py +55 -3
  24. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/_utils.py +9 -4
  25. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/cli.py +80 -1
  26. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/api.py +9 -1
  27. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/base.py +7 -0
  28. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/transformers.py +207 -34
  29. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/model_manager.py +4 -0
  30. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/services/__init__.py +19 -9
  31. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/services/asr.py +13 -2
  32. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/architecture/index.md +1 -1
  33. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/config.md +2 -1
  34. agent_cli-0.91.0/docs/commands/diarize-live-session.md +112 -0
  35. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/index.md +1 -0
  36. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/install-extras.md +1 -0
  37. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/server/whisper.md +45 -3
  38. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/transcribe-live.md +26 -1
  39. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/transcribe.md +79 -1
  40. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/configuration.md +26 -5
  41. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/index.md +1 -0
  42. {agent_cli-0.89.0 → agent_cli-0.91.0}/pyproject.toml +1 -0
  43. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_transcribe_recovery.py +140 -5
  44. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/core/test_vad.py +20 -20
  45. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_utils.py +2 -2
  46. agent_cli-0.91.0/tests/test_alignment.py +772 -0
  47. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_asr.py +16 -16
  48. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_asr_recovery.py +6 -0
  49. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_config.py +107 -4
  50. agent_cli-0.91.0/tests/test_diarization.py +683 -0
  51. agent_cli-0.91.0/tests/test_diarize_live_session.py +362 -0
  52. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_json_output.py +37 -0
  53. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_server_whisper.py +105 -0
  54. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_services.py +6 -5
  55. {agent_cli-0.89.0 → agent_cli-0.91.0}/uv.lock +1237 -35
  56. {agent_cli-0.89.0 → agent_cli-0.91.0}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
  57. {agent_cli-0.89.0 → agent_cli-0.91.0}/.claude/skills/agent-cli-dev/examples.md +0 -0
  58. {agent_cli-0.89.0 → agent_cli-0.91.0}/.claude-plugin/README.md +0 -0
  59. {agent_cli-0.89.0 → agent_cli-0.91.0}/.claude-plugin/marketplace.json +0 -0
  60. {agent_cli-0.89.0 → agent_cli-0.91.0}/.claude-plugin/plugin.json +0 -0
  61. {agent_cli-0.89.0 → agent_cli-0.91.0}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
  62. {agent_cli-0.89.0 → agent_cli-0.91.0}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
  63. {agent_cli-0.89.0 → agent_cli-0.91.0}/.cursorrules +0 -0
  64. {agent_cli-0.89.0 → agent_cli-0.91.0}/.dockerignore +0 -0
  65. {agent_cli-0.89.0 → agent_cli-0.91.0}/.env.example +0 -0
  66. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/logo.svg +0 -0
  67. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/release-drafter.yml +0 -0
  68. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/renovate.json +0 -0
  69. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/scripts/check_extras_sync.py +0 -0
  70. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/scripts/check_plugin_skill_sync.py +0 -0
  71. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/scripts/sync_requirements.py +0 -0
  72. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/workflows/automerge.yml +0 -0
  73. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/workflows/docker.yml +0 -0
  74. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/workflows/release-drafter.yml +0 -0
  75. {agent_cli-0.89.0 → agent_cli-0.91.0}/.github/workflows/toc.yaml +0 -0
  76. {agent_cli-0.89.0 → agent_cli-0.91.0}/.gitignore +0 -0
  77. {agent_cli-0.89.0 → agent_cli-0.91.0}/.jscpd.json +0 -0
  78. {agent_cli-0.89.0 → agent_cli-0.91.0}/.prompts/docs-review.md +0 -0
  79. {agent_cli-0.89.0 → agent_cli-0.91.0}/.prompts/pr-review.md +0 -0
  80. {agent_cli-0.89.0 → agent_cli-0.91.0}/CLAUDE.md +0 -0
  81. {agent_cli-0.89.0 → agent_cli-0.91.0}/LICENSE +0 -0
  82. {agent_cli-0.89.0 → agent_cli-0.91.0}/LLAMA_SERVER_USAGE.md +0 -0
  83. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/__init__.py +0 -0
  84. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/__main__.py +0 -0
  85. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/.gitkeep +0 -0
  86. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/audio.txt +0 -0
  87. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/faster-whisper.txt +0 -0
  88. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/llm.txt +0 -0
  89. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/memory.txt +0 -0
  90. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/piper.txt +0 -0
  91. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/rag.txt +0 -0
  92. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/server.txt +0 -0
  93. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/speed.txt +0 -0
  94. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/vad.txt +0 -0
  95. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/vectordb.txt +0 -0
  96. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_requirements/wyoming.txt +0 -0
  97. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/_tools.py +0 -0
  98. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/__init__.py +0 -0
  99. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/_voice_agent_common.py +0 -0
  100. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/assistant.py +0 -0
  101. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/autocorrect.py +0 -0
  102. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/chat.py +0 -0
  103. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/memory/__init__.py +0 -0
  104. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/memory/add.py +0 -0
  105. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/memory/proxy.py +0 -0
  106. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/rag_proxy.py +0 -0
  107. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/speak.py +0 -0
  108. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/transcribe_live.py +0 -0
  109. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/agents/voice_edit.py +0 -0
  110. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/api.py +0 -0
  111. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/constants.py +0 -0
  112. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/__init__.py +0 -0
  113. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/audio.py +0 -0
  114. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/audio_format.py +0 -0
  115. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/chroma.py +0 -0
  116. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/deps.py +0 -0
  117. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/openai_proxy.py +0 -0
  118. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/process.py +0 -0
  119. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/reranker.py +0 -0
  120. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/sse.py +0 -0
  121. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/transcription_logger.py +0 -0
  122. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/utils.py +0 -0
  123. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/vad.py +0 -0
  124. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/core/watch.py +0 -0
  125. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/daemon/__init__.py +0 -0
  126. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/daemon/cli.py +0 -0
  127. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/__init__.py +0 -0
  128. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/_branch_name.py +0 -0
  129. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/_config.py +0 -0
  130. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/_output.py +0 -0
  131. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/cleanup.py +0 -0
  132. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/cli.py +0 -0
  133. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/__init__.py +0 -0
  134. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/aider.py +0 -0
  135. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/base.py +0 -0
  136. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/claude.py +0 -0
  137. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/codex.py +0 -0
  138. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
  139. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/copilot.py +0 -0
  140. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
  141. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/gemini.py +0 -0
  142. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/opencode.py +0 -0
  143. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/registry.py +0 -0
  144. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/__init__.py +0 -0
  145. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/base.py +0 -0
  146. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/cursor.py +0 -0
  147. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/emacs.py +0 -0
  148. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/jetbrains.py +0 -0
  149. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/nano.py +0 -0
  150. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/neovim.py +0 -0
  151. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/registry.py +0 -0
  152. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/sublime.py +0 -0
  153. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/vim.py +0 -0
  154. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/vscode.py +0 -0
  155. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/editors/zed.py +0 -0
  156. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/hooks.py +0 -0
  157. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/launch.py +0 -0
  158. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/project.py +0 -0
  159. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/registry.py +0 -0
  160. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/skill/SKILL.md +0 -0
  161. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/skill/examples.md +0 -0
  162. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/__init__.py +0 -0
  163. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/apple_terminal.py +0 -0
  164. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/base.py +0 -0
  165. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/gnome.py +0 -0
  166. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/iterm2.py +0 -0
  167. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/kitty.py +0 -0
  168. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/registry.py +0 -0
  169. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/tmux.py +0 -0
  170. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/warp.py +0 -0
  171. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/zellij.py +0 -0
  172. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/dev/worktree.py +0 -0
  173. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/example-config.toml +0 -0
  174. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/install/__init__.py +0 -0
  175. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/install/common.py +0 -0
  176. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/install/hotkeys.py +0 -0
  177. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/install/launchd.py +0 -0
  178. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/install/service_config.py +0 -0
  179. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/install/services.py +0 -0
  180. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/install/systemd.py +0 -0
  181. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/__init__.py +0 -0
  182. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_files.py +0 -0
  183. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_filters.py +0 -0
  184. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_git.py +0 -0
  185. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_indexer.py +0 -0
  186. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_ingest.py +0 -0
  187. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_persistence.py +0 -0
  188. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_prompt.py +0 -0
  189. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_retrieval.py +0 -0
  190. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_store.py +0 -0
  191. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_streaming.py +0 -0
  192. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/_tasks.py +0 -0
  193. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/api.py +0 -0
  194. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/client.py +0 -0
  195. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/engine.py +0 -0
  196. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/entities.py +0 -0
  197. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/memory/models.py +0 -0
  198. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/py.typed +0 -0
  199. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/__init__.py +0 -0
  200. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/_indexer.py +0 -0
  201. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/_indexing.py +0 -0
  202. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/_prompt.py +0 -0
  203. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/_retriever.py +0 -0
  204. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/_store.py +0 -0
  205. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/api.py +0 -0
  206. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/client.py +0 -0
  207. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/engine.py +0 -0
  208. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/rag/models.py +0 -0
  209. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/.runtime/.gitkeep +0 -0
  210. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/__init__.py +0 -0
  211. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
  212. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
  213. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
  214. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
  215. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
  216. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
  217. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
  218. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
  219. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
  220. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
  221. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
  222. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
  223. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
  224. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
  225. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/run-openwakeword.sh +0 -0
  226. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
  227. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-linux.sh +0 -0
  228. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
  229. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-macos.sh +0 -0
  230. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-windows.ps1 +0 -0
  231. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
  232. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/scripts/start-all-services.sh +0 -0
  233. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/__init__.py +0 -0
  234. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/common.py +0 -0
  235. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/model_manager.py +0 -0
  236. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/model_registry.py +0 -0
  237. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/proxy/__init__.py +0 -0
  238. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/proxy/api.py +0 -0
  239. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/streaming.py +0 -0
  240. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/tts/__init__.py +0 -0
  241. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/tts/api.py +0 -0
  242. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/tts/backends/__init__.py +0 -0
  243. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/tts/backends/base.py +0 -0
  244. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/tts/backends/kokoro.py +0 -0
  245. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/tts/backends/piper.py +0 -0
  246. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/tts/model_manager.py +0 -0
  247. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/tts/model_registry.py +0 -0
  248. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/tts/wyoming_handler.py +0 -0
  249. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/__init__.py +0 -0
  250. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/__init__.py +0 -0
  251. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
  252. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/mlx.py +0 -0
  253. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/languages.py +0 -0
  254. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/model_registry.py +0 -0
  255. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/server/whisper/wyoming_handler.py +0 -0
  256. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/services/_wyoming_utils.py +0 -0
  257. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/services/llm.py +0 -0
  258. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/services/tts.py +0 -0
  259. {agent_cli-0.89.0 → agent_cli-0.91.0}/agent_cli/services/wake_word.py +0 -0
  260. {agent_cli-0.89.0 → agent_cli-0.91.0}/docker/docker-compose.yml +0 -0
  261. {agent_cli-0.89.0 → agent_cli-0.91.0}/docker/memory-proxy.Dockerfile +0 -0
  262. {agent_cli-0.89.0 → agent_cli-0.91.0}/docker/rag-proxy.Dockerfile +0 -0
  263. {agent_cli-0.89.0 → agent_cli-0.91.0}/docker/transcribe-proxy.Dockerfile +0 -0
  264. {agent_cli-0.89.0 → agent_cli-0.91.0}/docker/tts.Dockerfile +0 -0
  265. {agent_cli-0.89.0 → agent_cli-0.91.0}/docker/whisper.Dockerfile +0 -0
  266. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/CNAME +0 -0
  267. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/architecture/memory.md +0 -0
  268. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/architecture/rag.md +0 -0
  269. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/assistant.md +0 -0
  270. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/autocorrect.md +0 -0
  271. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/chat.md +0 -0
  272. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/daemon.md +0 -0
  273. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/dev.md +0 -0
  274. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/install-hotkeys.md +0 -0
  275. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/install-services.md +0 -0
  276. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/memory.md +0 -0
  277. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/rag-proxy.md +0 -0
  278. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/server/index.md +0 -0
  279. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/server/transcribe-proxy.md +0 -0
  280. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/server/tts.md +0 -0
  281. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/speak.md +0 -0
  282. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/start-services.md +0 -0
  283. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/commands/voice-edit.md +0 -0
  284. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/getting-started.md +0 -0
  285. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/iOS_Shortcut_Guide.md +0 -0
  286. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/installation/docker.md +0 -0
  287. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/installation/index.md +0 -0
  288. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/installation/linux.md +0 -0
  289. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/installation/macos.md +0 -0
  290. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/installation/nixos.md +0 -0
  291. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/installation/windows.md +0 -0
  292. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/logo-clean.svg +0 -0
  293. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
  294. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/run_markdown_code_runner.py +0 -0
  295. {agent_cli-0.89.0 → agent_cli-0.91.0}/docs/system-integration.md +0 -0
  296. {agent_cli-0.89.0 → agent_cli-0.91.0}/example.agent-cli-config.toml +0 -0
  297. {agent_cli-0.89.0 → agent_cli-0.91.0}/justfile +0 -0
  298. {agent_cli-0.89.0 → agent_cli-0.91.0}/reddit.md +0 -0
  299. {agent_cli-0.89.0 → agent_cli-0.91.0}/shell.nix +0 -0
  300. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/__init__.py +0 -0
  301. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/__init__.py +0 -0
  302. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_fix_my_text.py +0 -0
  303. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_interactive.py +0 -0
  304. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_interactive_extra.py +0 -0
  305. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_memory_add.py +0 -0
  306. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_speak.py +0 -0
  307. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_speak_e2e.py +0 -0
  308. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_transcribe.py +0 -0
  309. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_transcribe_agent.py +0 -0
  310. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_transcribe_e2e.py +0 -0
  311. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_transcribe_live.py +0 -0
  312. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_tts_common.py +0 -0
  313. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_tts_common_extra.py +0 -0
  314. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_voice_agent_common.py +0 -0
  315. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_voice_edit.py +0 -0
  316. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_voice_edit_e2e.py +0 -0
  317. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/agents/test_wake_word_assistant.py +0 -0
  318. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/conftest.py +0 -0
  319. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/core/__init__.py +0 -0
  320. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/core/test_audio.py +0 -0
  321. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/core/test_audio_format.py +0 -0
  322. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/core/test_chroma.py +0 -0
  323. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/core/test_sse.py +0 -0
  324. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/core/test_watch.py +0 -0
  325. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/__init__.py +0 -0
  326. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_cleanup.py +0 -0
  327. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_cli.py +0 -0
  328. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_coding_agents.py +0 -0
  329. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_editors.py +0 -0
  330. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_hooks.py +0 -0
  331. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_launch.py +0 -0
  332. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_project.py +0 -0
  333. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_terminals.py +0 -0
  334. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_verification.py +0 -0
  335. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/dev/test_worktree.py +0 -0
  336. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/install/__init__.py +0 -0
  337. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/install/test_extras.py +0 -0
  338. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/__init__.py +0 -0
  339. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_api_health.py +0 -0
  340. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_api_integration_liveish.py +0 -0
  341. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_client.py +0 -0
  342. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_engine.py +0 -0
  343. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_files.py +0 -0
  344. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_filters.py +0 -0
  345. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_git_integration.py +0 -0
  346. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_indexer.py +0 -0
  347. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_memory_integration.py +0 -0
  348. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_proxy_passthrough.py +0 -0
  349. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_store.py +0 -0
  350. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/memory/test_utils.py +0 -0
  351. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/mocks/__init__.py +0 -0
  352. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/mocks/audio.py +0 -0
  353. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/mocks/llm.py +0 -0
  354. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/mocks/wyoming.py +0 -0
  355. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/__init__.py +0 -0
  356. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_api.py +0 -0
  357. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_engine.py +0 -0
  358. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_history.py +0 -0
  359. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_indexer.py +0 -0
  360. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_indexing.py +0 -0
  361. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_rag_client.py +0 -0
  362. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_rag_integration_liveish.py +0 -0
  363. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_rag_proxy_passthrough.py +0 -0
  364. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_retriever.py +0 -0
  365. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/rag/test_store.py +0 -0
  366. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_api.py +0 -0
  367. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_api_integration.py +0 -0
  368. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_audio_e2e.py +0 -0
  369. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_cli.py +0 -0
  370. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_config_cmd.py +0 -0
  371. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_daemon.py +0 -0
  372. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_docs_gen.py +0 -0
  373. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_env_vars.py +0 -0
  374. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_faster_whisper_backend.py +0 -0
  375. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_llm.py +0 -0
  376. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_llm_gemini.py +0 -0
  377. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_memory_tools.py +0 -0
  378. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_mlx_backend.py +0 -0
  379. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_process_manager.py +0 -0
  380. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_requires_extras.py +0 -0
  381. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_server_streaming.py +0 -0
  382. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_server_tts.py +0 -0
  383. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_tools.py +0 -0
  384. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_transformers_backend.py +0 -0
  385. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_tts.py +0 -0
  386. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_utils.py +0 -0
  387. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_wake_word.py +0 -0
  388. {agent_cli-0.89.0 → agent_cli-0.91.0}/tests/test_wyoming_utils.py +0 -0
  389. {agent_cli-0.89.0 → agent_cli-0.91.0}/zensical.toml +0 -0
@@ -38,6 +38,7 @@ EXTRA_METADATA: dict[str, tuple[str, list[str]]] = {
38
38
  "rag": ("RAG proxy (ChromaDB, embeddings)", ["chromadb", "pydantic_ai"]),
39
39
  "memory": ("Long-term memory proxy", ["chromadb", "yaml", "pydantic_ai"]),
40
40
  "vad": ("Voice Activity Detection (Silero VAD via ONNX)", ["onnxruntime"]),
41
+ "diarization": ("Speaker diarization (pyannote.audio)", ["pyannote.audio"]),
41
42
  "whisper": ("Local Whisper ASR (faster-whisper)", ["faster_whisper"]),
42
43
  "whisper-mlx": ("MLX Whisper for Apple Silicon", ["mlx_whisper"]),
43
44
  "tts": ("Local Piper TTS", ["piper"]),
@@ -32,7 +32,7 @@ jobs:
32
32
  lfs: true
33
33
 
34
34
  - name: Install uv
35
- uses: astral-sh/setup-uv@v7
35
+ uses: astral-sh/setup-uv@v8.1.0
36
36
 
37
37
  - name: Set up Python
38
38
  run: uv python install 3.12
@@ -22,7 +22,7 @@ jobs:
22
22
  python-version: "3.13.11"
23
23
 
24
24
  - name: Install uv
25
- uses: astral-sh/setup-uv@v7
25
+ uses: astral-sh/setup-uv@v8.1.0
26
26
 
27
27
  - name: Run markdown-code-runner
28
28
  env:
@@ -27,15 +27,15 @@ jobs:
27
27
  if: matrix.os == 'ubuntu-latest'
28
28
  run: sudo apt-get update && sudo apt-get install -y portaudio19-dev
29
29
  - name: Install uv
30
- uses: astral-sh/setup-uv@v7
30
+ uses: astral-sh/setup-uv@v8.1.0
31
31
  - name: Run pytest (macOS - all extras)
32
32
  if: matrix.os == 'macos-latest'
33
33
  run: uv run --all-extras pytest -vvv
34
34
  - name: Run pytest (non-macOS - exclude mlx-whisper)
35
35
  if: matrix.os != 'macos-latest'
36
- run: uv run --extra audio --extra llm --extra rag --extra memory --extra vad --extra faster-whisper --extra piper --extra kokoro --extra server --extra speed --extra test pytest -vvv
36
+ run: uv run --extra audio --extra diarization --extra llm --extra rag --extra memory --extra vad --extra faster-whisper --extra piper --extra kokoro --extra server --extra speed --extra test pytest -vvv
37
37
  - name: Upload coverage reports to Codecov
38
38
  if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
39
- uses: codecov/codecov-action@v5
39
+ uses: codecov/codecov-action@v6
40
40
  env:
41
41
  CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -15,7 +15,7 @@ jobs:
15
15
  steps:
16
16
  - uses: actions/checkout@v6
17
17
  - name: Install uv
18
- uses: astral-sh/setup-uv@v7
18
+ uses: astral-sh/setup-uv@v8.1.0
19
19
  - name: Build
20
20
  run: uv build
21
21
  - name: Publish package distributions to PyPI
@@ -11,13 +11,13 @@ repos:
11
11
  - id: end-of-file-fixer
12
12
  - id: mixed-line-ending
13
13
  - repo: https://github.com/astral-sh/ruff-pre-commit
14
- rev: "v0.15.11"
14
+ rev: "v0.15.12"
15
15
  hooks:
16
16
  - id: ruff
17
17
  args: ["--fix"]
18
18
  - id: ruff-format
19
19
  - repo: https://github.com/pre-commit/mirrors-mypy
20
- rev: "v1.20.1"
20
+ rev: "v1.20.2"
21
21
  hooks:
22
22
  - id: mypy
23
23
  additional_dependencies: ["types-PyYAML"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-cli
3
- Version: 0.89.0
3
+ Version: 0.91.0
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>
@@ -34,6 +34,8 @@ Requires-Dist: pytest>=7.0.0; extra == 'dev'
34
34
  Requires-Dist: ruff; extra == 'dev'
35
35
  Requires-Dist: versioningit; extra == 'dev'
36
36
  Requires-Dist: zensical; extra == 'dev'
37
+ Provides-Extra: diarization
38
+ Requires-Dist: pyannote-audio>=3.3; extra == 'diarization'
37
39
  Provides-Extra: faster-whisper
38
40
  Requires-Dist: fastapi[standard]; extra == 'faster-whisper'
39
41
  Requires-Dist: faster-whisper>=1.0.0; extra == 'faster-whisper'
@@ -261,6 +263,7 @@ The setup scripts automatically install:
261
263
  - [Installation Commands](#installation-commands)
262
264
  - [Installing Optional Extras](#installing-optional-extras)
263
265
  - [Configuration](#configuration)
266
+ - [Environment variable overrides](#environment-variable-overrides)
264
267
  - [Managing Configuration](#managing-configuration)
265
268
  - [Provider Defaults](#provider-defaults)
266
269
  - [`autocorrect`](#autocorrect)
@@ -526,6 +529,7 @@ agent-cli install-extras rag memory vad
526
529
  Available extras:
527
530
 
528
531
  • audio - Audio recording/playback
532
+ • diarization - Speaker diarization (pyannote.audio)
529
533
  • faster-whisper - Whisper ASR via CTranslate2
530
534
  • kokoro - Kokoro neural TTS (GPU)
531
535
  • llm - LLM framework (pydantic-ai)
@@ -550,9 +554,9 @@ agent-cli install-extras rag memory vad
550
554
 
551
555
 
552
556
  ╭─ Arguments ────────────────────────────────────────────────────────────────────────────╮
553
- │ extras [EXTRAS]... Extras to install: audio, faster-whisper, kokoro, llm,
554
- │ memory, mlx-whisper, piper, rag, server, speed, vad,
555
- │ vectordb, whisper-transformers, wyoming
557
+ │ extras [EXTRAS]... Extras to install: audio, diarization, faster-whisper, │
558
+ kokoro, llm, memory, mlx-whisper, piper, rag, server,
559
+ speed, vad, vectordb, whisper-transformers, wyoming
556
560
  ╰────────────────────────────────────────────────────────────────────────────────────────╯
557
561
  ╭─ Options ──────────────────────────────────────────────────────────────────────────────╮
558
562
  │ --list -l Show available extras with descriptions (what each one enables) │
@@ -568,15 +572,36 @@ agent-cli install-extras rag memory vad
568
572
 
569
573
  ### Configuration
570
574
 
571
- All `agent-cli` commands can be configured using a TOML file. The configuration file is searched for in the following locations, in order:
575
+ All `agent-cli` commands can be configured using a TOML file.
576
+ The configuration file is searched for in the following locations, in order:
572
577
 
573
- 1. `./agent-cli-config.toml` (in the current directory)
574
- 2. `~/.config/agent-cli/config.toml`
578
+ 1. CLI flag (`--config` on agent commands, `--path` on `agent-cli config ...`)
579
+ 2. `$AGENT_CLI_CONFIG_HOME/config.toml` if set
580
+ 3. `./agent-cli-config.toml` (in the current directory)
581
+ 4. `$XDG_CONFIG_HOME/agent-cli/config.toml` if `XDG_CONFIG_HOME` is set and non-empty, otherwise `~/.config/agent-cli/config.toml`
575
582
 
576
583
  You can also specify a path to a configuration file using the `--config` option, e.g., `agent-cli transcribe --config /path/to/your/config.toml`.
577
584
 
578
585
  Command-line options always take precedence over settings in the configuration file.
579
586
 
587
+ #### Environment variable overrides
588
+
589
+ Use `AGENT_CLI_CONFIG_HOME` to redirect the user-level config to a directory of your choice:
590
+
591
+ ```bash
592
+ # use a project-scoped config
593
+ AGENT_CLI_CONFIG_HOME=./.agent-cli agent-cli chat ...
594
+ ```
595
+
596
+ Use `XDG_CONFIG_HOME` to follow XDG-style config placement when no `AGENT_CLI_CONFIG_HOME` is set:
597
+
598
+ ```bash
599
+ # follow XDG (e.g. inside a sandbox or container)
600
+ XDG_CONFIG_HOME=/workspace/.config agent-cli chat ...
601
+ ```
602
+
603
+ Config paths are resolved when `agent-cli` starts, so set these variables before invoking the command.
604
+
580
605
  #### Managing Configuration
581
606
 
582
607
  Use the `config` command to manage your configuration files:
@@ -617,11 +642,20 @@ agent-cli config edit
617
642
 
618
643
  Config files are TOML format and searched in order:
619
644
 
620
- 1 ./agent-cli-config.toml (project-local)
621
- 2 ~/.config/agent-cli/config.toml (user default)
645
+ 1 $AGENT_CLI_CONFIG_HOME/config.toml (if set)
646
+ 2 ./agent-cli-config.toml (project-local)
647
+ 3 $XDG_CONFIG_HOME/agent-cli/config.toml (if set)
648
+ 4 ~/.config/agent-cli/config.toml (user default)
649
+
650
+ Settings in [defaults] apply globally.
651
+
652
+ Use [chat] or [transcribe] for command-specific overrides.
622
653
 
623
- Settings in [defaults] apply to all commands. Override per-command with sections like
624
- [chat] or [transcribe]. CLI arguments override config file settings.
654
+ CLI arguments override config file settings.
655
+
656
+ Set env vars before startup.
657
+
658
+ Use $AGENT_CLI_CONFIG_HOME or $XDG_CONFIG_HOME to change config path.
625
659
 
626
660
  ╭─ Options ──────────────────────────────────────────────────────────────────────────────╮
627
661
  │ --help -h Show this message and exit. │
@@ -836,7 +870,7 @@ the `[defaults]` section of your configuration file.
836
870
  │ --llm --no-llm Clean up transcript with LLM: fix errors, │
837
871
  │ add punctuation, remove filler words. Uses │
838
872
  │ --extra-instructions if set (via CLI or │
839
- │ config file).
873
+ │ config file). Not compatible with --diarize.
840
874
  │ [default: no-llm] │
841
875
  ╰────────────────────────────────────────────────────────────────────────────────────────╯
842
876
  ╭─ Audio Recovery ───────────────────────────────────────────────────────────────────────╮
@@ -958,6 +992,44 @@ the `[defaults]` section of your configuration file.
958
992
  │ provide context for │
959
993
  │ LLM cleanup. │
960
994
  ╰────────────────────────────────────────────────────────────────────────────────────────╯
995
+ ╭─ Diarization ──────────────────────────────────────────────────────────────────────────╮
996
+ │ --diarize --no-diarize Enable speaker diarization │
997
+ │ (requires pyannote-audio). │
998
+ │ Install with: pip install │
999
+ │ agent-cli[diarization] │
1000
+ │ [default: no-diarize] │
1001
+ │ --diarize-format [inline|json] Output format for diarization │
1002
+ │ ('inline' for [Speaker N]: │
1003
+ │ text, 'json' for structured │
1004
+ │ output). │
1005
+ │ [default: inline] │
1006
+ │ --hf-token TEXT HuggingFace token for pyannote │
1007
+ │ models. Required for │
1008
+ │ diarization. Token must have │
1009
+ │ 'Read access to contents of all │
1010
+ │ public gated repos you can │
1011
+ │ access' permission. Accept │
1012
+ │ licenses at: │
1013
+ │ https://hf.co/pyannote/speaker… │
1014
+ │ https://hf.co/pyannote/segment… │
1015
+ │ https://hf.co/pyannote/wespeak… │
1016
+ │ [env var: HF_TOKEN] │
1017
+ │ --min-speakers INTEGER Minimum number of speakers │
1018
+ │ (optional hint for │
1019
+ │ diarization). │
1020
+ │ --max-speakers INTEGER Maximum number of speakers │
1021
+ │ (optional hint for │
1022
+ │ diarization). │
1023
+ │ --align-words --no-align-words Use wav2vec2 forced alignment │
1024
+ │ for word-level speaker │
1025
+ │ assignment (more accurate but │
1026
+ │ slower). │
1027
+ │ [default: no-align-words] │
1028
+ │ --align-language TEXT Language code for word │
1029
+ │ alignment model (e.g., 'en', │
1030
+ │ 'fr', 'de', 'es', 'it'). │
1031
+ │ [default: en] │
1032
+ ╰────────────────────────────────────────────────────────────────────────────────────────╯
961
1033
 
962
1034
  ```
963
1035
 
@@ -1156,7 +1228,7 @@ uv tool install "agent-cli[vad]" -p 3.13
1156
1228
  ╭─ LLM Configuration ────────────────────────────────────────────────────────────────────╮
1157
1229
  │ --llm --no-llm Clean up transcript with LLM: fix errors, add punctuation, │
1158
1230
  │ remove filler words. Uses --extra-instructions if set (via CLI │
1159
- │ or config file).
1231
+ │ or config file). Not compatible with --diarize.
1160
1232
  │ [default: no-llm] │
1161
1233
  ╰────────────────────────────────────────────────────────────────────────────────────────╯
1162
1234
  ╭─ Process Management ───────────────────────────────────────────────────────────────────╮
@@ -158,6 +158,7 @@ The setup scripts automatically install:
158
158
  - [Installation Commands](#installation-commands)
159
159
  - [Installing Optional Extras](#installing-optional-extras)
160
160
  - [Configuration](#configuration)
161
+ - [Environment variable overrides](#environment-variable-overrides)
161
162
  - [Managing Configuration](#managing-configuration)
162
163
  - [Provider Defaults](#provider-defaults)
163
164
  - [`autocorrect`](#autocorrect)
@@ -423,6 +424,7 @@ agent-cli install-extras rag memory vad
423
424
  Available extras:
424
425
 
425
426
  • audio - Audio recording/playback
427
+ • diarization - Speaker diarization (pyannote.audio)
426
428
  • faster-whisper - Whisper ASR via CTranslate2
427
429
  • kokoro - Kokoro neural TTS (GPU)
428
430
  • llm - LLM framework (pydantic-ai)
@@ -447,9 +449,9 @@ agent-cli install-extras rag memory vad
447
449
 
448
450
 
449
451
  ╭─ Arguments ────────────────────────────────────────────────────────────────────────────╮
450
- │ extras [EXTRAS]... Extras to install: audio, faster-whisper, kokoro, llm,
451
- │ memory, mlx-whisper, piper, rag, server, speed, vad,
452
- │ vectordb, whisper-transformers, wyoming
452
+ │ extras [EXTRAS]... Extras to install: audio, diarization, faster-whisper, │
453
+ kokoro, llm, memory, mlx-whisper, piper, rag, server,
454
+ speed, vad, vectordb, whisper-transformers, wyoming
453
455
  ╰────────────────────────────────────────────────────────────────────────────────────────╯
454
456
  ╭─ Options ──────────────────────────────────────────────────────────────────────────────╮
455
457
  │ --list -l Show available extras with descriptions (what each one enables) │
@@ -465,15 +467,36 @@ agent-cli install-extras rag memory vad
465
467
 
466
468
  ### Configuration
467
469
 
468
- All `agent-cli` commands can be configured using a TOML file. The configuration file is searched for in the following locations, in order:
470
+ All `agent-cli` commands can be configured using a TOML file.
471
+ The configuration file is searched for in the following locations, in order:
469
472
 
470
- 1. `./agent-cli-config.toml` (in the current directory)
471
- 2. `~/.config/agent-cli/config.toml`
473
+ 1. CLI flag (`--config` on agent commands, `--path` on `agent-cli config ...`)
474
+ 2. `$AGENT_CLI_CONFIG_HOME/config.toml` if set
475
+ 3. `./agent-cli-config.toml` (in the current directory)
476
+ 4. `$XDG_CONFIG_HOME/agent-cli/config.toml` if `XDG_CONFIG_HOME` is set and non-empty, otherwise `~/.config/agent-cli/config.toml`
472
477
 
473
478
  You can also specify a path to a configuration file using the `--config` option, e.g., `agent-cli transcribe --config /path/to/your/config.toml`.
474
479
 
475
480
  Command-line options always take precedence over settings in the configuration file.
476
481
 
482
+ #### Environment variable overrides
483
+
484
+ Use `AGENT_CLI_CONFIG_HOME` to redirect the user-level config to a directory of your choice:
485
+
486
+ ```bash
487
+ # use a project-scoped config
488
+ AGENT_CLI_CONFIG_HOME=./.agent-cli agent-cli chat ...
489
+ ```
490
+
491
+ Use `XDG_CONFIG_HOME` to follow XDG-style config placement when no `AGENT_CLI_CONFIG_HOME` is set:
492
+
493
+ ```bash
494
+ # follow XDG (e.g. inside a sandbox or container)
495
+ XDG_CONFIG_HOME=/workspace/.config agent-cli chat ...
496
+ ```
497
+
498
+ Config paths are resolved when `agent-cli` starts, so set these variables before invoking the command.
499
+
477
500
  #### Managing Configuration
478
501
 
479
502
  Use the `config` command to manage your configuration files:
@@ -514,11 +537,20 @@ agent-cli config edit
514
537
 
515
538
  Config files are TOML format and searched in order:
516
539
 
517
- 1 ./agent-cli-config.toml (project-local)
518
- 2 ~/.config/agent-cli/config.toml (user default)
540
+ 1 $AGENT_CLI_CONFIG_HOME/config.toml (if set)
541
+ 2 ./agent-cli-config.toml (project-local)
542
+ 3 $XDG_CONFIG_HOME/agent-cli/config.toml (if set)
543
+ 4 ~/.config/agent-cli/config.toml (user default)
544
+
545
+ Settings in [defaults] apply globally.
546
+
547
+ Use [chat] or [transcribe] for command-specific overrides.
519
548
 
520
- Settings in [defaults] apply to all commands. Override per-command with sections like
521
- [chat] or [transcribe]. CLI arguments override config file settings.
549
+ CLI arguments override config file settings.
550
+
551
+ Set env vars before startup.
552
+
553
+ Use $AGENT_CLI_CONFIG_HOME or $XDG_CONFIG_HOME to change config path.
522
554
 
523
555
  ╭─ Options ──────────────────────────────────────────────────────────────────────────────╮
524
556
  │ --help -h Show this message and exit. │
@@ -733,7 +765,7 @@ the `[defaults]` section of your configuration file.
733
765
  │ --llm --no-llm Clean up transcript with LLM: fix errors, │
734
766
  │ add punctuation, remove filler words. Uses │
735
767
  │ --extra-instructions if set (via CLI or │
736
- │ config file).
768
+ │ config file). Not compatible with --diarize.
737
769
  │ [default: no-llm] │
738
770
  ╰────────────────────────────────────────────────────────────────────────────────────────╯
739
771
  ╭─ Audio Recovery ───────────────────────────────────────────────────────────────────────╮
@@ -855,6 +887,44 @@ the `[defaults]` section of your configuration file.
855
887
  │ provide context for │
856
888
  │ LLM cleanup. │
857
889
  ╰────────────────────────────────────────────────────────────────────────────────────────╯
890
+ ╭─ Diarization ──────────────────────────────────────────────────────────────────────────╮
891
+ │ --diarize --no-diarize Enable speaker diarization │
892
+ │ (requires pyannote-audio). │
893
+ │ Install with: pip install │
894
+ │ agent-cli[diarization] │
895
+ │ [default: no-diarize] │
896
+ │ --diarize-format [inline|json] Output format for diarization │
897
+ │ ('inline' for [Speaker N]: │
898
+ │ text, 'json' for structured │
899
+ │ output). │
900
+ │ [default: inline] │
901
+ │ --hf-token TEXT HuggingFace token for pyannote │
902
+ │ models. Required for │
903
+ │ diarization. Token must have │
904
+ │ 'Read access to contents of all │
905
+ │ public gated repos you can │
906
+ │ access' permission. Accept │
907
+ │ licenses at: │
908
+ │ https://hf.co/pyannote/speaker… │
909
+ │ https://hf.co/pyannote/segment… │
910
+ │ https://hf.co/pyannote/wespeak… │
911
+ │ [env var: HF_TOKEN] │
912
+ │ --min-speakers INTEGER Minimum number of speakers │
913
+ │ (optional hint for │
914
+ │ diarization). │
915
+ │ --max-speakers INTEGER Maximum number of speakers │
916
+ │ (optional hint for │
917
+ │ diarization). │
918
+ │ --align-words --no-align-words Use wav2vec2 forced alignment │
919
+ │ for word-level speaker │
920
+ │ assignment (more accurate but │
921
+ │ slower). │
922
+ │ [default: no-align-words] │
923
+ │ --align-language TEXT Language code for word │
924
+ │ alignment model (e.g., 'en', │
925
+ │ 'fr', 'de', 'es', 'it'). │
926
+ │ [default: en] │
927
+ ╰────────────────────────────────────────────────────────────────────────────────────────╯
858
928
 
859
929
  ```
860
930
 
@@ -1053,7 +1123,7 @@ uv tool install "agent-cli[vad]" -p 3.13
1053
1123
  ╭─ LLM Configuration ────────────────────────────────────────────────────────────────────╮
1054
1124
  │ --llm --no-llm Clean up transcript with LLM: fix errors, add punctuation, │
1055
1125
  │ remove filler words. Uses --extra-instructions if set (via CLI │
1056
- │ or config file).
1126
+ │ or config file). Not compatible with --diarize.
1057
1127
  │ [default: no-llm] │
1058
1128
  ╰────────────────────────────────────────────────────────────────────────────────────────╯
1059
1129
  ╭─ Process Management ───────────────────────────────────────────────────────────────────╮
@@ -5,6 +5,12 @@
5
5
  "sounddevice"
6
6
  ]
7
7
  ],
8
+ "diarization": [
9
+ "Speaker diarization (pyannote.audio)",
10
+ [
11
+ "pyannote.audio"
12
+ ]
13
+ ],
8
14
  "faster-whisper": [
9
15
  "Whisper ASR via CTranslate2",
10
16
  [