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.
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/docker.yml +10 -10
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/docs.yml +5 -5
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/markdown-code-runner.yml +3 -3
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/pytest.yml +4 -4
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/release-drafter.yml +1 -1
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/release.yml +23 -15
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/toc.yaml +1 -1
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.pre-commit-config.yaml +1 -1
- {agent_cli-0.96.9 → agent_cli-0.96.10}/PKG-INFO +3 -5
- {agent_cli-0.96.9 → agent_cli-0.96.10}/README.md +2 -4
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/getting-started.md +1 -2
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/index.md +1 -2
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/macos-app.md +1 -8
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/system-integration.md +1 -2
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/README.md +2 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/appcast.xml +16 -15
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_macos_app.py +36 -1
- agent_cli-0.96.9/.github/scripts/update_cask.py +0 -87
- agent_cli-0.96.9/Casks/agent-cli.rb +0 -29
- agent_cli-0.96.9/tests/test_update_cask.py +0 -51
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/README.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.cursorrules +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.dockerignore +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.env.example +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/logo.svg +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/release-drafter.yml +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/renovate.json +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/normalize_appcast.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/sync_extras.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.gitignore +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.jscpd.json +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.prompts/docs-review.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/.prompts/pr-review.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/CLAUDE.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/LICENSE +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/LLAMA_SERVER_USAGE.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/__main__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_extras.json +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/diarization.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/vectordb.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/whisper-transformers.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/_tools.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/diarize_live_session.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/speakers.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/transcribe_live.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/api.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/cli.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/config.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/constants.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/alignment.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/diarization.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/process.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/speaker_identity.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/daemon/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/daemon/cli.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/_branch_name.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/_config.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/_output.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/cleanup.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/cli.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/hooks.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/launch.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/example-config.toml +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/common.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/hotkeys.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/launchd.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/service_config.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/services.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/install/systemd.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/opts.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/py.typed +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/common.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/backends/transformers.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/docker-compose.yml +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/memory-proxy.Dockerfile +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/rag-proxy.Dockerfile +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/transcribe-proxy.Dockerfile +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/tts.Dockerfile +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docker/whisper.Dockerfile +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/CNAME +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/architecture/index.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/architecture/memory.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/architecture/rag.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/assistant.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/chat.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/config.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/daemon.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/dev.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/diarize-live-session.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/index.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/install-extras.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/install-services.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/memory.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/server/index.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/speak.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/speakers.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/start-services.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/transcribe-live.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/configuration.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/docker.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/index.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/linux.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/macos.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/nixos.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/installation/windows.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/logo-avatar.svg +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/logo-clean.svg +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/justfile +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Package.resolved +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Package.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Resources/AgentCLI.entitlements +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Resources/Info.plist +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Resources/dmg-background.svg +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AgentCLIApp.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AgentCommand.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AgentCommandRunner.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AgentRuntime.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AppDelegate.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AppMetadata.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/AppUpdater.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/BootstrapState.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/CommandResult.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/ConfigurableHotkeyController.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/FocusedTextTarget.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/LoginItemController.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/MenuActivityStatus.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/MenuActivityStatusRow.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/MenuActivityTracker.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/MenuBarIcon.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/RecentTranscriptionReader.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/RecordingIndicatorController.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/RecordingSoundSettings.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/RuntimeSettings.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/SettingsWindowController.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/Shortcuts.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/StatusMenuController.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/TranscriptPasteController.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/TranscriptionSettings.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Sources/AgentCLI/VoiceLevelOverlay.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/AgentCommandTests.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/LoginItemControllerTests.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/RecentTranscriptionReaderTests.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/RecordingIndicatorControllerTests.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/ShortcutDefaultsTests.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/AgentCLI/Tests/AgentCLITests/VoiceLevelMeterTests.swift +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/build-macos-app.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/macos/test-macos-app-e2e.sh +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/pyproject.toml +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/reddit.md +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/shell.nix +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_speakers.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe_live.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/conftest.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_audio.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_sse.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_vad.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/core/test_watch.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_cleanup.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_hooks.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_launch.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_project.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/install/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/install/test_extras.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/install/test_launchd.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_client.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_files.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_store.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/mocks/audio.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/mocks/llm.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/__init__.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_api.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_history.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_store.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_alignment.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_api.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_api_integration.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_asr.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_cli.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_config.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_config_cmd.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_daemon.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_diarization.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_diarize_live_session.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_env_vars.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_faster_whisper_backend.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_json_output.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_llm.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_normalize_appcast.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_process_manager.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_server_tts.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_services.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_speaker_identity.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_tools.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_transformers_backend.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_tts.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_utils.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_wake_word.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.96.9 → agent_cli-0.96.10}/uv.lock +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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 }}
|
|
@@ -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.
|
|
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.
|
|
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
|
|
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 --
|
|
125
|
-
echo "
|
|
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
|
|
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"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.96.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 --
|
|
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
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|