agent-cli 0.72.3__tar.gz → 0.72.5__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.3 → agent_cli-0.72.5}/.claude-plugin/README.md +1 -1
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/docker.yml +4 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/PKG-INFO +3 -3
- {agent_cli-0.72.3 → agent_cli-0.72.5}/README.md +2 -2
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/cli.py +5 -1
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/extras.py +3 -1
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docker/docker-compose.yml +84 -0
- agent_cli-0.72.5/docker/memory-proxy.Dockerfile +121 -0
- agent_cli-0.72.5/docker/rag-proxy.Dockerfile +106 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/architecture/memory.md +11 -1
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/architecture/rag.md +13 -1
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/docker.md +23 -1
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.cursorrules +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.dockerignore +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.env.example +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/logo.svg +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/release-drafter.yml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/renovate.json +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/release.yml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.gitignore +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.jscpd.json +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.pre-commit-config.yaml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.prompts/docs-review.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/.prompts/pr-review.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/CLAUDE.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/LICENSE +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/__main__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_extras.json +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_tools.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/transcribe_daemon.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/api.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/cli.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/config.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/constants.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/process.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/example-config.toml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/common.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/hotkeys.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/services.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/opts.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/py.typed +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-piper-windows.ps1 +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-piper.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-whisper-linux.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-whisper-macos.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-whisper-windows.ps1 +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-whisper.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run_faster_whisper_server.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/sync_extras.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/common.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docker/transcribe-proxy.Dockerfile +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docker/tts.Dockerfile +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docker/whisper.Dockerfile +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/CNAME +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/architecture/index.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/assistant.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/chat.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/config.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/dev.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/index.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/install-extras.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/install-services.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/memory.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/server/index.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/speak.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/start-services.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/transcribe-daemon.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/configuration.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/getting-started.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/index.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/index.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/linux.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/macos.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/nixos.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/windows.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/logo-clean.svg +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/system-integration.md +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/justfile +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/pyproject.toml +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/shell.nix +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe_daemon.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/conftest.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_sse.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_vad.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_watch.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_project.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/install/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/install/test_extras.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_client.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_files.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_store.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/mocks/audio.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/mocks/llm.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/__init__.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_api.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_history.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_store.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_api.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_api_integration.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_asr.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_cli.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_config.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_config_cmd.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_env_vars.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_json_output.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_llm.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_process_manager.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_server_tts.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_services.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_tools.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_tts.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_utils.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_wake_word.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/uv.lock +0 -0
- {agent_cli-0.72.3 → agent_cli-0.72.5}/zensical.toml +0 -0
|
@@ -30,7 +30,7 @@ uvx --python 3.13 agent-cli dev new my-feature --agent --prompt "..."
|
|
|
30
30
|
claude plugin marketplace add basnijholt/agent-cli
|
|
31
31
|
|
|
32
32
|
# Then install
|
|
33
|
-
claude plugin install agent-cli@agent-cli
|
|
33
|
+
claude plugin install agent-cli-dev@agent-cli
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## Usage
|
|
@@ -104,6 +104,10 @@ jobs:
|
|
|
104
104
|
include:
|
|
105
105
|
- image: transcribe-proxy
|
|
106
106
|
dockerfile: docker/transcribe-proxy.Dockerfile
|
|
107
|
+
- image: rag-proxy
|
|
108
|
+
dockerfile: docker/rag-proxy.Dockerfile
|
|
109
|
+
- image: memory-proxy
|
|
110
|
+
dockerfile: docker/memory-proxy.Dockerfile
|
|
107
111
|
|
|
108
112
|
steps:
|
|
109
113
|
- name: Checkout repository
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.72.
|
|
3
|
+
Version: 0.72.5
|
|
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>
|
|
@@ -88,7 +88,7 @@ Description-Content-Type: text/markdown
|
|
|
88
88
|
|
|
89
89
|
# Agent CLI
|
|
90
90
|
|
|
91
|
-
<img src="https://raw.githubusercontent.com/basnijholt/agent-cli/refs/heads/main/.github/logo.svg" alt="agent-cli logo" align="right" style="width:
|
|
91
|
+
<img src="https://raw.githubusercontent.com/basnijholt/agent-cli/refs/heads/main/.github/logo.svg" alt="agent-cli logo" align="right" style="width: 200px;" />
|
|
92
92
|
|
|
93
93
|
`agent-cli` is a collection of **_local-first_**, AI-powered command-line agents that run entirely on your machine.
|
|
94
94
|
It provides a suite of powerful tools for voice and text interaction, designed for privacy, offline capability, and seamless integration with system-wide hotkeys and workflows.
|
|
@@ -391,7 +391,7 @@ agent-cli dev install-skill
|
|
|
391
391
|
|
|
392
392
|
# Option 2: Install via Claude Code plugin marketplace
|
|
393
393
|
claude plugin marketplace add basnijholt/agent-cli
|
|
394
|
-
claude plugin install agent-cli@agent-cli
|
|
394
|
+
claude plugin install agent-cli-dev@agent-cli
|
|
395
395
|
```
|
|
396
396
|
|
|
397
397
|
Once installed, Claude Code can automatically use this skill when you ask to:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Agent CLI
|
|
2
2
|
|
|
3
|
-
<img src="https://raw.githubusercontent.com/basnijholt/agent-cli/refs/heads/main/.github/logo.svg" alt="agent-cli logo" align="right" style="width:
|
|
3
|
+
<img src="https://raw.githubusercontent.com/basnijholt/agent-cli/refs/heads/main/.github/logo.svg" alt="agent-cli logo" align="right" style="width: 200px;" />
|
|
4
4
|
|
|
5
5
|
`agent-cli` is a collection of **_local-first_**, AI-powered command-line agents that run entirely on your machine.
|
|
6
6
|
It provides a suite of powerful tools for voice and text interaction, designed for privacy, offline capability, and seamless integration with system-wide hotkeys and workflows.
|
|
@@ -303,7 +303,7 @@ agent-cli dev install-skill
|
|
|
303
303
|
|
|
304
304
|
# Option 2: Install via Claude Code plugin marketplace
|
|
305
305
|
claude plugin marketplace add basnijholt/agent-cli
|
|
306
|
-
claude plugin install agent-cli@agent-cli
|
|
306
|
+
claude plugin install agent-cli-dev@agent-cli
|
|
307
307
|
```
|
|
308
308
|
|
|
309
309
|
Once installed, Claude Code can automatically use this skill when you ask to:
|
|
@@ -176,6 +176,8 @@ def _info(msg: str) -> None:
|
|
|
176
176
|
# Style commands (messages starting with "Running: ")
|
|
177
177
|
if msg.startswith("Running: "):
|
|
178
178
|
cmd = msg[9:] # Remove "Running: " prefix
|
|
179
|
+
# Escape brackets to prevent Rich from interpreting them as markup
|
|
180
|
+
cmd = cmd.replace("[", r"\[")
|
|
179
181
|
console.print(f"[dim]→[/dim] Running: [bold cyan]{cmd}[/bold cyan]")
|
|
180
182
|
else:
|
|
181
183
|
console.print(f"[dim]→[/dim] {msg}")
|
|
@@ -1777,7 +1779,9 @@ def install_skill(
|
|
|
1777
1779
|
- Works when you ask to "work on multiple features" or "parallelize tasks"
|
|
1778
1780
|
|
|
1779
1781
|
**Alternative:** Install globally via Claude Code plugin marketplace:
|
|
1780
|
-
|
|
1782
|
+
|
|
1783
|
+
1. `claude plugin marketplace add basnijholt/agent-cli`
|
|
1784
|
+
2. `claude plugin install agent-cli-dev@agent-cli`
|
|
1781
1785
|
"""
|
|
1782
1786
|
# Use current repo root (works in worktrees too)
|
|
1783
1787
|
repo_root = _get_current_repo_root()
|
|
@@ -68,7 +68,9 @@ def _install_via_uv_tool(extras: list[str], *, quiet: bool = False) -> bool:
|
|
|
68
68
|
if quiet:
|
|
69
69
|
cmd.append("-q")
|
|
70
70
|
# Use stderr for status messages so they don't pollute stdout (e.g., for hotkey notifications)
|
|
71
|
-
|
|
71
|
+
# Escape brackets to prevent Rich from interpreting them as markup
|
|
72
|
+
cmd_str = " ".join(cmd).replace("[", r"\[")
|
|
73
|
+
err_console.print(f"Running: [cyan]{cmd_str}[/]")
|
|
72
74
|
result = subprocess.run(cmd, check=False)
|
|
73
75
|
return result.returncode == 0
|
|
74
76
|
|
|
@@ -41,6 +41,17 @@
|
|
|
41
41
|
# LLM_OPENAI_MODEL - Model name for OpenAI LLM provider
|
|
42
42
|
# OPENAI_BASE_URL - OpenAI-compatible LLM endpoint
|
|
43
43
|
# OPENAI_API_KEY - API key for OpenAI LLM
|
|
44
|
+
#
|
|
45
|
+
# RAG_PORT - RAG proxy port (default: 8000)
|
|
46
|
+
# RAG_LIMIT - Number of document chunks per query (default: 3)
|
|
47
|
+
# RAG_ENABLE_TOOLS - Enable read_full_document tool (default: true)
|
|
48
|
+
# EMBEDDING_MODEL - Embedding model for RAG/memory (default: text-embedding-3-small)
|
|
49
|
+
#
|
|
50
|
+
# MEMORY_PORT - Memory proxy port (default: 8100)
|
|
51
|
+
# MEMORY_TOP_K - Number of memories per query (default: 5)
|
|
52
|
+
# MEMORY_MAX_ENTRIES - Max entries per conversation (default: 500)
|
|
53
|
+
# MEMORY_SUMMARIZATION - Enable fact extraction (default: true)
|
|
54
|
+
# MEMORY_GIT_VERSIONING - Enable git versioning (default: true)
|
|
44
55
|
|
|
45
56
|
services:
|
|
46
57
|
# ===========================================================================
|
|
@@ -227,6 +238,69 @@ services:
|
|
|
227
238
|
# - OPENAI_API_KEY=your-api-key
|
|
228
239
|
restart: unless-stopped
|
|
229
240
|
|
|
241
|
+
# ===========================================================================
|
|
242
|
+
# RAG Proxy
|
|
243
|
+
# ===========================================================================
|
|
244
|
+
|
|
245
|
+
rag-proxy:
|
|
246
|
+
image: ghcr.io/basnijholt/agent-cli-rag-proxy:latest
|
|
247
|
+
build:
|
|
248
|
+
context: ..
|
|
249
|
+
dockerfile: docker/rag-proxy.Dockerfile
|
|
250
|
+
profiles: [cuda, cpu]
|
|
251
|
+
ports:
|
|
252
|
+
- "8000:8000"
|
|
253
|
+
volumes:
|
|
254
|
+
- rag-docs:/data/docs
|
|
255
|
+
- rag-db:/data/db
|
|
256
|
+
- rag-cache:/home/rag/.cache
|
|
257
|
+
environment:
|
|
258
|
+
- RAG_HOST=0.0.0.0
|
|
259
|
+
- RAG_PORT=${RAG_PORT:-8000}
|
|
260
|
+
- RAG_DOCS_FOLDER=/data/docs
|
|
261
|
+
- RAG_CHROMA_PATH=/data/db
|
|
262
|
+
- RAG_LIMIT=${RAG_LIMIT:-3}
|
|
263
|
+
- RAG_ENABLE_TOOLS=${RAG_ENABLE_TOOLS:-true}
|
|
264
|
+
- EMBEDDING_MODEL=${EMBEDDING_MODEL:-text-embedding-3-small}
|
|
265
|
+
- LOG_LEVEL=${LOG_LEVEL:-info}
|
|
266
|
+
# OpenAI-compatible backend configuration
|
|
267
|
+
- OPENAI_BASE_URL=${OPENAI_BASE_URL:-http://ollama:11434/v1}
|
|
268
|
+
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
|
|
269
|
+
restart: unless-stopped
|
|
270
|
+
|
|
271
|
+
# ===========================================================================
|
|
272
|
+
# Memory Proxy
|
|
273
|
+
# ===========================================================================
|
|
274
|
+
|
|
275
|
+
memory-proxy:
|
|
276
|
+
image: ghcr.io/basnijholt/agent-cli-memory-proxy:latest
|
|
277
|
+
build:
|
|
278
|
+
context: ..
|
|
279
|
+
dockerfile: docker/memory-proxy.Dockerfile
|
|
280
|
+
profiles: [cuda, cpu]
|
|
281
|
+
ports:
|
|
282
|
+
- "8100:8100"
|
|
283
|
+
volumes:
|
|
284
|
+
- memory-data:/data/memory
|
|
285
|
+
- memory-cache:/home/memory/.cache
|
|
286
|
+
environment:
|
|
287
|
+
- MEMORY_HOST=0.0.0.0
|
|
288
|
+
- MEMORY_PORT=${MEMORY_PORT:-8100}
|
|
289
|
+
- MEMORY_PATH=/data/memory
|
|
290
|
+
- MEMORY_TOP_K=${MEMORY_TOP_K:-5}
|
|
291
|
+
- MEMORY_MAX_ENTRIES=${MEMORY_MAX_ENTRIES:-500}
|
|
292
|
+
- MEMORY_MMR_LAMBDA=${MEMORY_MMR_LAMBDA:-0.7}
|
|
293
|
+
- MEMORY_RECENCY_WEIGHT=${MEMORY_RECENCY_WEIGHT:-0.2}
|
|
294
|
+
- MEMORY_SCORE_THRESHOLD=${MEMORY_SCORE_THRESHOLD:-0.35}
|
|
295
|
+
- MEMORY_SUMMARIZATION=${MEMORY_SUMMARIZATION:-true}
|
|
296
|
+
- MEMORY_GIT_VERSIONING=${MEMORY_GIT_VERSIONING:-true}
|
|
297
|
+
- EMBEDDING_MODEL=${EMBEDDING_MODEL:-text-embedding-3-small}
|
|
298
|
+
- LOG_LEVEL=${LOG_LEVEL:-info}
|
|
299
|
+
# OpenAI-compatible backend configuration
|
|
300
|
+
- OPENAI_BASE_URL=${OPENAI_BASE_URL:-http://ollama:11434/v1}
|
|
301
|
+
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
|
|
302
|
+
restart: unless-stopped
|
|
303
|
+
|
|
230
304
|
volumes:
|
|
231
305
|
ollama-data:
|
|
232
306
|
name: agent-cli-ollama-data
|
|
@@ -236,3 +310,13 @@ volumes:
|
|
|
236
310
|
name: agent-cli-whisper-cache
|
|
237
311
|
tts-cache:
|
|
238
312
|
name: agent-cli-tts-cache
|
|
313
|
+
rag-docs:
|
|
314
|
+
name: agent-cli-rag-docs
|
|
315
|
+
rag-db:
|
|
316
|
+
name: agent-cli-rag-db
|
|
317
|
+
rag-cache:
|
|
318
|
+
name: agent-cli-rag-cache
|
|
319
|
+
memory-data:
|
|
320
|
+
name: agent-cli-memory-data
|
|
321
|
+
memory-cache:
|
|
322
|
+
name: agent-cli-memory-cache
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Dockerfile for agent-cli Memory Proxy server
|
|
2
|
+
# A long-term memory proxy that stores facts and injects relevant context into LLM requests
|
|
3
|
+
#
|
|
4
|
+
# Build example:
|
|
5
|
+
# docker build -f docker/memory-proxy.Dockerfile -t agent-cli-memory-proxy .
|
|
6
|
+
#
|
|
7
|
+
# Run examples:
|
|
8
|
+
# docker run -p 8100:8100 -v ./memory:/data/memory agent-cli-memory-proxy
|
|
9
|
+
#
|
|
10
|
+
# # With custom OpenAI-compatible backend:
|
|
11
|
+
# docker run -p 8100:8100 \
|
|
12
|
+
# -v ./memory:/data/memory \
|
|
13
|
+
# -e OPENAI_BASE_URL=http://ollama:11434/v1 \
|
|
14
|
+
# agent-cli-memory-proxy
|
|
15
|
+
#
|
|
16
|
+
# Environment variables (priority: env var > config file > default):
|
|
17
|
+
# MEMORY_PATH - Directory for memory storage (default: /data/memory)
|
|
18
|
+
# MEMORY_TOP_K - Number of memories to retrieve per query (default: 5)
|
|
19
|
+
# MEMORY_MAX_ENTRIES - Max entries per conversation before eviction (default: 500)
|
|
20
|
+
# MEMORY_MMR_LAMBDA - MMR lambda 0-1, higher=relevance (default: 0.7)
|
|
21
|
+
# MEMORY_RECENCY_WEIGHT - Weight for recency vs semantic (default: 0.2)
|
|
22
|
+
# MEMORY_SCORE_THRESHOLD - Min relevance threshold (default: 0.35)
|
|
23
|
+
# MEMORY_SUMMARIZATION - Enable fact extraction: true/false (default: true)
|
|
24
|
+
# MEMORY_GIT_VERSIONING - Enable git versioning: true/false (default: true)
|
|
25
|
+
# EMBEDDING_MODEL - Embedding model name (default: text-embedding-3-small)
|
|
26
|
+
# OPENAI_BASE_URL - OpenAI-compatible API base URL
|
|
27
|
+
# OPENAI_API_KEY - API key for embeddings and chat
|
|
28
|
+
# MEMORY_HOST - Server bind address (default: 0.0.0.0)
|
|
29
|
+
# MEMORY_PORT - Server port (default: 8100)
|
|
30
|
+
# LOG_LEVEL - Logging level: debug, info, warning, error (default: info)
|
|
31
|
+
|
|
32
|
+
# =============================================================================
|
|
33
|
+
# Builder stage - install dependencies and project
|
|
34
|
+
# =============================================================================
|
|
35
|
+
FROM python:3.13-slim AS builder
|
|
36
|
+
|
|
37
|
+
RUN apt-get update && \
|
|
38
|
+
apt-get install -y --no-install-recommends git build-essential && \
|
|
39
|
+
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
40
|
+
|
|
41
|
+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
42
|
+
|
|
43
|
+
WORKDIR /app
|
|
44
|
+
|
|
45
|
+
COPY pyproject.toml uv.lock README.md ./
|
|
46
|
+
COPY .git ./.git
|
|
47
|
+
COPY agent_cli ./agent_cli
|
|
48
|
+
COPY scripts ./scripts
|
|
49
|
+
RUN uv sync --frozen --no-dev --no-editable --extra memory
|
|
50
|
+
|
|
51
|
+
# =============================================================================
|
|
52
|
+
# Runtime stage - minimal image
|
|
53
|
+
# =============================================================================
|
|
54
|
+
FROM debian:bookworm-slim
|
|
55
|
+
|
|
56
|
+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
57
|
+
|
|
58
|
+
# Install runtime dependencies:
|
|
59
|
+
# - libgomp1: Required by onnxruntime for parallel processing
|
|
60
|
+
# - git: Required for memory git versioning feature
|
|
61
|
+
RUN apt-get update && \
|
|
62
|
+
apt-get install -y --no-install-recommends libgomp1 git && \
|
|
63
|
+
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
64
|
+
|
|
65
|
+
ENV UV_PYTHON_INSTALL_DIR=/opt/python
|
|
66
|
+
RUN uv python install 3.13
|
|
67
|
+
|
|
68
|
+
RUN groupadd -g 1000 memory && useradd -m -u 1000 -g memory memory
|
|
69
|
+
|
|
70
|
+
WORKDIR /app
|
|
71
|
+
|
|
72
|
+
COPY --from=builder /app/.venv /app/.venv
|
|
73
|
+
|
|
74
|
+
RUN ln -sf $(uv python find 3.13) /app/.venv/bin/python && \
|
|
75
|
+
ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
|
|
76
|
+
|
|
77
|
+
# Create data directory
|
|
78
|
+
RUN mkdir -p /data/memory && chown -R memory:memory /data
|
|
79
|
+
|
|
80
|
+
USER memory
|
|
81
|
+
|
|
82
|
+
# Configure git for memory versioning (required for commits)
|
|
83
|
+
RUN git config --global user.email "memory-proxy@agent-cli.local" && \
|
|
84
|
+
git config --global user.name "Memory Proxy"
|
|
85
|
+
|
|
86
|
+
# Cache directory for models (embeddings)
|
|
87
|
+
ENV HF_HOME=/home/memory/.cache/huggingface
|
|
88
|
+
RUN mkdir -p /home/memory/.cache/huggingface
|
|
89
|
+
|
|
90
|
+
EXPOSE 8100
|
|
91
|
+
|
|
92
|
+
ENV MEMORY_HOST=0.0.0.0 \
|
|
93
|
+
MEMORY_PORT=8100 \
|
|
94
|
+
MEMORY_PATH=/data/memory \
|
|
95
|
+
MEMORY_TOP_K=5 \
|
|
96
|
+
MEMORY_MAX_ENTRIES=500 \
|
|
97
|
+
MEMORY_MMR_LAMBDA=0.7 \
|
|
98
|
+
MEMORY_RECENCY_WEIGHT=0.2 \
|
|
99
|
+
MEMORY_SCORE_THRESHOLD=0.35 \
|
|
100
|
+
MEMORY_SUMMARIZATION=true \
|
|
101
|
+
MEMORY_GIT_VERSIONING=true \
|
|
102
|
+
EMBEDDING_MODEL=text-embedding-3-small \
|
|
103
|
+
LOG_LEVEL=info
|
|
104
|
+
|
|
105
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
|
|
106
|
+
CMD /app/.venv/bin/python -c "import urllib.request; urllib.request.urlopen('http://localhost:${MEMORY_PORT}/health')" || exit 1
|
|
107
|
+
|
|
108
|
+
ENTRYPOINT ["sh", "-c", "agent-cli memory proxy \
|
|
109
|
+
--host ${MEMORY_HOST} \
|
|
110
|
+
--port ${MEMORY_PORT} \
|
|
111
|
+
--memory-path ${MEMORY_PATH} \
|
|
112
|
+
--default-top-k ${MEMORY_TOP_K} \
|
|
113
|
+
--max-entries ${MEMORY_MAX_ENTRIES} \
|
|
114
|
+
--mmr-lambda ${MEMORY_MMR_LAMBDA} \
|
|
115
|
+
--recency-weight ${MEMORY_RECENCY_WEIGHT} \
|
|
116
|
+
--score-threshold ${MEMORY_SCORE_THRESHOLD} \
|
|
117
|
+
--embedding-model ${EMBEDDING_MODEL} \
|
|
118
|
+
--log-level ${LOG_LEVEL} \
|
|
119
|
+
$([ \"${MEMORY_SUMMARIZATION}\" = \"false\" ] && echo '--no-summarization' || echo '--summarization') \
|
|
120
|
+
$([ \"${MEMORY_GIT_VERSIONING}\" = \"false\" ] && echo '--no-git-versioning' || echo '--git-versioning') \
|
|
121
|
+
${MEMORY_EXTRA_ARGS:-}"]
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Dockerfile for agent-cli RAG Proxy server
|
|
2
|
+
# A document-aware proxy that indexes files and injects relevant context into LLM requests
|
|
3
|
+
#
|
|
4
|
+
# Build example:
|
|
5
|
+
# docker build -f docker/rag-proxy.Dockerfile -t agent-cli-rag-proxy .
|
|
6
|
+
#
|
|
7
|
+
# Run examples:
|
|
8
|
+
# docker run -p 8000:8000 -v ./docs:/data/docs agent-cli-rag-proxy
|
|
9
|
+
#
|
|
10
|
+
# # With custom OpenAI-compatible backend:
|
|
11
|
+
# docker run -p 8000:8000 \
|
|
12
|
+
# -v ./docs:/data/docs \
|
|
13
|
+
# -v ./rag_db:/data/db \
|
|
14
|
+
# -e OPENAI_BASE_URL=http://ollama:11434/v1 \
|
|
15
|
+
# agent-cli-rag-proxy
|
|
16
|
+
#
|
|
17
|
+
# Environment variables (priority: env var > config file > default):
|
|
18
|
+
# RAG_DOCS_FOLDER - Folder to watch for documents (default: /data/docs)
|
|
19
|
+
# RAG_CHROMA_PATH - ChromaDB storage directory (default: /data/db)
|
|
20
|
+
# RAG_LIMIT - Number of chunks to retrieve per query (default: 3)
|
|
21
|
+
# RAG_ENABLE_TOOLS - Enable read_full_document tool: true/false (default: true)
|
|
22
|
+
# EMBEDDING_MODEL - Embedding model name (default: text-embedding-3-small)
|
|
23
|
+
# OPENAI_BASE_URL - OpenAI-compatible API base URL
|
|
24
|
+
# OPENAI_API_KEY - API key for embeddings and chat
|
|
25
|
+
# RAG_HOST - Server bind address (default: 0.0.0.0)
|
|
26
|
+
# RAG_PORT - Server port (default: 8000)
|
|
27
|
+
# LOG_LEVEL - Logging level: debug, info, warning, error (default: info)
|
|
28
|
+
|
|
29
|
+
# =============================================================================
|
|
30
|
+
# Builder stage - install dependencies and project
|
|
31
|
+
# =============================================================================
|
|
32
|
+
FROM python:3.13-slim AS builder
|
|
33
|
+
|
|
34
|
+
RUN apt-get update && \
|
|
35
|
+
apt-get install -y --no-install-recommends git build-essential && \
|
|
36
|
+
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
37
|
+
|
|
38
|
+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
39
|
+
|
|
40
|
+
WORKDIR /app
|
|
41
|
+
|
|
42
|
+
COPY pyproject.toml uv.lock README.md ./
|
|
43
|
+
COPY .git ./.git
|
|
44
|
+
COPY agent_cli ./agent_cli
|
|
45
|
+
COPY scripts ./scripts
|
|
46
|
+
RUN uv sync --frozen --no-dev --no-editable --extra rag
|
|
47
|
+
|
|
48
|
+
# =============================================================================
|
|
49
|
+
# Runtime stage - minimal image
|
|
50
|
+
# =============================================================================
|
|
51
|
+
FROM debian:bookworm-slim
|
|
52
|
+
|
|
53
|
+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
54
|
+
|
|
55
|
+
# Install runtime dependencies:
|
|
56
|
+
# - libgomp1: Required by onnxruntime for parallel processing
|
|
57
|
+
# - git: Required for .git detection in some document types
|
|
58
|
+
RUN apt-get update && \
|
|
59
|
+
apt-get install -y --no-install-recommends libgomp1 git && \
|
|
60
|
+
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
61
|
+
|
|
62
|
+
ENV UV_PYTHON_INSTALL_DIR=/opt/python
|
|
63
|
+
RUN uv python install 3.13
|
|
64
|
+
|
|
65
|
+
RUN groupadd -g 1000 rag && useradd -m -u 1000 -g rag rag
|
|
66
|
+
|
|
67
|
+
WORKDIR /app
|
|
68
|
+
|
|
69
|
+
COPY --from=builder /app/.venv /app/.venv
|
|
70
|
+
|
|
71
|
+
RUN ln -sf $(uv python find 3.13) /app/.venv/bin/python && \
|
|
72
|
+
ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
|
|
73
|
+
|
|
74
|
+
# Create data directories
|
|
75
|
+
RUN mkdir -p /data/docs /data/db && chown -R rag:rag /data
|
|
76
|
+
|
|
77
|
+
USER rag
|
|
78
|
+
|
|
79
|
+
# Cache directory for models (embeddings, reranker)
|
|
80
|
+
ENV HF_HOME=/home/rag/.cache/huggingface
|
|
81
|
+
RUN mkdir -p /home/rag/.cache/huggingface
|
|
82
|
+
|
|
83
|
+
EXPOSE 8000
|
|
84
|
+
|
|
85
|
+
ENV RAG_HOST=0.0.0.0 \
|
|
86
|
+
RAG_PORT=8000 \
|
|
87
|
+
RAG_DOCS_FOLDER=/data/docs \
|
|
88
|
+
RAG_CHROMA_PATH=/data/db \
|
|
89
|
+
RAG_LIMIT=3 \
|
|
90
|
+
RAG_ENABLE_TOOLS=true \
|
|
91
|
+
EMBEDDING_MODEL=text-embedding-3-small \
|
|
92
|
+
LOG_LEVEL=info
|
|
93
|
+
|
|
94
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
|
|
95
|
+
CMD /app/.venv/bin/python -c "import urllib.request; urllib.request.urlopen('http://localhost:${RAG_PORT}/health')" || exit 1
|
|
96
|
+
|
|
97
|
+
ENTRYPOINT ["sh", "-c", "agent-cli rag-proxy \
|
|
98
|
+
--host ${RAG_HOST} \
|
|
99
|
+
--port ${RAG_PORT} \
|
|
100
|
+
--docs-folder ${RAG_DOCS_FOLDER} \
|
|
101
|
+
--chroma-path ${RAG_CHROMA_PATH} \
|
|
102
|
+
--limit ${RAG_LIMIT} \
|
|
103
|
+
--embedding-model ${EMBEDDING_MODEL} \
|
|
104
|
+
--log-level ${LOG_LEVEL} \
|
|
105
|
+
$([ \"${RAG_ENABLE_TOOLS}\" = \"false\" ] && echo '--no-rag-tools' || echo '--rag-tools') \
|
|
106
|
+
${RAG_EXTRA_ARGS:-}"]
|
|
@@ -46,7 +46,17 @@ A local-first system that gives LLMs persistent memory across conversations, wit
|
|
|
46
46
|
|
|
47
47
|
### Try It Now
|
|
48
48
|
|
|
49
|
-
Get an LLM that remembers you using [Ollama](https://ollama.com).
|
|
49
|
+
Get an LLM that remembers you using [Ollama](https://ollama.com). Three options:
|
|
50
|
+
|
|
51
|
+
**Option 0: With Docker Compose (easiest)**
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Start Memory proxy with Ollama backend
|
|
55
|
+
docker compose -f docker/docker-compose.yml --profile cpu up memory-proxy ollama
|
|
56
|
+
|
|
57
|
+
# Point your chat client at http://localhost:8100/v1
|
|
58
|
+
# The LLM will now remember facts across conversations
|
|
59
|
+
```
|
|
50
60
|
|
|
51
61
|
**Option A: With [Open WebUI](https://github.com/open-webui/open-webui) (web interface)**
|
|
52
62
|
|
|
@@ -40,7 +40,19 @@ A local proxy that gives LLMs access to your documents using smarter multi-stage
|
|
|
40
40
|
|
|
41
41
|
### Try It Now
|
|
42
42
|
|
|
43
|
-
Chat with your documents using [Ollama](https://ollama.com).
|
|
43
|
+
Chat with your documents using [Ollama](https://ollama.com). Three options:
|
|
44
|
+
|
|
45
|
+
**Option 0: With Docker Compose (easiest)**
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Start RAG proxy with Ollama backend
|
|
49
|
+
docker compose -f docker/docker-compose.yml --profile cpu up rag-proxy ollama
|
|
50
|
+
|
|
51
|
+
# Copy your documents into the volume
|
|
52
|
+
docker cp ./my-docs/. $(docker volume inspect agent-cli-rag-docs --format '{{ .Mountpoint }}')/
|
|
53
|
+
|
|
54
|
+
# Point your chat client at http://localhost:8000/v1
|
|
55
|
+
```
|
|
44
56
|
|
|
45
57
|
**Option A: With [Open WebUI](https://github.com/open-webui/open-webui) (web interface)**
|
|
46
58
|
|
|
@@ -59,7 +59,9 @@ The Docker setup provides:
|
|
|
59
59
|
| ----------------------- | --------------------------------- | ----------- | ------------------------------ |
|
|
60
60
|
| **whisper** | agent-cli-whisper (custom) | 10300/10301 | Speech-to-text (Faster Whisper)|
|
|
61
61
|
| **tts** | agent-cli-tts (custom) | 10200/10201 | Text-to-speech (Kokoro/Piper) |
|
|
62
|
-
| **transcribe-proxy**
|
|
62
|
+
| **transcribe-proxy** | agent-cli-transcribe-proxy | 61337 | ASR proxy for iOS/external apps|
|
|
63
|
+
| **rag-proxy** | agent-cli-rag-proxy | 8000 | Document-aware chat (RAG) |
|
|
64
|
+
| **memory-proxy** | agent-cli-memory-proxy | 8100 | Long-term memory chat |
|
|
63
65
|
| **ollama** | ollama/ollama | 11434 | LLM server |
|
|
64
66
|
| **openwakeword** | rhasspy/wyoming-openwakeword | 10400 | Wake word detection |
|
|
65
67
|
|
|
@@ -87,6 +89,19 @@ LLM_OLLAMA_MODEL=gemma3:4b # Ollama model name
|
|
|
87
89
|
LLM_OLLAMA_HOST=http://ollama:11434 # Ollama server URL (container name)
|
|
88
90
|
LLM_OPENAI_MODEL=gpt-4.1-nano # OpenAI model (if using openai provider)
|
|
89
91
|
OPENAI_API_KEY=sk-... # OpenAI API key (if using openai provider)
|
|
92
|
+
|
|
93
|
+
# RAG Proxy
|
|
94
|
+
RAG_PORT=8000 # Port for RAG proxy
|
|
95
|
+
RAG_LIMIT=3 # Number of document chunks per query
|
|
96
|
+
RAG_ENABLE_TOOLS=true # Enable read_full_document tool
|
|
97
|
+
EMBEDDING_MODEL=text-embedding-3-small # Embedding model for RAG/memory
|
|
98
|
+
|
|
99
|
+
# Memory Proxy
|
|
100
|
+
MEMORY_PORT=8100 # Port for memory proxy
|
|
101
|
+
MEMORY_TOP_K=5 # Number of memories per query
|
|
102
|
+
MEMORY_MAX_ENTRIES=500 # Max entries per conversation before eviction
|
|
103
|
+
MEMORY_SUMMARIZATION=true # Enable fact extraction from conversations
|
|
104
|
+
MEMORY_GIT_VERSIONING=true # Enable git versioning for memory changes
|
|
90
105
|
```
|
|
91
106
|
|
|
92
107
|
### GPU Support
|
|
@@ -117,11 +132,18 @@ Services store data in Docker volumes:
|
|
|
117
132
|
- `agent-cli-tts-cache` - TTS models and voices
|
|
118
133
|
- `agent-cli-ollama-data` - Ollama models
|
|
119
134
|
- `agent-cli-openwakeword-data` - Wake word models
|
|
135
|
+
- `agent-cli-rag-docs` - Documents to index for RAG
|
|
136
|
+
- `agent-cli-rag-db` - RAG vector database (ChromaDB)
|
|
137
|
+
- `agent-cli-rag-cache` - RAG embedding models
|
|
138
|
+
- `agent-cli-memory-data` - Memory entries and vector index
|
|
139
|
+
- `agent-cli-memory-cache` - Memory embedding models
|
|
120
140
|
|
|
121
141
|
## Ports Reference
|
|
122
142
|
|
|
123
143
|
| Port | Service | Protocol |
|
|
124
144
|
| ----- | ------------------- | -------- |
|
|
145
|
+
| 8000 | RAG Proxy | HTTP API |
|
|
146
|
+
| 8100 | Memory Proxy | HTTP API |
|
|
125
147
|
| 10200 | TTS | Wyoming |
|
|
126
148
|
| 10201 | TTS | HTTP API |
|
|
127
149
|
| 10300 | Whisper | Wyoming |
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|