agent-cli 0.72.5__tar.gz → 0.72.6__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.72.5 → agent_cli-0.72.6}/PKG-INFO +3 -1
- agent_cli-0.72.6/agent_cli/_extras.json +73 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/sync_extras.py +1 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/memory-proxy.Dockerfile +4 -10
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/rag-proxy.Dockerfile +4 -10
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/transcribe-proxy.Dockerfile +10 -18
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/tts.Dockerfile +6 -12
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/whisper.Dockerfile +6 -12
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/install-extras.md +7 -6
- {agent_cli-0.72.5 → agent_cli-0.72.6}/pyproject.toml +2 -1
- {agent_cli-0.72.5 → agent_cli-0.72.6}/uv.lock +5 -1
- agent_cli-0.72.5/agent_cli/_extras.json +0 -14
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.cursorrules +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.dockerignore +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.env.example +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/logo.svg +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/release-drafter.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/renovate.json +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/docker.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/release.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.gitignore +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.jscpd.json +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.pre-commit-config.yaml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.prompts/docs-review.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/.prompts/pr-review.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/CLAUDE.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/LICENSE +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/__main__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/_tools.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/transcribe_daemon.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/config.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/constants.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/process.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/example-config.toml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/hotkeys.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/install/services.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/opts.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/py.typed +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-piper-windows.ps1 +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-piper.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-whisper-linux.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-whisper-macos.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-whisper-windows.ps1 +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run-whisper.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/run_faster_whisper_server.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docker/docker-compose.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/CNAME +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/architecture/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/architecture/memory.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/architecture/rag.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/assistant.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/chat.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/config.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/dev.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/install-services.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/memory.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/server/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/speak.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/start-services.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/transcribe-daemon.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/configuration.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/getting-started.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/docker.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/linux.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/macos.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/nixos.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/installation/windows.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/logo-clean.svg +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/docs/system-integration.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/justfile +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/shell.nix +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe_daemon.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/conftest.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_sse.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_vad.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/core/test_watch.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_project.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/install/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/install/test_extras.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_client.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_files.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_store.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/mocks/audio.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/mocks/llm.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_history.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_store.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_api_integration.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_asr.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_config.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_config_cmd.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_env_vars.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_json_output.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_llm.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_process_manager.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_server_tts.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_services.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_tools.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_tts.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_wake_word.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.6}/zensical.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.72.
|
|
3
|
+
Version: 0.72.6
|
|
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>
|
|
@@ -46,6 +46,8 @@ Requires-Dist: soundfile>=0.12.0; extra == 'kokoro'
|
|
|
46
46
|
Requires-Dist: transformers>=4.40.0; extra == 'kokoro'
|
|
47
47
|
Provides-Extra: llm
|
|
48
48
|
Requires-Dist: pydantic-ai-slim[duckduckgo,google,openai,vertexai]>=0.1.1; extra == 'llm'
|
|
49
|
+
Provides-Extra: llm-core
|
|
50
|
+
Requires-Dist: pydantic-ai-slim[google,openai]>=0.1.1; extra == 'llm-core'
|
|
49
51
|
Provides-Extra: memory
|
|
50
52
|
Requires-Dist: chromadb>=0.4.22; extra == 'memory'
|
|
51
53
|
Requires-Dist: fastapi[standard]; extra == 'memory'
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"audio": [
|
|
3
|
+
"Audio recording/playback",
|
|
4
|
+
[
|
|
5
|
+
"sounddevice"
|
|
6
|
+
]
|
|
7
|
+
],
|
|
8
|
+
"faster-whisper": [
|
|
9
|
+
"TODO: add description",
|
|
10
|
+
[]
|
|
11
|
+
],
|
|
12
|
+
"kokoro": [
|
|
13
|
+
"TODO: add description",
|
|
14
|
+
[]
|
|
15
|
+
],
|
|
16
|
+
"llm": [
|
|
17
|
+
"LLM framework (pydantic-ai)",
|
|
18
|
+
[
|
|
19
|
+
"pydantic_ai"
|
|
20
|
+
]
|
|
21
|
+
],
|
|
22
|
+
"llm-core": [
|
|
23
|
+
"Minimal LLM support for Docker images",
|
|
24
|
+
[
|
|
25
|
+
"pydantic_ai"
|
|
26
|
+
]
|
|
27
|
+
],
|
|
28
|
+
"memory": [
|
|
29
|
+
"Long-term memory proxy",
|
|
30
|
+
[
|
|
31
|
+
"chromadb",
|
|
32
|
+
"yaml"
|
|
33
|
+
]
|
|
34
|
+
],
|
|
35
|
+
"mlx-whisper": [
|
|
36
|
+
"TODO: add description",
|
|
37
|
+
[]
|
|
38
|
+
],
|
|
39
|
+
"piper": [
|
|
40
|
+
"TODO: add description",
|
|
41
|
+
[]
|
|
42
|
+
],
|
|
43
|
+
"rag": [
|
|
44
|
+
"RAG proxy (ChromaDB, embeddings)",
|
|
45
|
+
[
|
|
46
|
+
"chromadb"
|
|
47
|
+
]
|
|
48
|
+
],
|
|
49
|
+
"server": [
|
|
50
|
+
"FastAPI server components",
|
|
51
|
+
[
|
|
52
|
+
"fastapi"
|
|
53
|
+
]
|
|
54
|
+
],
|
|
55
|
+
"speed": [
|
|
56
|
+
"Audio speed adjustment (audiostretchy)",
|
|
57
|
+
[
|
|
58
|
+
"audiostretchy"
|
|
59
|
+
]
|
|
60
|
+
],
|
|
61
|
+
"vad": [
|
|
62
|
+
"Voice Activity Detection (silero-vad)",
|
|
63
|
+
[
|
|
64
|
+
"silero_vad"
|
|
65
|
+
]
|
|
66
|
+
],
|
|
67
|
+
"wyoming": [
|
|
68
|
+
"Wyoming protocol support",
|
|
69
|
+
[
|
|
70
|
+
"wyoming"
|
|
71
|
+
]
|
|
72
|
+
]
|
|
73
|
+
}
|
|
@@ -33,6 +33,7 @@ EXTRA_METADATA: dict[str, tuple[str, list[str]]] = {
|
|
|
33
33
|
"openai": ("OpenAI API provider", ["openai"]),
|
|
34
34
|
"gemini": ("Google Gemini provider", ["google.genai"]),
|
|
35
35
|
"llm": ("LLM framework (pydantic-ai)", ["pydantic_ai"]),
|
|
36
|
+
"llm-core": ("Minimal LLM support for Docker images", ["pydantic_ai"]),
|
|
36
37
|
# Feature extras
|
|
37
38
|
"rag": ("RAG proxy (ChromaDB, embeddings)", ["chromadb"]),
|
|
38
39
|
"memory": ("Long-term memory proxy", ["chromadb", "yaml"]),
|
|
@@ -49,11 +49,9 @@ COPY scripts ./scripts
|
|
|
49
49
|
RUN uv sync --frozen --no-dev --no-editable --extra memory
|
|
50
50
|
|
|
51
51
|
# =============================================================================
|
|
52
|
-
# Runtime stage - minimal image
|
|
52
|
+
# Runtime stage - minimal image using Python slim directly
|
|
53
53
|
# =============================================================================
|
|
54
|
-
FROM
|
|
55
|
-
|
|
56
|
-
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
54
|
+
FROM python:3.13-slim
|
|
57
55
|
|
|
58
56
|
# Install runtime dependencies:
|
|
59
57
|
# - libgomp1: Required by onnxruntime for parallel processing
|
|
@@ -62,17 +60,13 @@ RUN apt-get update && \
|
|
|
62
60
|
apt-get install -y --no-install-recommends libgomp1 git && \
|
|
63
61
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
64
62
|
|
|
65
|
-
ENV UV_PYTHON_INSTALL_DIR=/opt/python
|
|
66
|
-
RUN uv python install 3.13
|
|
67
|
-
|
|
68
63
|
RUN groupadd -g 1000 memory && useradd -m -u 1000 -g memory memory
|
|
69
64
|
|
|
70
65
|
WORKDIR /app
|
|
71
66
|
|
|
72
67
|
COPY --from=builder /app/.venv /app/.venv
|
|
73
68
|
|
|
74
|
-
RUN ln -
|
|
75
|
-
ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
|
|
69
|
+
RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
|
|
76
70
|
|
|
77
71
|
# Create data directory
|
|
78
72
|
RUN mkdir -p /data/memory && chown -R memory:memory /data
|
|
@@ -103,7 +97,7 @@ ENV MEMORY_HOST=0.0.0.0 \
|
|
|
103
97
|
LOG_LEVEL=info
|
|
104
98
|
|
|
105
99
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
|
|
106
|
-
CMD
|
|
100
|
+
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${MEMORY_PORT}/health')" || exit 1
|
|
107
101
|
|
|
108
102
|
ENTRYPOINT ["sh", "-c", "agent-cli memory proxy \
|
|
109
103
|
--host ${MEMORY_HOST} \
|
|
@@ -46,11 +46,9 @@ COPY scripts ./scripts
|
|
|
46
46
|
RUN uv sync --frozen --no-dev --no-editable --extra rag
|
|
47
47
|
|
|
48
48
|
# =============================================================================
|
|
49
|
-
# Runtime stage - minimal image
|
|
49
|
+
# Runtime stage - minimal image using Python slim directly
|
|
50
50
|
# =============================================================================
|
|
51
|
-
FROM
|
|
52
|
-
|
|
53
|
-
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
51
|
+
FROM python:3.13-slim
|
|
54
52
|
|
|
55
53
|
# Install runtime dependencies:
|
|
56
54
|
# - libgomp1: Required by onnxruntime for parallel processing
|
|
@@ -59,17 +57,13 @@ RUN apt-get update && \
|
|
|
59
57
|
apt-get install -y --no-install-recommends libgomp1 git && \
|
|
60
58
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
61
59
|
|
|
62
|
-
ENV UV_PYTHON_INSTALL_DIR=/opt/python
|
|
63
|
-
RUN uv python install 3.13
|
|
64
|
-
|
|
65
60
|
RUN groupadd -g 1000 rag && useradd -m -u 1000 -g rag rag
|
|
66
61
|
|
|
67
62
|
WORKDIR /app
|
|
68
63
|
|
|
69
64
|
COPY --from=builder /app/.venv /app/.venv
|
|
70
65
|
|
|
71
|
-
RUN ln -
|
|
72
|
-
ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
|
|
66
|
+
RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
|
|
73
67
|
|
|
74
68
|
# Create data directories
|
|
75
69
|
RUN mkdir -p /data/docs /data/db && chown -R rag:rag /data
|
|
@@ -92,7 +86,7 @@ ENV RAG_HOST=0.0.0.0 \
|
|
|
92
86
|
LOG_LEVEL=info
|
|
93
87
|
|
|
94
88
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
|
|
95
|
-
CMD
|
|
89
|
+
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${RAG_PORT}/health')" || exit 1
|
|
96
90
|
|
|
97
91
|
ENTRYPOINT ["sh", "-c", "agent-cli rag-proxy \
|
|
98
92
|
--host ${RAG_HOST} \
|
|
@@ -24,11 +24,9 @@
|
|
|
24
24
|
# =============================================================================
|
|
25
25
|
# Builder stage - install dependencies and project
|
|
26
26
|
# =============================================================================
|
|
27
|
-
FROM python:3.13-
|
|
27
|
+
FROM python:3.13-alpine AS builder
|
|
28
28
|
|
|
29
|
-
RUN
|
|
30
|
-
apt-get install -y --no-install-recommends git && \
|
|
31
|
-
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
29
|
+
RUN apk add --no-cache git
|
|
32
30
|
|
|
33
31
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
34
32
|
|
|
@@ -38,30 +36,24 @@ COPY pyproject.toml uv.lock README.md ./
|
|
|
38
36
|
COPY .git ./.git
|
|
39
37
|
COPY agent_cli ./agent_cli
|
|
40
38
|
COPY scripts ./scripts
|
|
41
|
-
RUN uv sync --frozen --no-dev --no-editable --extra server --extra wyoming --extra llm
|
|
39
|
+
RUN uv sync --frozen --no-dev --no-editable --extra server --extra wyoming --extra llm-core
|
|
42
40
|
|
|
43
41
|
# =============================================================================
|
|
44
|
-
# Runtime stage - minimal image
|
|
42
|
+
# Runtime stage - minimal Alpine image
|
|
45
43
|
# =============================================================================
|
|
46
|
-
FROM
|
|
44
|
+
FROM python:3.13-alpine
|
|
47
45
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
RUN apt-get update && \
|
|
51
|
-
apt-get install -y --no-install-recommends ffmpeg && \
|
|
52
|
-
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
46
|
+
RUN apk add --no-cache ffmpeg
|
|
53
47
|
|
|
54
|
-
|
|
55
|
-
RUN uv python install 3.13
|
|
48
|
+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
56
49
|
|
|
57
|
-
RUN
|
|
50
|
+
RUN addgroup -g 1000 transcribe && adduser -u 1000 -G transcribe -D transcribe
|
|
58
51
|
|
|
59
52
|
WORKDIR /app
|
|
60
53
|
|
|
61
54
|
COPY --from=builder /app/.venv /app/.venv
|
|
62
55
|
|
|
63
|
-
RUN ln -
|
|
64
|
-
ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
|
|
56
|
+
RUN ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
|
|
65
57
|
|
|
66
58
|
USER transcribe
|
|
67
59
|
|
|
@@ -71,7 +63,7 @@ ENV PROXY_HOST=0.0.0.0 \
|
|
|
71
63
|
PROXY_PORT=61337
|
|
72
64
|
|
|
73
65
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
|
|
74
|
-
CMD
|
|
66
|
+
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${PROXY_PORT}/health')" || exit 1
|
|
75
67
|
|
|
76
68
|
ENTRYPOINT ["sh", "-c", "agent-cli server transcribe-proxy \
|
|
77
69
|
--host ${PROXY_HOST} \
|
|
@@ -108,25 +108,19 @@ ENTRYPOINT ["sh", "-c", "agent-cli server tts \
|
|
|
108
108
|
# =============================================================================
|
|
109
109
|
# CPU target: CPU-only with Piper TTS
|
|
110
110
|
# =============================================================================
|
|
111
|
-
FROM
|
|
111
|
+
FROM python:3.13-slim AS cpu
|
|
112
112
|
|
|
113
113
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
114
114
|
|
|
115
|
-
RUN
|
|
116
|
-
apt-get install -y --no-install-recommends ffmpeg && \
|
|
117
|
-
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
118
|
-
|
|
119
|
-
ENV UV_PYTHON_INSTALL_DIR=/opt/python
|
|
120
|
-
RUN uv python install 3.13
|
|
121
|
-
|
|
122
|
-
RUN getent group 1000 || groupadd -g 1000 tts; \
|
|
123
|
-
id -u 1000 >/dev/null 2>&1 || useradd -m -u 1000 -g 1000 tts
|
|
115
|
+
RUN groupadd -g 1000 tts && useradd -m -u 1000 -g 1000 tts
|
|
124
116
|
|
|
125
117
|
WORKDIR /app
|
|
126
118
|
|
|
127
119
|
COPY --from=builder-cpu /app/.venv /app/.venv
|
|
128
120
|
|
|
129
|
-
|
|
121
|
+
# Install imageio-ffmpeg for bundled static ffmpeg binary (77MB vs 420MB for Debian package)
|
|
122
|
+
RUN uv pip install --python /app/.venv/bin/python imageio-ffmpeg && \
|
|
123
|
+
ln -s $(/app/.venv/bin/python -c "import imageio_ffmpeg; print(imageio_ffmpeg.get_ffmpeg_exe())") /usr/local/bin/ffmpeg && \
|
|
130
124
|
ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli && \
|
|
131
125
|
mkdir -p /home/tts/.cache && chown -R tts:tts /home/tts
|
|
132
126
|
|
|
@@ -144,7 +138,7 @@ ENV TTS_HOST=0.0.0.0 \
|
|
|
144
138
|
TTS_DEVICE=cpu
|
|
145
139
|
|
|
146
140
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
147
|
-
CMD
|
|
141
|
+
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${TTS_PORT}/health')" || exit 1
|
|
148
142
|
|
|
149
143
|
ENTRYPOINT ["sh", "-c", "agent-cli server tts \
|
|
150
144
|
--host ${TTS_HOST} \
|
|
@@ -83,25 +83,19 @@ ENTRYPOINT ["sh", "-c", "agent-cli server whisper \
|
|
|
83
83
|
# =============================================================================
|
|
84
84
|
# CPU target: CPU-only with faster-whisper
|
|
85
85
|
# =============================================================================
|
|
86
|
-
FROM
|
|
86
|
+
FROM python:3.13-slim AS cpu
|
|
87
87
|
|
|
88
88
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
89
89
|
|
|
90
|
-
RUN
|
|
91
|
-
apt-get install -y --no-install-recommends ffmpeg && \
|
|
92
|
-
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
93
|
-
|
|
94
|
-
ENV UV_PYTHON_INSTALL_DIR=/opt/python
|
|
95
|
-
RUN uv python install 3.13
|
|
96
|
-
|
|
97
|
-
RUN getent group 1000 || groupadd -g 1000 whisper; \
|
|
98
|
-
id -u 1000 >/dev/null 2>&1 || useradd -m -u 1000 -g 1000 whisper
|
|
90
|
+
RUN groupadd -g 1000 whisper && useradd -m -u 1000 -g 1000 whisper
|
|
99
91
|
|
|
100
92
|
WORKDIR /app
|
|
101
93
|
|
|
102
94
|
COPY --from=builder /app/.venv /app/.venv
|
|
103
95
|
|
|
104
|
-
|
|
96
|
+
# Install imageio-ffmpeg for bundled static ffmpeg binary (77MB vs 420MB for Debian package)
|
|
97
|
+
RUN uv pip install --python /app/.venv/bin/python imageio-ffmpeg && \
|
|
98
|
+
ln -s $(/app/.venv/bin/python -c "import imageio_ffmpeg; print(imageio_ffmpeg.get_ffmpeg_exe())") /usr/local/bin/ffmpeg && \
|
|
105
99
|
ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli && \
|
|
106
100
|
mkdir -p /home/whisper/.cache && chown -R whisper:whisper /home/whisper
|
|
107
101
|
|
|
@@ -118,7 +112,7 @@ ENV WHISPER_HOST=0.0.0.0 \
|
|
|
118
112
|
WHISPER_DEVICE=cpu
|
|
119
113
|
|
|
120
114
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
121
|
-
CMD
|
|
115
|
+
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${WHISPER_PORT}/health')" || exit 1
|
|
122
116
|
|
|
123
117
|
ENTRYPOINT ["sh", "-c", "agent-cli server whisper \
|
|
124
118
|
--host ${WHISPER_HOST} \
|
|
@@ -31,18 +31,19 @@ Available extras:
|
|
|
31
31
|
<!-- ⚠️ This content is auto-generated by `markdown-code-runner`. -->
|
|
32
32
|
| Extra | Description |
|
|
33
33
|
|-------|-------------|
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
34
|
+
| `audio` | Audio recording/playback |
|
|
35
|
+
| `faster-whisper` | TODO: add description |
|
|
36
|
+
| `kokoro` | TODO: add description |
|
|
36
37
|
| `llm` | LLM framework (pydantic-ai) |
|
|
38
|
+
| `llm-core` | Minimal LLM support for Docker images |
|
|
37
39
|
| `memory` | Long-term memory proxy |
|
|
40
|
+
| `mlx-whisper` | TODO: add description |
|
|
41
|
+
| `piper` | TODO: add description |
|
|
38
42
|
| `rag` | RAG proxy (ChromaDB, embeddings) |
|
|
39
43
|
| `server` | FastAPI server components |
|
|
40
44
|
| `speed` | Audio speed adjustment (audiostretchy) |
|
|
41
|
-
| `piper` | Local Piper TTS |
|
|
42
|
-
| `kokoro` | Kokoro neural TTS |
|
|
43
45
|
| `vad` | Voice Activity Detection (silero-vad) |
|
|
44
|
-
| `
|
|
45
|
-
| `mlx-whisper` | Whisper ASR (Apple Silicon) |
|
|
46
|
+
| `wyoming` | Wyoming protocol support |
|
|
46
47
|
|
|
47
48
|
<!-- OUTPUT:END -->
|
|
48
49
|
|
|
@@ -33,7 +33,8 @@ Homepage = "https://github.com/basnijholt/agent-cli"
|
|
|
33
33
|
# Provider extras (previously base dependencies, now optional)
|
|
34
34
|
wyoming = ["wyoming>=1.5.2"] # Wyoming protocol only (for servers)
|
|
35
35
|
audio = ["numpy", "sounddevice>=0.4.6", "agent-cli[wyoming]"] # Local audio recording
|
|
36
|
-
llm = ["pydantic-ai-slim[openai,google
|
|
36
|
+
llm-core = ["pydantic-ai-slim[openai,google]>=0.1.1"] # Minimal LLM support for Docker
|
|
37
|
+
llm = ["pydantic-ai-slim[openai,google,duckduckgo,vertexai]>=0.1.1"] # Full LLM with tools
|
|
37
38
|
|
|
38
39
|
# Feature extras
|
|
39
40
|
server = [
|
|
@@ -71,6 +71,9 @@ kokoro = [
|
|
|
71
71
|
llm = [
|
|
72
72
|
{ name = "pydantic-ai-slim", extra = ["duckduckgo", "google", "openai", "vertexai"] },
|
|
73
73
|
]
|
|
74
|
+
llm-core = [
|
|
75
|
+
{ name = "pydantic-ai-slim", extra = ["google", "openai"] },
|
|
76
|
+
]
|
|
74
77
|
memory = [
|
|
75
78
|
{ name = "chromadb" },
|
|
76
79
|
{ name = "fastapi", extra = ["standard"] },
|
|
@@ -173,6 +176,7 @@ requires-dist = [
|
|
|
173
176
|
{ name = "psutil", marker = "sys_platform == 'win32'" },
|
|
174
177
|
{ name = "pydantic" },
|
|
175
178
|
{ name = "pydantic-ai-slim", extras = ["duckduckgo", "google", "openai", "vertexai"], marker = "extra == 'llm'", specifier = ">=0.1.1" },
|
|
179
|
+
{ name = "pydantic-ai-slim", extras = ["google", "openai"], marker = "extra == 'llm-core'", specifier = ">=0.1.1" },
|
|
176
180
|
{ name = "pylint", marker = "extra == 'dev'", specifier = ">=3.0.0" },
|
|
177
181
|
{ name = "pyperclip" },
|
|
178
182
|
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=7.0.0" },
|
|
@@ -204,7 +208,7 @@ requires-dist = [
|
|
|
204
208
|
{ name = "wyoming", marker = "extra == 'wyoming'", specifier = ">=1.5.2" },
|
|
205
209
|
{ name = "zensical", marker = "extra == 'dev'" },
|
|
206
210
|
]
|
|
207
|
-
provides-extras = ["audio", "dev", "faster-whisper", "kokoro", "llm", "memory", "mlx-whisper", "piper", "rag", "server", "speed", "test", "vad", "wyoming"]
|
|
211
|
+
provides-extras = ["audio", "dev", "faster-whisper", "kokoro", "llm", "llm-core", "memory", "mlx-whisper", "piper", "rag", "server", "speed", "test", "vad", "wyoming"]
|
|
208
212
|
|
|
209
213
|
[package.metadata.requires-dev]
|
|
210
214
|
dev = [
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"wyoming": ["Wyoming protocol for ASR/TTS servers", ["wyoming"]],
|
|
3
|
-
"audio": ["Local audio recording/playback", ["numpy", "sounddevice", "wyoming"]],
|
|
4
|
-
"llm": ["LLM framework (pydantic-ai)", ["pydantic_ai"]],
|
|
5
|
-
"memory": ["Long-term memory proxy", ["chromadb", "openai", "yaml"]],
|
|
6
|
-
"rag": ["RAG proxy (ChromaDB, embeddings)", ["chromadb", "openai"]],
|
|
7
|
-
"server": ["FastAPI server components", ["fastapi"]],
|
|
8
|
-
"speed": ["Audio speed adjustment (audiostretchy)", ["audiostretchy"]],
|
|
9
|
-
"piper": ["Local Piper TTS", ["piper"]],
|
|
10
|
-
"kokoro": ["Kokoro neural TTS", ["kokoro"]],
|
|
11
|
-
"vad": ["Voice Activity Detection (silero-vad)", ["silero_vad"]],
|
|
12
|
-
"faster-whisper": ["Whisper ASR (CUDA/CPU)", ["faster_whisper"]],
|
|
13
|
-
"mlx-whisper": ["Whisper ASR (Apple Silicon)", ["mlx_whisper"]]
|
|
14
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|