agent-cli 0.61.5__py3-none-any.whl → 0.63.0__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.
- agent_cli/agents/assistant.py +1 -1
- agent_cli/agents/autocorrect.py +1 -1
- agent_cli/agents/chat.py +1 -1
- agent_cli/agents/memory/__init__.py +1 -1
- agent_cli/agents/rag_proxy.py +1 -1
- agent_cli/agents/speak.py +1 -1
- agent_cli/agents/transcribe.py +1 -1
- agent_cli/agents/transcribe_daemon.py +1 -1
- agent_cli/agents/voice_edit.py +1 -1
- agent_cli/dev/cli.py +24 -1
- agent_cli/dev/skill/SKILL.md +3 -2
- agent_cli/dev/worktree.py +53 -5
- agent_cli/memory/_retrieval.py +18 -8
- agent_cli/memory/api.py +1 -1
- agent_cli/memory/client.py +1 -1
- agent_cli/memory/engine.py +1 -1
- agent_cli/server/cli.py +1 -1
- {agent_cli-0.61.5.dist-info → agent_cli-0.63.0.dist-info}/METADATA +3 -3
- {agent_cli-0.61.5.dist-info → agent_cli-0.63.0.dist-info}/RECORD +22 -22
- {agent_cli-0.61.5.dist-info → agent_cli-0.63.0.dist-info}/WHEEL +0 -0
- {agent_cli-0.61.5.dist-info → agent_cli-0.63.0.dist-info}/entry_points.txt +0 -0
- {agent_cli-0.61.5.dist-info → agent_cli-0.63.0.dist-info}/licenses/LICENSE +0 -0
agent_cli/agents/assistant.py
CHANGED
agent_cli/agents/autocorrect.py
CHANGED
agent_cli/agents/chat.py
CHANGED
agent_cli/agents/rag_proxy.py
CHANGED
agent_cli/agents/speak.py
CHANGED
agent_cli/agents/transcribe.py
CHANGED
|
@@ -460,7 +460,7 @@ async def _async_main( # noqa: PLR0912, PLR0915, C901
|
|
|
460
460
|
)
|
|
461
461
|
|
|
462
462
|
|
|
463
|
-
@app.command("transcribe")
|
|
463
|
+
@app.command("transcribe", rich_help_panel="Voice Commands")
|
|
464
464
|
def transcribe( # noqa: PLR0912
|
|
465
465
|
*,
|
|
466
466
|
extra_instructions: str | None = typer.Option(
|
|
@@ -286,7 +286,7 @@ async def _daemon_loop(cfg: DaemonConfig) -> None: # noqa: PLR0912, PLR0915
|
|
|
286
286
|
await asyncio.wait(background_tasks, timeout=2.0)
|
|
287
287
|
|
|
288
288
|
|
|
289
|
-
@app.command("transcribe-daemon")
|
|
289
|
+
@app.command("transcribe-daemon", rich_help_panel="Voice Commands")
|
|
290
290
|
def transcribe_daemon( # noqa: PLR0912
|
|
291
291
|
*,
|
|
292
292
|
# Daemon-specific options
|
agent_cli/agents/voice_edit.py
CHANGED
agent_cli/dev/cli.py
CHANGED
|
@@ -122,7 +122,7 @@ app = typer.Typer(
|
|
|
122
122
|
rich_markup_mode="markdown",
|
|
123
123
|
no_args_is_help=True,
|
|
124
124
|
)
|
|
125
|
-
main_app.add_typer(app, name="dev")
|
|
125
|
+
main_app.add_typer(app, name="dev", rich_help_panel="Development")
|
|
126
126
|
|
|
127
127
|
|
|
128
128
|
@app.callback()
|
|
@@ -344,6 +344,19 @@ def _launch_editor(path: Path, editor: Editor) -> None:
|
|
|
344
344
|
_warn(f"Could not open editor: {e}")
|
|
345
345
|
|
|
346
346
|
|
|
347
|
+
def _write_prompt_to_worktree(worktree_path: Path, prompt: str) -> Path:
|
|
348
|
+
"""Write the prompt to .claude/TASK.md in the worktree.
|
|
349
|
+
|
|
350
|
+
This makes the task description available to the spawned agent
|
|
351
|
+
and provides a record of what was requested.
|
|
352
|
+
"""
|
|
353
|
+
claude_dir = worktree_path / ".claude"
|
|
354
|
+
claude_dir.mkdir(parents=True, exist_ok=True)
|
|
355
|
+
task_file = claude_dir / "TASK.md"
|
|
356
|
+
task_file.write_text(prompt + "\n")
|
|
357
|
+
return task_file
|
|
358
|
+
|
|
359
|
+
|
|
347
360
|
def _format_env_prefix(env: dict[str, str]) -> str:
|
|
348
361
|
"""Format environment variables as shell prefix.
|
|
349
362
|
|
|
@@ -627,6 +640,11 @@ def new( # noqa: PLR0912, PLR0915
|
|
|
627
640
|
# Only warn if user explicitly requested direnv
|
|
628
641
|
_warn("direnv not installed, skipping .envrc setup")
|
|
629
642
|
|
|
643
|
+
# Write prompt to worktree (makes task available to the spawned agent)
|
|
644
|
+
if prompt:
|
|
645
|
+
task_file = _write_prompt_to_worktree(result.path, prompt)
|
|
646
|
+
_success(f"Wrote task to {task_file.relative_to(result.path)}")
|
|
647
|
+
|
|
630
648
|
# Resolve editor and agent
|
|
631
649
|
resolved_editor = _resolve_editor(editor, editor_name, default_editor)
|
|
632
650
|
resolved_agent = _resolve_agent(agent, agent_name, default_agent)
|
|
@@ -1039,6 +1057,11 @@ def start_agent(
|
|
|
1039
1057
|
if not agent.is_available():
|
|
1040
1058
|
_error(f"{agent.name} is not installed. Install from: {agent.install_url}")
|
|
1041
1059
|
|
|
1060
|
+
# Write prompt to worktree (makes task available to the agent)
|
|
1061
|
+
if prompt:
|
|
1062
|
+
task_file = _write_prompt_to_worktree(wt.path, prompt)
|
|
1063
|
+
_success(f"Wrote task to {task_file.relative_to(wt.path)}")
|
|
1064
|
+
|
|
1042
1065
|
merged_args = _merge_agent_args(agent, agent_args)
|
|
1043
1066
|
agent_env = _get_agent_env(agent)
|
|
1044
1067
|
_info(f"Starting {agent.name} in {wt.path}...")
|
agent_cli/dev/skill/SKILL.md
CHANGED
|
@@ -47,8 +47,9 @@ agent-cli dev new <branch-name> --agent --prompt-file path/to/prompt.md
|
|
|
47
47
|
This creates:
|
|
48
48
|
1. A new git worktree with its own branch
|
|
49
49
|
2. Runs project setup (installs dependencies)
|
|
50
|
-
3.
|
|
51
|
-
4.
|
|
50
|
+
3. Saves your prompt to `.claude/TASK.md` in the worktree (for reference)
|
|
51
|
+
4. Opens a new terminal tab with an AI coding agent
|
|
52
|
+
5. Passes your prompt to the agent
|
|
52
53
|
|
|
53
54
|
**Important**: Use `--prompt-file` for prompts longer than a single line. The `--prompt` option passes text through the shell, which can cause issues with special characters (exclamation marks, dollar signs, backticks, quotes) in ZSH and other shells. Using `--prompt-file` avoids all shell quoting issues.
|
|
54
55
|
|
agent_cli/dev/worktree.py
CHANGED
|
@@ -55,6 +55,15 @@ def is_git_repo(path: Path | None = None) -> bool:
|
|
|
55
55
|
return False
|
|
56
56
|
|
|
57
57
|
|
|
58
|
+
def has_origin_remote(path: Path | None = None) -> bool:
|
|
59
|
+
"""Check if the repository has an 'origin' remote configured."""
|
|
60
|
+
try:
|
|
61
|
+
result = _run_git("remote", "get-url", "origin", cwd=path, check=False)
|
|
62
|
+
return result.returncode == 0
|
|
63
|
+
except Exception:
|
|
64
|
+
return False
|
|
65
|
+
|
|
66
|
+
|
|
58
67
|
def get_repo_root(path: Path | None = None) -> Path | None:
|
|
59
68
|
"""Get the root directory of the git repository."""
|
|
60
69
|
try:
|
|
@@ -461,6 +470,35 @@ def _init_submodules(
|
|
|
461
470
|
)
|
|
462
471
|
|
|
463
472
|
|
|
473
|
+
def _pull_lfs(
|
|
474
|
+
worktree_path: Path,
|
|
475
|
+
*,
|
|
476
|
+
on_log: Callable[[str], None] | None = None,
|
|
477
|
+
capture_output: bool = True,
|
|
478
|
+
) -> None:
|
|
479
|
+
"""Pull Git LFS files in a worktree if LFS is used.
|
|
480
|
+
|
|
481
|
+
Evidence: https://git-lfs.com/ - `git lfs pull` fetches LFS objects.
|
|
482
|
+
This is a no-op if LFS is not used or files are already present.
|
|
483
|
+
"""
|
|
484
|
+
# Check if .gitattributes contains LFS filters
|
|
485
|
+
gitattributes = worktree_path / ".gitattributes"
|
|
486
|
+
if not gitattributes.exists():
|
|
487
|
+
return
|
|
488
|
+
|
|
489
|
+
if "filter=lfs" not in gitattributes.read_text():
|
|
490
|
+
return
|
|
491
|
+
|
|
492
|
+
# Check if git-lfs is installed
|
|
493
|
+
if not shutil.which("git-lfs"):
|
|
494
|
+
return
|
|
495
|
+
|
|
496
|
+
if on_log:
|
|
497
|
+
on_log("Pulling Git LFS files...")
|
|
498
|
+
|
|
499
|
+
_run_git("lfs", "pull", cwd=worktree_path, check=False, capture_output=capture_output)
|
|
500
|
+
|
|
501
|
+
|
|
464
502
|
def _add_worktree(
|
|
465
503
|
branch_name: str,
|
|
466
504
|
worktree_path: Path,
|
|
@@ -586,8 +624,11 @@ def create_worktree(
|
|
|
586
624
|
# Create base directory if needed
|
|
587
625
|
base_dir.mkdir(parents=True, exist_ok=True)
|
|
588
626
|
|
|
589
|
-
#
|
|
590
|
-
|
|
627
|
+
# Check if origin remote exists
|
|
628
|
+
origin_exists = has_origin_remote(repo_root)
|
|
629
|
+
|
|
630
|
+
# Fetch latest refs (only if origin exists)
|
|
631
|
+
if fetch and origin_exists:
|
|
591
632
|
if on_log:
|
|
592
633
|
on_log("Running: git fetch origin")
|
|
593
634
|
_run_git("fetch", "origin", cwd=repo_root, check=False, capture_output=capture_output)
|
|
@@ -596,10 +637,10 @@ def create_worktree(
|
|
|
596
637
|
from_ref_explicit = from_ref is not None
|
|
597
638
|
|
|
598
639
|
# Determine the reference to create from
|
|
599
|
-
# Use origin/{branch}
|
|
600
|
-
# not a potentially stale local branch
|
|
640
|
+
# Use origin/{branch} if origin exists, otherwise use local branch
|
|
601
641
|
if from_ref is None:
|
|
602
|
-
|
|
642
|
+
default_branch = get_default_branch(repo_root)
|
|
643
|
+
from_ref = f"origin/{default_branch}" if origin_exists else default_branch
|
|
603
644
|
|
|
604
645
|
# Check if branch exists remotely or locally
|
|
605
646
|
remote_exists, local_exists = _check_branch_exists(branch_name, repo_root)
|
|
@@ -634,6 +675,13 @@ def create_worktree(
|
|
|
634
675
|
capture_output=capture_output,
|
|
635
676
|
)
|
|
636
677
|
|
|
678
|
+
# Pull Git LFS files if the repo uses LFS
|
|
679
|
+
_pull_lfs(
|
|
680
|
+
worktree_path,
|
|
681
|
+
on_log=on_log,
|
|
682
|
+
capture_output=capture_output,
|
|
683
|
+
)
|
|
684
|
+
|
|
637
685
|
return CreateWorktreeResult(
|
|
638
686
|
success=True,
|
|
639
687
|
path=worktree_path,
|
agent_cli/memory/_retrieval.py
CHANGED
|
@@ -25,6 +25,7 @@ LOGGER = logging.getLogger(__name__)
|
|
|
25
25
|
|
|
26
26
|
_DEFAULT_MMR_LAMBDA = 0.7
|
|
27
27
|
_SUMMARY_ROLE = "summary"
|
|
28
|
+
_MIN_MAX_EPSILON = 1e-8 # Avoid division by zero in min-max normalization
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
def gather_relevant_existing_memories(
|
|
@@ -135,7 +136,7 @@ def retrieve_memory(
|
|
|
135
136
|
include_summary: bool = True,
|
|
136
137
|
mmr_lambda: float = _DEFAULT_MMR_LAMBDA,
|
|
137
138
|
recency_weight: float = 0.2,
|
|
138
|
-
score_threshold: float =
|
|
139
|
+
score_threshold: float | None = None,
|
|
139
140
|
filters: dict[str, Any] | None = None,
|
|
140
141
|
) -> tuple[MemoryRetrieval, list[str]]:
|
|
141
142
|
"""Execute search + rerank + recency + MMR."""
|
|
@@ -161,8 +162,15 @@ def retrieve_memory(
|
|
|
161
162
|
seen_ids.add(rec_id)
|
|
162
163
|
raw_candidates.append(rec)
|
|
163
164
|
|
|
164
|
-
def
|
|
165
|
-
|
|
165
|
+
def _min_max_normalize(scores: list[float]) -> list[float]:
|
|
166
|
+
"""Normalize scores to 0-1 range using min-max scaling."""
|
|
167
|
+
if not scores:
|
|
168
|
+
return scores
|
|
169
|
+
min_score = min(scores)
|
|
170
|
+
max_score = max(scores)
|
|
171
|
+
if max_score - min_score < _MIN_MAX_EPSILON:
|
|
172
|
+
return [0.5] * len(scores) # All scores equal
|
|
173
|
+
return [(s - min_score) / (max_score - min_score) for s in scores]
|
|
166
174
|
|
|
167
175
|
def recency_score(meta: MemoryMetadata) -> float:
|
|
168
176
|
dt = datetime.fromisoformat(meta.created_at)
|
|
@@ -176,10 +184,12 @@ def retrieve_memory(
|
|
|
176
184
|
if raw_candidates:
|
|
177
185
|
pairs = [(query, mem.content) for mem in raw_candidates]
|
|
178
186
|
rr_scores = predict_relevance(reranker_model, pairs)
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
187
|
+
# Normalize raw reranker scores to 0-1 range
|
|
188
|
+
normalized_scores = _min_max_normalize(rr_scores)
|
|
189
|
+
|
|
190
|
+
for mem, relevance in zip(raw_candidates, normalized_scores, strict=False):
|
|
191
|
+
# Filter out low-relevance memories if threshold is set
|
|
192
|
+
if score_threshold is not None and relevance < score_threshold:
|
|
183
193
|
continue
|
|
184
194
|
|
|
185
195
|
recency = recency_score(mem.metadata)
|
|
@@ -235,7 +245,7 @@ async def augment_chat_request(
|
|
|
235
245
|
include_global: bool = True,
|
|
236
246
|
mmr_lambda: float = _DEFAULT_MMR_LAMBDA,
|
|
237
247
|
recency_weight: float = 0.2,
|
|
238
|
-
score_threshold: float =
|
|
248
|
+
score_threshold: float | None = None,
|
|
239
249
|
filters: dict[str, Any] | None = None,
|
|
240
250
|
) -> tuple[ChatRequest, MemoryRetrieval | None, str, list[str]]:
|
|
241
251
|
"""Retrieve memory context and augment the chat request."""
|
agent_cli/memory/api.py
CHANGED
|
@@ -30,7 +30,7 @@ def create_app(
|
|
|
30
30
|
max_entries: int = 500,
|
|
31
31
|
mmr_lambda: float = 0.7,
|
|
32
32
|
recency_weight: float = 0.2,
|
|
33
|
-
score_threshold: float =
|
|
33
|
+
score_threshold: float | None = None,
|
|
34
34
|
enable_git_versioning: bool = True,
|
|
35
35
|
) -> FastAPI:
|
|
36
36
|
"""Create the FastAPI app for memory-backed chat."""
|
agent_cli/memory/client.py
CHANGED
|
@@ -49,7 +49,7 @@ class MemoryClient:
|
|
|
49
49
|
max_entries: int = 500,
|
|
50
50
|
mmr_lambda: float = 0.7,
|
|
51
51
|
recency_weight: float = 0.2,
|
|
52
|
-
score_threshold: float =
|
|
52
|
+
score_threshold: float | None = None,
|
|
53
53
|
start_watcher: bool = False,
|
|
54
54
|
enable_git_versioning: bool = True,
|
|
55
55
|
) -> None:
|
agent_cli/memory/engine.py
CHANGED
|
@@ -236,7 +236,7 @@ async def process_chat_request(
|
|
|
236
236
|
max_entries: int = _DEFAULT_MAX_ENTRIES,
|
|
237
237
|
mmr_lambda: float = _DEFAULT_MMR_LAMBDA,
|
|
238
238
|
recency_weight: float = 0.2,
|
|
239
|
-
score_threshold: float =
|
|
239
|
+
score_threshold: float | None = None,
|
|
240
240
|
postprocess_in_background: bool = True,
|
|
241
241
|
enable_git_versioning: bool = False,
|
|
242
242
|
filters: dict[str, Any] | None = None,
|
agent_cli/server/cli.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.63.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>
|
|
@@ -128,7 +128,7 @@ Since then I have expanded the tool with many more features, all focused on loca
|
|
|
128
128
|
- **[`memory`](docs/commands/memory.md)**: Long-term memory system with `memory proxy` and `memory add`.
|
|
129
129
|
- **[`rag-proxy`](docs/commands/rag-proxy.md)**: RAG proxy server for chatting with your documents.
|
|
130
130
|
- **[`dev`](docs/commands/dev.md)**: Parallel development with git worktrees and AI coding agents.
|
|
131
|
-
- **[`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).
|
|
131
|
+
- **[`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).
|
|
132
132
|
- **[`transcribe-daemon`](docs/commands/transcribe-daemon.md)**: Continuous background transcription with VAD. Install with `uv tool install "agent-cli[vad]"`.
|
|
133
133
|
|
|
134
134
|
## Quick Start
|
|
@@ -389,7 +389,7 @@ Our installation scripts automatically handle all dependencies:
|
|
|
389
389
|
|---------|---------|-----------------|
|
|
390
390
|
| **[Ollama](https://ollama.ai/)** | Local LLM for text processing | ✅ Yes, with default model |
|
|
391
391
|
| **[Wyoming Faster Whisper](https://github.com/rhasspy/wyoming-faster-whisper)** | Speech-to-text | ✅ Yes, via `uvx` |
|
|
392
|
-
| **[`agent-cli server whisper`](docs/commands/server.md
|
|
392
|
+
| **[`agent-cli server whisper`](docs/commands/server/whisper.md)** | Speech-to-text (alternative) | ✅ Built-in, `pip install "agent-cli[whisper]"` |
|
|
393
393
|
| **[Wyoming Piper](https://github.com/rhasspy/wyoming-piper)** | Text-to-speech | ✅ Yes, via `uvx` |
|
|
394
394
|
| **[Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI)** | Premium TTS (optional) | ⚙️ Can be added later |
|
|
395
395
|
| **[Wyoming openWakeWord](https://github.com/rhasspy/wyoming-openwakeword)** | Wake word detection | ✅ Yes, for `assistant` |
|
|
@@ -12,15 +12,15 @@ agent_cli/opts.py,sha256=qMK_mLxzGAbX7C2IYuCFvOkLgaxCCMO66I9ps8AdrYo,12114
|
|
|
12
12
|
agent_cli/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
agent_cli/agents/__init__.py,sha256=c1rnncDW5pBvP6BiLzFVpLWDNZzFRaUA7-a97avFVAs,321
|
|
14
14
|
agent_cli/agents/_voice_agent_common.py,sha256=PUAztW84Xf9U7d0C_K5cL7I8OANIE1H6M8dFD_cRqps,4360
|
|
15
|
-
agent_cli/agents/assistant.py,sha256=
|
|
16
|
-
agent_cli/agents/autocorrect.py,sha256=
|
|
17
|
-
agent_cli/agents/chat.py,sha256=
|
|
18
|
-
agent_cli/agents/rag_proxy.py,sha256=
|
|
19
|
-
agent_cli/agents/speak.py,sha256=
|
|
20
|
-
agent_cli/agents/transcribe.py,sha256=
|
|
21
|
-
agent_cli/agents/transcribe_daemon.py,sha256=
|
|
22
|
-
agent_cli/agents/voice_edit.py,sha256=
|
|
23
|
-
agent_cli/agents/memory/__init__.py,sha256=
|
|
15
|
+
agent_cli/agents/assistant.py,sha256=BMF693kUZxM7u7mcI0nVua0EpqFcGlby2cMMZeLT7hY,13965
|
|
16
|
+
agent_cli/agents/autocorrect.py,sha256=R1ZftWDBXbdWCpJUz5JZnUx0u-9ceAJsOxx-yZWW2Ew,8892
|
|
17
|
+
agent_cli/agents/chat.py,sha256=UVuCCb0vTOgKayDUeOfffRw_UeNykXpcQYa3WuWG64s,17176
|
|
18
|
+
agent_cli/agents/rag_proxy.py,sha256=GuoPiQy3A6mgpYud-Ym5XQLRjA5d4cbvGCnnqxF968A,4627
|
|
19
|
+
agent_cli/agents/speak.py,sha256=xTpY1hmAo4Z_5T1fZIJPTZz7tUbkQG12EYAMX_XsaRg,7027
|
|
20
|
+
agent_cli/agents/transcribe.py,sha256=S-nO7hVRsDDO2P-WAIDXvqhdQT9lNKfw3nHjgZmhGxk,24492
|
|
21
|
+
agent_cli/agents/transcribe_daemon.py,sha256=_xlOvNj7FACN9Yq6w-oXmnh5Iciv7ZiZcd-EamhwlWc,17580
|
|
22
|
+
agent_cli/agents/voice_edit.py,sha256=Tcb5vRLIMs26vGBpTOhcg0lbCVUGfxwz1CS0o299_LM,11056
|
|
23
|
+
agent_cli/agents/memory/__init__.py,sha256=gW-0NGksjxTKkSjk4PzlXZIiAoF0sS2mFrRdeGVITf8,780
|
|
24
24
|
agent_cli/agents/memory/add.py,sha256=VkNd8es2llqTl4TdSAvXXz2G3BmIbWWvhXPwU5JrNnk,6135
|
|
25
25
|
agent_cli/agents/memory/proxy.py,sha256=SC4aTv8EYM2e6UOnoU-9DFMUwiIK7PapLQc0IIcETbE,6550
|
|
26
26
|
agent_cli/core/__init__.py,sha256=c_knH7u9QgjsfMIil9NP4bVizHawLUMYoQWU4H9vMlQ,46
|
|
@@ -37,10 +37,10 @@ agent_cli/core/utils.py,sha256=MHttXeGiM9qGUNxK0s6vAHthh033TDjaruqocdtMMFY,16802
|
|
|
37
37
|
agent_cli/core/vad.py,sha256=67-EBjY-pTOf61VhrjVdDXgaNIBwWFFFccYth_1rQmg,6569
|
|
38
38
|
agent_cli/core/watch.py,sha256=MKgGxxMe0yLlu78-XXqO4ferCpu_ljNr4MAzOMDsuuo,1951
|
|
39
39
|
agent_cli/dev/__init__.py,sha256=doTYiUFEBpnOxsQA69HQP9AA4QHBN0DjuHSTGRq5Xbg,551
|
|
40
|
-
agent_cli/dev/cli.py,sha256=
|
|
40
|
+
agent_cli/dev/cli.py,sha256=KH5RYAwJLSArnXDrccDmFN7OV1C9kwLHwoHWIiJfCHQ,52120
|
|
41
41
|
agent_cli/dev/project.py,sha256=wJMGKTK1rmw8letrV6l6wcLU1fkQQDjCSEixAnsvyaY,18971
|
|
42
42
|
agent_cli/dev/registry.py,sha256=c6t3ClyRFPvU4GGXJT79-D-qV4FqY7W_7P-tLT7LKZs,1887
|
|
43
|
-
agent_cli/dev/worktree.py,sha256=
|
|
43
|
+
agent_cli/dev/worktree.py,sha256=Yw8jlhkf8BeKFc6pPEazGXnUIvryvYwbUmYxTluXILs,26916
|
|
44
44
|
agent_cli/dev/coding_agents/__init__.py,sha256=f2SjWB7HwbiW0IDcJmGFFYal1-oNwBNEckdcni5Rf7s,360
|
|
45
45
|
agent_cli/dev/coding_agents/aider.py,sha256=7iAZj7DG1E3nTw7cJxT05r5ZSzE8EWems1YRi1VpfLg,605
|
|
46
46
|
agent_cli/dev/coding_agents/base.py,sha256=gMpSHItqjHITomVwHHPaxbZk6TDf0VbvZfVYtt5ptEo,5822
|
|
@@ -64,7 +64,7 @@ agent_cli/dev/editors/sublime.py,sha256=owEfRSMuArSeFKqk-LE2JOXaZy5QlQfHQ-l0I4k2
|
|
|
64
64
|
agent_cli/dev/editors/vim.py,sha256=Fo-IQMPVbIiwBdOfmkFxR37f96QW6xc5LV3Pvr3u-b0,1378
|
|
65
65
|
agent_cli/dev/editors/vscode.py,sha256=GOrl4FwVdDyuSn7t4lglgnVt_T6NtpjLVh1OWBxDMwE,318
|
|
66
66
|
agent_cli/dev/editors/zed.py,sha256=lRMhdN_SKmHBA1ulx8x-p7Th_0EGSIv6ppAE84xobU4,515
|
|
67
|
-
agent_cli/dev/skill/SKILL.md,sha256=
|
|
67
|
+
agent_cli/dev/skill/SKILL.md,sha256=r_QoJR5VLrsI7h-oopfJ8o89oWM43EHgy8IYYa52q9c,4421
|
|
68
68
|
agent_cli/dev/skill/examples.md,sha256=ZzCyfudBk4lMR-sz8ER9l5vi6hI3HTeUlvQorRFVol4,16405
|
|
69
69
|
agent_cli/dev/terminals/__init__.py,sha256=yUTNtvs1Do2hvhx56XxyfI-5HA5mjiv0IbJuuaL9TeE,371
|
|
70
70
|
agent_cli/dev/terminals/apple_terminal.py,sha256=s7GdxXPgbpSLKK1DUwjNpshQpjR5Nt1QbL_cKPefIRI,2595
|
|
@@ -88,13 +88,13 @@ agent_cli/memory/_indexer.py,sha256=iWIRG61g2O4_cUjJYDXe03hkpRO5kVAqOwDeCb7Efu0,
|
|
|
88
88
|
agent_cli/memory/_ingest.py,sha256=_WeFLTxrlWKFpyB1KR0tUWLgEq-eevB8ytAgpq6BOlY,13649
|
|
89
89
|
agent_cli/memory/_persistence.py,sha256=7TsphuYsJfJbp-294IvWmtW98G_Sag9GTm8AUGU9dtQ,5401
|
|
90
90
|
agent_cli/memory/_prompt.py,sha256=ncvYM5ewLrYRP8KizdFHtPQl2cWYg0SW0VQxA8rz_9E,4667
|
|
91
|
-
agent_cli/memory/_retrieval.py,sha256=
|
|
91
|
+
agent_cli/memory/_retrieval.py,sha256=K_2TUcgzfntBARPyf0K6VR3NIgHHJrqGFMP_53Nae_w,9778
|
|
92
92
|
agent_cli/memory/_store.py,sha256=m9mD1GxjdTXpnyL-X-MIU4cj28unqxJ_azV3kwM8blM,5086
|
|
93
93
|
agent_cli/memory/_streaming.py,sha256=-WlOPtH61ogCSJKQRpfYHp2gBgIIN6hIJqb5padjmpw,1379
|
|
94
94
|
agent_cli/memory/_tasks.py,sha256=XgEkN_3NCVQDWafZ_rqazpAE68yQ87x-amnQKMkfPXg,1469
|
|
95
|
-
agent_cli/memory/api.py,sha256=
|
|
96
|
-
agent_cli/memory/client.py,sha256=
|
|
97
|
-
agent_cli/memory/engine.py,sha256=
|
|
95
|
+
agent_cli/memory/api.py,sha256=riaGTOIw7g3KuDNcPtDy9wO44-D1wDtVadRj3RTT10k,3595
|
|
96
|
+
agent_cli/memory/client.py,sha256=XomHhP-hPSoosORkBKSY1dW3gjheFEVqAac0b-tAULo,9994
|
|
97
|
+
agent_cli/memory/engine.py,sha256=rABVC86b5wU1QxY3BM43RhvfDOxoRT7Ddm98BN_qCL4,11656
|
|
98
98
|
agent_cli/memory/entities.py,sha256=_8wyJz--tNa66CEtSpl2TUN_zeHQvMzm42htnDaOr6g,1219
|
|
99
99
|
agent_cli/memory/models.py,sha256=KK0wToEf-tXssYVL0hYaJlcADlJ3G2lcSXwo1UmA0VU,2352
|
|
100
100
|
agent_cli/rag/__init__.py,sha256=suQDSGBUlt4_KNxz2CyVqrJw58e64T3ltfmmg2F8iQY,543
|
|
@@ -140,7 +140,7 @@ agent_cli/scripts/nvidia-asr-server/server.py,sha256=kPNQIVF3exblvqMtIVk38Y6sZy2
|
|
|
140
140
|
agent_cli/scripts/nvidia-asr-server/shell.nix,sha256=IT20j5YNj_wc7MdXi7ndogGodDNSGwyq8G0bNoZEpmg,1003
|
|
141
141
|
agent_cli/scripts/nvidia-asr-server/uv.lock,sha256=5WWaqWOuV_moMPC-LIZK-A-Y5oaHr1tUn_vbR-IupzY,728608
|
|
142
142
|
agent_cli/server/__init__.py,sha256=NZuJHlLHck9KWrepNZHrJONptYCQI9P-uTqknSFI5Ds,71
|
|
143
|
-
agent_cli/server/cli.py,sha256=
|
|
143
|
+
agent_cli/server/cli.py,sha256=Oi-Ca54YusJijOp7TSl4a_9pOeIOKrgZE3Ex833ehis,22846
|
|
144
144
|
agent_cli/server/common.py,sha256=fD2AZdM716TXcz1T4ZDPpPaKynVOEjbVC1LDDloDmDo,6463
|
|
145
145
|
agent_cli/server/model_manager.py,sha256=93l_eeZeqnPALyDIK24or61tvded9TbM8tnde0okVjY,9225
|
|
146
146
|
agent_cli/server/model_registry.py,sha256=KrRV1XxbFYuXu5rJlHFh6PTl_2BKiWnWsaNrf-0c6wQ,6988
|
|
@@ -172,8 +172,8 @@ agent_cli/services/asr.py,sha256=V6SV-USnMhK-0aE-pneiktU4HpmLqenmMb-jZ-_74zU,169
|
|
|
172
172
|
agent_cli/services/llm.py,sha256=Kwdo6pbMYI9oykF-RBe1iaL3KsYrNWTLdRSioewmsGQ,7199
|
|
173
173
|
agent_cli/services/tts.py,sha256=exKo-55_670mx8dQOzVSZkv6aWYLv04SVmBcjOlD458,14772
|
|
174
174
|
agent_cli/services/wake_word.py,sha256=j6Z8rsGq_vAdRevy9fkXIgLZd9UWfrIsefmTreNmM0c,4575
|
|
175
|
-
agent_cli-0.
|
|
176
|
-
agent_cli-0.
|
|
177
|
-
agent_cli-0.
|
|
178
|
-
agent_cli-0.
|
|
179
|
-
agent_cli-0.
|
|
175
|
+
agent_cli-0.63.0.dist-info/METADATA,sha256=h6K2iJsMSndMhIyJyLa2pPtRmTmZeZvrpbTqsQuqYsA,151909
|
|
176
|
+
agent_cli-0.63.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
177
|
+
agent_cli-0.63.0.dist-info/entry_points.txt,sha256=FUv-fB2atLsPUk_RT4zqnZl1coz4_XHFwRALOKOF38s,97
|
|
178
|
+
agent_cli-0.63.0.dist-info/licenses/LICENSE,sha256=majJU6S9kC8R8bW39NVBHyv32Dq50FL6TDxECG2WVts,1068
|
|
179
|
+
agent_cli-0.63.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|