agent-cli 0.105.0__tar.gz → 0.105.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_cli-0.105.0 → agent_cli-0.105.1}/PKG-INFO +1 -1
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/backends/transformers.py +41 -2
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/server/whisper.md +1 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/appcast.xml +16 -15
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_transformers_backend.py +102 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.claude-plugin/README.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.cursorrules +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.dockerignore +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.env.example +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/logo.svg +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/release-drafter.yml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/renovate.json +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/scripts/normalize_appcast.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/scripts/sync_extras.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/workflows/docker.yml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/workflows/release.yml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.gitignore +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.jscpd.json +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.pre-commit-config.yaml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.prompts/docs-review.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/.prompts/pr-review.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/CLAUDE.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/LICENSE +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/LLAMA_SERVER_USAGE.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/README.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/__main__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_extras.json +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_overrides/nemo-whisper.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/diarization.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/nemo-whisper.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/vectordb.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/whisper-transformers.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/_tools.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/diarize_live_session.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/speakers.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/transcribe_live.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/api.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/cli.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/config.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/constants.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/alignment.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/diarization.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/process.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/speaker_identity.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/daemon/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/daemon/cli.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/_branch_name.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/_config.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/_output.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/cleanup.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/cli.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/hooks.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/launch.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/cmux.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/example-config.toml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/install/common.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/install/hotkeys.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/install/launchd.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/install/service_config.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/install/services.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/install/systemd.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/opts.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/py.typed +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/common.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/proxy/diarization.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/backends/nemo.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docker/diarization.Dockerfile +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docker/docker-compose.yml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docker/memory-proxy.Dockerfile +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docker/rag-proxy.Dockerfile +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docker/transcribe-proxy.Dockerfile +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docker/tts.Dockerfile +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docker/whisper.Dockerfile +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/CNAME +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/architecture/index.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/architecture/memory.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/architecture/rag.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/assistant.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/chat.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/config.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/daemon.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/dev.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/diarize-live-session.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/index.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/install-extras.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/install-services.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/memory.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/server/index.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/speak.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/speakers.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/start-services.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/transcribe-live.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/configuration.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/getting-started.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/index.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/installation/docker.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/installation/index.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/installation/linux.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/installation/macos-app.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/installation/macos.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/installation/nixos.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/installation/windows.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/logo-avatar.svg +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/logo-clean.svg +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/docs/system-integration.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/justfile +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Package.resolved +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Package.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/README.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Resources/AgentCLI.entitlements +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Resources/Info.plist +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Resources/dmg-background.svg +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/AgentCLIApp.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/AgentCommand.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/AgentCommandRunner.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/AgentRuntime.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/AppDelegate.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/AppMetadata.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/AppUpdater.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/BootstrapState.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/CommandResult.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/ConfigurableHotkeyController.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/FocusedTextTarget.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/LiveTranscriptionPreview.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/LoginItemController.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/MenuActivityStatus.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/MenuActivityStatusRow.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/MenuActivityTracker.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/MenuBarIcon.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/RecentTranscriptionReader.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/RecordingIndicatorController.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/RecordingSoundSettings.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/RuntimeSettings.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/SettingsWindowController.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/Shortcuts.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/StatusMenuController.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/TranscriptPasteController.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/TranscriptionSettings.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Sources/AgentCLI/VoiceLevelOverlay.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Tests/AgentCLITests/AgentCommandTests.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Tests/AgentCLITests/ConfigurableHotkeyControllerTests.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Tests/AgentCLITests/LivePreviewSwiftTestingTests.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Tests/AgentCLITests/LiveTranscriptionPreviewTests.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Tests/AgentCLITests/LoginItemControllerTests.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Tests/AgentCLITests/RecentTranscriptionReaderTests.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Tests/AgentCLITests/RecordingIndicatorControllerTests.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Tests/AgentCLITests/ShortcutDefaultsTests.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/AgentCLI/Tests/AgentCLITests/VoiceLevelMeterTests.swift +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/build-macos-app.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/macos/test-macos-app-e2e.sh +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/pyproject.toml +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/reddit.md +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/shell.nix +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_speakers.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_transcribe_live.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/conftest.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/core/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/core/test_audio.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/core/test_audio_levels.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/core/test_sse.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/core/test_vad.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/core/test_watch.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_cleanup.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_hooks.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_launch.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_project.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/install/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/install/test_extras.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/install/test_launchd.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_client.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_files.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_store.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/mocks/audio.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/mocks/llm.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/__init__.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_api.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_history.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_store.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_alignment.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_api.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_api_integration.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_asr.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_cli.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_config.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_config_cmd.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_daemon.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_diarization.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_diarize_live_session.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_env_vars.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_faster_whisper_backend.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_json_output.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_llm.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_macos_app.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_nemo_backend.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_normalize_appcast.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_process_manager.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_proxy_diarization.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_server_tts.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_server_tts_wyoming.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_server_whisper_wyoming.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_services.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_speaker_identity.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_tools.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_tts.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_utils.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_wake_word.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/uv.lock +0 -0
- {agent_cli-0.105.0 → agent_cli-0.105.1}/zensical.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.105.
|
|
3
|
+
Version: 0.105.1
|
|
4
4
|
Summary: A suite of AI-powered command-line tools for text correction, audio transcription, and voice assistance.
|
|
5
5
|
Project-URL: Homepage, https://github.com/basnijholt/agent-cli
|
|
6
6
|
Author-email: Bas Nijholt <bas@nijho.lt>
|
|
@@ -6,6 +6,7 @@ import asyncio
|
|
|
6
6
|
import logging
|
|
7
7
|
import tempfile
|
|
8
8
|
import time
|
|
9
|
+
import traceback
|
|
9
10
|
import wave
|
|
10
11
|
from concurrent.futures import ProcessPoolExecutor
|
|
11
12
|
from dataclasses import dataclass
|
|
@@ -428,8 +429,8 @@ def _transcribe_with_generate(
|
|
|
428
429
|
)
|
|
429
430
|
|
|
430
431
|
|
|
431
|
-
def
|
|
432
|
-
"""
|
|
432
|
+
def _transcribe_with_loaded_model(kwargs: dict[str, Any]) -> dict[str, Any]:
|
|
433
|
+
"""Dispatch transcription using the model retained in this worker."""
|
|
433
434
|
if _state.model is None or _state.processor is None:
|
|
434
435
|
msg = "Model not loaded in subprocess. Call _load_model_in_subprocess first."
|
|
435
436
|
raise RuntimeError(msg)
|
|
@@ -479,6 +480,44 @@ def _transcribe_in_subprocess(kwargs: dict[str, Any]) -> dict[str, Any]:
|
|
|
479
480
|
)
|
|
480
481
|
|
|
481
482
|
|
|
483
|
+
def _clear_exception_frames(exc: BaseException) -> None:
|
|
484
|
+
"""Release helper locals retained by an exception and its chained failures."""
|
|
485
|
+
pending = [exc]
|
|
486
|
+
seen: set[int] = set()
|
|
487
|
+
while pending:
|
|
488
|
+
current = pending.pop()
|
|
489
|
+
if id(current) in seen:
|
|
490
|
+
continue
|
|
491
|
+
seen.add(id(current))
|
|
492
|
+
traceback.clear_frames(current.__traceback__)
|
|
493
|
+
pending.extend(
|
|
494
|
+
error for error in (current.__cause__, current.__context__) if error is not None
|
|
495
|
+
)
|
|
496
|
+
if isinstance(current, BaseExceptionGroup):
|
|
497
|
+
pending.extend(current.exceptions)
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
def _transcribe_in_subprocess(kwargs: dict[str, Any]) -> dict[str, Any]:
|
|
501
|
+
"""Transcribe and return unused CUDA memory while keeping model weights loaded."""
|
|
502
|
+
if not _state.device or not _state.device.startswith("cuda"):
|
|
503
|
+
return _transcribe_with_loaded_model(kwargs)
|
|
504
|
+
|
|
505
|
+
import torch # noqa: PLC0415
|
|
506
|
+
|
|
507
|
+
try:
|
|
508
|
+
return _transcribe_with_loaded_model(kwargs)
|
|
509
|
+
except BaseException as exc:
|
|
510
|
+
# Failed helper frames otherwise keep temporary tensors live until the
|
|
511
|
+
# executor serializes the exception, which happens after our finally.
|
|
512
|
+
# Clear locals without losing the traceback's function names and lines.
|
|
513
|
+
_clear_exception_frames(exc)
|
|
514
|
+
raise
|
|
515
|
+
finally:
|
|
516
|
+
# Helper frames have returned, so their temporary tensors are now free.
|
|
517
|
+
# Only unused allocator blocks are released; model weights stay resident.
|
|
518
|
+
torch.cuda.empty_cache()
|
|
519
|
+
|
|
520
|
+
|
|
482
521
|
class TransformersWhisperBackend:
|
|
483
522
|
"""ASR backend using HuggingFace transformers.
|
|
484
523
|
|
|
@@ -55,6 +55,7 @@ Run a local ASR server with automatic backend selection based on your platform:
|
|
|
55
55
|
- **OpenAI-compatible API** at `/v1/audio/transcriptions` - drop-in replacement for OpenAI's Whisper API
|
|
56
56
|
- **Wyoming protocol** for [Home Assistant](https://www.home-assistant.io/) voice integration (Wyoming is the standard protocol for local voice services)
|
|
57
57
|
- **TTL-based memory management** - models unload after idle period, freeing RAM/VRAM
|
|
58
|
+
- **CUDA cache cleanup** - the transformers backend releases unused GPU cache after each transcription while keeping model weights loaded
|
|
58
59
|
- **Multiple models** - run different model sizes with independent TTLs
|
|
59
60
|
- **Background preloading** - downloads start at startup without blocking; use `--preload` to wait
|
|
60
61
|
- **Multi-platform support** - automatically uses the optimal backend for your hardware (`auto` switches to `nemo` for Parakeet models)
|
|
@@ -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.105.0</title>
|
|
9
|
+
<pubDate>Tue, 08 Sep 2026 10:29:52 +0000</pubDate>
|
|
10
|
+
<link>https://github.com/basnijholt/agent-cli</link>
|
|
11
|
+
<sparkle:version>204</sparkle:version>
|
|
12
|
+
<sparkle:shortVersionString>0.105.0</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
|
+
* Prevent Qwen long-audio truncation (#641) @basnijholt
|
|
18
|
+
* Publish diarization Docker image (#640) @basnijholt
|
|
19
|
+
|
|
20
|
+
]]></description>
|
|
21
|
+
<enclosure url="https://github.com/basnijholt/agent-cli/releases/download/v0.105.0/AgentCLI.zip" length="18454913" type="application/octet-stream" sparkle:edSignature="Z3253GuNAV6GC2V4Qib0Bm7m8bSdlWHPiXeHIZNa06qAJaY+qRXzrSPRyT8iZW5GnkZOJHciIbqvkkoJ9/DoCw=="/>
|
|
22
|
+
</item>
|
|
7
23
|
<item>
|
|
8
24
|
<title>0.104.0</title>
|
|
9
25
|
<pubDate>Mon, 07 Sep 2026 21:38:19 +0000</pubDate>
|
|
@@ -193,20 +209,5 @@
|
|
|
193
209
|
]]></description>
|
|
194
210
|
<enclosure url="https://github.com/basnijholt/agent-cli/releases/download/v0.100.0/AgentCLI.zip" length="22908645" type="application/octet-stream" sparkle:edSignature="2xn/3yQOqyqwCQ5871EAgFra/D/z6UrDl1B+ZxUh7PnOxJpL4Oe44UzQgjFB+LJXzqrY6Kmqvu9GBmk+3aZ1Ag=="/>
|
|
195
211
|
</item>
|
|
196
|
-
<item>
|
|
197
|
-
<title>0.99.0</title>
|
|
198
|
-
<pubDate>Fri, 05 Jun 2026 22:57:28 +0000</pubDate>
|
|
199
|
-
<link>https://github.com/basnijholt/agent-cli</link>
|
|
200
|
-
<sparkle:version>194</sparkle:version>
|
|
201
|
-
<sparkle:shortVersionString>0.99.0</sparkle:shortVersionString>
|
|
202
|
-
<sparkle:minimumSystemVersion>13.0</sparkle:minimumSystemVersion>
|
|
203
|
-
<sparkle:hardwareRequirements>arm64</sparkle:hardwareRequirements>
|
|
204
|
-
<description sparkle:format="markdown"><![CDATA[## What’s Changed
|
|
205
|
-
|
|
206
|
-
* Add live transcription preview (#571) @basnijholt
|
|
207
|
-
|
|
208
|
-
]]></description>
|
|
209
|
-
<enclosure url="https://github.com/basnijholt/agent-cli/releases/download/v0.99.0/AgentCLI.zip" length="22924494" type="application/octet-stream" sparkle:edSignature="COI8nqDd0cBtOO9jw/QRmsucsxE0SPiSgNF/o+s/nv3FCjSXy0C+gZX/bIFtCYyz/DYkff+IaHaLzhw8Z5aEBQ=="/>
|
|
210
|
-
</item>
|
|
211
212
|
</channel>
|
|
212
213
|
</rss>
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import sys
|
|
6
|
+
import traceback
|
|
6
7
|
import wave
|
|
8
|
+
import weakref
|
|
7
9
|
from contextlib import nullcontext
|
|
8
10
|
from types import SimpleNamespace
|
|
9
11
|
from typing import TYPE_CHECKING
|
|
@@ -433,3 +435,103 @@ def test_transcribe_dispatches_qwen3_asr_to_native_adapter(
|
|
|
433
435
|
)
|
|
434
436
|
|
|
435
437
|
assert result == expected
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
@pytest.mark.parametrize("device", ["cuda", "cuda:0", "cpu", "mps"])
|
|
441
|
+
@pytest.mark.parametrize(
|
|
442
|
+
"failure", [None, "direct", "interrupt", "cause", "context", "group", "cycle"]
|
|
443
|
+
)
|
|
444
|
+
def test_transcription_releases_unused_cuda_buffers(
|
|
445
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
446
|
+
tmp_path: Path,
|
|
447
|
+
device: str,
|
|
448
|
+
failure: str | None,
|
|
449
|
+
) -> None:
|
|
450
|
+
"""A completed or failed request must not retain CUDA's peak working set.
|
|
451
|
+
|
|
452
|
+
PyTorch's caching allocator keeps freed tensor storage reserved until
|
|
453
|
+
empty_cache(), which releases unused storage without unloading live tensors:
|
|
454
|
+
https://docs.pytorch.org/docs/stable/notes/cuda.html#memory-management
|
|
455
|
+
The small allocator double models that external boundary without a GPU.
|
|
456
|
+
"""
|
|
457
|
+
|
|
458
|
+
class Buffer:
|
|
459
|
+
def __init__(self, size: int) -> None:
|
|
460
|
+
self.size = size
|
|
461
|
+
|
|
462
|
+
class Allocator:
|
|
463
|
+
def __init__(self) -> None:
|
|
464
|
+
self.live: weakref.WeakSet[Buffer] = weakref.WeakSet()
|
|
465
|
+
self.reserved = 0
|
|
466
|
+
|
|
467
|
+
def allocate(self, size: int) -> Buffer:
|
|
468
|
+
buffer = Buffer(size)
|
|
469
|
+
self.live.add(buffer)
|
|
470
|
+
self.reserved += size
|
|
471
|
+
return buffer
|
|
472
|
+
|
|
473
|
+
def empty_cache(self) -> None:
|
|
474
|
+
if not device.startswith("cuda"):
|
|
475
|
+
pytest.fail("CPU/MPS transcription must not initialize CUDA")
|
|
476
|
+
self.reserved = sum(buffer.size for buffer in self.live)
|
|
477
|
+
|
|
478
|
+
allocator = Allocator()
|
|
479
|
+
weights = allocator.allocate(100)
|
|
480
|
+
monkeypatch.setitem(sys.modules, "torch", SimpleNamespace(cuda=allocator))
|
|
481
|
+
monkeypatch.setattr(
|
|
482
|
+
backend,
|
|
483
|
+
"_state",
|
|
484
|
+
backend._SubprocessState(
|
|
485
|
+
model=weights,
|
|
486
|
+
processor=object(),
|
|
487
|
+
device=device,
|
|
488
|
+
is_qwen3_asr=True,
|
|
489
|
+
),
|
|
490
|
+
)
|
|
491
|
+
wav_path = tmp_path / "request.wav"
|
|
492
|
+
with wave.open(str(wav_path), "wb") as wav_file:
|
|
493
|
+
wav_file.setnchannels(1)
|
|
494
|
+
wav_file.setsampwidth(2)
|
|
495
|
+
wav_file.setframerate(16000)
|
|
496
|
+
wav_file.writeframes(b"\x00\x00")
|
|
497
|
+
monkeypatch.setattr(backend, "_load_qwen_audio", lambda _: object())
|
|
498
|
+
|
|
499
|
+
def infer_inner() -> dict[str, object]:
|
|
500
|
+
temporary = allocator.allocate(900)
|
|
501
|
+
if failure:
|
|
502
|
+
# Its traceback holds `temporary` until the worker clears frame locals.
|
|
503
|
+
message = "inference failed"
|
|
504
|
+
error_type = KeyboardInterrupt if failure == "interrupt" else RuntimeError
|
|
505
|
+
raise error_type(message)
|
|
506
|
+
return {"text": "transcribed", "working_set": temporary.size}
|
|
507
|
+
|
|
508
|
+
def infer(**_kwargs: object) -> dict[str, object]:
|
|
509
|
+
try:
|
|
510
|
+
return infer_inner()
|
|
511
|
+
except RuntimeError as exc:
|
|
512
|
+
message = "inference failed"
|
|
513
|
+
if failure == "cause":
|
|
514
|
+
raise ValueError(message) from exc
|
|
515
|
+
if failure == "context":
|
|
516
|
+
raise ValueError(message) from None
|
|
517
|
+
if failure == "group":
|
|
518
|
+
raise ExceptionGroup(message, [exc]) from None
|
|
519
|
+
if failure == "cycle":
|
|
520
|
+
wrapped = ValueError(message)
|
|
521
|
+
exc.__cause__ = wrapped
|
|
522
|
+
raise wrapped from exc
|
|
523
|
+
raise
|
|
524
|
+
|
|
525
|
+
monkeypatch.setattr(backend, "_transcribe_qwen3_asr", infer)
|
|
526
|
+
if failure:
|
|
527
|
+
with pytest.raises(BaseException, match="inference failed") as error:
|
|
528
|
+
backend._transcribe_in_subprocess({"wav_path": str(wav_path)})
|
|
529
|
+
assert "infer" in [frame.name for frame in traceback.extract_tb(error.value.__traceback__)]
|
|
530
|
+
else:
|
|
531
|
+
assert backend._transcribe_in_subprocess({"wav_path": str(wav_path)}) == {
|
|
532
|
+
"text": "transcribed",
|
|
533
|
+
"working_set": 900,
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
assert allocator.reserved == (100 if device.startswith("cuda") else 1000)
|
|
537
|
+
assert backend._state.model is weights
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|