agent-cli 0.61.2__py3-none-any.whl → 0.70.2__py3-none-any.whl

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.
Files changed (73) hide show
  1. agent_cli/_extras.json +13 -0
  2. agent_cli/_requirements/.gitkeep +0 -0
  3. agent_cli/_requirements/audio.txt +79 -0
  4. agent_cli/_requirements/faster-whisper.txt +215 -0
  5. agent_cli/_requirements/kokoro.txt +425 -0
  6. agent_cli/_requirements/llm.txt +183 -0
  7. agent_cli/_requirements/memory.txt +355 -0
  8. agent_cli/_requirements/mlx-whisper.txt +222 -0
  9. agent_cli/_requirements/piper.txt +176 -0
  10. agent_cli/_requirements/rag.txt +402 -0
  11. agent_cli/_requirements/server.txt +154 -0
  12. agent_cli/_requirements/speed.txt +77 -0
  13. agent_cli/_requirements/vad.txt +155 -0
  14. agent_cli/agents/assistant.py +3 -1
  15. agent_cli/agents/autocorrect.py +5 -2
  16. agent_cli/agents/chat.py +3 -1
  17. agent_cli/agents/memory/__init__.py +2 -1
  18. agent_cli/agents/memory/add.py +2 -0
  19. agent_cli/agents/memory/proxy.py +7 -12
  20. agent_cli/agents/rag_proxy.py +5 -10
  21. agent_cli/agents/speak.py +3 -1
  22. agent_cli/agents/transcribe.py +7 -2
  23. agent_cli/agents/transcribe_daemon.py +3 -1
  24. agent_cli/agents/voice_edit.py +3 -1
  25. agent_cli/cli.py +19 -3
  26. agent_cli/config_cmd.py +1 -0
  27. agent_cli/core/chroma.py +4 -4
  28. agent_cli/core/deps.py +177 -25
  29. agent_cli/core/openai_proxy.py +9 -4
  30. agent_cli/core/process.py +2 -2
  31. agent_cli/core/reranker.py +5 -4
  32. agent_cli/core/utils.py +5 -3
  33. agent_cli/core/vad.py +2 -1
  34. agent_cli/core/watch.py +8 -6
  35. agent_cli/dev/cli.py +31 -34
  36. agent_cli/dev/coding_agents/base.py +1 -2
  37. agent_cli/dev/skill/SKILL.md +141 -0
  38. agent_cli/dev/skill/examples.md +571 -0
  39. agent_cli/dev/worktree.py +53 -5
  40. agent_cli/docs_gen.py +12 -42
  41. agent_cli/install/__init__.py +1 -1
  42. agent_cli/install/extras.py +174 -0
  43. agent_cli/memory/__init__.py +1 -18
  44. agent_cli/memory/_files.py +4 -1
  45. agent_cli/memory/_indexer.py +3 -2
  46. agent_cli/memory/_ingest.py +6 -5
  47. agent_cli/memory/_retrieval.py +18 -8
  48. agent_cli/memory/_streaming.py +2 -2
  49. agent_cli/memory/api.py +1 -1
  50. agent_cli/memory/client.py +1 -1
  51. agent_cli/memory/engine.py +1 -1
  52. agent_cli/rag/__init__.py +0 -19
  53. agent_cli/rag/_indexer.py +3 -2
  54. agent_cli/rag/api.py +1 -0
  55. agent_cli/scripts/.runtime/.gitkeep +0 -0
  56. agent_cli/scripts/check_plugin_skill_sync.py +50 -0
  57. agent_cli/scripts/sync_extras.py +138 -0
  58. agent_cli/server/cli.py +26 -24
  59. agent_cli/server/common.py +3 -4
  60. agent_cli/server/tts/api.py +1 -1
  61. agent_cli/server/whisper/backends/faster_whisper.py +30 -23
  62. agent_cli/server/whisper/wyoming_handler.py +22 -27
  63. agent_cli/services/_wyoming_utils.py +4 -2
  64. agent_cli/services/asr.py +13 -3
  65. agent_cli/services/llm.py +2 -1
  66. agent_cli/services/tts.py +5 -2
  67. agent_cli/services/wake_word.py +6 -3
  68. {agent_cli-0.61.2.dist-info → agent_cli-0.70.2.dist-info}/METADATA +168 -73
  69. {agent_cli-0.61.2.dist-info → agent_cli-0.70.2.dist-info}/RECORD +72 -54
  70. {agent_cli-0.61.2.dist-info → agent_cli-0.70.2.dist-info}/WHEEL +1 -2
  71. agent_cli-0.61.2.dist-info/top_level.txt +0 -1
  72. {agent_cli-0.61.2.dist-info → agent_cli-0.70.2.dist-info}/entry_points.txt +0 -0
  73. {agent_cli-0.61.2.dist-info → agent_cli-0.70.2.dist-info}/licenses/LICENSE +0 -0
agent_cli/services/tts.py CHANGED
@@ -10,8 +10,6 @@ from pathlib import Path
10
10
  from typing import TYPE_CHECKING
11
11
 
12
12
  from rich.live import Live
13
- from wyoming.audio import AudioChunk, AudioStart, AudioStop
14
- from wyoming.tts import Synthesize, SynthesizeVoice
15
13
 
16
14
  from agent_cli import config, constants
17
15
  from agent_cli.core.audio import open_audio_stream, setup_output_stream
@@ -32,6 +30,7 @@ if TYPE_CHECKING:
32
30
 
33
31
  from rich.live import Live
34
32
  from wyoming.client import AsyncClient
33
+ from wyoming.tts import Synthesize
35
34
 
36
35
 
37
36
  has_audiostretchy = importlib.util.find_spec("audiostretchy") is not None
@@ -134,6 +133,8 @@ def _create_synthesis_request(
134
133
  speaker: str | None = None,
135
134
  ) -> Synthesize:
136
135
  """Create a synthesis request with optional voice parameters."""
136
+ from wyoming.tts import Synthesize, SynthesizeVoice # noqa: PLC0415
137
+
137
138
  synthesize_event = Synthesize(text=text)
138
139
 
139
140
  # Add voice parameters if specified
@@ -152,6 +153,8 @@ async def _process_audio_events(
152
153
  logger: logging.Logger,
153
154
  ) -> tuple[bytes, int | None, int | None, int | None]:
154
155
  """Process audio events from TTS server and return audio data with metadata."""
156
+ from wyoming.audio import AudioChunk, AudioStart, AudioStop # noqa: PLC0415
157
+
155
158
  audio_data = io.BytesIO()
156
159
  sample_rate = None
157
160
  sample_width = None
@@ -6,9 +6,6 @@ import asyncio
6
6
  from functools import partial
7
7
  from typing import TYPE_CHECKING
8
8
 
9
- from wyoming.audio import AudioChunk, AudioStart, AudioStop
10
- from wyoming.wake import Detect, Detection, NotDetected
11
-
12
9
  from agent_cli import config, constants
13
10
  from agent_cli.core.audio import read_from_queue
14
11
  from agent_cli.core.utils import manage_send_receive_tasks
@@ -38,6 +35,8 @@ async def _send_audio_from_queue_for_wake_detection(
38
35
  progress_message: str,
39
36
  ) -> None:
40
37
  """Read from a queue and send to Wyoming wake word server."""
38
+ from wyoming.audio import AudioChunk, AudioStart, AudioStop # noqa: PLC0415
39
+
41
40
  await client.write_event(AudioStart(**constants.WYOMING_AUDIO_CONFIG).event())
42
41
  seconds_streamed = 0.0
43
42
 
