agent-cli 0.96.9__tar.gz → 0.96.10__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 (444) hide show
  1. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/docker.yml +10 -10
  2. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/docs.yml +5 -5
  3. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/markdown-code-runner.yml +3 -3
  4. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/pytest.yml +4 -4
  5. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/release-drafter.yml +1 -1
  6. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/release.yml +23 -15
  7. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/toc.yaml +1 -1
  8. {agent_cli-0.96.9 → agent_cli-0.96.10}/.pre-commit-config.yaml +1 -1
  9. {agent_cli-0.96.9 → agent_cli-0.96.10}/PKG-INFO +3 -5
  10. {agent_cli-0.96.9 → agent_cli-0.96.10}/README.md +2 -4
  11. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/getting-started.md +1 -2
  12. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/index.md +1 -2
  13. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/macos-app.md +1 -8
  14. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/system-integration.md +1 -2
  15. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/README.md +2 -0
  16. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/appcast.xml +16 -15
  17. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_macos_app.py +36 -1
  18. agent_cli-0.96.9/.github/scripts/update_cask.py +0 -87
  19. agent_cli-0.96.9/Casks/agent-cli.rb +0 -29
  20. agent_cli-0.96.9/tests/test_update_cask.py +0 -51
  21. {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
  22. {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude/skills/agent-cli-dev/examples.md +0 -0
  23. {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/README.md +0 -0
  24. {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/marketplace.json +0 -0
  25. {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/plugin.json +0 -0
  26. {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
  27. {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
  28. {agent_cli-0.96.9 → agent_cli-0.96.10}/.cursorrules +0 -0
  29. {agent_cli-0.96.9 → agent_cli-0.96.10}/.dockerignore +0 -0
  30. {agent_cli-0.96.9 → agent_cli-0.96.10}/.env.example +0 -0
  31. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/logo.svg +0 -0
  32. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/release-drafter.yml +0 -0
  33. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/renovate.json +0 -0
  34. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/check_extras_sync.py +0 -0
  35. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/check_plugin_skill_sync.py +0 -0
  36. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/normalize_appcast.py +0 -0
  37. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/sync_extras.py +0 -0
  38. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/sync_requirements.py +0 -0
  39. {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/automerge.yml +0 -0
  40. {agent_cli-0.96.9 → agent_cli-0.96.10}/.gitignore +0 -0
  41. {agent_cli-0.96.9 → agent_cli-0.96.10}/.jscpd.json +0 -0
  42. {agent_cli-0.96.9 → agent_cli-0.96.10}/.prompts/docs-review.md +0 -0
  43. {agent_cli-0.96.9 → agent_cli-0.96.10}/.prompts/pr-review.md +0 -0
  44. {agent_cli-0.96.9 → agent_cli-0.96.10}/CLAUDE.md +0 -0
  45. {agent_cli-0.96.9 → agent_cli-0.96.10}/LICENSE +0 -0
  46. {agent_cli-0.96.9 → agent_cli-0.96.10}/LLAMA_SERVER_USAGE.md +0 -0
  47. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/__init__.py +0 -0
  48. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/__main__.py +0 -0
  49. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_extras.json +0 -0
  50. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/.gitkeep +0 -0
  51. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/audio.txt +0 -0
  52. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/diarization.txt +0 -0
  53. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/faster-whisper.txt +0 -0
  54. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/kokoro.txt +0 -0
  55. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/llm.txt +0 -0
  56. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/memory.txt +0 -0
  57. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/mlx-whisper.txt +0 -0
  58. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/piper.txt +0 -0
  59. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/rag.txt +0 -0
  60. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/server.txt +0 -0
  61. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/speed.txt +0 -0
  62. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/vad.txt +0 -0
  63. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/vectordb.txt +0 -0
  64. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/whisper-transformers.txt +0 -0
  65. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/wyoming.txt +0 -0
  66. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_tools.py +0 -0
  67. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/__init__.py +0 -0
  68. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/_voice_agent_common.py +0 -0
  69. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/assistant.py +0 -0
  70. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/autocorrect.py +0 -0
  71. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/chat.py +0 -0
  72. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/diarize_live_session.py +0 -0
  73. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/memory/__init__.py +0 -0
  74. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/memory/add.py +0 -0
  75. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/memory/proxy.py +0 -0
  76. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/rag_proxy.py +0 -0
  77. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/speak.py +0 -0
  78. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/speakers.py +0 -0
  79. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/transcribe.py +0 -0
  80. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/transcribe_live.py +0 -0
  81. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/voice_edit.py +0 -0
  82. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/api.py +0 -0
  83. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/cli.py +0 -0
  84. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/config.py +0 -0
  85. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/config_cmd.py +0 -0
  86. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/constants.py +0 -0
  87. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/__init__.py +0 -0
  88. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/alignment.py +0 -0
  89. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/audio.py +0 -0
  90. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/audio_format.py +0 -0
  91. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/chroma.py +0 -0
  92. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/deps.py +0 -0
  93. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/diarization.py +0 -0
  94. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/openai_proxy.py +0 -0
  95. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/process.py +0 -0
  96. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/reranker.py +0 -0
  97. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/speaker_identity.py +0 -0
  98. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/sse.py +0 -0
  99. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/transcription_logger.py +0 -0
  100. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/utils.py +0 -0
  101. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/vad.py +0 -0
  102. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/watch.py +0 -0
  103. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/daemon/__init__.py +0 -0
  104. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/daemon/cli.py +0 -0
  105. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/__init__.py +0 -0
  106. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/_branch_name.py +0 -0
  107. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/_config.py +0 -0
  108. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/_output.py +0 -0
  109. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/cleanup.py +0 -0
  110. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/cli.py +0 -0
  111. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/__init__.py +0 -0
  112. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/aider.py +0 -0
  113. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/base.py +0 -0
  114. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/claude.py +0 -0
  115. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/codex.py +0 -0
  116. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
  117. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/copilot.py +0 -0
  118. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
  119. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/gemini.py +0 -0
  120. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/opencode.py +0 -0
  121. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/registry.py +0 -0
  122. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/__init__.py +0 -0
  123. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/base.py +0 -0
  124. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/cursor.py +0 -0
  125. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/emacs.py +0 -0
  126. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/jetbrains.py +0 -0
  127. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/nano.py +0 -0
  128. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/neovim.py +0 -0
  129. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/registry.py +0 -0
  130. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/sublime.py +0 -0
  131. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/vim.py +0 -0
  132. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/vscode.py +0 -0
  133. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/zed.py +0 -0
  134. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/hooks.py +0 -0
  135. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/launch.py +0 -0
  136. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/project.py +0 -0
  137. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/registry.py +0 -0
  138. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/skill/SKILL.md +0 -0
  139. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/skill/examples.md +0 -0
  140. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/__init__.py +0 -0
  141. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/apple_terminal.py +0 -0
  142. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/base.py +0 -0
  143. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/gnome.py +0 -0
  144. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/iterm2.py +0 -0
  145. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/kitty.py +0 -0
  146. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/registry.py +0 -0
  147. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/tmux.py +0 -0
  148. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/warp.py +0 -0
  149. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/zellij.py +0 -0
  150. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/worktree.py +0 -0
  151. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/docs_gen.py +0 -0
  152. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/example-config.toml +0 -0
  153. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/__init__.py +0 -0
  154. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/common.py +0 -0
  155. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/extras.py +0 -0
  156. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/hotkeys.py +0 -0
  157. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/launchd.py +0 -0
  158. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/service_config.py +0 -0
  159. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/services.py +0 -0
  160. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/systemd.py +0 -0
  161. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/__init__.py +0 -0
  162. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_files.py +0 -0
  163. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_filters.py +0 -0
  164. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_git.py +0 -0
  165. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_indexer.py +0 -0
  166. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_ingest.py +0 -0
  167. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_persistence.py +0 -0
  168. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_prompt.py +0 -0
  169. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_retrieval.py +0 -0
  170. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_store.py +0 -0
  171. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_streaming.py +0 -0
  172. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_tasks.py +0 -0
  173. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/api.py +0 -0
  174. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/client.py +0 -0
  175. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/engine.py +0 -0
  176. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/entities.py +0 -0
  177. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/models.py +0 -0
  178. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/opts.py +0 -0
  179. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/py.typed +0 -0
  180. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/__init__.py +0 -0
  181. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_indexer.py +0 -0
  182. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_indexing.py +0 -0
  183. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_prompt.py +0 -0
  184. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_retriever.py +0 -0
  185. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_store.py +0 -0
  186. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_utils.py +0 -0
  187. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/api.py +0 -0
  188. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/client.py +0 -0
  189. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/engine.py +0 -0
  190. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/models.py +0 -0
  191. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/.runtime/.gitkeep +0 -0
  192. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/__init__.py +0 -0
  193. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
  194. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
  195. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
  196. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
  197. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
  198. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
  199. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
  200. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
  201. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
  202. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
  203. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
  204. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
  205. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
  206. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
  207. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/run-openwakeword.sh +0 -0
  208. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
  209. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-linux.sh +0 -0
  210. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
  211. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-macos.sh +0 -0
  212. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-windows.ps1 +0 -0
  213. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
  214. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/start-all-services.sh +0 -0
  215. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/__init__.py +0 -0
  216. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/cli.py +0 -0
  217. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/common.py +0 -0
  218. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/model_manager.py +0 -0
  219. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/model_registry.py +0 -0
  220. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/proxy/__init__.py +0 -0
  221. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/proxy/api.py +0 -0
  222. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/streaming.py +0 -0
  223. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/__init__.py +0 -0
  224. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/api.py +0 -0
  225. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/backends/__init__.py +0 -0
  226. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/backends/base.py +0 -0
  227. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/backends/kokoro.py +0 -0
  228. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/backends/piper.py +0 -0
  229. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/model_manager.py +0 -0
  230. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/model_registry.py +0 -0
  231. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/wyoming_handler.py +0 -0
  232. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/__init__.py +0 -0
  233. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/api.py +0 -0
  234. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/__init__.py +0 -0
  235. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/base.py +0 -0
  236. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
  237. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/mlx.py +0 -0
  238. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/transformers.py +0 -0
  239. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/languages.py +0 -0
  240. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/model_manager.py +0 -0
  241. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/model_registry.py +0 -0
  242. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/wyoming_handler.py +0 -0
  243. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/__init__.py +0 -0
  244. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/_wyoming_utils.py +0 -0
  245. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/asr.py +0 -0
  246. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/llm.py +0 -0
  247. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/tts.py +0 -0
  248. {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/wake_word.py +0 -0
  249. {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/docker-compose.yml +0 -0
  250. {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/memory-proxy.Dockerfile +0 -0
  251. {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/rag-proxy.Dockerfile +0 -0
  252. {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/transcribe-proxy.Dockerfile +0 -0
  253. {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/tts.Dockerfile +0 -0
  254. {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/whisper.Dockerfile +0 -0
  255. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/CNAME +0 -0
  256. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/architecture/index.md +0 -0
  257. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/architecture/memory.md +0 -0
  258. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/architecture/rag.md +0 -0
  259. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/assistant.md +0 -0
  260. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/autocorrect.md +0 -0
  261. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/chat.md +0 -0
  262. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/config.md +0 -0
  263. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/daemon.md +0 -0
  264. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/dev.md +0 -0
  265. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/diarize-live-session.md +0 -0
  266. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/index.md +0 -0
  267. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/install-extras.md +0 -0
  268. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/install-hotkeys.md +0 -0
  269. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/install-services.md +0 -0
  270. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/memory.md +0 -0
  271. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/rag-proxy.md +0 -0
  272. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/server/index.md +0 -0
  273. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/server/transcribe-proxy.md +0 -0
  274. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/server/tts.md +0 -0
  275. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/server/whisper.md +0 -0
  276. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/speak.md +0 -0
  277. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/speakers.md +0 -0
  278. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/start-services.md +0 -0
  279. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/transcribe-live.md +0 -0
  280. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/transcribe.md +0 -0
  281. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/voice-edit.md +0 -0
  282. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/configuration.md +0 -0
  283. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/iOS_Shortcut_Guide.md +0 -0
  284. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/docker.md +0 -0
  285. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/index.md +0 -0
  286. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/linux.md +0 -0
  287. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/macos.md +0 -0
  288. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/nixos.md +0 -0
  289. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/windows.md +0 -0
  290. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/logo-avatar.svg +0 -0
  291. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/logo-clean.svg +0 -0
  292. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
  293. {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/run_markdown_code_runner.py +0 -0
  294. {agent_cli-0.96.9 → agent_cli-0.96.10}/example.agent-cli-config.toml +0 -0
  295. {agent_cli-0.96.9 → agent_cli-0.96.10}/justfile +0 -0
  296. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Package.resolved +0 -0
  297. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Package.swift +0 -0
  298. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Resources/AgentCLI.entitlements +0 -0
  299. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Resources/Info.plist +0 -0
  300. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Resources/dmg-background.svg +0 -0
  301. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AgentCLIApp.swift +0 -0
  302. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AgentCommand.swift +0 -0
  303. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AgentCommandRunner.swift +0 -0
  304. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AgentRuntime.swift +0 -0
  305. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AppDelegate.swift +0 -0
  306. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AppMetadata.swift +0 -0
  307. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AppUpdater.swift +0 -0
  308. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/BootstrapState.swift +0 -0
  309. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/CommandResult.swift +0 -0
  310. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/ConfigurableHotkeyController.swift +0 -0
  311. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/FocusedTextTarget.swift +0 -0
  312. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/LoginItemController.swift +0 -0
  313. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/MenuActivityStatus.swift +0 -0
  314. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/MenuActivityStatusRow.swift +0 -0
  315. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/MenuActivityTracker.swift +0 -0
  316. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/MenuBarIcon.swift +0 -0
  317. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/RecentTranscriptionReader.swift +0 -0
  318. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/RecordingIndicatorController.swift +0 -0
  319. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/RecordingSoundSettings.swift +0 -0
  320. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/RuntimeSettings.swift +0 -0
  321. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/SettingsWindowController.swift +0 -0
  322. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/Shortcuts.swift +0 -0
  323. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/StatusMenuController.swift +0 -0
  324. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/TranscriptPasteController.swift +0 -0
  325. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/TranscriptionSettings.swift +0 -0
  326. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/VoiceLevelOverlay.swift +0 -0
  327. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/AgentCommandTests.swift +0 -0
  328. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/LoginItemControllerTests.swift +0 -0
  329. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/RecentTranscriptionReaderTests.swift +0 -0
  330. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/RecordingIndicatorControllerTests.swift +0 -0
  331. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/ShortcutDefaultsTests.swift +0 -0
  332. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/VoiceLevelMeterTests.swift +0 -0
  333. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/build-macos-app.sh +0 -0
  334. {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/test-macos-app-e2e.sh +0 -0
  335. {agent_cli-0.96.9 → agent_cli-0.96.10}/pyproject.toml +0 -0
  336. {agent_cli-0.96.9 → agent_cli-0.96.10}/reddit.md +0 -0
  337. {agent_cli-0.96.9 → agent_cli-0.96.10}/shell.nix +0 -0
  338. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/__init__.py +0 -0
  339. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/__init__.py +0 -0
  340. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_fix_my_text.py +0 -0
  341. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_interactive.py +0 -0
  342. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_interactive_extra.py +0 -0
  343. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_memory_add.py +0 -0
  344. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_speak.py +0 -0
  345. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_speak_e2e.py +0 -0
  346. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_speakers.py +0 -0
  347. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe.py +0 -0
  348. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe_agent.py +0 -0
  349. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe_e2e.py +0 -0
  350. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe_live.py +0 -0
  351. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe_recovery.py +0 -0
  352. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_tts_common.py +0 -0
  353. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_tts_common_extra.py +0 -0
  354. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_voice_agent_common.py +0 -0
  355. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_voice_edit.py +0 -0
  356. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_voice_edit_e2e.py +0 -0
  357. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_wake_word_assistant.py +0 -0
  358. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/conftest.py +0 -0
  359. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/__init__.py +0 -0
  360. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_audio.py +0 -0
  361. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_audio_format.py +0 -0
  362. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_chroma.py +0 -0
  363. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_sse.py +0 -0
  364. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_vad.py +0 -0
  365. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_watch.py +0 -0
  366. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/__init__.py +0 -0
  367. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_cleanup.py +0 -0
  368. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_cli.py +0 -0
  369. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_coding_agents.py +0 -0
  370. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_editors.py +0 -0
  371. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_hooks.py +0 -0
  372. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_launch.py +0 -0
  373. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_project.py +0 -0
  374. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_terminals.py +0 -0
  375. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_verification.py +0 -0
  376. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_worktree.py +0 -0
  377. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/install/__init__.py +0 -0
  378. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/install/test_extras.py +0 -0
  379. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/install/test_launchd.py +0 -0
  380. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/__init__.py +0 -0
  381. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_api_health.py +0 -0
  382. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_api_integration_liveish.py +0 -0
  383. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_client.py +0 -0
  384. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_engine.py +0 -0
  385. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_files.py +0 -0
  386. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_filters.py +0 -0
  387. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_git_integration.py +0 -0
  388. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_indexer.py +0 -0
  389. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_memory_integration.py +0 -0
  390. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_proxy_passthrough.py +0 -0
  391. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_store.py +0 -0
  392. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_utils.py +0 -0
  393. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/mocks/__init__.py +0 -0
  394. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/mocks/audio.py +0 -0
  395. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/mocks/llm.py +0 -0
  396. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/mocks/wyoming.py +0 -0
  397. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/__init__.py +0 -0
  398. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_api.py +0 -0
  399. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_engine.py +0 -0
  400. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_history.py +0 -0
  401. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_indexer.py +0 -0
  402. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_indexing.py +0 -0
  403. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_rag_client.py +0 -0
  404. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_rag_integration_liveish.py +0 -0
  405. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_rag_proxy_passthrough.py +0 -0
  406. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_retriever.py +0 -0
  407. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_store.py +0 -0
  408. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_utils.py +0 -0
  409. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_alignment.py +0 -0
  410. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_api.py +0 -0
  411. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_api_integration.py +0 -0
  412. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_asr.py +0 -0
  413. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_asr_recovery.py +0 -0
  414. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_audio_e2e.py +0 -0
  415. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_cli.py +0 -0
  416. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_config.py +0 -0
  417. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_config_cmd.py +0 -0
  418. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_daemon.py +0 -0
  419. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_diarization.py +0 -0
  420. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_diarize_live_session.py +0 -0
  421. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_docs_gen.py +0 -0
  422. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_env_vars.py +0 -0
  423. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_faster_whisper_backend.py +0 -0
  424. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_json_output.py +0 -0
  425. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_llm.py +0 -0
  426. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_llm_gemini.py +0 -0
  427. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_memory_tools.py +0 -0
  428. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_mlx_backend.py +0 -0
  429. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_normalize_appcast.py +0 -0
  430. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_process_manager.py +0 -0
  431. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_requires_extras.py +0 -0
  432. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_server_streaming.py +0 -0
  433. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_server_tts.py +0 -0
  434. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_server_whisper.py +0 -0
  435. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_services.py +0 -0
  436. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_speaker_identity.py +0 -0
  437. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_tools.py +0 -0
  438. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_transformers_backend.py +0 -0
  439. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_tts.py +0 -0
  440. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_utils.py +0 -0
  441. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_wake_word.py +0 -0
  442. {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_wyoming_utils.py +0 -0
  443. {agent_cli-0.96.9 → agent_cli-0.96.10}/uv.lock +0 -0
  444. {agent_cli-0.96.9 → agent_cli-0.96.10}/zensical.toml +0 -0
@@ -46,15 +46,15 @@ jobs:
46
46
  df -h
47
47
 
48
48
  - name: Checkout repository
49
- uses: actions/checkout@v6
49
+ uses: actions/checkout@v6.0.3
50
50
  with:
51
51
  fetch-depth: 0 # Full history for version detection
52
52
 
53
53
  - name: Set up Docker Buildx
54
- uses: docker/setup-buildx-action@v4
54
+ uses: docker/setup-buildx-action@v4.1.0
55
55
 
56
56
  - name: Log in to Container Registry
57
- uses: docker/login-action@v4
57
+ uses: docker/login-action@v4.2.0
58
58
  with:
59
59
  registry: ${{ env.REGISTRY }}
60
60
  username: ${{ github.actor }}
@@ -71,7 +71,7 @@ jobs:
71
71
 
72
72
  - name: Extract metadata
73
73
  id: meta
74
- uses: docker/metadata-action@v6
74
+ uses: docker/metadata-action@v6.1.0
75
75
  with:
76
76
  images: ${{ env.REGISTRY }}/${{ github.repository }}-${{ matrix.image }}
77
77
  tags: |
@@ -80,7 +80,7 @@ jobs:
80
80
  type=sha,suffix=-${{ matrix.suffix }}
81
81
 
82
82
  - name: Build and push
83
- uses: docker/build-push-action@v7
83
+ uses: docker/build-push-action@v7.2.0
84
84
  with:
85
85
  context: .
86
86
  file: ${{ matrix.dockerfile }}
@@ -111,15 +111,15 @@ jobs:
111
111
 
112
112
  steps:
113
113
  - name: Checkout repository
114
- uses: actions/checkout@v6
114
+ uses: actions/checkout@v6.0.3
115
115
  with:
116
116
  fetch-depth: 0 # Full history for version detection
117
117
 
118
118
  - name: Set up Docker Buildx
119
- uses: docker/setup-buildx-action@v4
119
+ uses: docker/setup-buildx-action@v4.1.0
120
120
 
121
121
  - name: Log in to Container Registry
122
- uses: docker/login-action@v4
122
+ uses: docker/login-action@v4.2.0
123
123
  with:
124
124
  registry: ${{ env.REGISTRY }}
125
125
  username: ${{ github.actor }}
@@ -136,7 +136,7 @@ jobs:
136
136
 
137
137
  - name: Extract metadata
138
138
  id: meta
139
- uses: docker/metadata-action@v6
139
+ uses: docker/metadata-action@v6.1.0
140
140
  with:
141
141
  images: ${{ env.REGISTRY }}/${{ github.repository }}-${{ matrix.image }}
142
142
  tags: |
@@ -145,7 +145,7 @@ jobs:
145
145
  type=sha
146
146
 
147
147
  - name: Build and push
148
- uses: docker/build-push-action@v7
148
+ uses: docker/build-push-action@v7.2.0
149
149
  with:
150
150
  context: .
151
151
  file: ${{ matrix.dockerfile }}
@@ -27,12 +27,12 @@ jobs:
27
27
  build:
28
28
  runs-on: ubuntu-latest
29
29
  steps:
30
- - uses: actions/checkout@v6
30
+ - uses: actions/checkout@v6.0.3
31
31
  with:
32
32
  lfs: true
33
33
 
34
34
  - name: Install uv
35
- uses: astral-sh/setup-uv@v8.1.0
35
+ uses: astral-sh/setup-uv@v8.2.0
36
36
 
37
37
  - name: Set up Python
38
38
  run: uv python install 3.12
@@ -45,11 +45,11 @@ jobs:
45
45
 
46
46
  - name: Setup Pages
47
47
  if: github.event_name != 'pull_request'
48
- uses: actions/configure-pages@v6
48
+ uses: actions/configure-pages@v6.0.0
49
49
 
50
50
  - name: Upload artifact
51
51
  if: github.event_name != 'pull_request'
52
- uses: actions/upload-pages-artifact@v5
52
+ uses: actions/upload-pages-artifact@v5.0.0
53
53
  with:
54
54
  path: "./site"
55
55
 
@@ -63,4 +63,4 @@ jobs:
63
63
  steps:
64
64
  - name: Deploy to GitHub Pages
65
65
  id: deployment
66
- uses: actions/deploy-pages@v5
66
+ uses: actions/deploy-pages@v5.0.0
@@ -11,18 +11,18 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
13
  - name: Check out repository
14
- uses: actions/checkout@v6
14
+ uses: actions/checkout@v6.0.3
15
15
  with:
16
16
  persist-credentials: false
17
17
  fetch-depth: 0
18
18
 
19
19
  - name: Set up Python
20
- uses: actions/setup-python@v6
20
+ uses: actions/setup-python@v6.2.0
21
21
  with:
22
22
  python-version: "3.13.11"
23
23
 
24
24
  - name: Install uv
25
- uses: astral-sh/setup-uv@v8.1.0
25
+ uses: astral-sh/setup-uv@v8.2.0
26
26
 
27
27
  - name: Run markdown-code-runner
28
28
  env:
@@ -18,16 +18,16 @@ jobs:
18
18
  python-version: ["3.11", "3.13"]
19
19
 
20
20
  steps:
21
- - uses: actions/checkout@v6
21
+ - uses: actions/checkout@v6.0.3
22
22
  - name: Set up Python ${{ matrix.python-version }}
23
- uses: actions/setup-python@v6
23
+ uses: actions/setup-python@v6.2.0
24
24
  with:
25
25
  python-version: ${{ matrix.python-version }}
26
26
  - name: Install portaudio (Linux only)
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@v8.1.0
30
+ uses: astral-sh/setup-uv@v8.2.0
31
31
  - name: Run macOS app Swift tests
32
32
  if: matrix.os == 'macos-latest' && matrix.python-version == '3.13'
33
33
  run: swift test --package-path macos/AgentCLI --enable-xctest
@@ -39,6 +39,6 @@ jobs:
39
39
  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
40
40
  - name: Upload coverage reports to Codecov
41
41
  if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
42
- uses: codecov/codecov-action@v6
42
+ uses: codecov/codecov-action@v6.0.1
43
43
  env:
44
44
  CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -9,6 +9,6 @@ jobs:
9
9
  update_release_draft:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: release-drafter/release-drafter@v7
12
+ - uses: release-drafter/release-drafter@v7.3.1
13
13
  env:
14
14
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -14,9 +14,9 @@ jobs:
14
14
  permissions:
15
15
  id-token: write
16
16
  steps:
17
- - uses: actions/checkout@v6
17
+ - uses: actions/checkout@v6.0.3
18
18
  - name: Install uv
19
- uses: astral-sh/setup-uv@v8.1.0
19
+ uses: astral-sh/setup-uv@v8.2.0
20
20
  - name: Build
21
21
  run: uv build
22
22
  - name: Publish package distributions to PyPI
@@ -29,11 +29,11 @@ jobs:
29
29
  permissions:
30
30
  contents: write
31
31
  steps:
32
- - uses: actions/checkout@v6
32
+ - uses: actions/checkout@v6.0.3
33
33
  - name: Install uv
34
- uses: astral-sh/setup-uv@v8.1.0
34
+ uses: astral-sh/setup-uv@v8.2.0
35
35
  - name: Import Developer ID certificate
36
- uses: apple-actions/import-codesign-certs@v7
36
+ uses: apple-actions/import-codesign-certs@v7.0.0
37
37
  with:
38
38
  p12-file-base64: ${{ secrets.MACOS_CODESIGN_CERTIFICATE_BASE64 }}
39
39
  p12-password: ${{ secrets.MACOS_CODESIGN_CERTIFICATE_PASSWORD }}
@@ -109,26 +109,34 @@ jobs:
109
109
  "$APPCAST_DIR"
110
110
 
111
111
  cp "$APPCAST_DIR/appcast.xml" macos/appcast.xml
112
- - name: Update Homebrew cask and Sparkle appcast
112
+ - name: Update Sparkle appcast metadata
113
113
  env:
114
114
  TAG_NAME: ${{ github.event.release.tag_name }}
115
115
  run: |
116
- VERSION="${TAG_NAME#v}"
117
- SHA256=$(shasum -a 256 dist/macos/AgentCLI.dmg | awk '{ print $1 }')
118
-
119
- python3 .github/scripts/update_cask.py \
120
- --version "$VERSION" \
121
- --sha256 "$SHA256"
122
116
  python3 .github/scripts/normalize_appcast.py macos/appcast.xml
123
117
 
124
- if git diff --quiet -- Casks/agent-cli.rb macos/appcast.xml; then
125
- echo "Casks/agent-cli.rb and macos/appcast.xml are already up to date."
118
+ if git diff --quiet -- macos/appcast.xml; then
119
+ echo "macos/appcast.xml is already up to date."
126
120
  exit 0
127
121
  fi
128
122
 
129
123
  git config user.name "github-actions[bot]"
130
124
  git config user.email "github-actions[bot]@users.noreply.github.com"
131
- git add Casks/agent-cli.rb macos/appcast.xml
125
+ git add macos/appcast.xml
132
126
  git commit -m "Update AgentCLI release metadata to ${TAG_NAME}"
133
127
  git pull --rebase origin main
134
128
  git push origin HEAD:main
129
+ - name: Trigger Homebrew tap update
130
+ env:
131
+ GH_TOKEN: ${{ secrets.HOMEBREW_TAP_DISPATCH_TOKEN }}
132
+ TAG_NAME: ${{ github.event.release.tag_name }}
133
+ run: |
134
+ if [[ -z "$GH_TOKEN" ]]; then
135
+ echo "HOMEBREW_TAP_DISPATCH_TOKEN is required to update basnijholt/homebrew-tap." >&2
136
+ exit 1
137
+ fi
138
+
139
+ gh api repos/basnijholt/homebrew-tap/dispatches \
140
+ -f event_type=agent-cli-release \
141
+ -F "client_payload[tag_name]=$TAG_NAME" \
142
+ -F "client_payload[asset_url]=https://github.com/basnijholt/agent-cli/releases/download/${TAG_NAME}/AgentCLI.dmg"
@@ -5,6 +5,6 @@ jobs:
5
5
  name: TOC Generator
6
6
  runs-on: ubuntu-latest
7
7
  steps:
8
- - uses: technote-space/toc-generator@v4
8
+ - uses: technote-space/toc-generator@v4.3.1
9
9
  with:
10
10
  TOC_TITLE: ""
@@ -11,7 +11,7 @@ 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.14"
14
+ rev: "v0.15.15"
15
15
  hooks:
16
16
  - id: ruff
17
17
  args: ["--fix"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-cli
3
- Version: 0.96.9
3
+ Version: 0.96.10
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>
@@ -163,8 +163,7 @@ Since then I have expanded the tool with many more features, all focused on loca
163
163
  Install the native AgentCLI app with Homebrew:
164
164
 
165
165
  ```bash
166
- brew tap basnijholt/agent-cli https://github.com/basnijholt/agent-cli
167
- brew install --cask agent-cli
166
+ brew install --cask basnijholt/tap/agent-cli
168
167
  ```
169
168
 
170
169
  The app provides global shortcuts, a menu bar UI, automatic local Whisper setup on first transcription, and a private bundled `agent-cli` runtime. See the [macOS app guide](docs/installation/macos-app.md) for setup, updates, and uninstall instructions.
@@ -368,8 +367,7 @@ AgentCLI is also available as a native macOS menu bar app for voice workflows th
368
367
  Install it with Homebrew:
369
368
 
370
369
  ```bash
371
- brew tap basnijholt/agent-cli https://github.com/basnijholt/agent-cli
372
- brew install --cask agent-cli
370
+ brew install --cask basnijholt/tap/agent-cli
373
371
  ```
374
372
 
375
373
  The app is a SwiftUI wrapper around the same `agent-cli` commands. It bundles `uv`, installs a private `agent-cli[audio,llm]` runtime in your Application Support folder on first use, and starts the local Whisper daemon automatically the first time you transcribe.
@@ -58,8 +58,7 @@ Since then I have expanded the tool with many more features, all focused on loca
58
58
  Install the native AgentCLI app with Homebrew:
59
59
 
60
60
  ```bash
61
- brew tap basnijholt/agent-cli https://github.com/basnijholt/agent-cli
62
- brew install --cask agent-cli
61
+ brew install --cask basnijholt/tap/agent-cli
63
62
  ```
64
63
 
65
64
  The app provides global shortcuts, a menu bar UI, automatic local Whisper setup on first transcription, and a private bundled `agent-cli` runtime. See the [macOS app guide](docs/installation/macos-app.md) for setup, updates, and uninstall instructions.
@@ -263,8 +262,7 @@ AgentCLI is also available as a native macOS menu bar app for voice workflows th
263
262
  Install it with Homebrew:
264
263
 
265
264
  ```bash
266
- brew tap basnijholt/agent-cli https://github.com/basnijholt/agent-cli
267
- brew install --cask agent-cli
265
+ brew install --cask basnijholt/tap/agent-cli
268
266
  ```
269
267
 
270
268
  The app is a SwiftUI wrapper around the same `agent-cli` commands. It bundles `uv`, installs a private `agent-cli[audio,llm]` runtime in your Application Support folder on first use, and starts the local Whisper daemon automatically the first time you transcribe.
@@ -22,8 +22,7 @@ Before you begin, ensure you have:
22
22
  For the native Mac app with global shortcuts and automatic local Whisper setup:
23
23
 
24
24
  ```bash
25
- brew tap basnijholt/agent-cli https://github.com/basnijholt/agent-cli
26
- brew install --cask agent-cli
25
+ brew install --cask basnijholt/tap/agent-cli
27
26
  ```
28
27
 
29
28
  See: [macOS Menu Bar App](installation/macos-app.md)
@@ -74,8 +74,7 @@ Since then I have expanded the tool with many more features, all focused on loca
74
74
  Install the native menu bar app with Homebrew:
75
75
 
76
76
  ```bash
77
- brew tap basnijholt/agent-cli https://github.com/basnijholt/agent-cli
78
- brew install --cask agent-cli
77
+ brew install --cask basnijholt/tap/agent-cli
79
78
  ```
80
79
 
81
80
  The app provides global shortcuts, a menu bar UI, automatic local Whisper setup, and a private bundled `agent-cli` runtime. See the [macOS app guide](installation/macos-app.md).
@@ -20,18 +20,11 @@ The app is a SwiftUI wrapper around the same `agent-cli` commands. It bundles `u
20
20
  Install the signed app release with the Homebrew cask:
21
21
 
22
22
  ```bash
23
- brew tap basnijholt/agent-cli https://github.com/basnijholt/agent-cli
24
- brew install --cask agent-cli
23
+ brew install --cask basnijholt/tap/agent-cli
25
24
  ```
26
25
 
27
26
  Then open **AgentCLI** from `/Applications` or Spotlight.
28
27
 
29
- If you already cloned the repository and want to install the cask from the local checkout:
30
-
31
- ```bash
32
- brew install --cask ./Casks/agent-cli.rb
33
- ```
34
-
35
28
  ## First Launch
36
29
 
37
30
  1. Open **AgentCLI**.
@@ -17,8 +17,7 @@ Agent CLI is designed to work with system-wide hotkeys, allowing you to trigger
17
17
  For the easiest macOS hotkey workflow, install the native AgentCLI menu bar app:
18
18
 
19
19
  ```bash
20
- brew tap basnijholt/agent-cli https://github.com/basnijholt/agent-cli
21
- brew install --cask agent-cli
20
+ brew install --cask basnijholt/tap/agent-cli
22
21
  ```
23
22
 
24
23
  The app registers global shortcuts itself and can manage a private `agent-cli` runtime. See the [macOS app guide](installation/macos-app.md).
@@ -111,6 +111,8 @@ workflow expects these repository secrets:
111
111
  - `APPLE_APP_SPECIFIC_PASSWORD`: app-specific password for `notarytool`
112
112
  - `APPLE_TEAM_ID`: Apple Developer Team ID
113
113
  - `SPARKLE_PRIVATE_ED_KEY`: private Sparkle EdDSA key for signing updates
114
+ - `HOMEBREW_TAP_DISPATCH_TOKEN`: fine-grained token with Contents write access
115
+ to `basnijholt/homebrew-tap`, used to trigger the tap cask update workflow
114
116
 
115
117
  The workflow also expects the repository variable `SPARKLE_PUBLIC_ED_KEY`.
116
118
  Generate the key pair with Sparkle's `generate_keys` tool and store only the
@@ -4,6 +4,22 @@
4
4
  <title>Agent CLI Updates</title>
5
5
  <link>https://github.com/basnijholt/agent-cli</link>
6
6
  <description>Signed Agent CLI macOS app updates.</description>
7
+ <item>
8
+ <title>0.96.9</title>
9
+ <pubDate>Fri, 29 May 2026 17:56:24 +0000</pubDate>
10
+ <link>https://github.com/basnijholt/agent-cli</link>
11
+ <sparkle:version>183</sparkle:version>
12
+ <sparkle:shortVersionString>0.96.9</sparkle:shortVersionString>
13
+ <sparkle:minimumSystemVersion>13.0</sparkle:minimumSystemVersion>
14
+ <sparkle:hardwareRequirements>arm64</sparkle:hardwareRequirements>
15
+ <description sparkle:format="markdown"><![CDATA[## What’s Changed
16
+
17
+ * Fix recording overlay shadow clipping (#560) @basnijholt
18
+ * Improve speaker review and clean segment selection (#479) @basnijholt
19
+
20
+ ]]></description>
21
+ <enclosure url="https://github.com/basnijholt/agent-cli/releases/download/v0.96.9/AgentCLI.zip" length="22750010" type="application/octet-stream" sparkle:edSignature="semUotDS9kCm4NJKcULqF9E7UyZLzP9HfwAWArIXmDWpRe7Ib22YHL6II4lQ6YZSi7mltwWvQMACO0V0r0o+AQ=="/>
22
+ </item>
7
23
  <item>
8
24
  <title>0.96.8</title>
9
25
  <pubDate>Fri, 29 May 2026 17:28:43 +0000</pubDate>
@@ -150,20 +166,5 @@
150
166
  ]]></description>
151
167
  <enclosure url="https://github.com/basnijholt/agent-cli/releases/download/v0.96.0/AgentCLI.zip" length="22728280" type="application/octet-stream" sparkle:edSignature="7sr0rCM9T7/MZevvaLJppkWJyMmIBmkgVUUsk+mc37fl6uVfacDmhBokYwlr/qAPWGlK1rtK/Q162LWtwSppAw=="/>
152
168
  </item>
153
- <item>
154
- <title>0.95.15</title>
155
- <pubDate>Fri, 29 May 2026 05:12:00 +0000</pubDate>
156
- <link>https://github.com/basnijholt/agent-cli</link>
157
- <sparkle:version>173</sparkle:version>
158
- <sparkle:shortVersionString>0.95.15</sparkle:shortVersionString>
159
- <sparkle:minimumSystemVersion>13.0</sparkle:minimumSystemVersion>
160
- <sparkle:hardwareRequirements>arm64</sparkle:hardwareRequirements>
161
- <description sparkle:format="markdown"><![CDATA[## What’s Changed
162
-
163
- * Fix macOS settings lifecycle and live status timer (#541) @basnijholt
164
-
165
- ]]></description>
166
- <enclosure url="https://github.com/basnijholt/agent-cli/releases/download/v0.95.15/AgentCLI.zip" length="22722868" type="application/octet-stream" sparkle:edSignature="w2mkinRfdABOgQ4rN6UsF3Pgdj8v/rFfdoL6iH35SyurXFuibKbVaew4W/MHz65zPBtAGme9okAPbMjg1FuHAA=="/>
167
- </item>
168
169
  </channel>
169
170
  </rss>
@@ -17,6 +17,13 @@ BUILD_SCRIPT = ROOT / "macos" / "build-macos-app.sh"
17
17
  E2E_SCRIPT = ROOT / "macos" / "test-macos-app-e2e.sh"
18
18
  LOGO_SVG = ROOT / "docs" / "logo-clean.svg"
19
19
  MENU_BAR_LOGO_SVG = ROOT / "docs" / "logo-avatar.svg"
20
+ MACOS_APP_INSTALL_DOCS = [
21
+ ROOT / "README.md",
22
+ ROOT / "docs" / "getting-started.md",
23
+ ROOT / "docs" / "index.md",
24
+ ROOT / "docs" / "system-integration.md",
25
+ ROOT / "docs" / "installation" / "macos-app.md",
26
+ ]
20
27
 
21
28
 
22
29
  def assert_script_executable(path: Path) -> None:
@@ -67,6 +74,26 @@ def test_macos_app_package_files_exist() -> None:
67
74
  assert MENU_BAR_LOGO_SVG.is_file()
68
75
 
69
76
 
77
+ def test_macos_app_homebrew_docs_use_tap_cask_one_liner() -> None:
78
+ """Homebrew tap shorthand should use the public basnijholt/homebrew-tap repo."""
79
+ install_command = "brew install --cask basnijholt/tap/agent-cli"
80
+
81
+ for path in MACOS_APP_INSTALL_DOCS:
82
+ text = path.read_text(encoding="utf-8")
83
+ assert install_command in text, path
84
+ assert "\nbrew tap basnijholt/agent-cli\n" not in text, path
85
+ assert "brew install --cask basnijholt/agent-cli/agent-cli" not in text, path
86
+ assert (
87
+ "brew tap basnijholt/agent-cli https://github.com/basnijholt/agent-cli.git" not in text
88
+ ), path
89
+
90
+
91
+ def test_homebrew_cask_is_owned_by_homebrew_tap_repo() -> None:
92
+ """The external homebrew-tap repo owns cask contents and updates."""
93
+ assert not (ROOT / "Casks" / "agent-cli.rb").exists()
94
+ assert not (ROOT / ".github" / "scripts" / "update_cask.py").exists()
95
+
96
+
70
97
  def test_macos_app_depends_on_keyboardshortcuts_package() -> None:
71
98
  """KeyboardShortcuts README documents SPM install from this URL."""
72
99
  package = (MACOS_APP / "Package.swift").read_text(encoding="utf-8")
@@ -289,10 +316,18 @@ def test_release_workflow_publishes_macos_app_asset() -> None:
289
316
  assert "NOTARIZE=1" in workflow
290
317
  assert "gh release upload" in workflow
291
318
  assert "dist/macos/AgentCLI.dmg" in workflow
319
+ assert "name: Trigger Homebrew tap update" in workflow
320
+ assert "HOMEBREW_TAP_DISPATCH_TOKEN" in workflow
321
+ assert "repos/basnijholt/homebrew-tap/dispatches" in workflow
322
+ assert "event_type=agent-cli-release" in workflow
323
+ assert "client_payload[tag_name]" in workflow
324
+ assert "client_payload[asset_url]" in workflow
292
325
  assert "python3 .github/scripts/normalize_appcast.py macos/appcast.xml" in workflow
293
326
  assert workflow.index(
294
327
  "python3 .github/scripts/normalize_appcast.py macos/appcast.xml"
295
- ) < workflow.index("if git diff --quiet -- Casks/agent-cli.rb macos/appcast.xml; then")
328
+ ) < workflow.index("if git diff --quiet -- macos/appcast.xml; then")
329
+ assert "python3 .github/scripts/update_cask.py" not in workflow
330
+ assert "Casks/agent-cli.rb" not in workflow
296
331
 
297
332
 
298
333
  def test_macos_app_has_end_to_end_packaging_test() -> None:
@@ -1,87 +0,0 @@
1
- """Update the Agent CLI Homebrew cask version and checksum."""
2
-
3
- from __future__ import annotations
4
-
5
- import argparse
6
- import re
7
- from pathlib import Path
8
-
9
- VERSION_RE = re.compile(r'^(?P<indent>\s*)version "[^"]+"$')
10
- SHA256_RE = re.compile(r'^(?P<indent>\s*)sha256 "[0-9a-f]{64}"$')
11
-
12
-
13
- def _validate_sha256(value: str) -> str:
14
- if not re.fullmatch(r"[0-9a-f]{64}", value):
15
- msg = "sha256 must be 64 lowercase hexadecimal characters"
16
- raise ValueError(msg)
17
- return value
18
-
19
-
20
- def _validate_version(value: str) -> str:
21
- value = value.removeprefix("v")
22
- if not re.fullmatch(r"\d+(?:\.\d+)*(?:[-,._A-Za-z0-9]+)?", value):
23
- msg = f"unsupported cask version: {value}"
24
- raise ValueError(msg)
25
- return value
26
-
27
-
28
- def update_cask_text(text: str, *, version: str, sha256: str) -> str:
29
- """Replace the single version and sha256 stanzas in a cask."""
30
- version = _validate_version(version)
31
- sha256 = _validate_sha256(sha256)
32
-
33
- version_count = 0
34
- sha256_count = 0
35
- lines: list[str] = []
36
- for source_line in text.splitlines(keepends=True):
37
- newline = "\n" if source_line.endswith("\n") else ""
38
- content = source_line.removesuffix("\n")
39
-
40
- if match := VERSION_RE.match(content):
41
- output_line = f'{match.group("indent")}version "{version}"{newline}'
42
- version_count += 1
43
- elif match := SHA256_RE.match(content):
44
- output_line = f'{match.group("indent")}sha256 "{sha256}"{newline}'
45
- sha256_count += 1
46
- else:
47
- output_line = source_line
48
- lines.append(output_line)
49
-
50
- if version_count != 1:
51
- msg = f"expected exactly one version stanza, found {version_count}"
52
- raise ValueError(msg)
53
- if sha256_count != 1:
54
- msg = f"expected exactly one sha256 stanza, found {sha256_count}"
55
- raise ValueError(msg)
56
-
57
- return "".join(lines)
58
-
59
-
60
- def update_cask_file(path: Path, *, version: str, sha256: str) -> None:
61
- """Update a cask file in place."""
62
- path.write_text(
63
- update_cask_text(path.read_text(), version=version, sha256=sha256),
64
- encoding="utf-8",
65
- )
66
-
67
-
68
- def main() -> None:
69
- """Run the command-line cask updater."""
70
- parser = argparse.ArgumentParser(description=__doc__)
71
- parser.add_argument(
72
- "--cask",
73
- type=Path,
74
- default=Path("Casks/agent-cli.rb"),
75
- help="Path to the cask file to update.",
76
- )
77
- parser.add_argument(
78
- "--version", required=True, help="Release version, with or without v prefix."
79
- )
80
- parser.add_argument("--sha256", required=True, help="SHA-256 checksum for the release DMG.")
81
- args = parser.parse_args()
82
-
83
- update_cask_file(args.cask, version=args.version, sha256=args.sha256)
84
-
85
-
86
- if __name__ == "__main__":
87
- main()
@@ -1,29 +0,0 @@
1
- cask "agent-cli" do
2
- version "0.96.8"
3
- sha256 "6d51c95840a349ba4dbcc4c87c4eec14d40cd06ff0975850e3ddabeea5dea887"
4
-
5
- url "https://github.com/basnijholt/agent-cli/releases/download/v#{version}/AgentCLI.dmg"
6
- name "Agent CLI"
7
- desc "Local-first AI voice and text tools with menu bar integration"
8
- homepage "https://github.com/basnijholt/agent-cli"
9
-
10
- livecheck do
11
- url :url
12
- strategy :github_latest
13
- end
14
-
15
- depends_on arch: :arm64
16
- depends_on macos: :ventura
17
-
18
- app "AgentCLI.app"
19
-
20
- uninstall launchctl: "com.agent_cli.whisper",
21
- quit: "lt.nijho.agent-cli.menubar"
22
-
23
- zap trash: [
24
- "~/Library/Application Support/AgentCLI",
25
- "~/Library/LaunchAgents/com.agent_cli.whisper.plist",
26
- "~/Library/Logs/agent-cli-whisper",
27
- "~/Library/Preferences/lt.nijho.agent-cli.menubar.plist",
28
- ]
29
- end
@@ -1,51 +0,0 @@
1
- """Tests for the release cask updater."""
2
-
3
- from __future__ import annotations
4
-
5
- import importlib.util
6
- from pathlib import Path
7
-
8
- import pytest
9
-
10
- SCRIPT_PATH = Path(__file__).parents[1] / ".github" / "scripts" / "update_cask.py"
11
- spec = importlib.util.spec_from_file_location("update_cask", SCRIPT_PATH)
12
- assert spec is not None
13
- assert spec.loader is not None
14
- update_cask = importlib.util.module_from_spec(spec)
15
- spec.loader.exec_module(update_cask)
16
- update_cask_text = update_cask.update_cask_text
17
-
18
-
19
- CASK = """cask "agent-cli" do
20
- version "0.95.7"
21
- sha256 "9db4a8d9f44765e1197d687a46e4cde041ada2d5284e6a22324c706d2a40848e"
22
-
23
- url "https://github.com/basnijholt/agent-cli/releases/download/v#{version}/AgentCLI.dmg"
24
- end
25
- """
26
-
27
-
28
- def test_update_cask_text_replaces_version_and_sha256() -> None:
29
- updated = update_cask_text(
30
- CASK,
31
- version="v0.95.8",
32
- sha256="60273504f3c4bea181db64033790e0290bf1b53b86a1386afa3d41216a172029",
33
- )
34
-
35
- assert ' version "0.95.8"' in updated
36
- assert ' sha256 "60273504f3c4bea181db64033790e0290bf1b53b86a1386afa3d41216a172029"' in updated
37
- assert "v#{version}" in updated
38
-
39
-
40
- def test_update_cask_text_rejects_invalid_sha256() -> None:
41
- with pytest.raises(ValueError, match="sha256"):
42
- update_cask_text(CASK, version="0.95.8", sha256="bad")
43
-
44
-
45
- def test_update_cask_text_requires_one_version_stanza() -> None:
46
- with pytest.raises(ValueError, match="expected exactly one version"):
47
- update_cask_text(
48
- CASK.replace(' version "0.95.7"\n', ""),
49
- version="0.95.8",
50
- sha256="60273504f3c4bea181db64033790e0290bf1b53b86a1386afa3d41216a172029",
51
- )