agent-cli 0.96.1__tar.gz → 0.96.2__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.1 → agent_cli-0.96.2}/Casks/agent-cli.rb +2 -2
- {agent_cli-0.96.1 → agent_cli-0.96.2}/PKG-INFO +1 -1
- agent_cli-0.96.2/macos/AgentCLI/Sources/AgentCLI/VoiceSpectrumAnalyzer.swift +144 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Tests/AgentCLITests/VoiceSpectrumAnalyzerTests.swift +14 -2
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/appcast.xml +18 -0
- agent_cli-0.96.1/macos/AgentCLI/Sources/AgentCLI/VoiceSpectrumAnalyzer.swift +0 -71
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.claude-plugin/README.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.cursorrules +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.dockerignore +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.env.example +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/logo.svg +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/release-drafter.yml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/renovate.json +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/scripts/normalize_appcast.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/scripts/sync_extras.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/scripts/update_cask.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/workflows/docker.yml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/workflows/release.yml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.gitignore +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.jscpd.json +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.pre-commit-config.yaml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.prompts/docs-review.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/.prompts/pr-review.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/CLAUDE.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/LICENSE +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/LLAMA_SERVER_USAGE.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/README.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/__main__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_extras.json +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/diarization.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/vectordb.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/whisper-transformers.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/_tools.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/diarize_live_session.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/speakers.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/transcribe_live.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/api.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/cli.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/config.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/constants.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/alignment.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/diarization.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/process.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/speaker_identity.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/daemon/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/daemon/cli.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/_branch_name.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/_config.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/_output.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/cleanup.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/cli.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/hooks.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/launch.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/example-config.toml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/install/common.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/install/hotkeys.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/install/launchd.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/install/service_config.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/install/services.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/install/systemd.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/opts.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/py.typed +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/common.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/backends/transformers.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docker/docker-compose.yml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docker/memory-proxy.Dockerfile +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docker/rag-proxy.Dockerfile +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docker/transcribe-proxy.Dockerfile +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docker/tts.Dockerfile +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docker/whisper.Dockerfile +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/CNAME +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/architecture/index.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/architecture/memory.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/architecture/rag.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/assistant.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/chat.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/config.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/daemon.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/dev.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/diarize-live-session.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/index.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/install-extras.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/install-services.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/memory.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/server/index.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/speak.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/speakers.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/start-services.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/transcribe-live.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/configuration.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/getting-started.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/index.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/installation/docker.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/installation/index.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/installation/linux.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/installation/macos-app.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/installation/macos.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/installation/nixos.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/installation/windows.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/logo-avatar.svg +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/logo-clean.svg +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/docs/system-integration.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/justfile +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Package.resolved +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Package.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/README.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Resources/AgentCLI.entitlements +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Resources/Info.plist +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Resources/dmg-background.svg +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/AgentCLIApp.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/AgentCommand.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/AgentCommandRunner.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/AgentRuntime.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/AppDelegate.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/AppMetadata.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/AppUpdater.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/BootstrapState.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/CommandResult.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/ConfigurableHotkeyController.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/FocusedTextTarget.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/LoginItemController.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/MenuBarIcon.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/RecentTranscriptionReader.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/RecordingIndicatorController.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/RecordingSoundSettings.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/RuntimeSettings.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/SettingsWindowController.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/Shortcuts.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/StatusMenuController.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/TranscriptPasteController.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/TranscriptionSettings.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Sources/AgentCLI/VoiceLevelOverlay.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Tests/AgentCLITests/AgentCommandTests.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Tests/AgentCLITests/LoginItemControllerTests.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Tests/AgentCLITests/RecentTranscriptionReaderTests.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Tests/AgentCLITests/RecordingIndicatorControllerTests.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/AgentCLI/Tests/AgentCLITests/ShortcutDefaultsTests.swift +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/build-macos-app.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/macos/test-macos-app-e2e.sh +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/pyproject.toml +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/reddit.md +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/shell.nix +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_speakers.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_transcribe_live.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/conftest.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/core/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/core/test_audio.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/core/test_sse.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/core/test_vad.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/core/test_watch.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_cleanup.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_hooks.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_launch.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_project.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/install/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/install/test_extras.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/install/test_launchd.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_client.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_files.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_store.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/mocks/audio.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/mocks/llm.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/__init__.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_api.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_history.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_store.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_alignment.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_api.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_api_integration.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_asr.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_cli.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_config.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_config_cmd.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_daemon.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_diarization.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_diarize_live_session.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_env_vars.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_faster_whisper_backend.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_json_output.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_llm.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_macos_app.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_normalize_appcast.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_process_manager.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_server_tts.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_services.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_speaker_identity.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_tools.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_transformers_backend.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_tts.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_update_cask.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_utils.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_wake_word.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/uv.lock +0 -0
- {agent_cli-0.96.1 → agent_cli-0.96.2}/zensical.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
cask "agent-cli" do
|
|
2
|
-
version "0.96.
|
|
3
|
-
sha256 "
|
|
2
|
+
version "0.96.1"
|
|
3
|
+
sha256 "eef32008aa3d60a114eac824bc32c12385de07c7656bae5edcde24487fc3d72d"
|
|
4
4
|
|
|
5
5
|
url "https://github.com/basnijholt/agent-cli/releases/download/v#{version}/AgentCLI.dmg"
|
|
6
6
|
name "Agent CLI"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.96.
|
|
3
|
+
Version: 0.96.2
|
|
4
4
|
Summary: A suite of AI-powered command-line tools for text correction, audio transcription, and voice assistance.
|
|
5
5
|
Project-URL: Homepage, https://github.com/basnijholt/agent-cli
|
|
6
6
|
Author-email: Bas Nijholt <bas@nijho.lt>
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import CoreGraphics
|
|
2
|
+
import Foundation
|
|
3
|
+
|
|
4
|
+
final class VoiceSpectrumAnalyzer {
|
|
5
|
+
private static let minimumDisplayDecibels = -60.0
|
|
6
|
+
private static let maximumDisplayDecibels = -18.0
|
|
7
|
+
|
|
8
|
+
private let sampleRate: Double
|
|
9
|
+
private let bandCount: Int
|
|
10
|
+
private let centerFrequencies: [Double]
|
|
11
|
+
private let frequencyBands: [(lower: Double, upper: Double)]
|
|
12
|
+
|
|
13
|
+
init(sampleRate: Double, bandCount: Int) {
|
|
14
|
+
self.sampleRate = sampleRate
|
|
15
|
+
self.bandCount = bandCount
|
|
16
|
+
|
|
17
|
+
let lowFrequency = 80.0
|
|
18
|
+
let highFrequency = min(7_600.0, max(lowFrequency, sampleRate * 0.46))
|
|
19
|
+
let denominator = max(1, bandCount - 1)
|
|
20
|
+
self.centerFrequencies = (0..<bandCount).map { index in
|
|
21
|
+
let fraction = Double(index) / Double(denominator)
|
|
22
|
+
return lowFrequency * pow(highFrequency / lowFrequency, fraction)
|
|
23
|
+
}
|
|
24
|
+
self.frequencyBands = Self.frequencyBands(
|
|
25
|
+
centerFrequencies: centerFrequencies,
|
|
26
|
+
lowFrequency: lowFrequency,
|
|
27
|
+
highFrequency: highFrequency
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
func amplitudes(from samples: [Float]) -> [CGFloat] {
|
|
32
|
+
guard !samples.isEmpty else {
|
|
33
|
+
return Array(repeating: 0, count: bandCount)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
let sampleCount = samples.count
|
|
37
|
+
let windowedSamples = samples.enumerated().map { index, sample in
|
|
38
|
+
Float(Self.hannWindowValue(index: index, sampleCount: sampleCount)) * sample
|
|
39
|
+
}
|
|
40
|
+
let normalization = max(1, Self.hannWindowSum(sampleCount: sampleCount) / 2)
|
|
41
|
+
|
|
42
|
+
let frequencyResolution = sampleRate / Double(sampleCount)
|
|
43
|
+
let maximumBin = max(1, sampleCount / 2)
|
|
44
|
+
|
|
45
|
+
return frequencyBands.enumerated().map { index, band in
|
|
46
|
+
let magnitude = Self.bandMagnitude(
|
|
47
|
+
band: band,
|
|
48
|
+
centerFrequency: centerFrequencies[index],
|
|
49
|
+
frequencyResolution: frequencyResolution,
|
|
50
|
+
maximumBin: maximumBin,
|
|
51
|
+
sampleRate: sampleRate,
|
|
52
|
+
samples: windowedSamples
|
|
53
|
+
) / normalization
|
|
54
|
+
return CGFloat(Self.normalizedDisplayAmplitude(forMagnitude: magnitude))
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
private static func frequencyBands(
|
|
59
|
+
centerFrequencies: [Double],
|
|
60
|
+
lowFrequency: Double,
|
|
61
|
+
highFrequency: Double
|
|
62
|
+
) -> [(lower: Double, upper: Double)] {
|
|
63
|
+
centerFrequencies.enumerated().map { index, centerFrequency in
|
|
64
|
+
let lower = index == 0
|
|
65
|
+
? lowFrequency
|
|
66
|
+
: sqrt(centerFrequencies[index - 1] * centerFrequency)
|
|
67
|
+
let upper = index == centerFrequencies.count - 1
|
|
68
|
+
? highFrequency
|
|
69
|
+
: sqrt(centerFrequency * centerFrequencies[index + 1])
|
|
70
|
+
return (lower, upper)
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
private static func bandMagnitude(
|
|
75
|
+
band: (lower: Double, upper: Double),
|
|
76
|
+
centerFrequency: Double,
|
|
77
|
+
frequencyResolution: Double,
|
|
78
|
+
maximumBin: Int,
|
|
79
|
+
sampleRate: Double,
|
|
80
|
+
samples: [Float]
|
|
81
|
+
) -> Double {
|
|
82
|
+
let lowerBin = max(1, Int(ceil(band.lower / frequencyResolution)))
|
|
83
|
+
let upperBin = min(maximumBin, Int(floor(band.upper / frequencyResolution)))
|
|
84
|
+
|
|
85
|
+
if lowerBin <= upperBin {
|
|
86
|
+
var maximumMagnitude = 0.0
|
|
87
|
+
for bin in lowerBin...upperBin {
|
|
88
|
+
maximumMagnitude = max(
|
|
89
|
+
maximumMagnitude,
|
|
90
|
+
magnitude(
|
|
91
|
+
frequency: Double(bin) * frequencyResolution,
|
|
92
|
+
sampleRate: sampleRate,
|
|
93
|
+
samples: samples
|
|
94
|
+
)
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
return maximumMagnitude
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
let nearestCenterBin = min(maximumBin, max(1, Int((centerFrequency / frequencyResolution).rounded())))
|
|
101
|
+
return magnitude(
|
|
102
|
+
frequency: Double(nearestCenterBin) * frequencyResolution,
|
|
103
|
+
sampleRate: sampleRate,
|
|
104
|
+
samples: samples
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private static func normalizedDisplayAmplitude(forMagnitude magnitude: Double) -> Double {
|
|
109
|
+
guard magnitude > 0 else { return 0 }
|
|
110
|
+
|
|
111
|
+
let decibels = 20 * log10(max(magnitude, Double.leastNonzeroMagnitude))
|
|
112
|
+
let normalized = (decibels - minimumDisplayDecibels) / (maximumDisplayDecibels - minimumDisplayDecibels)
|
|
113
|
+
return min(1, max(0, normalized))
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
private static func magnitude(
|
|
117
|
+
frequency: Double,
|
|
118
|
+
sampleRate: Double,
|
|
119
|
+
samples: [Float]
|
|
120
|
+
) -> Double {
|
|
121
|
+
let radiansPerSample = 2 * Double.pi * frequency / sampleRate
|
|
122
|
+
var real = 0.0
|
|
123
|
+
var imaginary = 0.0
|
|
124
|
+
|
|
125
|
+
for (index, sample) in samples.enumerated() {
|
|
126
|
+
let angle = radiansPerSample * Double(index)
|
|
127
|
+
let value = Double(sample)
|
|
128
|
+
real += value * cos(angle)
|
|
129
|
+
imaginary -= value * sin(angle)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return sqrt((real * real) + (imaginary * imaginary))
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
private static func hannWindowValue(index: Int, sampleCount: Int) -> Double {
|
|
136
|
+
guard sampleCount > 1 else { return 1 }
|
|
137
|
+
return 0.5 - (0.5 * cos(2 * Double.pi * Double(index) / Double(sampleCount - 1)))
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
private static func hannWindowSum(sampleCount: Int) -> Double {
|
|
141
|
+
guard sampleCount > 1 else { return 1 }
|
|
142
|
+
return Double(sampleCount - 1) / 2
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -29,13 +29,25 @@ final class VoiceSpectrumAnalyzerTests: XCTestCase {
|
|
|
29
29
|
XCTAssertTrue(amplitudes.allSatisfy { $0 == 0 })
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
func testQuietSpeechLevelToneRisesAboveOverlayFloor() {
|
|
33
|
+
let analyzer = VoiceSpectrumAnalyzer(sampleRate: 16_000, bandCount: 16)
|
|
34
|
+
let quietSpeechLevel = pow(10.0, -45.0 / 20.0)
|
|
35
|
+
|
|
36
|
+
let amplitudes = analyzer.amplitudes(
|
|
37
|
+
from: Self.sineWave(frequency: 220, sampleRate: 16_000, amplitude: Float(quietSpeechLevel))
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
XCTAssertGreaterThan(amplitudes.max() ?? 0, 0.2)
|
|
41
|
+
}
|
|
42
|
+
|
|
32
43
|
private static func sineWave(
|
|
33
44
|
frequency: Double,
|
|
34
45
|
sampleRate: Double,
|
|
35
|
-
sampleCount: Int = 2_048
|
|
46
|
+
sampleCount: Int = 2_048,
|
|
47
|
+
amplitude: Float = 1
|
|
36
48
|
) -> [Float] {
|
|
37
49
|
(0..<sampleCount).map { index in
|
|
38
|
-
Float(sin(2 * Double.pi * frequency * Double(index) / sampleRate))
|
|
50
|
+
amplitude * Float(sin(2 * Double.pi * frequency * Double(index) / sampleRate))
|
|
39
51
|
}
|
|
40
52
|
}
|
|
41
53
|
}
|
|
@@ -4,6 +4,24 @@
|
|
|
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.1</title>
|
|
9
|
+
<pubDate>Fri, 29 May 2026 05:47:47 +0000</pubDate>
|
|
10
|
+
<link>https://github.com/basnijholt/agent-cli</link>
|
|
11
|
+
<sparkle:version>175</sparkle:version>
|
|
12
|
+
<sparkle:shortVersionString>0.96.1</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
|
+
* Clean up macOS menu lifecycle wiring (#545) @basnijholt
|
|
18
|
+
* Remove uv Python 3.13 install workarounds (#521) @basnijholt
|
|
19
|
+
* Remove brittle macOS source-shape tests (#547) @basnijholt
|
|
20
|
+
* Fix macOS voice meter source assertions (#546) @basnijholt
|
|
21
|
+
|
|
22
|
+
]]></description>
|
|
23
|
+
<enclosure url="https://github.com/basnijholt/agent-cli/releases/download/v0.96.1/AgentCLI.zip" length="22729845" type="application/octet-stream" sparkle:edSignature="YYq/64CSi+pxZD2NZ02GWIPAdusUf3mesEQ4MltVUOSheuOwimOZpHs81brT4g8rFBa2PRfnobfrfcTtfONqCQ=="/>
|
|
24
|
+
</item>
|
|
7
25
|
<item>
|
|
8
26
|
<title>0.96.0</title>
|
|
9
27
|
<pubDate>Fri, 29 May 2026 05:30:42 +0000</pubDate>
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import CoreGraphics
|
|
2
|
-
import Foundation
|
|
3
|
-
|
|
4
|
-
final class VoiceSpectrumAnalyzer {
|
|
5
|
-
private let sampleRate: Double
|
|
6
|
-
private let bandCount: Int
|
|
7
|
-
private let centerFrequencies: [Double]
|
|
8
|
-
|
|
9
|
-
init(sampleRate: Double, bandCount: Int) {
|
|
10
|
-
self.sampleRate = sampleRate
|
|
11
|
-
self.bandCount = bandCount
|
|
12
|
-
|
|
13
|
-
let lowFrequency = 80.0
|
|
14
|
-
let highFrequency = min(7_600.0, max(lowFrequency, sampleRate * 0.46))
|
|
15
|
-
let denominator = max(1, bandCount - 1)
|
|
16
|
-
self.centerFrequencies = (0..<bandCount).map { index in
|
|
17
|
-
let fraction = Double(index) / Double(denominator)
|
|
18
|
-
return lowFrequency * pow(highFrequency / lowFrequency, fraction)
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
func amplitudes(from samples: [Float]) -> [CGFloat] {
|
|
23
|
-
guard !samples.isEmpty else {
|
|
24
|
-
return Array(repeating: 0, count: bandCount)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
let sampleCount = samples.count
|
|
28
|
-
let windowedSamples = samples.enumerated().map { index, sample in
|
|
29
|
-
Float(Self.hannWindowValue(index: index, sampleCount: sampleCount)) * sample
|
|
30
|
-
}
|
|
31
|
-
let normalization = max(1, Self.hannWindowSum(sampleCount: sampleCount) / 2)
|
|
32
|
-
|
|
33
|
-
return centerFrequencies.map { frequency in
|
|
34
|
-
let magnitude = Self.magnitude(
|
|
35
|
-
frequency: frequency,
|
|
36
|
-
sampleRate: sampleRate,
|
|
37
|
-
samples: windowedSamples
|
|
38
|
-
) / normalization
|
|
39
|
-
return CGFloat(min(1, sqrt(magnitude) * 1.35))
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
private static func magnitude(
|
|
44
|
-
frequency: Double,
|
|
45
|
-
sampleRate: Double,
|
|
46
|
-
samples: [Float]
|
|
47
|
-
) -> Double {
|
|
48
|
-
let radiansPerSample = 2 * Double.pi * frequency / sampleRate
|
|
49
|
-
var real = 0.0
|
|
50
|
-
var imaginary = 0.0
|
|
51
|
-
|
|
52
|
-
for (index, sample) in samples.enumerated() {
|
|
53
|
-
let angle = radiansPerSample * Double(index)
|
|
54
|
-
let value = Double(sample)
|
|
55
|
-
real += value * cos(angle)
|
|
56
|
-
imaginary -= value * sin(angle)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return sqrt((real * real) + (imaginary * imaginary))
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
private static func hannWindowValue(index: Int, sampleCount: Int) -> Double {
|
|
63
|
-
guard sampleCount > 1 else { return 1 }
|
|
64
|
-
return 0.5 - (0.5 * cos(2 * Double.pi * Double(index) / Double(sampleCount - 1)))
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private static func hannWindowSum(sampleCount: Int) -> Double {
|
|
68
|
-
guard sampleCount > 1 else { return 1 }
|
|
69
|
-
return Double(sampleCount - 1) / 2
|
|
70
|
-
}
|
|
71
|
-
}
|
|
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
|