agent-cli 0.90.0__tar.gz → 0.91.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.pre-commit-config.yaml +2 -2
- {agent_cli-0.90.0 → agent_cli-0.91.0}/PKG-INFO +39 -8
- {agent_cli-0.90.0 → agent_cli-0.91.0}/README.md +38 -7
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/config.py +25 -5
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/config_cmd.py +14 -6
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/architecture/index.md +1 -1
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/config.md +2 -1
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/configuration.md +25 -5
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_config.py +107 -4
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.claude-plugin/README.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.cursorrules +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.dockerignore +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.env.example +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/logo.svg +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/release-drafter.yml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/renovate.json +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/scripts/sync_extras.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/workflows/docker.yml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/workflows/release.yml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.gitignore +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.jscpd.json +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.prompts/docs-review.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/.prompts/pr-review.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/CLAUDE.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/LICENSE +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/LLAMA_SERVER_USAGE.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/__main__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_extras.json +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/diarization.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/vectordb.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/whisper-transformers.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/_tools.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/diarize_live_session.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/transcribe_live.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/api.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/cli.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/constants.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/alignment.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/diarization.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/process.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/daemon/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/daemon/cli.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/_branch_name.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/_config.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/_output.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/cleanup.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/cli.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/hooks.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/launch.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/example-config.toml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/install/common.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/install/hotkeys.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/install/launchd.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/install/service_config.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/install/services.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/install/systemd.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/opts.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/py.typed +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/common.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/backends/transformers.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docker/docker-compose.yml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docker/memory-proxy.Dockerfile +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docker/rag-proxy.Dockerfile +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docker/transcribe-proxy.Dockerfile +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docker/tts.Dockerfile +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docker/whisper.Dockerfile +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/CNAME +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/architecture/memory.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/architecture/rag.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/assistant.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/chat.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/daemon.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/dev.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/diarize-live-session.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/index.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/install-extras.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/install-services.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/memory.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/server/index.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/speak.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/start-services.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/transcribe-live.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/getting-started.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/index.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/installation/docker.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/installation/index.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/installation/linux.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/installation/macos.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/installation/nixos.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/installation/windows.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/logo-clean.svg +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/docs/system-integration.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/justfile +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/pyproject.toml +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/reddit.md +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/shell.nix +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_transcribe_live.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/conftest.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/core/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/core/test_audio.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/core/test_sse.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/core/test_vad.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/core/test_watch.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_cleanup.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_hooks.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_launch.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_project.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/install/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/install/test_extras.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_client.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_files.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_store.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/mocks/audio.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/mocks/llm.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/__init__.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_api.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_history.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_store.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_alignment.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_api.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_api_integration.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_asr.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_cli.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_config_cmd.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_daemon.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_diarization.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_diarize_live_session.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_env_vars.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_faster_whisper_backend.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_json_output.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_llm.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_process_manager.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_server_tts.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_services.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_tools.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_transformers_backend.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_tts.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_utils.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_wake_word.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/uv.lock +0 -0
- {agent_cli-0.90.0 → agent_cli-0.91.0}/zensical.toml +0 -0
|
@@ -11,13 +11,13 @@ repos:
|
|
|
11
11
|
- id: end-of-file-fixer
|
|
12
12
|
- id: mixed-line-ending
|
|
13
13
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
14
|
-
rev: "v0.15.
|
|
14
|
+
rev: "v0.15.12"
|
|
15
15
|
hooks:
|
|
16
16
|
- id: ruff
|
|
17
17
|
args: ["--fix"]
|
|
18
18
|
- id: ruff-format
|
|
19
19
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
20
|
-
rev: "v1.20.
|
|
20
|
+
rev: "v1.20.2"
|
|
21
21
|
hooks:
|
|
22
22
|
- id: mypy
|
|
23
23
|
additional_dependencies: ["types-PyYAML"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.91.0
|
|
4
4
|
Summary: A suite of AI-powered command-line tools for text correction, audio transcription, and voice assistance.
|
|
5
5
|
Project-URL: Homepage, https://github.com/basnijholt/agent-cli
|
|
6
6
|
Author-email: Bas Nijholt <bas@nijho.lt>
|
|
@@ -263,6 +263,7 @@ The setup scripts automatically install:
|
|
|
263
263
|
- [Installation Commands](#installation-commands)
|
|
264
264
|
- [Installing Optional Extras](#installing-optional-extras)
|
|
265
265
|
- [Configuration](#configuration)
|
|
266
|
+
- [Environment variable overrides](#environment-variable-overrides)
|
|
266
267
|
- [Managing Configuration](#managing-configuration)
|
|
267
268
|
- [Provider Defaults](#provider-defaults)
|
|
268
269
|
- [`autocorrect`](#autocorrect)
|
|
@@ -571,15 +572,36 @@ agent-cli install-extras rag memory vad
|
|
|
571
572
|
|
|
572
573
|
### Configuration
|
|
573
574
|
|
|
574
|
-
All `agent-cli` commands can be configured using a TOML file.
|
|
575
|
+
All `agent-cli` commands can be configured using a TOML file.
|
|
576
|
+
The configuration file is searched for in the following locations, in order:
|
|
575
577
|
|
|
576
|
-
1.
|
|
577
|
-
2.
|
|
578
|
+
1. CLI flag (`--config` on agent commands, `--path` on `agent-cli config ...`)
|
|
579
|
+
2. `$AGENT_CLI_CONFIG_HOME/config.toml` if set
|
|
580
|
+
3. `./agent-cli-config.toml` (in the current directory)
|
|
581
|
+
4. `$XDG_CONFIG_HOME/agent-cli/config.toml` if `XDG_CONFIG_HOME` is set and non-empty, otherwise `~/.config/agent-cli/config.toml`
|
|
578
582
|
|
|
579
583
|
You can also specify a path to a configuration file using the `--config` option, e.g., `agent-cli transcribe --config /path/to/your/config.toml`.
|
|
580
584
|
|
|
581
585
|
Command-line options always take precedence over settings in the configuration file.
|
|
582
586
|
|
|
587
|
+
#### Environment variable overrides
|
|
588
|
+
|
|
589
|
+
Use `AGENT_CLI_CONFIG_HOME` to redirect the user-level config to a directory of your choice:
|
|
590
|
+
|
|
591
|
+
```bash
|
|
592
|
+
# use a project-scoped config
|
|
593
|
+
AGENT_CLI_CONFIG_HOME=./.agent-cli agent-cli chat ...
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
Use `XDG_CONFIG_HOME` to follow XDG-style config placement when no `AGENT_CLI_CONFIG_HOME` is set:
|
|
597
|
+
|
|
598
|
+
```bash
|
|
599
|
+
# follow XDG (e.g. inside a sandbox or container)
|
|
600
|
+
XDG_CONFIG_HOME=/workspace/.config agent-cli chat ...
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
Config paths are resolved when `agent-cli` starts, so set these variables before invoking the command.
|
|
604
|
+
|
|
583
605
|
#### Managing Configuration
|
|
584
606
|
|
|
585
607
|
Use the `config` command to manage your configuration files:
|
|
@@ -620,11 +642,20 @@ agent-cli config edit
|
|
|
620
642
|
|
|
621
643
|
Config files are TOML format and searched in order:
|
|
622
644
|
|
|
623
|
-
1
|
|
624
|
-
2
|
|
645
|
+
1 $AGENT_CLI_CONFIG_HOME/config.toml (if set)
|
|
646
|
+
2 ./agent-cli-config.toml (project-local)
|
|
647
|
+
3 $XDG_CONFIG_HOME/agent-cli/config.toml (if set)
|
|
648
|
+
4 ~/.config/agent-cli/config.toml (user default)
|
|
649
|
+
|
|
650
|
+
Settings in [defaults] apply globally.
|
|
651
|
+
|
|
652
|
+
Use [chat] or [transcribe] for command-specific overrides.
|
|
653
|
+
|
|
654
|
+
CLI arguments override config file settings.
|
|
655
|
+
|
|
656
|
+
Set env vars before startup.
|
|
625
657
|
|
|
626
|
-
|
|
627
|
-
[chat] or [transcribe]. CLI arguments override config file settings.
|
|
658
|
+
Use $AGENT_CLI_CONFIG_HOME or $XDG_CONFIG_HOME to change config path.
|
|
628
659
|
|
|
629
660
|
╭─ Options ──────────────────────────────────────────────────────────────────────────────╮
|
|
630
661
|
│ --help -h Show this message and exit. │
|
|
@@ -158,6 +158,7 @@ The setup scripts automatically install:
|
|
|
158
158
|
- [Installation Commands](#installation-commands)
|
|
159
159
|
- [Installing Optional Extras](#installing-optional-extras)
|
|
160
160
|
- [Configuration](#configuration)
|
|
161
|
+
- [Environment variable overrides](#environment-variable-overrides)
|
|
161
162
|
- [Managing Configuration](#managing-configuration)
|
|
162
163
|
- [Provider Defaults](#provider-defaults)
|
|
163
164
|
- [`autocorrect`](#autocorrect)
|
|
@@ -466,15 +467,36 @@ agent-cli install-extras rag memory vad
|
|
|
466
467
|
|
|
467
468
|
### Configuration
|
|
468
469
|
|
|
469
|
-
All `agent-cli` commands can be configured using a TOML file.
|
|
470
|
+
All `agent-cli` commands can be configured using a TOML file.
|
|
471
|
+
The configuration file is searched for in the following locations, in order:
|
|
470
472
|
|
|
471
|
-
1.
|
|
472
|
-
2.
|
|
473
|
+
1. CLI flag (`--config` on agent commands, `--path` on `agent-cli config ...`)
|
|
474
|
+
2. `$AGENT_CLI_CONFIG_HOME/config.toml` if set
|
|
475
|
+
3. `./agent-cli-config.toml` (in the current directory)
|
|
476
|
+
4. `$XDG_CONFIG_HOME/agent-cli/config.toml` if `XDG_CONFIG_HOME` is set and non-empty, otherwise `~/.config/agent-cli/config.toml`
|
|
473
477
|
|
|
474
478
|
You can also specify a path to a configuration file using the `--config` option, e.g., `agent-cli transcribe --config /path/to/your/config.toml`.
|
|
475
479
|
|
|
476
480
|
Command-line options always take precedence over settings in the configuration file.
|
|
477
481
|
|
|
482
|
+
#### Environment variable overrides
|
|
483
|
+
|
|
484
|
+
Use `AGENT_CLI_CONFIG_HOME` to redirect the user-level config to a directory of your choice:
|
|
485
|
+
|
|
486
|
+
```bash
|
|
487
|
+
# use a project-scoped config
|
|
488
|
+
AGENT_CLI_CONFIG_HOME=./.agent-cli agent-cli chat ...
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
Use `XDG_CONFIG_HOME` to follow XDG-style config placement when no `AGENT_CLI_CONFIG_HOME` is set:
|
|
492
|
+
|
|
493
|
+
```bash
|
|
494
|
+
# follow XDG (e.g. inside a sandbox or container)
|
|
495
|
+
XDG_CONFIG_HOME=/workspace/.config agent-cli chat ...
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
Config paths are resolved when `agent-cli` starts, so set these variables before invoking the command.
|
|
499
|
+
|
|
478
500
|
#### Managing Configuration
|
|
479
501
|
|
|
480
502
|
Use the `config` command to manage your configuration files:
|
|
@@ -515,11 +537,20 @@ agent-cli config edit
|
|
|
515
537
|
|
|
516
538
|
Config files are TOML format and searched in order:
|
|
517
539
|
|
|
518
|
-
1
|
|
519
|
-
2
|
|
540
|
+
1 $AGENT_CLI_CONFIG_HOME/config.toml (if set)
|
|
541
|
+
2 ./agent-cli-config.toml (project-local)
|
|
542
|
+
3 $XDG_CONFIG_HOME/agent-cli/config.toml (if set)
|
|
543
|
+
4 ~/.config/agent-cli/config.toml (user default)
|
|
544
|
+
|
|
545
|
+
Settings in [defaults] apply globally.
|
|
546
|
+
|
|
547
|
+
Use [chat] or [transcribe] for command-specific overrides.
|
|
548
|
+
|
|
549
|
+
CLI arguments override config file settings.
|
|
550
|
+
|
|
551
|
+
Set env vars before startup.
|
|
520
552
|
|
|
521
|
-
|
|
522
|
-
[chat] or [transcribe]. CLI arguments override config file settings.
|
|
553
|
+
Use $AGENT_CLI_CONFIG_HOME or $XDG_CONFIG_HOME to change config path.
|
|
523
554
|
|
|
524
555
|
╭─ Options ──────────────────────────────────────────────────────────────────────────────╮
|
|
525
556
|
│ --help -h Show this message and exit. │
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import os
|
|
5
6
|
import tomllib
|
|
6
7
|
from pathlib import Path
|
|
7
8
|
from typing import Any, Literal
|
|
@@ -10,12 +11,31 @@ from pydantic import BaseModel, field_validator
|
|
|
10
11
|
|
|
11
12
|
from agent_cli.core.utils import console
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
PROJECT_CONFIG_PATH = Path("agent-cli-config.toml")
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
|
|
17
|
+
def _user_config_path() -> Path:
|
|
18
|
+
"""Resolve the user-level config path with env-var overrides.
|
|
19
|
+
|
|
20
|
+
Precedence: AGENT_CLI_CONFIG_HOME > XDG_CONFIG_HOME > ~/.config.
|
|
21
|
+
Resolved once at import; set env vars before importing agent_cli.config.
|
|
22
|
+
"""
|
|
23
|
+
home = os.environ.get("AGENT_CLI_CONFIG_HOME")
|
|
24
|
+
if home:
|
|
25
|
+
return Path(home).expanduser() / "config.toml"
|
|
26
|
+
xdg = os.environ.get("XDG_CONFIG_HOME")
|
|
27
|
+
if xdg:
|
|
28
|
+
return Path(xdg).expanduser() / "agent-cli" / "config.toml"
|
|
29
|
+
return Path.home() / ".config" / "agent-cli" / "config.toml"
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
USER_CONFIG_PATH = _user_config_path()
|
|
33
|
+
|
|
34
|
+
CONFIG_PATHS = (
|
|
35
|
+
[USER_CONFIG_PATH, PROJECT_CONFIG_PATH]
|
|
36
|
+
if os.environ.get("AGENT_CLI_CONFIG_HOME")
|
|
37
|
+
else [PROJECT_CONFIG_PATH, USER_CONFIG_PATH]
|
|
38
|
+
)
|
|
19
39
|
|
|
20
40
|
|
|
21
41
|
def _normalize_provider_value(field: str, value: str) -> str:
|
|
@@ -24,12 +24,20 @@ config_app = typer.Typer(
|
|
|
24
24
|
|
|
25
25
|
Config files are TOML format and searched in order:
|
|
26
26
|
|
|
27
|
-
1.
|
|
28
|
-
2.
|
|
27
|
+
1. `$AGENT_CLI_CONFIG_HOME/config.toml` (if set)
|
|
28
|
+
2. `./agent-cli-config.toml` (project-local)
|
|
29
|
+
3. `$XDG_CONFIG_HOME/agent-cli/config.toml` (if set)
|
|
30
|
+
4. `~/.config/agent-cli/config.toml` (user default)
|
|
29
31
|
|
|
30
|
-
Settings in `[defaults]` apply
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
Settings in `[defaults]` apply globally.
|
|
33
|
+
|
|
34
|
+
Use `[chat]` or `[transcribe]` for command-specific overrides.
|
|
35
|
+
|
|
36
|
+
CLI arguments override config file settings.
|
|
37
|
+
|
|
38
|
+
Set env vars before startup.
|
|
39
|
+
|
|
40
|
+
Use `$AGENT_CLI_CONFIG_HOME` or `$XDG_CONFIG_HOME` to change config path.
|
|
33
41
|
""",
|
|
34
42
|
add_completion=True,
|
|
35
43
|
rich_markup_mode="markdown",
|
|
@@ -56,7 +64,7 @@ CONFIG_PATH_INIT_OPTION: Path | None = typer.Option(
|
|
|
56
64
|
None,
|
|
57
65
|
"--path",
|
|
58
66
|
"-p",
|
|
59
|
-
help="Where to create the config file (default:
|
|
67
|
+
help="Where to create the config file (default: resolved user config path).",
|
|
60
68
|
)
|
|
61
69
|
FORCE_OPTION: bool = typer.Option(
|
|
62
70
|
False, # noqa: FBT003
|
|
@@ -105,7 +105,7 @@ Configuration is loaded from multiple sources with the following precedence:
|
|
|
105
105
|
|
|
106
106
|
1. **Command-line arguments** (highest priority)
|
|
107
107
|
2. **Environment variables** (`OPENAI_API_KEY`, etc.)
|
|
108
|
-
3. **Config file** (`./agent-cli-config.toml
|
|
108
|
+
3. **Config file** (`--config`/`--path`, `$AGENT_CLI_CONFIG_HOME/config.toml`, `./agent-cli-config.toml`, `$XDG_CONFIG_HOME/agent-cli/config.toml`, or `~/.config/agent-cli/config.toml`)
|
|
109
109
|
4. **Default values** (lowest priority)
|
|
110
110
|
|
|
111
111
|
## Process Management
|
|
@@ -15,6 +15,7 @@ agent-cli config [OPTIONS] COMMAND [ARGS]...
|
|
|
15
15
|
## Description
|
|
16
16
|
|
|
17
17
|
The `config` command helps you create, edit, and inspect your configuration file.
|
|
18
|
+
Set `AGENT_CLI_CONFIG_HOME` or `XDG_CONFIG_HOME` before startup to change the user-level config path.
|
|
18
19
|
|
|
19
20
|
## Commands
|
|
20
21
|
|
|
@@ -44,7 +45,7 @@ agent-cli config init [OPTIONS]
|
|
|
44
45
|
|
|
45
46
|
| Option | Default | Description |
|
|
46
47
|
|--------|---------|-------------|
|
|
47
|
-
| `--path, -p` | - | Where to create the config file (default:
|
|
48
|
+
| `--path, -p` | - | Where to create the config file (default: resolved user config path). |
|
|
48
49
|
| `--force, -f` | `false` | Overwrite existing config without prompting for confirmation. |
|
|
49
50
|
|
|
50
51
|
|
|
@@ -4,10 +4,13 @@ icon: lucide/settings
|
|
|
4
4
|
|
|
5
5
|
# Configuration
|
|
6
6
|
|
|
7
|
-
All `agent-cli` commands can be configured using a TOML file.
|
|
7
|
+
All `agent-cli` commands can be configured using a TOML file.
|
|
8
|
+
The configuration file is searched for in the following locations, in order:
|
|
8
9
|
|
|
9
|
-
1.
|
|
10
|
-
2.
|
|
10
|
+
1. CLI flag (`--config` on agent commands, `--path` on `agent-cli config ...`)
|
|
11
|
+
2. `$AGENT_CLI_CONFIG_HOME/config.toml` if set
|
|
12
|
+
3. `./agent-cli-config.toml` (in the current directory)
|
|
13
|
+
4. `$XDG_CONFIG_HOME/agent-cli/config.toml` if `XDG_CONFIG_HOME` is set and non-empty, otherwise `~/.config/agent-cli/config.toml`
|
|
11
14
|
|
|
12
15
|
You can also specify a path to a configuration file using the `--config` option:
|
|
13
16
|
|
|
@@ -17,8 +20,25 @@ agent-cli transcribe --config /path/to/your/config.toml
|
|
|
17
20
|
|
|
18
21
|
Command-line options always take precedence over settings in the configuration file.
|
|
19
22
|
|
|
20
|
-
Option keys can be written with dashes (matching CLI flags) or underscores; both
|
|
21
|
-
|
|
23
|
+
Option keys can be written with dashes (matching CLI flags) or underscores; both are accepted.
|
|
24
|
+
|
|
25
|
+
## Environment variable overrides
|
|
26
|
+
|
|
27
|
+
Use `AGENT_CLI_CONFIG_HOME` to redirect the user-level config to a directory of your choice:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# use a project-scoped config
|
|
31
|
+
AGENT_CLI_CONFIG_HOME=./.agent-cli agent-cli chat ...
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Use `XDG_CONFIG_HOME` to follow XDG-style config placement when no `AGENT_CLI_CONFIG_HOME` is set:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# follow XDG (e.g. inside a sandbox or container)
|
|
38
|
+
XDG_CONFIG_HOME=/workspace/.config agent-cli chat ...
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Config paths are resolved when `agent-cli` starts, so set these variables before invoking the command.
|
|
22
42
|
|
|
23
43
|
## Managing Configuration
|
|
24
44
|
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import os
|
|
5
6
|
import re
|
|
6
|
-
|
|
7
|
+
import subprocess
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
7
10
|
from unittest.mock import MagicMock
|
|
8
11
|
|
|
9
12
|
import pytest
|
|
@@ -11,6 +14,7 @@ from click import Command
|
|
|
11
14
|
from typer import Context
|
|
12
15
|
from typer.testing import CliRunner
|
|
13
16
|
|
|
17
|
+
import agent_cli.config as config_module
|
|
14
18
|
from agent_cli.cli import app, set_config_defaults
|
|
15
19
|
from agent_cli.config import (
|
|
16
20
|
GeminiASR,
|
|
@@ -21,9 +25,6 @@ from agent_cli.config import (
|
|
|
21
25
|
normalize_provider_defaults,
|
|
22
26
|
)
|
|
23
27
|
|
|
24
|
-
if TYPE_CHECKING:
|
|
25
|
-
from pathlib import Path
|
|
26
|
-
|
|
27
28
|
runner = CliRunner(env={"NO_COLOR": "1", "TERM": "dumb"})
|
|
28
29
|
|
|
29
30
|
|
|
@@ -212,6 +213,108 @@ ANTHROPIC_MODEL = "claude-opus-4-6"
|
|
|
212
213
|
assert "dev.branch_name_mode" not in config
|
|
213
214
|
|
|
214
215
|
|
|
216
|
+
def test_user_config_path_defaults_to_home_config(
|
|
217
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
218
|
+
tmp_path: Path,
|
|
219
|
+
) -> None:
|
|
220
|
+
"""Unset env vars use ~/.config/agent-cli/config.toml."""
|
|
221
|
+
home = tmp_path / "home"
|
|
222
|
+
monkeypatch.setenv("HOME", str(home))
|
|
223
|
+
monkeypatch.setenv("USERPROFILE", str(home))
|
|
224
|
+
monkeypatch.delenv("AGENT_CLI_CONFIG_HOME", raising=False)
|
|
225
|
+
monkeypatch.delenv("XDG_CONFIG_HOME", raising=False)
|
|
226
|
+
|
|
227
|
+
assert config_module._user_config_path() == home / ".config" / "agent-cli" / "config.toml"
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
def test_user_config_path_uses_xdg_config_home(
|
|
231
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
232
|
+
tmp_path: Path,
|
|
233
|
+
) -> None:
|
|
234
|
+
"""XDG_CONFIG_HOME redirects the user config below agent-cli/."""
|
|
235
|
+
xdg_home = tmp_path / "xdg"
|
|
236
|
+
monkeypatch.delenv("AGENT_CLI_CONFIG_HOME", raising=False)
|
|
237
|
+
monkeypatch.setenv("XDG_CONFIG_HOME", str(xdg_home))
|
|
238
|
+
|
|
239
|
+
assert config_module._user_config_path() == xdg_home / "agent-cli" / "config.toml"
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
def test_user_config_path_agent_cli_config_home_wins(
|
|
243
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
244
|
+
tmp_path: Path,
|
|
245
|
+
) -> None:
|
|
246
|
+
"""AGENT_CLI_CONFIG_HOME takes precedence and is treated as a directory."""
|
|
247
|
+
agent_config_home = tmp_path / "agent-home"
|
|
248
|
+
monkeypatch.setenv("AGENT_CLI_CONFIG_HOME", str(agent_config_home))
|
|
249
|
+
monkeypatch.setenv("XDG_CONFIG_HOME", str(tmp_path / "xdg"))
|
|
250
|
+
|
|
251
|
+
assert config_module._user_config_path() == agent_config_home / "config.toml"
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
def test_user_config_path_empty_xdg_falls_back_to_home(
|
|
255
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
256
|
+
tmp_path: Path,
|
|
257
|
+
) -> None:
|
|
258
|
+
"""Empty XDG_CONFIG_HOME is treated the same as being unset."""
|
|
259
|
+
home = tmp_path / "home"
|
|
260
|
+
monkeypatch.setenv("HOME", str(home))
|
|
261
|
+
monkeypatch.setenv("USERPROFILE", str(home))
|
|
262
|
+
monkeypatch.delenv("AGENT_CLI_CONFIG_HOME", raising=False)
|
|
263
|
+
monkeypatch.setenv("XDG_CONFIG_HOME", "")
|
|
264
|
+
|
|
265
|
+
assert config_module._user_config_path() == home / ".config" / "agent-cli" / "config.toml"
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
def test_explicit_config_path_wins_over_env_vars(
|
|
269
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
270
|
+
tmp_path: Path,
|
|
271
|
+
) -> None:
|
|
272
|
+
"""An explicit CLI config path still wins over env-var config homes."""
|
|
273
|
+
explicit = tmp_path / "explicit.toml"
|
|
274
|
+
monkeypatch.setenv("AGENT_CLI_CONFIG_HOME", str(tmp_path / "agent-home"))
|
|
275
|
+
monkeypatch.setenv("XDG_CONFIG_HOME", str(tmp_path / "xdg"))
|
|
276
|
+
|
|
277
|
+
assert config_module._config_path(str(explicit)) == explicit.resolve()
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
def test_config_init_writes_to_agent_cli_config_home(tmp_path: Path) -> None:
|
|
281
|
+
"""Config init writes to USER_CONFIG_PATH resolved once at import time."""
|
|
282
|
+
repo_root = Path(__file__).resolve().parents[1]
|
|
283
|
+
config_home = tmp_path / "agent-home"
|
|
284
|
+
env = os.environ.copy()
|
|
285
|
+
env["AGENT_CLI_CONFIG_HOME"] = str(config_home)
|
|
286
|
+
env.pop("XDG_CONFIG_HOME", None)
|
|
287
|
+
env["PYTHONPATH"] = (
|
|
288
|
+
f"{repo_root}{os.pathsep}{env['PYTHONPATH']}" if env.get("PYTHONPATH") else str(repo_root)
|
|
289
|
+
)
|
|
290
|
+
|
|
291
|
+
script = """
|
|
292
|
+
from typer.testing import CliRunner
|
|
293
|
+
from agent_cli.cli import app
|
|
294
|
+
|
|
295
|
+
runner = CliRunner(env={"NO_COLOR": "1", "TERM": "dumb"})
|
|
296
|
+
result = runner.invoke(app, ["config", "init", "--force"])
|
|
297
|
+
print(result.stdout, end="")
|
|
298
|
+
if result.exception:
|
|
299
|
+
raise result.exception
|
|
300
|
+
raise SystemExit(result.exit_code)
|
|
301
|
+
"""
|
|
302
|
+
result = subprocess.run(
|
|
303
|
+
[sys.executable, "-c", script],
|
|
304
|
+
cwd=tmp_path,
|
|
305
|
+
env=env,
|
|
306
|
+
text=True,
|
|
307
|
+
capture_output=True,
|
|
308
|
+
timeout=10,
|
|
309
|
+
check=False,
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
assert result.returncode == 0, result.stdout + result.stderr
|
|
313
|
+
config_path = config_home / "config.toml"
|
|
314
|
+
assert config_path.exists()
|
|
315
|
+
assert "[defaults]" in config_path.read_text(encoding="utf-8")
|
|
316
|
+
|
|
317
|
+
|
|
215
318
|
def test_provider_alias_normalization(config_file: Path) -> None:
|
|
216
319
|
"""Ensure deprecated provider names are normalized."""
|
|
217
320
|
config = load_config(str(config_file))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|