@@ -76,6 +75,8 @@ async def _receive_wake_detection(
76
75
  Name of detected wake word or None if no detection
77
76
 
78
77
  """
78
+ from wyoming.wake import Detection, NotDetected # noqa: PLC0415
79
+
79
80
  while True:
80
81
  event = await client.read_event()
81
82
  if event is None:
@@ -108,6 +109,8 @@ async def _detect_wake_word_from_queue(
108
109
  progress_message: str = "Listening for wake word",
109
110
  ) -> str | None:
110
111
  """Detect wake word from an audio queue."""
112
+ from wyoming.wake import Detect # noqa: PLC0415
113
+
111
114
  try:
112
115
  async with wyoming_client_context(
113
116
  wake_word_cfg.wake_server_ip,
@@ -1,78 +1,86 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-cli
3
- Version: 0.61.2
3
+ Version: 0.70.2
4
4
  Summary: A suite of AI-powered command-line tools for text correction, audio transcription, and voice assistance.
5
- Author-email: Bas Nijholt <bas@nijho.lt>
6
5
  Project-URL: Homepage, https://github.com/basnijholt/agent-cli
7
- Requires-Python: >=3.11
8
- Description-Content-Type: text/markdown
6
+ Author-email: Bas Nijholt <bas@nijho.lt>
9
7
  License-File: LICENSE
10
- Requires-Dist: wyoming
11
- Requires-Dist: sounddevice
12
- Requires-Dist: numpy
13
- Requires-Dist: rich
14
- Requires-Dist: pyperclip
15
- Requires-Dist: pydantic-ai-slim[duckduckgo,openai,vertexai]
16
- Requires-Dist: typer
17
- Requires-Dist: openai
8
+ Requires-Python: <3.14,>=3.11
18
9
  Requires-Dist: dotenv
19
- Requires-Dist: google-genai>=1.25.0
20
10
  Requires-Dist: httpx
21
- Requires-Dist: psutil; sys_platform == "win32"
11
+ Requires-Dist: psutil; sys_platform == 'win32'
12
+ Requires-Dist: pydantic
13
+ Requires-Dist: pyperclip
14
+ Requires-Dist: rich
22
15
  Requires-Dist: setproctitle
23
- Provides-Extra: server
24
- Requires-Dist: fastapi[standard]; extra == "server"
25
- Provides-Extra: rag
26
- Requires-Dist: fastapi[standard]; extra == "rag"
27
- Requires-Dist: chromadb>=0.4.22; python_version < "3.14" and extra == "rag"
28
- Requires-Dist: onnxruntime>=1.17.0; python_version < "3.14" and extra == "rag"
29
- Requires-Dist: huggingface-hub>=0.20.0; extra == "rag"
30
- Requires-Dist: transformers>=4.30.0; extra == "rag"
31
- Requires-Dist: watchfiles>=0.21.0; extra == "rag"
32
- Requires-Dist: markitdown[docx,pdf,pptx]>=0.1.3; python_version < "3.14" and extra == "rag"
33
- Provides-Extra: memory
34
- Requires-Dist: fastapi[standard]; extra == "memory"
35
- Requires-Dist: chromadb>=0.4.22; python_version < "3.14" and extra == "memory"
36
- Requires-Dist: onnxruntime>=1.17.0; python_version < "3.14" and extra == "memory"
37
- Requires-Dist: huggingface-hub>=0.20.0; extra == "memory"
38
- Requires-Dist: transformers>=4.30.0; extra == "memory"
39
- Requires-Dist: watchfiles>=0.21.0; extra == "memory"
40
- Requires-Dist: pyyaml>=6.0.0; extra == "memory"
41
- Provides-Extra: vad
42
- Requires-Dist: silero-vad>=5.1; python_version < "3.14" and extra == "vad"
43
- Provides-Extra: whisper
44
- Requires-Dist: fastapi[standard]; extra == "whisper"
45
- Requires-Dist: faster-whisper>=1.0.0; extra == "whisper"
46
- Provides-Extra: whisper-mlx
47
- Requires-Dist: fastapi[standard]; extra == "whisper-mlx"
48
- Requires-Dist: mlx-whisper>=0.4.0; (sys_platform == "darwin" and platform_machine == "arm64") and extra == "whisper-mlx"
49
- Provides-Extra: tts
50
- Requires-Dist: fastapi[standard]; extra == "tts"
51
- Requires-Dist: piper-tts>=1.2.0; extra == "tts"
52
- Provides-Extra: tts-kokoro
53
- Requires-Dist: fastapi[standard]; extra == "tts-kokoro"
54
- Requires-Dist: kokoro>=0.9.0; extra == "tts-kokoro"
55
- Requires-Dist: soundfile>=0.12.0; extra == "tts-kokoro"
56
- Requires-Dist: huggingface-hub>=0.20.0; extra == "tts-kokoro"
57
- Requires-Dist: pip; extra == "tts-kokoro"
58
- Provides-Extra: test
59
- Requires-Dist: pytest>=7.0.0; extra == "test"
60
- Requires-Dist: pytest-asyncio>=0.20.0; extra == "test"
61
- Requires-Dist: pytest-cov>=4.0.0; extra == "test"
62
- Requires-Dist: pydantic-ai-slim[openai]; extra == "test"
63
- Requires-Dist: pytest-timeout; extra == "test"
64
- Requires-Dist: pytest-mock; extra == "test"
16
+ Requires-Dist: typer
17
+ Requires-Dist: typer-slim[standard]
18
+ Provides-Extra: audio
19
+ Requires-Dist: numpy; extra == 'audio'
20
+ Requires-Dist: sounddevice>=0.4.6; extra == 'audio'
21
+ Requires-Dist: wyoming>=1.5.2; extra == 'audio'
65
22
  Provides-Extra: dev
66
- Requires-Dist: agent-cli[test]; extra == "dev"
67
- Requires-Dist: pre-commit>=3.0.0; extra == "dev"
68
- Requires-Dist: versioningit; extra == "dev"
69
- Requires-Dist: markdown-code-runner; extra == "dev"
70
- Requires-Dist: ruff; extra == "dev"
71
- Requires-Dist: notebook; extra == "dev"
72
- Requires-Dist: pylint>=3.0.0; extra == "dev"
23
+ Requires-Dist: markdown-code-runner>=2.7.0; extra == 'dev'
24
+ Requires-Dist: markdown-gfm-admonition; extra == 'dev'
25
+ Requires-Dist: notebook; extra == 'dev'
26
+ Requires-Dist: pre-commit-uv>=4.1.4; extra == 'dev'
27
+ Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
28
+ Requires-Dist: pylint>=3.0.0; extra == 'dev'
29
+ Requires-Dist: pytest-asyncio>=0.20.0; extra == 'dev'
30
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
31
+ Requires-Dist: pytest-mock; extra == 'dev'
32
+ Requires-Dist: pytest-timeout; extra == 'dev'
33
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
34
+ Requires-Dist: ruff; extra == 'dev'
35
+ Requires-Dist: versioningit; extra == 'dev'
36
+ Requires-Dist: zensical; extra == 'dev'
37
+ Provides-Extra: faster-whisper
38
+ Requires-Dist: fastapi[standard]; extra == 'faster-whisper'
39
+ Requires-Dist: faster-whisper>=1.0.0; extra == 'faster-whisper'
40
+ Provides-Extra: kokoro
41
+ Requires-Dist: fastapi[standard]; extra == 'kokoro'
42
+ Requires-Dist: huggingface-hub>=0.20.0; extra == 'kokoro'
43
+ Requires-Dist: kokoro>=0.9.0; extra == 'kokoro'
44
+ Requires-Dist: pip; extra == 'kokoro'
45
+ Requires-Dist: soundfile>=0.12.0; extra == 'kokoro'
46
+ Requires-Dist: transformers>=4.40.0; extra == 'kokoro'
47
+ Provides-Extra: llm
48
+ Requires-Dist: pydantic-ai-slim[duckduckgo,google,openai,vertexai]>=0.1.1; extra == 'llm'
49
+ Provides-Extra: memory
50
+ Requires-Dist: chromadb>=0.4.22; extra == 'memory'
51
+ Requires-Dist: fastapi[standard]; extra == 'memory'
52
+ Requires-Dist: huggingface-hub>=0.20.0; extra == 'memory'
53
+ Requires-Dist: onnxruntime>=1.17.0; extra == 'memory'
54
+ Requires-Dist: pyyaml>=6.0.0; extra == 'memory'
55
+ Requires-Dist: transformers>=4.30.0; extra == 'memory'
56
+ Requires-Dist: watchfiles>=0.21.0; extra == 'memory'
57
+ Provides-Extra: mlx-whisper
58
+ Requires-Dist: fastapi[standard]; (sys_platform == 'darwin' and platform_machine == 'arm64') and extra == 'mlx-whisper'
59
+ Requires-Dist: mlx-whisper>=0.4.0; (sys_platform == 'darwin' and platform_machine == 'arm64') and extra == 'mlx-whisper'
60
+ Provides-Extra: piper
61
+ Requires-Dist: fastapi[standard]; extra == 'piper'
62
+ Requires-Dist: piper-tts>=1.2.0; extra == 'piper'
63
+ Provides-Extra: rag
64
+ Requires-Dist: chromadb>=0.4.22; extra == 'rag'
65
+ Requires-Dist: fastapi[standard]; extra == 'rag'
66
+ Requires-Dist: huggingface-hub>=0.20.0; extra == 'rag'
67
+ Requires-Dist: markitdown[docx,pdf,pptx]>=0.1.3; extra == 'rag'
68
+ Requires-Dist: onnxruntime>=1.17.0; extra == 'rag'
69
+ Requires-Dist: transformers>=4.30.0; extra == 'rag'
70
+ Requires-Dist: watchfiles>=0.21.0; extra == 'rag'
71
+ Provides-Extra: server
72
+ Requires-Dist: fastapi[standard]; extra == 'server'
73
73
  Provides-Extra: speed
74
- Requires-Dist: audiostretchy>=1.3.0; extra == "speed"
75
- Dynamic: license-file
74
+ Requires-Dist: audiostretchy>=1.3.0; extra == 'speed'
75
+ Provides-Extra: test
76
+ Requires-Dist: pytest-asyncio>=0.20.0; extra == 'test'
77
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
78
+ Requires-Dist: pytest-mock; extra == 'test'
79
+ Requires-Dist: pytest-timeout; extra == 'test'
80
+ Requires-Dist: pytest>=7.0.0; extra == 'test'
81
+ Provides-Extra: vad
82
+ Requires-Dist: silero-vad>=5.1; extra == 'vad'
83
+ Description-Content-Type: text/markdown
76
84
 
77
85
  # Agent CLI
78
86
 
@@ -124,8 +132,8 @@ Since then I have expanded the tool with many more features, all focused on loca
124
132
  - **[`memory`](docs/commands/memory.md)**: Long-term memory system with `memory proxy` and `memory add`.
125
133
  - **[`rag-proxy`](docs/commands/rag-proxy.md)**: RAG proxy server for chatting with your documents.
126
134
  - **[`dev`](docs/commands/dev.md)**: Parallel development with git worktrees and AI coding agents.
127
- - **[`server`](docs/commands/server.md)**: Local ASR and TTS servers with dual-protocol (Wyoming & OpenAI), TTL-based memory management, and multi-platform acceleration. Whisper uses MLX on Apple Silicon or Faster Whisper on Linux/CUDA. TTS supports Kokoro (GPU) or Piper (CPU).
128
- - **[`transcribe-daemon`](docs/commands/transcribe-daemon.md)**: Continuous background transcription with VAD. Install with `uv tool install "agent-cli[vad]"`.
135
+ - **[`server`](docs/commands/server/index.md)**: Local ASR and TTS servers with dual-protocol (Wyoming & OpenAI), TTL-based memory management, and multi-platform acceleration. Whisper uses MLX on Apple Silicon or Faster Whisper on Linux/CUDA. TTS supports Kokoro (GPU) or Piper (CPU).
136
+ - **[`transcribe-daemon`](docs/commands/transcribe-daemon.md)**: Continuous background transcription with VAD. Install with `uv tool install "agent-cli[vad]" -p 3.13`.
129
137
 
130
138
  ## Quick Start
131
139
 
@@ -135,12 +143,16 @@ If you already have AI services running (or plan to use OpenAI), simply install:
135
143
 
136
144
  ```bash
137
145
  # Using uv (recommended)
138
- uv tool install agent-cli
146
+ uv tool install agent-cli -p 3.13
139
147
 
140
148
  # Using pip
141
149
  pip install agent-cli
142
150
  ```
143
151
 
152
+ > [!NOTE]
153
+ > The `-p 3.13` flag is required because some dependencies (like `onnxruntime`) don't support Python 3.14 yet.
154
+ > See [uv issue #8206](https://github.com/astral-sh/uv/issues/8206) for details.
155
+
144
156
  Then use it:
145
157
  ```bash
146
158
  agent-cli autocorrect "this has an eror"
@@ -174,12 +186,12 @@ agent-cli autocorrect "this has an eror"
174
186
 
175
187
  > [!NOTE]
176
188
  > `agent-cli` uses `sounddevice` for real-time microphone/voice features.
177
- > On Linux only, you need to install the system-level PortAudio library (`sudo apt install portaudio19-dev` / your distro's equivalent on Linux) **before** you run `uv tool install agent-cli`.
189
+ > On Linux only, you need to install the system-level PortAudio library (`sudo apt install portaudio19-dev` / your distro's equivalent on Linux) **before** you run `uv tool install agent-cli -p 3.13`.
178
190
  > On Windows and macOS, this is handled automatically.
179
191
 
180
192
  ```bash
181
193
  # 1. Install agent-cli
182
- uv tool install agent-cli
194
+ uv tool install agent-cli -p 3.13
183
195
 
184
196
  # 2. Install all required services
185
197
  agent-cli install-services
@@ -216,6 +228,7 @@ The setup scripts automatically install:
216
228
  - [System Integration](#system-integration)
217
229
  - [macOS Hotkeys](#macos-hotkeys)
218
230
  - [Linux Hotkeys](#linux-hotkeys)
231
+ - [Claude Code Plugin](#claude-code-plugin)
219
232
  - [Prerequisites](#prerequisites)
220
233
  - [What You Need to Install Manually](#what-you-need-to-install-manually)
221
234
  - [What the Setup Scripts Install for You](#what-the-setup-scripts-install-for-you)
@@ -225,6 +238,7 @@ The setup scripts automatically install:
225
238
  - [Alternative Local LLM Servers](#alternative-local-llm-servers)
226
239
  - [Usage](#usage)
227
240
  - [Installation Commands](#installation-commands)
241
+ - [Installing Optional Extras](#installing-optional-extras)
228
242
  - [Configuration](#configuration)
229
243
  - [Managing Configuration](#managing-configuration)
230
244
  - [Provider Defaults](#provider-defaults)
@@ -258,7 +272,7 @@ If you already have AI services set up or plan to use cloud services (OpenAI/Gem
258
272
 
259
273
  ```bash
260
274
  # Using uv (recommended)
261
- uv tool install agent-cli
275
+ uv tool install agent-cli -p 3.13
262
276
 
263
277
  # Using pip
264
278
  pip install agent-cli
@@ -363,6 +377,25 @@ This script automatically:
363
377
 
364
378
  The script supports Hyprland, GNOME, KDE, Sway, i3, XFCE, and provides instructions for manual configuration on other environments.
365
379
 
380
+ ### Claude Code Plugin
381
+
382
+ The [`dev`](docs/commands/dev.md) command is also available as a **Claude Code plugin**, enabling Claude to automatically spawn parallel AI agents in isolated git worktrees when you ask it to work on multiple features.
383
+
384
+ ```bash
385
+ # Option 1: Install skill directly in your project (recommended)
386
+ agent-cli dev install-skill
387
+
388
+ # Option 2: Install via Claude Code plugin marketplace
389
+ claude plugin marketplace add basnijholt/agent-cli
390
+ claude plugin install agent-cli@agent-cli-dev
391
+ ```
392
+
393
+ Once installed, Claude Code can automatically use this skill when you ask to:
394
+ - "Work on these 3 features in parallel"
395
+ - "Spawn agents for auth and payments"
396
+ - "Delegate this refactoring to a separate agent"
397
+
398
+ See the [plugin documentation](.claude-plugin/README.md) for more details.
366
399
 
367
400
  ## Prerequisites
368
401
 
@@ -385,7 +418,7 @@ Our installation scripts automatically handle all dependencies:
385
418
  |---------|---------|-----------------|
386
419
  | **[Ollama](https://ollama.ai/)** | Local LLM for text processing | ✅ Yes, with default model |
387
420
  | **[Wyoming Faster Whisper](https://github.com/rhasspy/wyoming-faster-whisper)** | Speech-to-text | ✅ Yes, via `uvx` |
388
- | **[`agent-cli server whisper`](docs/commands/server.md#whisper)** | Speech-to-text (alternative) | ✅ Built-in, `pip install "agent-cli[whisper]"` |
421
+ | **[`agent-cli server whisper`](docs/commands/server/whisper.md)** | Speech-to-text (alternative) | ✅ Built-in, `pip install "agent-cli[whisper]"` |
389
422
  | **[Wyoming Piper](https://github.com/rhasspy/wyoming-piper)** | Text-to-speech | ✅ Yes, via `uvx` |
390
423
  | **[Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI)** | Premium TTS (optional) | ⚙️ Can be added later |
391
424
  | **[Wyoming openWakeWord](https://github.com/rhasspy/wyoming-openwakeword)** | Wake word detection | ✅ Yes, for `assistant` |
@@ -421,10 +454,72 @@ These commands help you set up `agent-cli` and its required services:
421
454
 
422
455
  - **`install-services`**: Install all required AI services (Ollama, Whisper, Piper, OpenWakeWord)
423
456
  - **`install-hotkeys`**: Set up system-wide hotkeys for quick access to agent-cli features
457
+ - **`install-extras`**: Install optional Python dependencies (rag, memory, vad, etc.) with pinned versions
424
458
  - **`start-services`**: Start all services in a Zellij terminal session
425
459
 
426
460
  All necessary scripts are bundled with the package, so you can run these commands immediately after installing `agent-cli`.
427
461
 
462
+ #### Installing Optional Extras
463
+
464
+ Some features require additional Python dependencies. By default, **agent-cli will auto-install missing extras** when you run a command that needs them. To disable this, set `AGENT_CLI_NO_AUTO_INSTALL=1` or add to your config file:
465
+
466
+ ```toml
467
+ [settings]
468
+ auto_install_extras = false
469
+ ```
470
+
471
+ You can also manually install extras with `install-extras`:
472
+
473
+ ```bash
474
+ # List available extras
475
+ agent-cli install-extras --list
476
+
477
+ # Install specific extras
478
+ agent-cli install-extras rag memory vad
479
+ ```
480
+
481
+ <details>
482
+ <summary>See the output of <code>agent-cli install-extras --help</code></summary>
483
+
484
+ <!-- CODE:BASH:START -->
485
+ <!-- echo '```yaml' -->
486
+ <!-- export NO_COLOR=1 -->
487
+ <!-- export TERM=dumb -->
488
+ <!-- export COLUMNS=90 -->
489
+ <!-- export TERMINAL_WIDTH=90 -->
490
+ <!-- agent-cli install-extras --help -->
491
+ <!-- echo '```' -->
492
+ <!-- CODE:END -->
493
+ <!-- OUTPUT:START -->
494
+ <!-- ⚠️ This content is auto-generated by `markdown-code-runner`. -->
495
+ ```yaml
496
+
497
+ Usage: agent-cli install-extras [OPTIONS] [EXTRAS]...
498
+
499
+ Install optional extras (rag, memory, vad, etc.) with pinned versions.
500
+
501
+ Examples:
502
+
503
+ • agent-cli install-extras rag # Install RAG dependencies
504
+ • agent-cli install-extras memory vad # Install multiple extras
505
+ • agent-cli install-extras --list # Show available extras
506
+ • agent-cli install-extras --all # Install all extras
507
+
508
+ ╭─ Arguments ────────────────────────────────────────────────────────────────────────────╮
509
+ │ extras [EXTRAS]... Extras to install │
510
+ ╰────────────────────────────────────────────────────────────────────────────────────────╯
511
+ ╭─ Options ──────────────────────────────────────────────────────────────────────────────╮
512
+ │ --list -l List available extras │
513
+ │ --all -a Install all available extras │
514
+ │ --help -h Show this message and exit. │
515
+ ╰────────────────────────────────────────────────────────────────────────────────────────╯
516
+
517
+ ```
518
+
519
+ <!-- OUTPUT:END -->
520
+
521
+ </details>
522
+
428
523
  ### Configuration
429
524
 
430
525
  All `agent-cli` commands can be configured using a TOML file. The configuration file is searched for in the following locations, in order:
@@ -751,7 +846,7 @@ the `[defaults]` section of your configuration file.
751
846
 
752
847
  **Installation:** Requires the `vad` extra:
753
848
  ```bash
754
- uv tool install "agent-cli[vad]"
849
+ uv tool install "agent-cli[vad]" -p 3.13
755
850
  ```
756
851
 
757
852
  **How to Use It:**
@@ -1,49 +1,62 @@
1
1
  agent_cli/__init__.py,sha256=-bo57j_5TsCug2tGHh7wClAGDhzN239639K40pgVh4g,187
2
2
  agent_cli/__main__.py,sha256=2wx_SxA8KRdejM-hBFLN8JTR2rIgtwnDH03MPAbJH5U,106
3
+ agent_cli/_extras.json,sha256=PCeXMr8zX04n_fcLrticn4lRpisZTfBkT2oqdImVzEY,708
3
4
  agent_cli/_tools.py,sha256=u9Ww-k-sbwFnMTW8sreFGd71nJP6o5hKcM0Zd_D9GZk,12136
4
5
  agent_cli/api.py,sha256=FQ_HATc7DaedbEFQ275Z18wV90tkDByD_9x_K0wdSLQ,456
5
- agent_cli/cli.py,sha256=OsjgqoWkxafbNbugzULv1dJLyAZcxPZ_9wnZ22BdIN8,2731
6
+ agent_cli/cli.py,sha256=W1hrmWjrVeXH94pM4rRaNxGI4uJHqE5ST_q7SEeSeMg,3275
6
7
  agent_cli/config.py,sha256=dgwDV6chrQzGnVZIJ0OOg26jFKLCGIInC4Q9oXcj3rM,15413
7
- agent_cli/config_cmd.py,sha256=Fb-KBjtveft3x3_xjqlqobBwZqtI6Umrd8YzlwTAnZ4,9554
8
+ agent_cli/config_cmd.py,sha256=CiHk1WxtvT21QeMuklTTMCmAdNwjeYENO_w_Qbiys54,9579
8
9
  agent_cli/constants.py,sha256=-Q17N6qKIGqPDsu3FxpIKP33G0Cs0RUJlHwYNHxVxek,843
9
- agent_cli/docs_gen.py,sha256=24NDnKcxdz0EarpuoIVtd0AeLIT8CTku5GLeAJRUyg8,14444
10
+ agent_cli/docs_gen.py,sha256=j6mBHwoPcQzMdgIWi_bB2A6yOyhvmW_cntRfwUg_8p8,13374
10
11
  agent_cli/example-config.toml,sha256=xd9BXeOqdYx4xFJt58VBs2I49ESy6dF4-mWF_g8sM9o,7552
11
12
  agent_cli/opts.py,sha256=qMK_mLxzGAbX7C2IYuCFvOkLgaxCCMO66I9ps8AdrYo,12114
12
13
  agent_cli/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ agent_cli/_requirements/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ agent_cli/_requirements/audio.txt,sha256=KAOtFaFClkj2EAesWI61LZ4N-T1WQvHtvf1sNtDxVgQ,1522
16
+ agent_cli/_requirements/faster-whisper.txt,sha256=V5O-Di0hA_0g3EyZaRlRlR6JVhJ2XuqXyzxMUmYDxMU,4333
17
+ agent_cli/_requirements/kokoro.txt,sha256=HJFVJga6O7Eiz-2oqY6GsnGB9jQu2PM_QdtEN4lKjSU,8932
18
+ agent_cli/_requirements/llm.txt,sha256=nApd9U7gPLTmUaCGZL_dkBN9BmHt3zOrt038XSS1NKc,3582
19
+ agent_cli/_requirements/memory.txt,sha256=b0Ylc3kSqoLqi24VKtjx70wGlR8dhOehM75bwZEQALg,7275
20
+ agent_cli/_requirements/mlx-whisper.txt,sha256=4KxYahgmWzCi3dD1R-P4kqRix0Yyewqo-tHl9QmZHj4,6749
21
+ agent_cli/_requirements/piper.txt,sha256=aoRGqt_7Kr9cNHk-H4q7SVoKmP4d0fhtvEXeUeIqwQI,3455
22
+ agent_cli/_requirements/rag.txt,sha256=aoErAOsLPZnToKgkQJMBAQcH0dSVM8eCwxNfJ1S1udU,8250
23
+ agent_cli/_requirements/server.txt,sha256=v29ib07fYE5_lbL00ULOgS13XA5NAOnLq-lExJZ0zbw,3004
24
+ agent_cli/_requirements/speed.txt,sha256=KwBTrZFXWtgwJ5zrcNtm45zfqvNK0trcR1SbV-wDFp4,1464
25
+ agent_cli/_requirements/vad.txt,sha256=HN7OB8cu5cWuVPhoKWye73I9lAWPE-ijeXeVSshCsxs,4017
13
26
  agent_cli/agents/__init__.py,sha256=c1rnncDW5pBvP6BiLzFVpLWDNZzFRaUA7-a97avFVAs,321
14
27
  agent_cli/agents/_voice_agent_common.py,sha256=PUAztW84Xf9U7d0C_K5cL7I8OANIE1H6M8dFD_cRqps,4360
15
- agent_cli/agents/assistant.py,sha256=kDlKr2lksG2CuIs0QxtMlgJ9a5G29fCOf-rW3t88l8M,13931
16
- agent_cli/agents/autocorrect.py,sha256=9odC5vNcAIZ_2IFmd8FN1x9gXrAv70HD0mxV0HiB2HU,8859
17
- agent_cli/agents/chat.py,sha256=QRCKh_GRIzivM0lH7i-_CBMjCTPR41tqk6TVQc10H4g,17142
18
- agent_cli/agents/rag_proxy.py,sha256=KboqLvSEAHn6iCCCA-dtrY67XSx30CXrHX9bcWWS6W0,4600
19
- agent_cli/agents/speak.py,sha256=yRrID1lp50XzhUwHBTmUzCNYCWlyy6MybMMCoxYtl3g,6994
20
- agent_cli/agents/transcribe.py,sha256=93-3OFgm9f0KWLIYXSptKY8TGu4t6xSv7r6BDwZ7ncA,24458
21
- agent_cli/agents/transcribe_daemon.py,sha256=mWjqqUTdTTSQn7_i8MFZ5SyoLpMu8Y3232jzQQmJVYI,17546
22
- agent_cli/agents/voice_edit.py,sha256=ovVhOQzWXBqFBZx23Odvv5-0PasxjeQwTccOcNat4RE,11022
23
- agent_cli/agents/memory/__init__.py,sha256=O-7ZPY5H-EV1lWy1LHTLeyXaortfWIzl3z_Ic4GcmTE,753
24
- agent_cli/agents/memory/add.py,sha256=VkNd8es2llqTl4TdSAvXXz2G3BmIbWWvhXPwU5JrNnk,6135
25
- agent_cli/agents/memory/proxy.py,sha256=SC4aTv8EYM2e6UOnoU-9DFMUwiIK7PapLQc0IIcETbE,6550
28
+ agent_cli/agents/assistant.py,sha256=dXExb-UrWdMiEcI1c6bXvMhii1iGg49Zw4On6-inQUE,14046
29
+ agent_cli/agents/autocorrect.py,sha256=Voxv43g-IbOhCGKAyWHa4WoQ3-dJEe076XLEmEwg9eg,8990
30
+ agent_cli/agents/chat.py,sha256=7qwDBXFQvhqtlRA4IFXJS24hZ9PN6lb0g9boxwHUS1c,17257
31
+ agent_cli/agents/rag_proxy.py,sha256=47maSXkebpRzt4acvsbIN_sPfIBOHcpBED_PHOlgiSs,4434
32
+ agent_cli/agents/speak.py,sha256=xG2ppthpdmpzsYkNeUynwDmWe8JTpJYhdKs3L1jR6eY,7101
33
+ agent_cli/agents/transcribe.py,sha256=3N9cA9ba-3acH4-UPEw-LYIv-HQhzb4bE0efxZzSwqQ,24654
34
+ agent_cli/agents/transcribe_daemon.py,sha256=FPqcAfGNK_PyxfgQw1b-xph4JrFeCvKy8e9b1HIhRUU,17668
35
+ agent_cli/agents/voice_edit.py,sha256=bOZzeRici5GFq9qPUwHTQiW1TFhHcm_AcLG-EdKxwgk,11137
36
+ agent_cli/agents/memory/__init__.py,sha256=RkJYhq0SI_62hgUHicvtkJ1k7k9JEvKLqr0302gxylw,805
37
+ agent_cli/agents/memory/add.py,sha256=lk6q2SmuwNNFAoDnfOQxPpNHbbHjekGCyKaWUgC9x-8,6210
38
+ agent_cli/agents/memory/proxy.py,sha256=metocNGxTFbpLQ-E4dRhjj8YMRNgPf6WYjegTMOHk_E,6326
26
39
  agent_cli/core/__init__.py,sha256=c_knH7u9QgjsfMIil9NP4bVizHawLUMYoQWU4H9vMlQ,46
27
40
  agent_cli/core/audio.py,sha256=43FpYe2Wu_BYK9xJ_55V4xHjHJeFwQ5aM-CQzlTryt8,15168
28
41
  agent_cli/core/audio_format.py,sha256=zk3qlYMAlKYPz1enrjihQQspl_C218v1Rbcm7Uktlew,8773
29
- agent_cli/core/chroma.py,sha256=Vb_ny7SzAIL9SCEGlYgYOqsdG9BgusFGMj0RUzb6W90,2728
30
- agent_cli/core/deps.py,sha256=VAJqbmBGfyd5KF1AdpahbZQ0AxsM0qxQO7YbAHYSDGI,1336
31
- agent_cli/core/openai_proxy.py,sha256=f2kqxk6bAOeN7gOzU0JnyS-RYtXUcK5Gbsa_pBmlCv0,4470
32
- agent_cli/core/process.py,sha256=Zay6beX4JUbkBHr6xbJxwVBjVFDABmRHQCXVPQH93r8,5916
33
- agent_cli/core/reranker.py,sha256=Qv5ASGUdseLzI6eQRfNeQY-Lvv4SOgLOu56CpwmszDM,3779
42
+ agent_cli/core/chroma.py,sha256=4gC9bT2q6i8zVSrHgEvaKLlBVmmlxlKnJrpQF08fLps,2791
43
+ agent_cli/core/deps.py,sha256=pIeALIfan2Ne7fIYLMUg_zJESoZADb2ZCv2DjPmL3Dg,6441
44
+ agent_cli/core/openai_proxy.py,sha256=VOqh40vyVrOa_u3CvXgolf0Bv-rALIXbKMQfjTBtH3I,4642
45
+ agent_cli/core/process.py,sha256=Ril7HqMJc-F1E-66pHrOi27gEZD3ZR_ZYhGnN61SVSs,5937
46
+ agent_cli/core/reranker.py,sha256=_RPjLKR5ej6L0Lb05tQFoVSyXOt1cXXn3ydEkCIXj2A,3851
34
47
  agent_cli/core/sse.py,sha256=SddiWjHh7DENb1wmvf3wDvX-OhbaC61EceFwQxmDUEo,2232
35
48
  agent_cli/core/transcription_logger.py,sha256=PVVfQK0leoB9JwUu5jYAhyRDBVq9exiPC0_KNXV8ggY,2057
36
- agent_cli/core/utils.py,sha256=MHttXeGiM9qGUNxK0s6vAHthh033TDjaruqocdtMMFY,16802
37
- agent_cli/core/vad.py,sha256=67-EBjY-pTOf61VhrjVdDXgaNIBwWFFFccYth_1rQmg,6569
38
- agent_cli/core/watch.py,sha256=MKgGxxMe0yLlu78-XXqO4ferCpu_ljNr4MAzOMDsuuo,1951
49
+ agent_cli/core/utils.py,sha256=p3OJrNcU6iwqR0C7Q5Ab3_rwJBmP0EbIYT82a9scPSI,16896
50
+ agent_cli/core/vad.py,sha256=mM8VtC4TS3OpohSrtOw38M7T8f6T625FkIKim7Q_EoM,6591
51
+ agent_cli/core/watch.py,sha256=PakxMyqJycN6bkE6fxeo0qe9zj5wjuRly3p7rN9UgjM,2000
39
52
  agent_cli/dev/__init__.py,sha256=doTYiUFEBpnOxsQA69HQP9AA4QHBN0DjuHSTGRq5Xbg,551
40
- agent_cli/dev/cli.py,sha256=NzYiIEYc_v7w2KEsSYGWOnNKSnXCaO6hihbfP5XKqJY,51192
53
+ agent_cli/dev/cli.py,sha256=jSYqZFyeVHIfS3v0ew_-MYEqoWYYfChSI5AWJyXiXaw,51192
41
54
  agent_cli/dev/project.py,sha256=wJMGKTK1rmw8letrV6l6wcLU1fkQQDjCSEixAnsvyaY,18971
42
55
  agent_cli/dev/registry.py,sha256=c6t3ClyRFPvU4GGXJT79-D-qV4FqY7W_7P-tLT7LKZs,1887
43
- agent_cli/dev/worktree.py,sha256=j0pZvoKDcCy9Jw_-L5DEM3Qk6NxqjwZ8uczT1ZK7rec,25476
56
+ agent_cli/dev/worktree.py,sha256=Yw8jlhkf8BeKFc6pPEazGXnUIvryvYwbUmYxTluXILs,26916
44
57
  agent_cli/dev/coding_agents/__init__.py,sha256=f2SjWB7HwbiW0IDcJmGFFYal1-oNwBNEckdcni5Rf7s,360
45
58
  agent_cli/dev/coding_agents/aider.py,sha256=7iAZj7DG1E3nTw7cJxT05r5ZSzE8EWems1YRi1VpfLg,605
46
- agent_cli/dev/coding_agents/base.py,sha256=gMpSHItqjHITomVwHHPaxbZk6TDf0VbvZfVYtt5ptEo,5822
59
+ agent_cli/dev/coding_agents/base.py,sha256=P9Xlfr5Ufm_g6R_QNgq76enUaiRcwHIZvSh-nb5mPMo,5796
47
60
  agent_cli/dev/coding_agents/claude.py,sha256=SG1Pz8yasqo0lQRH8VGEBxQLNWjiuB0FsWYPmUAjyDE,1098
48
61
  agent_cli/dev/coding_agents/codex.py,sha256=djpntxubX73EZgaNZDBqKnmG3o3yCiAOYTpyggnSLOE,566
49
62
  agent_cli/dev/coding_agents/continue_dev.py,sha256=hgXaMG_Dp-nYwS7JmjQu_3KEkBvsd802umqFUQyOHh4,398
@@ -64,6 +77,8 @@ agent_cli/dev/editors/sublime.py,sha256=owEfRSMuArSeFKqk-LE2JOXaZy5QlQfHQ-l0I4k2
64
77
  agent_cli/dev/editors/vim.py,sha256=Fo-IQMPVbIiwBdOfmkFxR37f96QW6xc5LV3Pvr3u-b0,1378
65
78
  agent_cli/dev/editors/vscode.py,sha256=GOrl4FwVdDyuSn7t4lglgnVt_T6NtpjLVh1OWBxDMwE,318
66
79
  agent_cli/dev/editors/zed.py,sha256=lRMhdN_SKmHBA1ulx8x-p7Th_0EGSIv6ppAE84xobU4,515
80
+ agent_cli/dev/skill/SKILL.md,sha256=I1p7qd9-M95PFfDwCtOY5PUYcSv-H7mg1NtC7pKDdK4,4713
81
+ agent_cli/dev/skill/examples.md,sha256=Q42arhFXC04ptaIwH4s2j58gq95qYcUxzxb77PeKUUk,18702
67
82
  agent_cli/dev/terminals/__init__.py,sha256=yUTNtvs1Do2hvhx56XxyfI-5HA5mjiv0IbJuuaL9TeE,371
68
83
  agent_cli/dev/terminals/apple_terminal.py,sha256=s7GdxXPgbpSLKK1DUwjNpshQpjR5Nt1QbL_cKPefIRI,2595
69
84
  agent_cli/dev/terminals/base.py,sha256=dQFfCCnEQFyOg46PPXWQToHQ74kJcCAD-NPD0kTJbOU,1420
@@ -74,39 +89,41 @@ agent_cli/dev/terminals/registry.py,sha256=B27XjELpinLLf2PmwWxpAmnXf6KEXan4d2FDw
74
89
  agent_cli/dev/terminals/tmux.py,sha256=IciviwSoIb_KfKgS1q8iq_cK5iRgoz8vZuoNLAvcKJg,1498
75
90
  agent_cli/dev/terminals/warp.py,sha256=j-Jvz_BbWYC3QfLrvl4CbDh03c9OGRFmuCzjyB2udyo,4294
76
91
  agent_cli/dev/terminals/zellij.py,sha256=GnQnopimb9XH67CZGHjnbVWpVSWhaLCATGJizCT5TkY,2321
77
- agent_cli/install/__init__.py,sha256=wWv8GkkCy-WyI9QqctwwIE82J9kbMjSk3OWuxu_r2L0,114
92
+ agent_cli/install/__init__.py,sha256=JQPrOrtdNd1Y1NmQDkb3Nmm1qdyn3kPjhQwy9D8ryjI,124
78
93
  agent_cli/install/common.py,sha256=WvnmcjnFTW0d1HZrKVGzj5Tg3q8Txk_ZOdc4a1MBFWI,3121
94
+ agent_cli/install/extras.py,sha256=bWLLHHFEm1_3jVAvvmsv7JuXgN7ZuqouQl0QB2mtHPg,5960
79
95
  agent_cli/install/hotkeys.py,sha256=bwGoPeEKK6VI-IrKU8Q0RLMW9smkDNU7CdqD3Nbsd-w,1626
80
96
  agent_cli/install/services.py,sha256=2s_7ThxaElKCuomBYTn4Z36TF_o_arNeyJ4f8Wh4jEI,2912
81
- agent_cli/memory/__init__.py,sha256=Q9lomqabThXFx-j_Yu3xKDyKLN4Odck92J6WDP53yUI,610
82
- agent_cli/memory/_files.py,sha256=Za4YeSK5f2NKVZf1zDZXo4Sf-gERaProeSAXlLt8e0c,7598
97
+ agent_cli/memory/__init__.py,sha256=8XNpVzP-qjF8o49A_eXsH_Rbp_FmxTIcknnvxq7vHms,162
98
+ agent_cli/memory/_files.py,sha256=xA06smZNj32UfTQz9Qs-05MvAoJuNrPfKxC-FXuhxcs,7658
83
99
  agent_cli/memory/_filters.py,sha256=VzuFyWTGqWKY0JYctfxF1JZFVYfVecW7mLDAM019mzU,2044
84
100
  agent_cli/memory/_git.py,sha256=qWOJkwUrWE6TkVYdUW1vVA6VB5w00w0LKDfqHUwQrBY,4738
85
- agent_cli/memory/_indexer.py,sha256=iWIRG61g2O4_cUjJYDXe03hkpRO5kVAqOwDeCb7Efu0,4704
86
- agent_cli/memory/_ingest.py,sha256=_WeFLTxrlWKFpyB1KR0tUWLgEq-eevB8ytAgpq6BOlY,13649
101
+ agent_cli/memory/_indexer.py,sha256=H3ZKW-wJV2qd6Q7ErqNdDklb2DdJ-CE21YePawLGxg4,4759
102
+ agent_cli/memory/_ingest.py,sha256=kAFmONZkzAQcXNPIk40HTHNLBn0feJ6HMiUpgvBpYJ4,13704
87
103
  agent_cli/memory/_persistence.py,sha256=7TsphuYsJfJbp-294IvWmtW98G_Sag9GTm8AUGU9dtQ,5401
88
104
  agent_cli/memory/_prompt.py,sha256=ncvYM5ewLrYRP8KizdFHtPQl2cWYg0SW0VQxA8rz_9E,4667
89
- agent_cli/memory/_retrieval.py,sha256=szQxy1OyjetyvidUsyyijtOiYEXFk21rvBpses9r3Po,9211
105
+ agent_cli/memory/_retrieval.py,sha256=K_2TUcgzfntBARPyf0K6VR3NIgHHJrqGFMP_53Nae_w,9778
90
106
  agent_cli/memory/_store.py,sha256=m9mD1GxjdTXpnyL-X-MIU4cj28unqxJ_azV3kwM8blM,5086
91
- agent_cli/memory/_streaming.py,sha256=-WlOPtH61ogCSJKQRpfYHp2gBgIIN6hIJqb5padjmpw,1379
107
+ agent_cli/memory/_streaming.py,sha256=P1JnkDNTJJj-lXawmXhBZnIia3ZZmKo-N6mUsLYFVgs,1400
92
108
  agent_cli/memory/_tasks.py,sha256=XgEkN_3NCVQDWafZ_rqazpAE68yQ87x-amnQKMkfPXg,1469
93
- agent_cli/memory/api.py,sha256=sRLvidQeg-ooxHIDHvYkkbGof-CLKvMXjdviyRU12Do,3588
94
- agent_cli/memory/client.py,sha256=QWzY562nLr0OlpOW2vaArzALMWLxy-vv6H-DJgJ08n0,9987
95
- agent_cli/memory/engine.py,sha256=V6QURnnKvvAN4hW8tuGkbgLaMbo4NB7_jdpZg0mC6n0,11649
109
+ agent_cli/memory/api.py,sha256=riaGTOIw7g3KuDNcPtDy9wO44-D1wDtVadRj3RTT10k,3595
110
+ agent_cli/memory/client.py,sha256=XomHhP-hPSoosORkBKSY1dW3gjheFEVqAac0b-tAULo,9994
111
+ agent_cli/memory/engine.py,sha256=rABVC86b5wU1QxY3BM43RhvfDOxoRT7Ddm98BN_qCL4,11656
96
112
  agent_cli/memory/entities.py,sha256=_8wyJz--tNa66CEtSpl2TUN_zeHQvMzm42htnDaOr6g,1219
97
113
  agent_cli/memory/models.py,sha256=KK0wToEf-tXssYVL0hYaJlcADlJ3G2lcSXwo1UmA0VU,2352
98
- agent_cli/rag/__init__.py,sha256=suQDSGBUlt4_KNxz2CyVqrJw58e64T3ltfmmg2F8iQY,543
99
- agent_cli/rag/_indexer.py,sha256=tzce07xvCbfH2jA0F_sldPRe7VLDXVQ3PGZFRsAJN10,1998
114
+ agent_cli/rag/__init__.py,sha256=nWNh4_zFTiweNQAiUzNVt1jq7myJxaeB5kXv1063GUM,54
115
+ agent_cli/rag/_indexer.py,sha256=t6age33nVfs-WaspoIrBOdh3agfgPWijcJwmQwEVSsI,2053
100
116
  agent_cli/rag/_indexing.py,sha256=z2z5BWtQVuviPOjUiu151gJ9MzJxaqRYKrSi4Jj06mA,7605
101
117
  agent_cli/rag/_prompt.py,sha256=d8_jOhZGafMmjO7BlCl4H125bj4m-dNFWDOLz5_OPrw,954
102
118
  agent_cli/rag/_retriever.py,sha256=bzMzZR43P5cROgnWwOh_BrMFsMP5tDm21ToFVZwb0gk,4505
103
119
  agent_cli/rag/_store.py,sha256=HksCLnbHp19dnY5ZWglm86azBjjuiWqvZvRPG-oJ8SY,1381
104
120
  agent_cli/rag/_utils.py,sha256=OKZvn8UFb3TsB4b0eIWU6Md5xDiaG-g659zMjVUu8oI,5923
105
- agent_cli/rag/api.py,sha256=TFsqBNDi4hJg2VbhW6MmK3eLm8Hj6bDJaQr7bSXWQI0,5563
121
+ agent_cli/rag/api.py,sha256=Q_aaRdNxh9avNGvXWEJ5qH-vMTagN7m-iJdTZSeSink,5564
106
122
  agent_cli/rag/client.py,sha256=mFiZ4yjI75Vsehie6alsV1My50uIsp-G07Qz6SaNrZw,8913
107
123
  agent_cli/rag/engine.py,sha256=XySDer0fNTsEUjbUby5yf7JqB7uCE7tw2A6tYJixHnI,9800
108
124
  agent_cli/rag/models.py,sha256=uECWoeBChlkAK7uTM-pUnPGaaMO4EYJ3pJcAf8uh1vI,1043
109
125
  agent_cli/scripts/__init__.py,sha256=QvI1gnTagN85mmKDy2IRw96MEU9DKRWKkhSKSBshGVY,78
126
+ agent_cli/scripts/check_plugin_skill_sync.py,sha256=abuiSjvj34mazYeKOG-Mw6y14uN_1Ie8dkcCs_M_RF0,1656
110
127
  agent_cli/scripts/run-openwakeword.sh,sha256=jXZ3hegiL5TINFttvOPnnfDWuIR6x8Mv_pAEWij7Z08,446
111
128
  agent_cli/scripts/run-piper-windows.ps1,sha256=jpy4-3NxCoBpT3mnNbmCCSGbahjbv34KozlQ3lCDpV4,1134
112
129
  agent_cli/scripts/run-piper.sh,sha256=MAI1yTnmcn3z-t7UWwK5oSvpr9KNgh6Z2h7ns_dbYNc,877
@@ -122,6 +139,8 @@ agent_cli/scripts/setup-macos.sh,sha256=iKWhhONLGDTqYawSDqutnl0mfQomSVPPAsx09-0E
122
139
  agent_cli/scripts/setup-windows.ps1,sha256=NhyxOuwCjjSw24q2QOqggATos_n06DDbfvMQWuAB3tM,2938
123
140
  agent_cli/scripts/start-all-services-windows.ps1,sha256=uOODaPFzniEU7asDgMyf5MEOWcEFsGg_mCLLlDgKoa8,2643
124
141
  agent_cli/scripts/start-all-services.sh,sha256=c6pjXoyoQkeF-cYpldeMMo38XxRMmS43FHG5w3ElLxg,7756
142
+ agent_cli/scripts/sync_extras.py,sha256=VpuhNg7iP3YT3l1jqoSBeWbzDEkeUEGGba7_lGUxBjA,4737
143
+ agent_cli/scripts/.runtime/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
144
  agent_cli/scripts/linux-hotkeys/README.md,sha256=OW48Xyv096XkUosSJkzED_nnEEncSzhl87FNgEfq8wg,2037
126
145
  agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh,sha256=sme-dil3EU4nkdRwxSvARr-hBN9UjrU1IFabLCrvwl8,1251
127
146
  agent_cli/scripts/linux-hotkeys/toggle-transcription.sh,sha256=_syhVCk-ggDh9tpjbF7d_cCvQe76H2KvOYqmRc1dG3U,1777
@@ -137,15 +156,15 @@ agent_cli/scripts/nvidia-asr-server/server.py,sha256=kPNQIVF3exblvqMtIVk38Y6sZy2
137
156
  agent_cli/scripts/nvidia-asr-server/shell.nix,sha256=IT20j5YNj_wc7MdXi7ndogGodDNSGwyq8G0bNoZEpmg,1003
138
157
  agent_cli/scripts/nvidia-asr-server/uv.lock,sha256=5WWaqWOuV_moMPC-LIZK-A-Y5oaHr1tUn_vbR-IupzY,728608
139
158
  agent_cli/server/__init__.py,sha256=NZuJHlLHck9KWrepNZHrJONptYCQI9P-uTqknSFI5Ds,71
140
- agent_cli/server/cli.py,sha256=8MSoRwpuc_UdU3bwkNcfQfxQvQvR0juTuEjR9C_3SJ0,22819
141
- agent_cli/server/common.py,sha256=fD2AZdM716TXcz1T4ZDPpPaKynVOEjbVC1LDDloDmDo,6463
159
+ agent_cli/server/cli.py,sha256=sCSXk6iSjlxRhEeBI1Vt_3RhBVcp92pid_T0cusdFPU,22897
160
+ agent_cli/server/common.py,sha256=hBBp6i-2-yhDY260ffwmFBg_ndcoT5SNcfa6uFyP7Vc,6391
142
161
  agent_cli/server/model_manager.py,sha256=93l_eeZeqnPALyDIK24or61tvded9TbM8tnde0okVjY,9225
143
162
  agent_cli/server/model_registry.py,sha256=KrRV1XxbFYuXu5rJlHFh6PTl_2BKiWnWsaNrf-0c6wQ,6988
144
163
  agent_cli/server/streaming.py,sha256=nX_kMNQBxdzvPKUcFQWth7dDBYALRGy_j9mDunKXaJE,2191
145
164
  agent_cli/server/proxy/__init__.py,sha256=fOq5bs5B9XKfr7XbdZ825RIxheAJA0VKmKantykjTE4,83
146
165
  agent_cli/server/proxy/api.py,sha256=gTfa_yxfiTv_L44Ii56-cW9lQ9ih8elwoNvGJuXIQpk,13829
147
166
  agent_cli/server/tts/__init__.py,sha256=o1TlYmsGeqo-LDZg86KEhLJYWzN7jtMNGS5S8HFUSkw,93
148
- agent_cli/server/tts/api.py,sha256=GLilYbSyZeCWyZwY5Q1wPKkSpLUg_eGRIc7fbzZI_R8,10598
167
+ agent_cli/server/tts/api.py,sha256=GLOJEC4yMlWjz6AjrWBdZLs368DddP27PMvgqVlVCFc,10598
149
168
  agent_cli/server/tts/model_manager.py,sha256=TlBc0Q1iitDfNi8uYXyb1CaJr8Kt62SDyFIsCyVm7DY,6116
150
169
  agent_cli/server/tts/model_registry.py,sha256=Znqt6vhJkr3eqkE1oZrYJhd6RLXzuRdzXbFzuNn8cOI,737
151
170
  agent_cli/server/tts/wyoming_handler.py,sha256=Hx3cOsQ73tx6RNpB37RMRtCnp1kGvbQzWd7yeetUpIU,7674
@@ -158,20 +177,19 @@ agent_cli/server/whisper/api.py,sha256=_2z04tUfuQ6QnKMaZnikb5Ji7LbtCfKYs42MG6v-Q
158
177
  agent_cli/server/whisper/languages.py,sha256=Tv3qsIOSQQLxw-v5Wy41jSS6uHG_YBiG-T2uJVVt3u0,2686
159
178
  agent_cli/server/whisper/model_manager.py,sha256=LI92mkueu8o8m6AhzlUaaIWygnZucJa295-j7ymx7Ss,4925
160
179
  agent_cli/server/whisper/model_registry.py,sha256=qoRkB0ex6aRtUlsUN5BGik-oIZlwJbVHGQKaCbf_yVg,789
161
- agent_cli/server/whisper/wyoming_handler.py,sha256=bX0nYeSKFuyccVyNj0034QNuWJvAS1r7XMopiFK72X4,6712
180
+ agent_cli/server/whisper/wyoming_handler.py,sha256=HjN565YfDHeVfaGjQfoy9xjCZPx_TvYvjRYgbKn3aOI,6634
162
181
  agent_cli/server/whisper/backends/__init__.py,sha256=DfgyigwMLKiSfaRzZ1TTeV7fa9HWSmT1UJnJa-6el7k,2338
163
182
  agent_cli/server/whisper/backends/base.py,sha256=gQi5EyMCFS464mKXGIKbh1vgtBm99eNkf93SCIYRYg0,2597
164
- agent_cli/server/whisper/backends/faster_whisper.py,sha256=-BogM_-_rhlXKUZuW1qUN8zw2gD0ut1bJozPDP19knA,6717
183
+ agent_cli/server/whisper/backends/faster_whisper.py,sha256=GN51L-qBjH-YU8ASiu317NrkMKMsK_znXDOTxi90EzU,6966
165
184
  agent_cli/server/whisper/backends/mlx.py,sha256=wSkD9wL3K8PvQToJ5qkTj_HZQJD9Brs_bjNz-X0Sku8,9328
166
185
  agent_cli/services/__init__.py,sha256=8REdXC5eXfhAJJ6j85tgCinbj89PLwv8A50dysA8VUc,10004
167
- agent_cli/services/_wyoming_utils.py,sha256=h6Oq1PmyhHGWQxywrC8a58lQRZDMCITSLOUR9ZFUBgk,1906
168
- agent_cli/services/asr.py,sha256=V6SV-USnMhK-0aE-pneiktU4HpmLqenmMb-jZ-_74zU,16992
169
- agent_cli/services/llm.py,sha256=Kwdo6pbMYI9oykF-RBe1iaL3KsYrNWTLdRSioewmsGQ,7199
170
- agent_cli/services/tts.py,sha256=exKo-55_670mx8dQOzVSZkv6aWYLv04SVmBcjOlD458,14772
171
- agent_cli/services/wake_word.py,sha256=j6Z8rsGq_vAdRevy9fkXIgLZd9UWfrIsefmTreNmM0c,4575
172
- agent_cli-0.61.2.dist-info/licenses/LICENSE,sha256=majJU6S9kC8R8bW39NVBHyv32Dq50FL6TDxECG2WVts,1068
173
- agent_cli-0.61.2.dist-info/METADATA,sha256=YwklOIqS07_AoQVNw9pzjl2rn3jsRotm6tyiT_04SCQ,151667
174
- agent_cli-0.61.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
175
- agent_cli-0.61.2.dist-info/entry_points.txt,sha256=FUv-fB2atLsPUk_RT4zqnZl1coz4_XHFwRALOKOF38s,97
176
- agent_cli-0.61.2.dist-info/top_level.txt,sha256=TuStuZNwjzmLkTAilTWTfnMUi611CuWvaRxY36_Ar30,10
177
- agent_cli-0.61.2.dist-info/RECORD,,
186
+ agent_cli/services/_wyoming_utils.py,sha256=pKPa4fOSdqcG3-kNHJOHHsMnZ1yZJZi6XohVwjAwabo,1971
187
+ agent_cli/services/asr.py,sha256=aRaCLVCygsJ15qyQEPECOZsdSrnlLPbyY4RwAqY0qIw,17258
188
+ agent_cli/services/llm.py,sha256=i01utl1eYWlM13gvW2eR6ErL_ndH-g0d-BSleZra_7k,7229
189
+ agent_cli/services/tts.py,sha256=NX5Qnq7ddLI3mwm3nzhbR3zB1Os4Ip4sSVSjDZDTBcI,14855
190
+ agent_cli/services/wake_word.py,sha256=JFJ1SA22H4yko9DXiQ1t7fcoxeALLAe3iBrLs0z8rX4,4664
191
+ agent_cli-0.70.2.dist-info/METADATA,sha256=dbmxmB1vMxwjh_HSrSVHY1yQKEePFYDB5xzVCEDK2ew,156132
192
+ agent_cli-0.70.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
193
+ agent_cli-0.70.2.dist-info/entry_points.txt,sha256=FUv-fB2atLsPUk_RT4zqnZl1coz4_XHFwRALOKOF38s,97
194
+ agent_cli-0.70.2.dist-info/licenses/LICENSE,sha256=majJU6S9kC8R8bW39NVBHyv32Dq50FL6TDxECG2WVts,1068
195
+ agent_cli-0.70.2.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -1 +0,0 @@
1
- agent_cli