agent-cli 0.82.2__tar.gz → 0.83.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/workflows/docker.yml +8 -8
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.pre-commit-config.yaml +1 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/PKG-INFO +1 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/assistant.py +1 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/chat.py +1 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/speak.py +1 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/transcribe.py +1 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/transcribe_live.py +1 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/voice_edit.py +1 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/deps.py +29 -3
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/example-config.toml +8 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/install/hotkeys.py +17 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +1 -1
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_config_cmd.py +13 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_requires_extras.py +73 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.claude-plugin/README.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.cursorrules +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.dockerignore +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.env.example +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/logo.svg +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/release-drafter.yml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/renovate.json +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/scripts/sync_extras.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/workflows/release.yml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.gitignore +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.jscpd.json +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.prompts/docs-review.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/.prompts/pr-review.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/CLAUDE.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/LICENSE +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/README.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/__main__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_extras.json +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/vectordb.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/whisper-transformers.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/_tools.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/api.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/cli.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/config.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/constants.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/process.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/daemon/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/daemon/cli.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/_branch_name.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/_output.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/cleanup.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/cli.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/launch.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/install/common.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/install/launchd.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/install/service_config.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/install/services.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/install/systemd.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/opts.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/py.typed +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/common.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/backends/transformers.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docker/docker-compose.yml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docker/memory-proxy.Dockerfile +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docker/rag-proxy.Dockerfile +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docker/transcribe-proxy.Dockerfile +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docker/tts.Dockerfile +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docker/whisper.Dockerfile +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/CNAME +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/architecture/index.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/architecture/memory.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/architecture/rag.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/assistant.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/chat.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/config.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/daemon.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/dev.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/index.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/install-extras.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/install-services.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/memory.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/server/index.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/speak.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/start-services.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/transcribe-live.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/configuration.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/getting-started.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/index.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/installation/docker.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/installation/index.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/installation/linux.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/installation/macos.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/installation/nixos.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/installation/windows.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/logo-clean.svg +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/docs/system-integration.md +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/justfile +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/pyproject.toml +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/shell.nix +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_transcribe_live.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/conftest.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/core/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/core/test_audio.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/core/test_sse.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/core/test_vad.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/core/test_watch.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/dev/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/dev/test_project.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/install/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/install/test_extras.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_client.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_files.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_store.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/mocks/audio.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/mocks/llm.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/__init__.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_api.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_history.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_store.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_api.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_api_integration.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_asr.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_cli.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_config.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_daemon.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_env_vars.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_json_output.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_llm.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_process_manager.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_server_tts.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_services.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_tools.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_transformers_backend.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_tts.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_utils.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_wake_word.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/uv.lock +0 -0
- {agent_cli-0.82.2 → agent_cli-0.83.0}/zensical.toml +0 -0
|
@@ -51,10 +51,10 @@ jobs:
|
|
|
51
51
|
fetch-depth: 0 # Full history for version detection
|
|
52
52
|
|
|
53
53
|
- name: Set up Docker Buildx
|
|
54
|
-
uses: docker/setup-buildx-action@
|
|
54
|
+
uses: docker/setup-buildx-action@v4
|
|
55
55
|
|
|
56
56
|
- name: Log in to Container Registry
|
|
57
|
-
uses: docker/login-action@
|
|
57
|
+
uses: docker/login-action@v4
|
|
58
58
|
with:
|
|
59
59
|
registry: ${{ env.REGISTRY }}
|
|
60
60
|
username: ${{ github.actor }}
|
|
@@ -71,7 +71,7 @@ jobs:
|
|
|
71
71
|
|
|
72
72
|
- name: Extract metadata
|
|
73
73
|
id: meta
|
|
74
|
-
uses: docker/metadata-action@
|
|
74
|
+
uses: docker/metadata-action@v6
|
|
75
75
|
with:
|
|
76
76
|
images: ${{ env.REGISTRY }}/${{ github.repository }}-${{ matrix.image }}
|
|
77
77
|
tags: |
|
|
@@ -80,7 +80,7 @@ jobs:
|
|
|
80
80
|
type=sha,suffix=-${{ matrix.suffix }}
|
|
81
81
|
|
|
82
82
|
- name: Build and push
|
|
83
|
-
uses: docker/build-push-action@
|
|
83
|
+
uses: docker/build-push-action@v7
|
|
84
84
|
with:
|
|
85
85
|
context: .
|
|
86
86
|
file: ${{ matrix.dockerfile }}
|
|
@@ -116,10 +116,10 @@ jobs:
|
|
|
116
116
|
fetch-depth: 0 # Full history for version detection
|
|
117
117
|
|
|
118
118
|
- name: Set up Docker Buildx
|
|
119
|
-
uses: docker/setup-buildx-action@
|
|
119
|
+
uses: docker/setup-buildx-action@v4
|
|
120
120
|
|
|
121
121
|
- name: Log in to Container Registry
|
|
122
|
-
uses: docker/login-action@
|
|
122
|
+
uses: docker/login-action@v4
|
|
123
123
|
with:
|
|
124
124
|
registry: ${{ env.REGISTRY }}
|
|
125
125
|
username: ${{ github.actor }}
|
|
@@ -136,7 +136,7 @@ jobs:
|
|
|
136
136
|
|
|
137
137
|
- name: Extract metadata
|
|
138
138
|
id: meta
|
|
139
|
-
uses: docker/metadata-action@
|
|
139
|
+
uses: docker/metadata-action@v6
|
|
140
140
|
with:
|
|
141
141
|
images: ${{ env.REGISTRY }}/${{ github.repository }}-${{ matrix.image }}
|
|
142
142
|
tags: |
|
|
@@ -145,7 +145,7 @@ jobs:
|
|
|
145
145
|
type=sha
|
|
146
146
|
|
|
147
147
|
- name: Build and push
|
|
148
|
-
uses: docker/build-push-action@
|
|
148
|
+
uses: docker/build-push-action@v7
|
|
149
149
|
with:
|
|
150
150
|
context: .
|
|
151
151
|
file: ${{ matrix.dockerfile }}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.83.0
|
|
4
4
|
Summary: A suite of AI-powered command-line tools for text correction, audio transcription, and voice assistance.
|
|
5
5
|
Project-URL: Homepage, https://github.com/basnijholt/agent-cli
|
|
6
6
|
Author-email: Bas Nijholt <bas@nijho.lt>
|
|
@@ -230,7 +230,7 @@ async def _async_main(
|
|
|
230
230
|
|
|
231
231
|
|
|
232
232
|
@app.command("assistant", rich_help_panel="Voice Commands")
|
|
233
|
-
@requires_extras("audio", "llm")
|
|
233
|
+
@requires_extras("audio", "llm", process_name="assistant")
|
|
234
234
|
def assistant(
|
|
235
235
|
*,
|
|
236
236
|
# --- Provider Selection ---
|
|
@@ -465,7 +465,7 @@ async def _async_main( # noqa: PLR0912, PLR0915, C901
|
|
|
465
465
|
|
|
466
466
|
|
|
467
467
|
@app.command("transcribe", rich_help_panel="Voice Commands")
|
|
468
|
-
@requires_extras("audio", "llm")
|
|
468
|
+
@requires_extras("audio", "llm", process_name="transcribe")
|
|
469
469
|
def transcribe( # noqa: PLR0912
|
|
470
470
|
*,
|
|
471
471
|
extra_instructions: str | None = typer.Option(
|
|
@@ -288,7 +288,7 @@ async def _daemon_loop(cfg: DaemonConfig) -> None: # noqa: PLR0912, PLR0915
|
|
|
288
288
|
|
|
289
289
|
|
|
290
290
|
@app.command("transcribe-live", rich_help_panel="Voice Commands")
|
|
291
|
-
@requires_extras("audio", "vad", "llm")
|
|
291
|
+
@requires_extras("audio", "vad", "llm", process_name="transcribe-live")
|
|
292
292
|
def transcribe_live( # noqa: PLR0912
|
|
293
293
|
*,
|
|
294
294
|
# Daemon-specific options
|
|
@@ -174,7 +174,7 @@ async def _async_main(
|
|
|
174
174
|
|
|
175
175
|
|
|
176
176
|
@app.command("voice-edit", rich_help_panel="Voice Commands")
|
|
177
|
-
@requires_extras("audio", "llm")
|
|
177
|
+
@requires_extras("audio", "llm", process_name="voice-edit")
|
|
178
178
|
def voice_edit(
|
|
179
179
|
*,
|
|
180
180
|
# --- Provider Selection ---
|
|
@@ -311,8 +311,12 @@ def _try_auto_install(missing_display: list[str], extras_to_install: list[str])
|
|
|
311
311
|
|
|
312
312
|
def _maybe_reexec_after_install() -> None:
|
|
313
313
|
"""Re-execute after auto-install so new packages are visible."""
|
|
314
|
-
|
|
315
|
-
|
|
314
|
+
argv0 = sys.argv[0] if sys.argv else ""
|
|
315
|
+
if argv0:
|
|
316
|
+
cmd = [argv0, *sys.argv[1:]]
|
|
317
|
+
else:
|
|
318
|
+
cmd = [sys.executable, "-m", "agent_cli.cli", *sys.argv[1:]]
|
|
319
|
+
_maybe_exec_with_marker(cmd, "Re-running with installed extras...")
|
|
316
320
|
|
|
317
321
|
|
|
318
322
|
# -- Main Orchestration --
|
|
@@ -362,7 +366,26 @@ def _check_and_install_extras(extras: tuple[str, ...]) -> list[str]:
|
|
|
362
366
|
# -- Decorator --
|
|
363
367
|
|
|
364
368
|
|
|
365
|
-
def
|
|
369
|
+
def _should_skip_extra_check_for_process_control(
|
|
370
|
+
kwargs: dict[str, object],
|
|
371
|
+
process_name: str | None,
|
|
372
|
+
) -> bool:
|
|
373
|
+
"""Skip dependency checks when the command only needs process control."""
|
|
374
|
+
if not process_name:
|
|
375
|
+
return False
|
|
376
|
+
|
|
377
|
+
if bool(kwargs.get("stop")) or bool(kwargs.get("status")):
|
|
378
|
+
return True
|
|
379
|
+
|
|
380
|
+
if not bool(kwargs.get("toggle")):
|
|
381
|
+
return False
|
|
382
|
+
|
|
383
|
+
from agent_cli.core import process # noqa: PLC0415
|
|
384
|
+
|
|
385
|
+
return process.is_process_running(process_name)
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
def requires_extras(*extras: str, process_name: str | None = None) -> Callable[[F], F]:
|
|
366
389
|
"""Decorator to declare required extras for a command.
|
|
367
390
|
|
|
368
391
|
Auto-installs missing extras by default. Disable via AGENT_CLI_NO_AUTO_INSTALL=1
|
|
@@ -374,11 +397,14 @@ def requires_extras(*extras: str) -> Callable[[F], F]:
|
|
|
374
397
|
|
|
375
398
|
@functools.wraps(func)
|
|
376
399
|
def wrapper(*args: object, **kwargs: object) -> object:
|
|
400
|
+
if _should_skip_extra_check_for_process_control(kwargs, process_name):
|
|
401
|
+
return func(*args, **kwargs)
|
|
377
402
|
if _check_and_install_extras(extras):
|
|
378
403
|
raise typer.Exit(1)
|
|
379
404
|
return func(*args, **kwargs)
|
|
380
405
|
|
|
381
406
|
wrapper._required_extras = extras # type: ignore[attr-defined]
|
|
407
|
+
wrapper._required_process_name = process_name # type: ignore[attr-defined]
|
|
382
408
|
return wrapper # type: ignore[return-value]
|
|
383
409
|
|
|
384
410
|
return decorator
|
|
@@ -186,3 +186,11 @@ enable_tts = true
|
|
|
186
186
|
# host = "0.0.0.0"
|
|
187
187
|
# port = 61337
|
|
188
188
|
# reload = false
|
|
189
|
+
|
|
190
|
+
[dev]
|
|
191
|
+
# Defaults for `agent-cli dev new`
|
|
192
|
+
branch_name_mode = "ai"
|
|
193
|
+
|
|
194
|
+
[dev.agent_args]
|
|
195
|
+
claude = ["--dangerously-skip-permissions"]
|
|
196
|
+
codex = ["--dangerously-bypass-approvals-and-sandbox"]
|
|
@@ -4,8 +4,11 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import platform
|
|
6
6
|
|
|
7
|
+
import typer
|
|
8
|
+
|
|
7
9
|
from agent_cli.cli import app
|
|
8
|
-
from agent_cli.core.
|
|
10
|
+
from agent_cli.core.deps import _check_extra_installed, install_extras_impl
|
|
11
|
+
from agent_cli.core.utils import print_error_message, print_with_style
|
|
9
12
|
from agent_cli.install.common import execute_installation_script, get_platform_script
|
|
10
13
|
|
|
11
14
|
|
|
@@ -39,6 +42,19 @@ def install_hotkeys() -> None:
|
|
|
39
42
|
**Customizing hotkeys** (macOS): Edit `~/.config/skhd/skhdrc` and restart skhd:
|
|
40
43
|
`skhd --restart-service`
|
|
41
44
|
"""
|
|
45
|
+
required_extras = ["audio", "llm"]
|
|
46
|
+
missing_extras = [extra for extra in required_extras if not _check_extra_installed(extra)]
|
|
47
|
+
if missing_extras:
|
|
48
|
+
print_with_style(
|
|
49
|
+
f"Installing required extras for hotkeys: {', '.join(missing_extras)}",
|
|
50
|
+
"cyan",
|
|
51
|
+
)
|
|
52
|
+
if not install_extras_impl(missing_extras):
|
|
53
|
+
print_error_message(
|
|
54
|
+
"Failed to install required extras for hotkeys: " + ", ".join(missing_extras),
|
|
55
|
+
)
|
|
56
|
+
raise typer.Exit(1)
|
|
57
|
+
|
|
42
58
|
script_name = get_platform_script("setup-macos-hotkeys.sh", "setup-linux-hotkeys.sh")
|
|
43
59
|
system = platform.system().lower()
|
|
44
60
|
|
{agent_cli-0.82.2 → agent_cli-0.83.0}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh
RENAMED
|
@@ -34,7 +34,7 @@ if is_transcribe_running; then
|
|
|
34
34
|
"$NOTIFIER" -remove "$RECORDING_GROUP" >/dev/null 2>&1 || true
|
|
35
35
|
notify_temp "🛑 Stopped" "Processing results..."
|
|
36
36
|
else
|
|
37
|
-
"$NOTIFIER" -title "🎙️
|
|
37
|
+
"$NOTIFIER" -title "🎙️ Starting" -message "Preparing transcription..." -group "$RECORDING_GROUP"
|
|
38
38
|
(
|
|
39
39
|
OUTPUT=$("$AGENT_CLI" transcribe --toggle --llm --quiet 2>/dev/null)
|
|
40
40
|
"$NOTIFIER" -remove "$RECORDING_GROUP" >/dev/null 2>&1 || true
|
|
@@ -119,6 +119,19 @@ class TestConfigInit:
|
|
|
119
119
|
result = runner.invoke(app, ["config", "init", "--path", str(config_path)])
|
|
120
120
|
assert "Config file created at:" in result.stdout
|
|
121
121
|
|
|
122
|
+
def test_init_includes_dev_defaults(self, tmp_path: Path) -> None:
|
|
123
|
+
"""Test that init includes the default dev configuration snippet."""
|
|
124
|
+
config_path = tmp_path / "config.toml"
|
|
125
|
+
result = runner.invoke(app, ["config", "init", "--path", str(config_path)])
|
|
126
|
+
|
|
127
|
+
assert result.exit_code == 0
|
|
128
|
+
content = config_path.read_text(encoding="utf-8")
|
|
129
|
+
assert "[dev]" in content
|
|
130
|
+
assert '# branch_name_mode = "ai"' in content
|
|
131
|
+
assert "[dev.agent_args]" in content
|
|
132
|
+
assert '# claude = ["--dangerously-skip-permissions"]' in content
|
|
133
|
+
assert '# codex = ["--dangerously-bypass-approvals-and-sandbox"]' in content
|
|
134
|
+
|
|
122
135
|
def test_init_expands_user_path(self, tmp_path: Path) -> None:
|
|
123
136
|
"""Test that init expands '~' in provided path."""
|
|
124
137
|
home = tmp_path / "home"
|
|
@@ -13,7 +13,9 @@ from agent_cli.core.deps import (
|
|
|
13
13
|
_check_and_install_extras,
|
|
14
14
|
_get_auto_install_setting,
|
|
15
15
|
_get_install_hint,
|
|
16
|
+
_maybe_reexec_after_install,
|
|
16
17
|
_resolve_extras_for_install,
|
|
18
|
+
_should_skip_extra_check_for_process_control,
|
|
17
19
|
requires_extras,
|
|
18
20
|
)
|
|
19
21
|
|
|
@@ -219,6 +221,77 @@ class TestCheckAndInstallExtras:
|
|
|
219
221
|
assert "not visible" in mock_error.call_args[0][0]
|
|
220
222
|
|
|
221
223
|
|
|
224
|
+
class TestReexecBehavior:
|
|
225
|
+
"""Test re-exec behavior after auto-install."""
|
|
226
|
+
|
|
227
|
+
def test_reexec_uses_original_argv0(self) -> None:
|
|
228
|
+
"""Re-exec should preserve the command path that launched agent-cli."""
|
|
229
|
+
with (
|
|
230
|
+
patch("agent_cli.core.deps._maybe_exec_with_marker") as mock_reexec,
|
|
231
|
+
patch("sys.argv", ["/custom/bin/agent-cli", "transcribe", "--toggle"]),
|
|
232
|
+
):
|
|
233
|
+
_maybe_reexec_after_install()
|
|
234
|
+
|
|
235
|
+
mock_reexec.assert_called_once_with(
|
|
236
|
+
["/custom/bin/agent-cli", "transcribe", "--toggle"],
|
|
237
|
+
"Re-running with installed extras...",
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
def test_reexec_falls_back_to_python_module_when_argv0_missing(self) -> None:
|
|
241
|
+
"""Re-exec should still work if argv[0] is unavailable."""
|
|
242
|
+
with (
|
|
243
|
+
patch("agent_cli.core.deps._maybe_exec_with_marker") as mock_reexec,
|
|
244
|
+
patch("sys.argv", ["", "transcribe", "--toggle"]),
|
|
245
|
+
patch("sys.executable", "/usr/bin/python3"),
|
|
246
|
+
):
|
|
247
|
+
_maybe_reexec_after_install()
|
|
248
|
+
|
|
249
|
+
mock_reexec.assert_called_once_with(
|
|
250
|
+
["/usr/bin/python3", "-m", "agent_cli.cli", "transcribe", "--toggle"],
|
|
251
|
+
"Re-running with installed extras...",
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
class TestProcessControlBypass:
|
|
256
|
+
"""Test process-control bypasses for dependency checks."""
|
|
257
|
+
|
|
258
|
+
def test_skip_for_stop_and_status(self) -> None:
|
|
259
|
+
"""Stop/status commands should not trigger extra checks."""
|
|
260
|
+
assert _should_skip_extra_check_for_process_control({"stop": True}, "transcribe") is True
|
|
261
|
+
assert _should_skip_extra_check_for_process_control({"status": True}, "transcribe") is True
|
|
262
|
+
|
|
263
|
+
def test_skip_for_toggle_when_process_running(self) -> None:
|
|
264
|
+
"""Toggle should bypass extra checks when it is acting as stop."""
|
|
265
|
+
with patch("agent_cli.core.process.is_process_running", return_value=True):
|
|
266
|
+
assert (
|
|
267
|
+
_should_skip_extra_check_for_process_control({"toggle": True}, "transcribe") is True
|
|
268
|
+
)
|
|
269
|
+
|
|
270
|
+
def test_no_skip_for_toggle_when_process_not_running(self) -> None:
|
|
271
|
+
"""Toggle start still needs dependency checks."""
|
|
272
|
+
with patch("agent_cli.core.process.is_process_running", return_value=False):
|
|
273
|
+
assert (
|
|
274
|
+
_should_skip_extra_check_for_process_control({"toggle": True}, "transcribe")
|
|
275
|
+
is False
|
|
276
|
+
)
|
|
277
|
+
|
|
278
|
+
def test_decorator_skips_extra_checks_for_toggle_stop(self) -> None:
|
|
279
|
+
"""Decorated commands should stop an existing process without installing extras."""
|
|
280
|
+
with (
|
|
281
|
+
patch("agent_cli.core.process.is_process_running", return_value=True),
|
|
282
|
+
patch("agent_cli.core.deps._check_and_install_extras") as mock_check,
|
|
283
|
+
):
|
|
284
|
+
|
|
285
|
+
@requires_extras("audio", process_name="transcribe")
|
|
286
|
+
def my_command(**kwargs: object) -> str:
|
|
287
|
+
assert kwargs["toggle"] is True
|
|
288
|
+
return "stopped"
|
|
289
|
+
|
|
290
|
+
assert my_command(toggle=True) == "stopped"
|
|
291
|
+
|
|
292
|
+
mock_check.assert_not_called()
|
|
293
|
+
|
|
294
|
+
|
|
222
295
|
class TestDecoratorIntegration:
|
|
223
296
|
"""Test the requires_extras decorator end-to-end behavior."""
|
|
224
297
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|