agent-cli 0.72.5__tar.gz → 0.72.7__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.7}/PKG-INFO +5 -1
- agent_cli-0.72.7/agent_cli/_extras.json +75 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/memory.txt +51 -7
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/rag.txt +51 -7
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/sync_extras.py +3 -2
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docker/memory-proxy.Dockerfile +4 -10
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docker/rag-proxy.Dockerfile +4 -10
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docker/transcribe-proxy.Dockerfile +10 -18
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docker/tts.Dockerfile +6 -12
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docker/whisper.Dockerfile +6 -12
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/install-extras.md +7 -6
- {agent_cli-0.72.5 → agent_cli-0.72.7}/pyproject.toml +6 -3
- {agent_cli-0.72.5 → agent_cli-0.72.7}/uv.lock +9 -1
- agent_cli-0.72.5/agent_cli/_extras.json +0 -14
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.claude-plugin/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.cursorrules +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.dockerignore +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.env.example +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/logo.svg +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/release-drafter.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/renovate.json +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/workflows/docker.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/workflows/release.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.gitignore +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.jscpd.json +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.pre-commit-config.yaml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.prompts/docs-review.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/.prompts/pr-review.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/CLAUDE.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/LICENSE +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/__main__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/_tools.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/transcribe_daemon.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/config.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/constants.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/process.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/example-config.toml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/install/common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/install/hotkeys.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/install/services.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/opts.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/py.typed +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/run-piper-windows.ps1 +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/run-piper.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/run-whisper-linux.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/run-whisper-macos.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/run-whisper-windows.ps1 +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/run-whisper.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/run_faster_whisper_server.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docker/docker-compose.yml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/CNAME +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/architecture/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/architecture/memory.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/architecture/rag.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/assistant.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/chat.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/config.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/dev.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/install-services.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/memory.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/server/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/speak.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/start-services.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/transcribe-daemon.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/configuration.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/getting-started.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/installation/docker.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/installation/index.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/installation/linux.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/installation/macos.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/installation/nixos.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/installation/windows.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/logo-clean.svg +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/docs/system-integration.md +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/justfile +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/shell.nix +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_transcribe_daemon.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/conftest.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/core/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/core/test_sse.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/core/test_vad.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/core/test_watch.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/dev/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/dev/test_project.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/install/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/install/test_extras.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_client.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_files.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_store.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/mocks/audio.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/mocks/llm.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/__init__.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_history.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_store.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_api.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_api_integration.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_asr.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_cli.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_config.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_config_cmd.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_env_vars.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_json_output.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_llm.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_process_manager.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_server_tts.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_services.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_tools.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_tts.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_wake_word.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.72.5 → agent_cli-0.72.7}/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.7
|
|
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,12 +46,15 @@ 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'
|
|
52
54
|
Requires-Dist: huggingface-hub>=0.20.0; extra == 'memory'
|
|
53
55
|
Requires-Dist: onnxruntime>=1.17.0; extra == 'memory'
|
|
54
56
|
Requires-Dist: openai>=1.0.0; extra == 'memory'
|
|
57
|
+
Requires-Dist: pydantic-ai-slim[google,openai]>=0.1.1; extra == 'memory'
|
|
55
58
|
Requires-Dist: pyyaml>=6.0.0; extra == 'memory'
|
|
56
59
|
Requires-Dist: transformers>=4.30.0; extra == 'memory'
|
|
57
60
|
Requires-Dist: watchfiles>=0.21.0; extra == 'memory'
|
|
@@ -68,6 +71,7 @@ Requires-Dist: huggingface-hub>=0.20.0; extra == 'rag'
|
|
|
68
71
|
Requires-Dist: markitdown[docx,pdf,pptx]>=0.1.3; extra == 'rag'
|
|
69
72
|
Requires-Dist: onnxruntime>=1.17.0; extra == 'rag'
|
|
70
73
|
Requires-Dist: openai>=1.0.0; extra == 'rag'
|
|
74
|
+
Requires-Dist: pydantic-ai-slim[google,openai]>=0.1.1; extra == 'rag'
|
|
71
75
|
Requires-Dist: transformers>=4.30.0; extra == 'rag'
|
|
72
76
|
Requires-Dist: watchfiles>=0.21.0; extra == 'rag'
|
|
73
77
|
Provides-Extra: server
|
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
"pydantic_ai"
|
|
34
|
+
]
|
|
35
|
+
],
|
|
36
|
+
"mlx-whisper": [
|
|
37
|
+
"TODO: add description",
|
|
38
|
+
[]
|
|
39
|
+
],
|
|
40
|
+
"piper": [
|
|
41
|
+
"TODO: add description",
|
|
42
|
+
[]
|
|
43
|
+
],
|
|
44
|
+
"rag": [
|
|
45
|
+
"RAG proxy (ChromaDB, embeddings)",
|
|
46
|
+
[
|
|
47
|
+
"chromadb",
|
|
48
|
+
"pydantic_ai"
|
|
49
|
+
]
|
|
50
|
+
],
|
|
51
|
+
"server": [
|
|
52
|
+
"FastAPI server components",
|
|
53
|
+
[
|
|
54
|
+
"fastapi"
|
|
55
|
+
]
|
|
56
|
+
],
|
|
57
|
+
"speed": [
|
|
58
|
+
"Audio speed adjustment (audiostretchy)",
|
|
59
|
+
[
|
|
60
|
+
"audiostretchy"
|
|
61
|
+
]
|
|
62
|
+
],
|
|
63
|
+
"vad": [
|
|
64
|
+
"Voice Activity Detection (silero-vad)",
|
|
65
|
+
[
|
|
66
|
+
"silero_vad"
|
|
67
|
+
]
|
|
68
|
+
],
|
|
69
|
+
"wyoming": [
|
|
70
|
+
"Wyoming protocol support",
|
|
71
|
+
[
|
|
72
|
+
"wyoming"
|
|
73
|
+
]
|
|
74
|
+
]
|
|
75
|
+
}
|
|
@@ -6,6 +6,7 @@ annotated-types==0.7.0
|
|
|
6
6
|
# via pydantic
|
|
7
7
|
anyio==4.12.1
|
|
8
8
|
# via
|
|
9
|
+
# google-genai
|
|
9
10
|
# httpx
|
|
10
11
|
# openai
|
|
11
12
|
# starlette
|
|
@@ -37,16 +38,18 @@ click==8.3.1
|
|
|
37
38
|
# typer
|
|
38
39
|
# typer-slim
|
|
39
40
|
# uvicorn
|
|
40
|
-
colorama==0.4.6
|
|
41
|
+
colorama==0.4.6
|
|
41
42
|
# via
|
|
42
43
|
# build
|
|
43
44
|
# click
|
|
45
|
+
# griffe
|
|
44
46
|
# tqdm
|
|
45
47
|
# uvicorn
|
|
46
48
|
coloredlogs==15.0.1
|
|
47
49
|
# via onnxruntime
|
|
48
50
|
distro==1.9.0
|
|
49
51
|
# via
|
|
52
|
+
# google-genai
|
|
50
53
|
# openai
|
|
51
54
|
# posthog
|
|
52
55
|
dnspython==2.8.0
|
|
@@ -75,10 +78,18 @@ flatbuffers==25.12.19
|
|
|
75
78
|
# via onnxruntime
|
|
76
79
|
fsspec==2026.1.0
|
|
77
80
|
# via huggingface-hub
|
|
81
|
+
genai-prices==0.0.51
|
|
82
|
+
# via pydantic-ai-slim
|
|
78
83
|
google-auth==2.47.0
|
|
79
|
-
# via
|
|
84
|
+
# via
|
|
85
|
+
# google-genai
|
|
86
|
+
# kubernetes
|
|
87
|
+
google-genai==1.58.0
|
|
88
|
+
# via pydantic-ai-slim
|
|
80
89
|
googleapis-common-protos==1.72.0
|
|
81
90
|
# via opentelemetry-exporter-otlp-proto-grpc
|
|
91
|
+
griffe==1.15.0
|
|
92
|
+
# via pydantic-ai-slim
|
|
82
93
|
grpcio==1.76.0
|
|
83
94
|
# via
|
|
84
95
|
# chromadb
|
|
@@ -99,7 +110,11 @@ httpx==0.28.1
|
|
|
99
110
|
# chromadb
|
|
100
111
|
# fastapi
|
|
101
112
|
# fastapi-cloud-cli
|
|
113
|
+
# genai-prices
|
|
114
|
+
# google-genai
|
|
102
115
|
# openai
|
|
116
|
+
# pydantic-ai-slim
|
|
117
|
+
# pydantic-graph
|
|
103
118
|
huggingface-hub==0.36.0
|
|
104
119
|
# via
|
|
105
120
|
# agent-cli
|
|
@@ -127,6 +142,8 @@ jsonschema-specifications==2025.9.1
|
|
|
127
142
|
# via jsonschema
|
|
128
143
|
kubernetes==34.1.0
|
|
129
144
|
# via chromadb
|
|
145
|
+
logfire-api==4.18.0
|
|
146
|
+
# via pydantic-graph
|
|
130
147
|
markdown-it-py==4.0.0
|
|
131
148
|
# via rich
|
|
132
149
|
markupsafe==3.0.3
|
|
@@ -149,13 +166,16 @@ onnxruntime==1.20.1
|
|
|
149
166
|
# agent-cli
|
|
150
167
|
# chromadb
|
|
151
168
|
openai==2.15.0
|
|
152
|
-
# via
|
|
169
|
+
# via
|
|
170
|
+
# agent-cli
|
|
171
|
+
# pydantic-ai-slim
|
|
153
172
|
opentelemetry-api==1.39.1
|
|
154
173
|
# via
|
|
155
174
|
# chromadb
|
|
156
175
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
157
176
|
# opentelemetry-sdk
|
|
158
177
|
# opentelemetry-semantic-conventions
|
|
178
|
+
# pydantic-ai-slim
|
|
159
179
|
opentelemetry-exporter-otlp-proto-common==1.39.1
|
|
160
180
|
# via opentelemetry-exporter-otlp-proto-grpc
|
|
161
181
|
opentelemetry-exporter-otlp-proto-grpc==1.39.1
|
|
@@ -203,13 +223,21 @@ pydantic==2.12.5
|
|
|
203
223
|
# chromadb
|
|
204
224
|
# fastapi
|
|
205
225
|
# fastapi-cloud-cli
|
|
226
|
+
# genai-prices
|
|
227
|
+
# google-genai
|
|
206
228
|
# openai
|
|
229
|
+
# pydantic-ai-slim
|
|
207
230
|
# pydantic-extra-types
|
|
231
|
+
# pydantic-graph
|
|
208
232
|
# pydantic-settings
|
|
233
|
+
pydantic-ai-slim==1.42.0
|
|
234
|
+
# via agent-cli
|
|
209
235
|
pydantic-core==2.41.5
|
|
210
236
|
# via pydantic
|
|
211
237
|
pydantic-extra-types==2.11.0
|
|
212
238
|
# via fastapi
|
|
239
|
+
pydantic-graph==1.42.0
|
|
240
|
+
# via pydantic-ai-slim
|
|
213
241
|
pydantic-settings==2.12.0
|
|
214
242
|
# via fastapi
|
|
215
243
|
pygments==2.19.2
|
|
@@ -246,13 +274,18 @@ referencing==0.37.0
|
|
|
246
274
|
# jsonschema
|
|
247
275
|
# jsonschema-specifications
|
|
248
276
|
regex==2026.1.15
|
|
249
|
-
# via
|
|
277
|
+
# via
|
|
278
|
+
# tiktoken
|
|
279
|
+
# transformers
|
|
250
280
|
requests==2.32.5
|
|
251
281
|
# via
|
|
282
|
+
# google-auth
|
|
283
|
+
# google-genai
|
|
252
284
|
# huggingface-hub
|
|
253
285
|
# kubernetes
|
|
254
286
|
# posthog
|
|
255
287
|
# requests-oauthlib
|
|
288
|
+
# tiktoken
|
|
256
289
|
# transformers
|
|
257
290
|
requests-oauthlib==2.0.0
|
|
258
291
|
# via kubernetes
|
|
@@ -291,13 +324,19 @@ six==1.17.0
|
|
|
291
324
|
# posthog
|
|
292
325
|
# python-dateutil
|
|
293
326
|
sniffio==1.3.1
|
|
294
|
-
# via
|
|
327
|
+
# via
|
|
328
|
+
# google-genai
|
|
329
|
+
# openai
|
|
295
330
|
starlette==0.50.0
|
|
296
331
|
# via fastapi
|
|
297
332
|
sympy==1.14.0
|
|
298
333
|
# via onnxruntime
|
|
299
334
|
tenacity==9.1.2
|
|
300
|
-
# via
|
|
335
|
+
# via
|
|
336
|
+
# chromadb
|
|
337
|
+
# google-genai
|
|
338
|
+
tiktoken==0.12.0
|
|
339
|
+
# via pydantic-ai-slim
|
|
301
340
|
tokenizers==0.22.2
|
|
302
341
|
# via
|
|
303
342
|
# chromadb
|
|
@@ -323,6 +362,7 @@ typing-extensions==4.15.0
|
|
|
323
362
|
# anyio
|
|
324
363
|
# chromadb
|
|
325
364
|
# fastapi
|
|
365
|
+
# google-genai
|
|
326
366
|
# grpcio
|
|
327
367
|
# huggingface-hub
|
|
328
368
|
# openai
|
|
@@ -342,6 +382,8 @@ typing-extensions==4.15.0
|
|
|
342
382
|
typing-inspection==0.4.2
|
|
343
383
|
# via
|
|
344
384
|
# pydantic
|
|
385
|
+
# pydantic-ai-slim
|
|
386
|
+
# pydantic-graph
|
|
345
387
|
# pydantic-settings
|
|
346
388
|
urllib3==2.3.0
|
|
347
389
|
# via
|
|
@@ -363,6 +405,8 @@ watchfiles==1.1.1
|
|
|
363
405
|
websocket-client==1.9.0
|
|
364
406
|
# via kubernetes
|
|
365
407
|
websockets==15.0.1
|
|
366
|
-
# via
|
|
408
|
+
# via
|
|
409
|
+
# google-genai
|
|
410
|
+
# uvicorn
|
|
367
411
|
zipp==3.23.0
|
|
368
412
|
# via importlib-metadata
|
|
@@ -6,6 +6,7 @@ annotated-types==0.7.0
|
|
|
6
6
|
# via pydantic
|
|
7
7
|
anyio==4.12.1
|
|
8
8
|
# via
|
|
9
|
+
# google-genai
|
|
9
10
|
# httpx
|
|
10
11
|
# openai
|
|
11
12
|
# starlette
|
|
@@ -49,10 +50,11 @@ click==8.3.1
|
|
|
49
50
|
# uvicorn
|
|
50
51
|
cobble==0.1.4
|
|
51
52
|
# via mammoth
|
|
52
|
-
colorama==0.4.6
|
|
53
|
+
colorama==0.4.6
|
|
53
54
|
# via
|
|
54
55
|
# build
|
|
55
56
|
# click
|
|
57
|
+
# griffe
|
|
56
58
|
# tqdm
|
|
57
59
|
# uvicorn
|
|
58
60
|
coloredlogs==15.0.1
|
|
@@ -63,6 +65,7 @@ defusedxml==0.7.1
|
|
|
63
65
|
# via markitdown
|
|
64
66
|
distro==1.9.0
|
|
65
67
|
# via
|
|
68
|
+
# google-genai
|
|
66
69
|
# openai
|
|
67
70
|
# posthog
|
|
68
71
|
dnspython==2.8.0
|
|
@@ -91,10 +94,18 @@ flatbuffers==25.12.19
|
|
|
91
94
|
# via onnxruntime
|
|
92
95
|
fsspec==2026.1.0
|
|
93
96
|
# via huggingface-hub
|
|
97
|
+
genai-prices==0.0.51
|
|
98
|
+
# via pydantic-ai-slim
|
|
94
99
|
google-auth==2.47.0
|
|
95
|
-
# via
|
|
100
|
+
# via
|
|
101
|
+
# google-genai
|
|
102
|
+
# kubernetes
|
|
103
|
+
google-genai==1.58.0
|
|
104
|
+
# via pydantic-ai-slim
|
|
96
105
|
googleapis-common-protos==1.72.0
|
|
97
106
|
# via opentelemetry-exporter-otlp-proto-grpc
|
|
107
|
+
griffe==1.15.0
|
|
108
|
+
# via pydantic-ai-slim
|
|
98
109
|
grpcio==1.76.0
|
|
99
110
|
# via
|
|
100
111
|
# chromadb
|
|
@@ -115,7 +126,11 @@ httpx==0.28.1
|
|
|
115
126
|
# chromadb
|
|
116
127
|
# fastapi
|
|
117
128
|
# fastapi-cloud-cli
|
|
129
|
+
# genai-prices
|
|
130
|
+
# google-genai
|
|
118
131
|
# openai
|
|
132
|
+
# pydantic-ai-slim
|
|
133
|
+
# pydantic-graph
|
|
119
134
|
huggingface-hub==0.36.0
|
|
120
135
|
# via
|
|
121
136
|
# agent-cli
|
|
@@ -143,6 +158,8 @@ jsonschema-specifications==2025.9.1
|
|
|
143
158
|
# via jsonschema
|
|
144
159
|
kubernetes==34.1.0
|
|
145
160
|
# via chromadb
|
|
161
|
+
logfire-api==4.18.0
|
|
162
|
+
# via pydantic-graph
|
|
146
163
|
lxml==6.0.2
|
|
147
164
|
# via
|
|
148
165
|
# markitdown
|
|
@@ -180,13 +197,16 @@ onnxruntime==1.20.1
|
|
|
180
197
|
# magika
|
|
181
198
|
# markitdown
|
|
182
199
|
openai==2.15.0
|
|
183
|
-
# via
|
|
200
|
+
# via
|
|
201
|
+
# agent-cli
|
|
202
|
+
# pydantic-ai-slim
|
|
184
203
|
opentelemetry-api==1.39.1
|
|
185
204
|
# via
|
|
186
205
|
# chromadb
|
|
187
206
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
188
207
|
# opentelemetry-sdk
|
|
189
208
|
# opentelemetry-semantic-conventions
|
|
209
|
+
# pydantic-ai-slim
|
|
190
210
|
opentelemetry-exporter-otlp-proto-common==1.39.1
|
|
191
211
|
# via opentelemetry-exporter-otlp-proto-grpc
|
|
192
212
|
opentelemetry-exporter-otlp-proto-grpc==1.39.1
|
|
@@ -240,13 +260,21 @@ pydantic==2.12.5
|
|
|
240
260
|
# chromadb
|
|
241
261
|
# fastapi
|
|
242
262
|
# fastapi-cloud-cli
|
|
263
|
+
# genai-prices
|
|
264
|
+
# google-genai
|
|
243
265
|
# openai
|
|
266
|
+
# pydantic-ai-slim
|
|
244
267
|
# pydantic-extra-types
|
|
268
|
+
# pydantic-graph
|
|
245
269
|
# pydantic-settings
|
|
270
|
+
pydantic-ai-slim==1.42.0
|
|
271
|
+
# via agent-cli
|
|
246
272
|
pydantic-core==2.41.5
|
|
247
273
|
# via pydantic
|
|
248
274
|
pydantic-extra-types==2.11.0
|
|
249
275
|
# via fastapi
|
|
276
|
+
pydantic-graph==1.42.0
|
|
277
|
+
# via pydantic-ai-slim
|
|
250
278
|
pydantic-settings==2.12.0
|
|
251
279
|
# via fastapi
|
|
252
280
|
pygments==2.19.2
|
|
@@ -285,14 +313,19 @@ referencing==0.37.0
|
|
|
285
313
|
# jsonschema
|
|
286
314
|
# jsonschema-specifications
|
|
287
315
|
regex==2026.1.15
|
|
288
|
-
# via
|
|
316
|
+
# via
|
|
317
|
+
# tiktoken
|
|
318
|
+
# transformers
|
|
289
319
|
requests==2.32.5
|
|
290
320
|
# via
|
|
321
|
+
# google-auth
|
|
322
|
+
# google-genai
|
|
291
323
|
# huggingface-hub
|
|
292
324
|
# kubernetes
|
|
293
325
|
# markitdown
|
|
294
326
|
# posthog
|
|
295
327
|
# requests-oauthlib
|
|
328
|
+
# tiktoken
|
|
296
329
|
# transformers
|
|
297
330
|
requests-oauthlib==2.0.0
|
|
298
331
|
# via kubernetes
|
|
@@ -332,7 +365,9 @@ six==1.17.0
|
|
|
332
365
|
# posthog
|
|
333
366
|
# python-dateutil
|
|
334
367
|
sniffio==1.3.1
|
|
335
|
-
# via
|
|
368
|
+
# via
|
|
369
|
+
# google-genai
|
|
370
|
+
# openai
|
|
336
371
|
soupsieve==2.8.1
|
|
337
372
|
# via beautifulsoup4
|
|
338
373
|
starlette==0.50.0
|
|
@@ -340,7 +375,11 @@ starlette==0.50.0
|
|
|
340
375
|
sympy==1.14.0
|
|
341
376
|
# via onnxruntime
|
|
342
377
|
tenacity==9.1.2
|
|
343
|
-
# via
|
|
378
|
+
# via
|
|
379
|
+
# chromadb
|
|
380
|
+
# google-genai
|
|
381
|
+
tiktoken==0.12.0
|
|
382
|
+
# via pydantic-ai-slim
|
|
344
383
|
tokenizers==0.22.2
|
|
345
384
|
# via
|
|
346
385
|
# chromadb
|
|
@@ -367,6 +406,7 @@ typing-extensions==4.15.0
|
|
|
367
406
|
# beautifulsoup4
|
|
368
407
|
# chromadb
|
|
369
408
|
# fastapi
|
|
409
|
+
# google-genai
|
|
370
410
|
# grpcio
|
|
371
411
|
# huggingface-hub
|
|
372
412
|
# openai
|
|
@@ -387,6 +427,8 @@ typing-extensions==4.15.0
|
|
|
387
427
|
typing-inspection==0.4.2
|
|
388
428
|
# via
|
|
389
429
|
# pydantic
|
|
430
|
+
# pydantic-ai-slim
|
|
431
|
+
# pydantic-graph
|
|
390
432
|
# pydantic-settings
|
|
391
433
|
urllib3==2.3.0
|
|
392
434
|
# via
|
|
@@ -408,7 +450,9 @@ watchfiles==1.1.1
|
|
|
408
450
|
websocket-client==1.9.0
|
|
409
451
|
# via kubernetes
|
|
410
452
|
websockets==15.0.1
|
|
411
|
-
# via
|
|
453
|
+
# via
|
|
454
|
+
# google-genai
|
|
455
|
+
# uvicorn
|
|
412
456
|
xlsxwriter==3.2.9
|
|
413
457
|
# via python-pptx
|
|
414
458
|
zipp==3.23.0
|
|
@@ -33,9 +33,10 @@ 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
|
-
"rag": ("RAG proxy (ChromaDB, embeddings)", ["chromadb"]),
|
|
38
|
-
"memory": ("Long-term memory proxy", ["chromadb", "yaml"]),
|
|
38
|
+
"rag": ("RAG proxy (ChromaDB, embeddings)", ["chromadb", "pydantic_ai"]),
|
|
39
|
+
"memory": ("Long-term memory proxy", ["chromadb", "yaml", "pydantic_ai"]),
|
|
39
40
|
"vad": ("Voice Activity Detection (silero-vad)", ["silero_vad"]),
|
|
40
41
|
"whisper": ("Local Whisper ASR (faster-whisper)", ["faster_whisper"]),
|
|
41
42
|
"whisper-mlx": ("MLX Whisper for Apple Silicon", ["mlx_whisper"]),
|
|
@@ -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} \
|