agent-cli 0.77.0__tar.gz → 0.77.1__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.77.0 → agent_cli-0.77.1}/PKG-INFO +1 -1
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/daemon/cli.py +34 -3
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/install/launchd.py +25 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/install/service_config.py +1 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/install/systemd.py +26 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/cli.py +12 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/services/tts.py +4 -1
- agent_cli-0.77.1/docs/commands/daemon.md +169 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/index.md +1 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/zensical.toml +1 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.claude-plugin/README.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.cursorrules +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.dockerignore +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.env.example +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/logo.svg +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/release-drafter.yml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/renovate.json +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/workflows/docker.yml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/workflows/release.yml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.gitignore +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.jscpd.json +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.pre-commit-config.yaml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.prompts/docs-review.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/.prompts/pr-review.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/CLAUDE.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/LICENSE +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/README.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/__main__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_extras.json +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/whisper-transformers.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/_tools.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/transcribe_live.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/api.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/cli.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/config.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/constants.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/process.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/daemon/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/cli.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/example-config.toml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/install/common.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/install/hotkeys.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/install/services.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/opts.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/py.typed +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/run-piper-windows.ps1 +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/run-piper.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/run-whisper-linux.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/run-whisper-macos.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/run-whisper-windows.ps1 +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/run-whisper.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/run_faster_whisper_server.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/scripts/sync_extras.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/common.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/backends/transformers.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docker/docker-compose.yml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docker/memory-proxy.Dockerfile +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docker/rag-proxy.Dockerfile +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docker/transcribe-proxy.Dockerfile +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docker/tts.Dockerfile +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docker/whisper.Dockerfile +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/CNAME +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/architecture/index.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/architecture/memory.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/architecture/rag.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/assistant.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/chat.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/config.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/dev.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/install-extras.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/install-services.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/memory.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/server/index.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/speak.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/start-services.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/transcribe-live.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/configuration.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/getting-started.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/index.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/installation/docker.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/installation/index.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/installation/linux.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/installation/macos.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/installation/nixos.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/installation/windows.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/logo-clean.svg +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/docs/system-integration.md +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/justfile +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/pyproject.toml +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/shell.nix +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_transcribe_live.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/conftest.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/core/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/core/test_sse.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/core/test_vad.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/core/test_watch.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/dev/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/dev/test_project.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/install/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/install/test_extras.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_client.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_files.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_store.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/mocks/audio.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/mocks/llm.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/__init__.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_api.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_history.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_store.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_api.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_api_integration.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_asr.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_cli.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_config.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_config_cmd.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_daemon.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_env_vars.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_json_output.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_llm.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_process_manager.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_server_tts.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_services.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_tools.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_transformers_backend.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_tts.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_utils.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_wake_word.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.77.0 → agent_cli-0.77.1}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.77.
|
|
3
|
+
Version: 0.77.1
|
|
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>
|
|
@@ -62,10 +62,18 @@ def status_cmd(
|
|
|
62
62
|
help="Service to check, or omit for all services",
|
|
63
63
|
),
|
|
64
64
|
] = None,
|
|
65
|
+
logs: Annotated[
|
|
66
|
+
int,
|
|
67
|
+
typer.Option(
|
|
68
|
+
"--logs",
|
|
69
|
+
"-l",
|
|
70
|
+
help="Number of recent log lines to show (0 to disable)",
|
|
71
|
+
),
|
|
72
|
+
] = 10,
|
|
65
73
|
) -> None:
|
|
66
74
|
"""Check status of installed daemons.
|
|
67
75
|
|
|
68
|
-
Shows whether each daemon is installed and running.
|
|
76
|
+
Shows whether each daemon is installed and running, along with recent log output.
|
|
69
77
|
|
|
70
78
|
Examples:
|
|
71
79
|
# Check all daemons
|
|
@@ -74,6 +82,12 @@ def status_cmd(
|
|
|
74
82
|
# Check specific daemon
|
|
75
83
|
agent-cli daemon status whisper
|
|
76
84
|
|
|
85
|
+
# Show more log lines
|
|
86
|
+
agent-cli daemon status tts --logs 20
|
|
87
|
+
|
|
88
|
+
# Hide logs
|
|
89
|
+
agent-cli daemon status --logs 0
|
|
90
|
+
|
|
77
91
|
"""
|
|
78
92
|
try:
|
|
79
93
|
manager = get_service_manager()
|
|
@@ -102,12 +116,29 @@ def status_cmd(
|
|
|
102
116
|
else:
|
|
103
117
|
console.print(f" {svc_name}: [yellow]installed but not running[/yellow]")
|
|
104
118
|
|
|
119
|
+
# Show recent logs for installed services
|
|
120
|
+
if logs > 0 and status.installed:
|
|
121
|
+
log_lines = manager.get_recent_logs(svc_name, logs)
|
|
122
|
+
if log_lines:
|
|
123
|
+
console.print()
|
|
124
|
+
console.print(f" [dim]Recent logs ({len(log_lines)} lines):[/dim]")
|
|
125
|
+
max_line_width = 120
|
|
126
|
+
for line in log_lines:
|
|
127
|
+
# Truncate long lines for readability
|
|
128
|
+
display_line = (
|
|
129
|
+
line[:max_line_width] + "..." if len(line) > max_line_width else line
|
|
130
|
+
)
|
|
131
|
+
console.print(f" [dim]{display_line}[/dim]")
|
|
132
|
+
elif status.running:
|
|
133
|
+
console.print()
|
|
134
|
+
console.print(" [dim]No recent logs available[/dim]")
|
|
135
|
+
|
|
105
136
|
console.print()
|
|
106
137
|
system = platform.system()
|
|
107
138
|
if system == "Darwin":
|
|
108
|
-
console.print("[dim]
|
|
139
|
+
console.print("[dim]Full logs: ~/Library/Logs/agent-cli-<service>/[/dim]")
|
|
109
140
|
else:
|
|
110
|
-
console.print("[dim]
|
|
141
|
+
console.print("[dim]Full logs: journalctl --user -u agent-cli-<service> -f[/dim]")
|
|
111
142
|
|
|
112
143
|
|
|
113
144
|
def _confirm_action(message: str) -> bool:
|
|
@@ -46,6 +46,30 @@ def _get_log_command(service_name: str) -> str:
|
|
|
46
46
|
return f"tail -f {log_dir}/*.log"
|
|
47
47
|
|
|
48
48
|
|
|
49
|
+
def _get_recent_logs(service_name: str, num_lines: int = 10) -> list[str]:
|
|
50
|
+
"""Get recent log lines for a service."""
|
|
51
|
+
log_dir = _get_log_dir(service_name)
|
|
52
|
+
stderr_log = log_dir / "stderr.log"
|
|
53
|
+
stdout_log = log_dir / "stdout.log"
|
|
54
|
+
|
|
55
|
+
lines: list[str] = []
|
|
56
|
+
|
|
57
|
+
# Prefer stdout as it has structured output (startup message, usage examples)
|
|
58
|
+
# stderr often has noisy warnings from libraries like PyTorch/Kokoro
|
|
59
|
+
for log_file in [stdout_log, stderr_log]:
|
|
60
|
+
if log_file.exists():
|
|
61
|
+
try:
|
|
62
|
+
with log_file.open() as f:
|
|
63
|
+
all_lines = f.readlines()
|
|
64
|
+
lines = [line.rstrip() for line in all_lines[-num_lines:]]
|
|
65
|
+
if lines:
|
|
66
|
+
break
|
|
67
|
+
except OSError:
|
|
68
|
+
continue
|
|
69
|
+
|
|
70
|
+
return lines
|
|
71
|
+
|
|
72
|
+
|
|
49
73
|
def _generate_plist(
|
|
50
74
|
service: ServiceConfig,
|
|
51
75
|
uv_path: Path,
|
|
@@ -217,4 +241,5 @@ manager = ServiceManager(
|
|
|
217
241
|
uninstall_service=_uninstall_service,
|
|
218
242
|
get_service_status=_get_service_status,
|
|
219
243
|
get_log_command=_get_log_command,
|
|
244
|
+
get_recent_logs=_get_recent_logs,
|
|
220
245
|
)
|
|
@@ -171,6 +171,7 @@ class ServiceManager(NamedTuple):
|
|
|
171
171
|
uninstall_service: Callable[[str], UninstallResult]
|
|
172
172
|
get_service_status: Callable[[str], ServiceStatus]
|
|
173
173
|
get_log_command: Callable[[str], str]
|
|
174
|
+
get_recent_logs: Callable[[str, int], list[str]]
|
|
174
175
|
|
|
175
176
|
|
|
176
177
|
def get_service_manager() -> ServiceManager:
|
|
@@ -36,6 +36,31 @@ def _get_log_command(service_name: str) -> str:
|
|
|
36
36
|
return f"journalctl --user -u agent-cli-{service_name} -f"
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
def _get_recent_logs(service_name: str, num_lines: int = 10) -> list[str]:
|
|
40
|
+
"""Get recent log lines for a service using journalctl."""
|
|
41
|
+
result = subprocess.run(
|
|
42
|
+
[ # noqa: S607
|
|
43
|
+
"journalctl",
|
|
44
|
+
"--user",
|
|
45
|
+
"-u",
|
|
46
|
+
f"agent-cli-{service_name}",
|
|
47
|
+
"-n",
|
|
48
|
+
str(num_lines),
|
|
49
|
+
"--no-pager",
|
|
50
|
+
"-o",
|
|
51
|
+
"cat", # Output only the message, no metadata
|
|
52
|
+
],
|
|
53
|
+
capture_output=True,
|
|
54
|
+
text=True,
|
|
55
|
+
check=False,
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
if result.returncode != 0:
|
|
59
|
+
return []
|
|
60
|
+
|
|
61
|
+
return [line.rstrip() for line in result.stdout.splitlines() if line.strip()]
|
|
62
|
+
|
|
63
|
+
|
|
39
64
|
def _generate_unit_file(
|
|
40
65
|
service: ServiceConfig,
|
|
41
66
|
uv_path: Path,
|
|
@@ -252,4 +277,5 @@ manager = ServiceManager(
|
|
|
252
277
|
uninstall_service=_uninstall_service,
|
|
253
278
|
get_service_status=_get_service_status,
|
|
254
279
|
get_log_command=_get_log_command,
|
|
280
|
+
get_recent_logs=_get_recent_logs,
|
|
255
281
|
)
|
|
@@ -803,6 +803,18 @@ def tts_cmd( # noqa: PLR0915
|
|
|
803
803
|
'input="Hello")[/cyan]',
|
|
804
804
|
)
|
|
805
805
|
console.print()
|
|
806
|
+
voice = "af_heart" if resolved_backend == "kokoro" else "alloy"
|
|
807
|
+
console.print("[dim]Usage with agent-cli:[/dim]")
|
|
808
|
+
console.print(
|
|
809
|
+
f' [cyan]ag speak "Hello" --tts-provider openai '
|
|
810
|
+
f"--tts-openai-base-url http://localhost:{port}/v1 --tts-openai-voice {voice}[/cyan]",
|
|
811
|
+
)
|
|
812
|
+
if not no_wyoming:
|
|
813
|
+
console.print(
|
|
814
|
+
f' [cyan]ag speak "Hello" --tts-provider wyoming --tts-wyoming-ip {host} '
|
|
815
|
+
f"--tts-wyoming-port {wyoming_port}[/cyan]",
|
|
816
|
+
)
|
|
817
|
+
console.print()
|
|
806
818
|
|
|
807
819
|
# Create and run the app
|
|
808
820
|
from agent_cli.server.tts.api import create_app # noqa: PLC0415
|
|
@@ -220,10 +220,13 @@ async def _synthesize_speech_kokoro(
|
|
|
220
220
|
**_kwargs: object,
|
|
221
221
|
) -> bytes | None:
|
|
222
222
|
"""Synthesize speech from text using Kokoro TTS server via OpenAI client."""
|
|
223
|
+
host = kokoro_tts_cfg.tts_kokoro_host
|
|
224
|
+
if not host.startswith(("http://", "https://")):
|
|
225
|
+
host = f"http://{host}"
|
|
223
226
|
openai_tts_cfg = config.OpenAITTS(
|
|
224
227
|
tts_openai_model=kokoro_tts_cfg.tts_kokoro_model,
|
|
225
228
|
tts_openai_voice=kokoro_tts_cfg.tts_kokoro_voice,
|
|
226
|
-
tts_openai_base_url=
|
|
229
|
+
tts_openai_base_url=host,
|
|
227
230
|
)
|
|
228
231
|
try:
|
|
229
232
|
return await synthesize_speech_openai(
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
icon: lucide/settings
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# daemon
|
|
6
|
+
|
|
7
|
+
Manage agent-cli servers as background daemons.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
agent-cli daemon [COMMAND] [OPTIONS]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Description
|
|
16
|
+
|
|
17
|
+
Install, uninstall, and monitor agent-cli servers running as system daemons:
|
|
18
|
+
|
|
19
|
+
- **macOS**: launchd services (`~/Library/LaunchAgents/`)
|
|
20
|
+
- **Linux**: systemd user services (`~/.config/systemd/user/`)
|
|
21
|
+
|
|
22
|
+
Daemons run via `uv tool run` and start automatically at login.
|
|
23
|
+
|
|
24
|
+
## Available Daemons
|
|
25
|
+
|
|
26
|
+
| Daemon | Description | Ports |
|
|
27
|
+
|--------|-------------|-------|
|
|
28
|
+
| `whisper` | Speech-to-text ASR server | 10300/10301 |
|
|
29
|
+
| `tts` | Text-to-speech (Kokoro) | 10200/10201 |
|
|
30
|
+
| `transcription-proxy` | ASR provider proxy | 61337 |
|
|
31
|
+
|
|
32
|
+
## Commands
|
|
33
|
+
|
|
34
|
+
### `status`
|
|
35
|
+
|
|
36
|
+
Check status of installed daemons.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Check all daemons
|
|
40
|
+
agent-cli daemon status
|
|
41
|
+
|
|
42
|
+
# Check specific daemon
|
|
43
|
+
agent-cli daemon status whisper
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### `install`
|
|
47
|
+
|
|
48
|
+
Install server daemons as background processes.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Install specific daemons
|
|
52
|
+
agent-cli daemon install whisper tts
|
|
53
|
+
|
|
54
|
+
# Install all daemons
|
|
55
|
+
agent-cli daemon install --all
|
|
56
|
+
|
|
57
|
+
# Skip confirmation prompts
|
|
58
|
+
agent-cli daemon install whisper -y
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Options:**
|
|
62
|
+
|
|
63
|
+
| Option | Description |
|
|
64
|
+
|--------|-------------|
|
|
65
|
+
| `--all, -a` | Install all available services |
|
|
66
|
+
| `--skip-deps` | Skip uv dependency check |
|
|
67
|
+
| `--no-confirm, -y` | Skip confirmation prompts |
|
|
68
|
+
|
|
69
|
+
### `uninstall`
|
|
70
|
+
|
|
71
|
+
Uninstall server daemons.
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Uninstall specific daemons
|
|
75
|
+
agent-cli daemon uninstall whisper tts
|
|
76
|
+
|
|
77
|
+
# Uninstall all daemons
|
|
78
|
+
agent-cli daemon uninstall --all
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Options:**
|
|
82
|
+
|
|
83
|
+
| Option | Description |
|
|
84
|
+
|--------|-------------|
|
|
85
|
+
| `--all, -a` | Uninstall all installed services |
|
|
86
|
+
| `--no-confirm, -y` | Skip confirmation prompts |
|
|
87
|
+
|
|
88
|
+
## Examples
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Install whisper as a background daemon
|
|
92
|
+
agent-cli daemon install whisper
|
|
93
|
+
|
|
94
|
+
# Check status of all daemons
|
|
95
|
+
agent-cli daemon status
|
|
96
|
+
|
|
97
|
+
# Uninstall a daemon
|
|
98
|
+
agent-cli daemon uninstall whisper
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Logs
|
|
102
|
+
|
|
103
|
+
- **macOS**: `~/Library/Logs/agent-cli-<service>/`
|
|
104
|
+
- **Linux**: `journalctl --user -u agent-cli-<service> -f`
|
|
105
|
+
|
|
106
|
+
## Full Help
|
|
107
|
+
|
|
108
|
+
<details>
|
|
109
|
+
<summary>See the output of <code>agent-cli daemon --help</code></summary>
|
|
110
|
+
|
|
111
|
+
<!-- CODE:BASH:START -->
|
|
112
|
+
<!-- echo '```yaml' -->
|
|
113
|
+
<!-- export NO_COLOR=1 -->
|
|
114
|
+
<!-- export TERM=dumb -->
|
|
115
|
+
<!-- export COLUMNS=90 -->
|
|
116
|
+
<!-- export TERMINAL_WIDTH=90 -->
|
|
117
|
+
<!-- agent-cli daemon --help -->
|
|
118
|
+
<!-- echo '```' -->
|
|
119
|
+
<!-- CODE:END -->
|
|
120
|
+
<!-- OUTPUT:START -->
|
|
121
|
+
<!-- ⚠️ This content is auto-generated by `markdown-code-runner`. -->
|
|
122
|
+
```yaml
|
|
123
|
+
|
|
124
|
+
Usage: agent-cli daemon [OPTIONS] COMMAND [ARGS]...
|
|
125
|
+
|
|
126
|
+
Manage agent-cli servers as background daemons.
|
|
127
|
+
|
|
128
|
+
Install, uninstall, and monitor agent-cli servers running as system daemons (launchd on
|
|
129
|
+
macOS, systemd on Linux).
|
|
130
|
+
|
|
131
|
+
Available daemons:
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
Daemon Description Ports
|
|
135
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
136
|
+
whisper Speech-to-text ASR 10300/10301
|
|
137
|
+
tts Text-to-speech (Kokoro) 10200/10201
|
|
138
|
+
transcription-proxy ASR provider proxy 61337
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
Examples:
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
# Install whisper as a background daemon
|
|
145
|
+
agent-cli daemon install whisper
|
|
146
|
+
|
|
147
|
+
# Check status of all daemons
|
|
148
|
+
agent-cli daemon status
|
|
149
|
+
|
|
150
|
+
# Uninstall a daemon
|
|
151
|
+
agent-cli daemon uninstall whisper
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
Daemons run via uv tool run and start automatically at login.
|
|
155
|
+
|
|
156
|
+
╭─ Options ──────────────────────────────────────────────────────────────────────────────╮
|
|
157
|
+
│ --help -h Show this message and exit. │
|
|
158
|
+
╰────────────────────────────────────────────────────────────────────────────────────────╯
|
|
159
|
+
╭─ Commands ─────────────────────────────────────────────────────────────────────────────╮
|
|
160
|
+
│ status Check status of installed daemons. │
|
|
161
|
+
│ install Install server daemons as background processes. │
|
|
162
|
+
│ uninstall Uninstall server daemons. │
|
|
163
|
+
╰────────────────────────────────────────────────────────────────────────────────────────╯
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
<!-- OUTPUT:END -->
|
|
168
|
+
|
|
169
|
+
</details>
|
|
@@ -30,6 +30,7 @@ Agent CLI provides multiple commands, each designed for a specific purpose.
|
|
|
30
30
|
| [`rag-proxy`](rag-proxy.md) | RAG server | Chat with your documents |
|
|
31
31
|
| [`memory`](memory.md) | Long-term memory | Persistent conversation memory |
|
|
32
32
|
| [`server`](server/index.md) | ASR & TTS servers | Local Whisper and Kokoro/Piper with TTL-based memory management |
|
|
33
|
+
| [`daemon`](daemon.md) | Service manager | Install/manage servers as system daemons |
|
|
33
34
|
|
|
34
35
|
The [`server`](server/index.md) command provides local ASR (speech-to-text) and TTS (text-to-speech) servers with unique advantages over standalone alternatives:
|
|
35
36
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|