hte-cli 0.2.2__tar.gz → 0.2.3__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.
Files changed (27) hide show
  1. {hte_cli-0.2.2 → hte_cli-0.2.3}/PKG-INFO +1 -1
  2. {hte_cli-0.2.2 → hte_cli-0.2.3}/pyproject.toml +1 -1
  3. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/cli.py +24 -4
  4. {hte_cli-0.2.2 → hte_cli-0.2.3}/.gitignore +0 -0
  5. {hte_cli-0.2.2 → hte_cli-0.2.3}/README.md +0 -0
  6. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/__init__.py +0 -0
  7. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/__main__.py +0 -0
  8. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/api_client.py +0 -0
  9. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/config.py +0 -0
  10. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/errors.py +0 -0
  11. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/events.py +0 -0
  12. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/image_utils.py +0 -0
  13. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/runner.py +0 -0
  14. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/scorers.py +0 -0
  15. {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/version_check.py +0 -0
  16. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/__init__.py +0 -0
  17. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/__init__.py +0 -0
  18. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/automated_runner.py +0 -0
  19. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/conftest.py +0 -0
  20. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/e2e_test.py +0 -0
  21. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_benchmark_flows.py +0 -0
  22. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_eval_logs.py +0 -0
  23. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_infrastructure.py +0 -0
  24. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_runtime_imports.py +0 -0
  25. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_session_lifecycle.py +0 -0
  26. {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/verify_docker_deps.py +0 -0
  27. {hte_cli-0.2.2 → hte_cli-0.2.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hte-cli
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: Human Time-to-Completion Evaluation CLI
5
5
  Project-URL: Homepage, https://github.com/sean-peters-au/lyptus-mono
6
6
  Author: Lyptus Research
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hte-cli"
3
- version = "0.2.2"
3
+ version = "0.2.3"
4
4
  description = "Human Time-to-Completion Evaluation CLI"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -296,18 +296,38 @@ def session_join(ctx, session_id: str, force_setup: bool):
296
296
 
297
297
  # Pull images if we have any
298
298
  if images:
299
+ from hte_cli.image_utils import check_image_exists_locally
300
+
299
301
  console.print(f"[bold]Pulling {len(images)} Docker image(s)...[/bold]")
300
302
  pull_start = time.monotonic()
301
303
 
302
304
  for img in images:
303
305
  short_name = img.split("/")[-1][:40]
304
- with console.status(f"[yellow]↓[/yellow] {short_name}") as status:
305
- success = pull_image_with_progress(img)
306
+
307
+ # Check if already cached
308
+ if check_image_exists_locally(img):
309
+ console.print(f" [green]✓[/green] {short_name} [dim](cached)[/dim]")
310
+ cached_images.append(img)
311
+ continue
312
+
313
+ # Need to pull - show progress
314
+ with console.status(f"[yellow]↓[/yellow] {short_name} [dim]connecting...[/dim]") as status:
315
+ def show_progress(image: str, line: str):
316
+ # Parse docker pull output for layer progress
317
+ # Lines look like: "abc123: Downloading [====> ] 10MB/50MB"
318
+ if ": " in line:
319
+ parts = line.split(": ", 1)
320
+ if len(parts) == 2:
321
+ layer_status = parts[1][:50] # Truncate
322
+ status.update(f"[yellow]↓[/yellow] {short_name} [dim]{layer_status}[/dim]")
323
+
324
+ success = pull_image_with_progress(img, on_progress=show_progress)
325
+
306
326
  if success:
307
- console.print(f" [green]✓[/green] {short_name}")
327
+ console.print(f" [green]✓[/green] {short_name} [dim](downloaded)[/dim]")
308
328
  pulled_images.append(img)
309
329
  else:
310
- console.print(f" [red]✗[/red] {short_name} (failed)")
330
+ console.print(f" [red]✗[/red] {short_name} [dim](failed)[/dim]")
311
331
  failed_images.append(img)
312
332
 
313
333
  pull_duration = time.monotonic() - pull_start
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes