agent-cli 0.94.1__tar.gz → 0.94.2__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.94.1 → agent_cli-0.94.2}/PKG-INFO +1 -1
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/worktree.py +53 -6
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_worktree.py +43 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.claude-plugin/README.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.cursorrules +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.dockerignore +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.env.example +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/logo.svg +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/release-drafter.yml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/renovate.json +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/scripts/sync_extras.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/workflows/docker.yml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/workflows/release.yml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.gitignore +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.jscpd.json +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.pre-commit-config.yaml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.prompts/docs-review.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/.prompts/pr-review.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/CLAUDE.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/LICENSE +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/LLAMA_SERVER_USAGE.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/README.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/__main__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_extras.json +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/diarization.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/vectordb.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/whisper-transformers.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/_tools.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/diarize_live_session.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/rag_proxy.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/speakers.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/transcribe_live.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/api.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/cli.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/config.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/constants.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/alignment.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/diarization.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/process.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/speaker_identity.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/daemon/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/daemon/cli.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/_branch_name.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/_config.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/_output.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/cleanup.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/cli.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/hooks.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/launch.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/skill/SKILL.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/skill/examples.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/base.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/tmux.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/example-config.toml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/install/common.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/install/hotkeys.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/install/launchd.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/install/service_config.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/install/services.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/install/systemd.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/opts.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/py.typed +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/common.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/backends/transformers.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docker/docker-compose.yml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docker/memory-proxy.Dockerfile +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docker/rag-proxy.Dockerfile +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docker/transcribe-proxy.Dockerfile +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docker/tts.Dockerfile +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docker/whisper.Dockerfile +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/CNAME +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/architecture/index.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/architecture/memory.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/architecture/rag.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/assistant.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/chat.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/config.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/daemon.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/dev.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/diarize-live-session.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/index.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/install-extras.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/install-hotkeys.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/install-services.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/memory.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/rag-proxy.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/server/index.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/speak.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/speakers.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/start-services.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/transcribe-live.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/configuration.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/getting-started.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/index.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/installation/docker.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/installation/index.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/installation/linux.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/installation/macos.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/installation/nixos.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/installation/windows.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/logo-clean.svg +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/docs/system-integration.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/justfile +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/pyproject.toml +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/reddit.md +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/shell.nix +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_speakers.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_transcribe_live.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/conftest.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/core/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/core/test_audio.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/core/test_sse.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/core/test_vad.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/core/test_watch.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_cleanup.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_cli.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_hooks.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_launch.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_project.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_terminals.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/install/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/install/test_extras.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/install/test_launchd.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_client.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_files.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_store.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/mocks/audio.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/mocks/llm.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/__init__.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_api.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_history.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_store.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_alignment.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_api.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_api_integration.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_asr.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_cli.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_config.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_config_cmd.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_daemon.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_diarization.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_diarize_live_session.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_env_vars.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_faster_whisper_backend.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_json_output.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_llm.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_process_manager.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_server_tts.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_services.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_speaker_identity.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_tools.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_transformers_backend.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_tts.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_utils.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_wake_word.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/uv.lock +0 -0
- {agent_cli-0.94.1 → agent_cli-0.94.2}/zensical.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.94.
|
|
3
|
+
Version: 0.94.2
|
|
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>
|
|
@@ -73,6 +73,15 @@ def get_repo_root(path: Path | None = None) -> Path | None:
|
|
|
73
73
|
return None
|
|
74
74
|
|
|
75
75
|
|
|
76
|
+
def _resolve_git_path(path: str, cwd: Path | None = None) -> Path:
|
|
77
|
+
"""Resolve a path emitted by Git relative to the command cwd."""
|
|
78
|
+
resolved = Path(path).expanduser()
|
|
79
|
+
if resolved.is_absolute():
|
|
80
|
+
return resolved
|
|
81
|
+
base = cwd if cwd is not None else Path.cwd()
|
|
82
|
+
return (base / resolved).resolve()
|
|
83
|
+
|
|
84
|
+
|
|
76
85
|
def get_common_dir(path: Path | None = None) -> Path | None:
|
|
77
86
|
"""Get the common git directory (shared across worktrees)."""
|
|
78
87
|
try:
|
|
@@ -82,11 +91,43 @@ def get_common_dir(path: Path | None = None) -> Path | None:
|
|
|
82
91
|
# In main repo, resolve relative to toplevel
|
|
83
92
|
repo_root = get_repo_root(path)
|
|
84
93
|
return repo_root / ".git" if repo_root else None
|
|
85
|
-
return
|
|
94
|
+
return _resolve_git_path(common_dir, path)
|
|
86
95
|
except subprocess.CalledProcessError:
|
|
87
96
|
return None
|
|
88
97
|
|
|
89
98
|
|
|
99
|
+
def _is_git_modules_path(path: Path) -> bool:
|
|
100
|
+
"""Return True when path points inside a .git/modules directory."""
|
|
101
|
+
parts = path.parts
|
|
102
|
+
return any(
|
|
103
|
+
part == ".git" and parts[i + 1 : i + 2] == ("modules",) for i, part in enumerate(parts)
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def _get_configured_worktree(common_dir: Path) -> Path | None:
|
|
108
|
+
"""Read core.worktree from a Git dir config, if present."""
|
|
109
|
+
config_file = common_dir / "config"
|
|
110
|
+
if not config_file.exists():
|
|
111
|
+
return None
|
|
112
|
+
|
|
113
|
+
result = _run_git(
|
|
114
|
+
"config",
|
|
115
|
+
"--file",
|
|
116
|
+
str(config_file),
|
|
117
|
+
"--path",
|
|
118
|
+
"core.worktree",
|
|
119
|
+
cwd=common_dir,
|
|
120
|
+
check=False,
|
|
121
|
+
)
|
|
122
|
+
if result.returncode != 0:
|
|
123
|
+
return None
|
|
124
|
+
|
|
125
|
+
worktree = result.stdout.strip()
|
|
126
|
+
if not worktree:
|
|
127
|
+
return None
|
|
128
|
+
return _resolve_git_path(worktree, common_dir)
|
|
129
|
+
|
|
130
|
+
|
|
90
131
|
def get_main_repo_root(path: Path | None = None) -> Path | None:
|
|
91
132
|
"""Get the main repository root (even when in a worktree).
|
|
92
133
|
|
|
@@ -100,11 +141,17 @@ def get_main_repo_root(path: Path | None = None) -> Path | None:
|
|
|
100
141
|
return common_dir.parent
|
|
101
142
|
# Check if we're in a submodule (common_dir is inside .git/modules/)
|
|
102
143
|
# e.g., /path/to/parent/.git/modules/submodule-name
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
144
|
+
if _is_git_modules_path(common_dir):
|
|
145
|
+
# For submodules, use --show-toplevel to get the submodule's working
|
|
146
|
+
# directory. Linked worktrees of submodules can report the internal
|
|
147
|
+
# .git/modules directory instead, so fall back to core.worktree.
|
|
148
|
+
repo_root = get_repo_root(path)
|
|
149
|
+
if repo_root is not None and not _is_git_modules_path(repo_root):
|
|
150
|
+
return repo_root
|
|
151
|
+
configured_worktree = _get_configured_worktree(common_dir)
|
|
152
|
+
if configured_worktree is not None:
|
|
153
|
+
return configured_worktree
|
|
154
|
+
return repo_root
|
|
108
155
|
# For bare repos or unusual setups, try to go up from common_dir
|
|
109
156
|
return common_dir.parent
|
|
110
157
|
|
|
@@ -14,6 +14,7 @@ from agent_cli.dev.worktree import (
|
|
|
14
14
|
_pull_lfs,
|
|
15
15
|
create_worktree,
|
|
16
16
|
find_worktree_by_name,
|
|
17
|
+
get_common_dir,
|
|
17
18
|
get_main_repo_root,
|
|
18
19
|
has_origin_remote,
|
|
19
20
|
list_worktrees,
|
|
@@ -113,6 +114,21 @@ class TestResolveWorktreeBaseDir:
|
|
|
113
114
|
assert result == tmp_path / "agent"
|
|
114
115
|
|
|
115
116
|
|
|
117
|
+
class TestGetCommonDir:
|
|
118
|
+
"""Tests for get_common_dir function."""
|
|
119
|
+
|
|
120
|
+
def test_relative_common_dir_resolves_against_git_cwd(self, tmp_path: Path) -> None:
|
|
121
|
+
"""Relative git-common-dir output is anchored to the Git command cwd."""
|
|
122
|
+
module_dir = tmp_path / "parent" / ".git" / "modules" / "my-submodule"
|
|
123
|
+
module_dir.mkdir(parents=True)
|
|
124
|
+
mock_run = MagicMock(return_value=MagicMock(stdout=".\n"))
|
|
125
|
+
|
|
126
|
+
with patch("agent_cli.dev.worktree._run_git", mock_run):
|
|
127
|
+
result = get_common_dir(module_dir)
|
|
128
|
+
|
|
129
|
+
assert result == module_dir
|
|
130
|
+
|
|
131
|
+
|
|
116
132
|
class TestGetMainRepoRoot:
|
|
117
133
|
"""Tests for get_main_repo_root function."""
|
|
118
134
|
|
|
@@ -154,6 +170,33 @@ class TestGetMainRepoRoot:
|
|
|
154
170
|
assert result == submodule_toplevel
|
|
155
171
|
assert ".git/modules" not in str(result)
|
|
156
172
|
|
|
173
|
+
def test_linked_submodule_worktree_uses_configured_main_worktree(
|
|
174
|
+
self,
|
|
175
|
+
tmp_path: Path,
|
|
176
|
+
) -> None:
|
|
177
|
+
"""Linked worktrees of submodules resolve to the submodule checkout.
|
|
178
|
+
|
|
179
|
+
In this layout, git rev-parse --show-toplevel can return the internal
|
|
180
|
+
.git/modules/<name> directory. The main checkout is stored as
|
|
181
|
+
core.worktree in the module config.
|
|
182
|
+
"""
|
|
183
|
+
parent = tmp_path / "parent"
|
|
184
|
+
submodule_common_dir = parent / ".git" / "modules" / "my-submodule"
|
|
185
|
+
submodule_common_dir.mkdir(parents=True)
|
|
186
|
+
(submodule_common_dir / "config").write_text(
|
|
187
|
+
"[core]\n\tworktree = ../../../my-submodule\n",
|
|
188
|
+
)
|
|
189
|
+
submodule_toplevel = parent / "my-submodule"
|
|
190
|
+
linked_worktree = parent / "my-submodule-worktrees" / "feature"
|
|
191
|
+
|
|
192
|
+
with (
|
|
193
|
+
patch("agent_cli.dev.worktree.get_common_dir", return_value=submodule_common_dir),
|
|
194
|
+
patch("agent_cli.dev.worktree.get_repo_root", return_value=submodule_common_dir),
|
|
195
|
+
):
|
|
196
|
+
result = get_main_repo_root(linked_worktree)
|
|
197
|
+
|
|
198
|
+
assert result == submodule_toplevel
|
|
199
|
+
|
|
157
200
|
|
|
158
201
|
class TestListWorktrees:
|
|
159
202
|
"""Tests for list_worktrees function."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|