kk
This commit is contained in:
@@ -2459,6 +2459,38 @@ def _run(result: Any, args: Sequence[str], config: Dict[str, Any], emit_results:
|
||||
if downloaded_files or files_downloaded_directly > 0:
|
||||
total_files = len(downloaded_files) + files_downloaded_directly
|
||||
log(f"✓ Successfully downloaded {total_files} file(s)", flush=True)
|
||||
|
||||
# Create a result table for the downloaded files
|
||||
# This ensures that subsequent @N commands select from these files
|
||||
# instead of trying to expand the previous command (e.g. search-file)
|
||||
if downloaded_files:
|
||||
from result_table import ResultTable
|
||||
table = ResultTable("Downloaded Files")
|
||||
for i, file_path in enumerate(downloaded_files):
|
||||
row = table.add_row()
|
||||
row.add_column("#", str(i + 1))
|
||||
row.add_column("File", file_path.name)
|
||||
row.add_column("Path", str(file_path))
|
||||
try:
|
||||
size_mb = file_path.stat().st_size / (1024*1024)
|
||||
row.add_column("Size", f"{size_mb:.1f} MB")
|
||||
except OSError:
|
||||
row.add_column("Size", "?")
|
||||
|
||||
# Set selection args to just the file path (or index if we want item selection)
|
||||
# For item selection fallback, we don't strictly need row args if source command is None
|
||||
# But setting them helps if we want to support command expansion later
|
||||
table.set_row_selection_args(i, [str(file_path)])
|
||||
|
||||
# Register the table but DO NOT set a source command
|
||||
# This forces CLI to use item-based selection (filtering the pipe)
|
||||
# instead of command expansion
|
||||
pipeline_context.set_last_result_table_overlay(table, downloaded_files)
|
||||
pipeline_context.set_current_stage_table(table)
|
||||
|
||||
# Also print the table so user sees what they got
|
||||
log(str(table), flush=True)
|
||||
|
||||
if db:
|
||||
db.update_worker_status(worker_id, 'completed')
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user