ToolStore Agent
feat: 4 new toolsets — docx-toolkit, pptx-toolkit, text-gen, batch-ops (15 functions total)
088cdb2
|
Raw
History Blame Contribute Delete
3.56 kB

batch‑ops

Bulk file operations — rename, find‑and‑replace, aggregate stats, and batch copy. Pure‑stdlib, safe‑by‑default (dry‑run preview before changes).


When to Use This Toolset

  • Renaming multiple files with regex patterns
  • Finding and replacing text across many files
  • Getting aggregate file statistics for a directory
  • Copying files matching a glob pattern
  • Any repetitive file operation best automated

Process

Scope → Preview → Execute → Verify
  1. Scope: Define the directory and pattern. Use dry‑run first!
  2. Preview: Run with dry_run=True (default) to see what will change
  3. Execute: Run with dry_run=False to apply changes
  4. Verify: Check the results — run batch_stats to confirm

⚠️ Always dry‑run first. All destructive operations default to dry_run=True.


Function Reference

batch_rename

Rename files matching a regex pattern.

When to use: Normalizing filenames, adding prefixes/suffixes, date formatting.

Args: directory (str), pattern (str), replacement (str), dry_run (bool, default true), recursive (bool, default false)

Returns: {changes: [{old_name, new_name}], count, dry_run, directory}

batch_find_replace

Find‑and‑replace across text files.

When to use: Updating URLs, changing variable names, fixing typos across a codebase.

Args: directory (str), pattern (str, glob), find_text (str), replace_text (str), dry_run (bool, default true), recursive (bool)

Returns: {changes: [{file, matches}], total_files, total_matches, dry_run, directory}

batch_stats

Aggregate statistics for files in a directory.

When to use: Understanding project structure, finding large files, auditing.

Args: directory (str), pattern (str, default "*"), recursive (bool)

Returns: {file_count, total_size_bytes, extensions, largest_file, smallest_file, directory}

batch_copy

Copy files matching a pattern to a destination.

When to use: Collecting files from subdirectories, backing up specific file types.

Args: source_dir (str), dest_dir (str), pattern (str, default "*"), recursive (bool), overwrite (bool, default false)

Returns: {copied: [...], count, skipped: [...], dest_dir}


Common Patterns

Audit then Clean

batch_stats → understand file composition
batch_rename(dry_run=True) → preview changes
batch_rename(dry_run=False) → apply
batch_stats → verify result

Find and Fix

batch_find_replace(dry_run=True) → see what matches
batch_find_replace(dry_run=False) → apply changes
git diff → verify changes are expected

Guidelines

Do

  • Always dry‑run first — default is dry_run=True
  • Use batch_stats before and after to verify changes
  • Test regex patterns on a single file before batch‑renaming
  • Use text_diff (from text‑transform) to verify find‑replace results

Don't

  • Don't batch‑rename without confirming the regex matches the right files
  • Don't find‑replace in binary files — use glob patterns to restrict to text files
  • Don't copy with overwrite=True without checking destination first
  • Don't run recursive operations on root directories — scope tightly

Safety Features

  • All destructive ops default to dry_run=True
  • batch_rename skips files where target name already exists
  • batch_copy skips existing files unless overwrite=True
  • All functions validate directory existence before operating