Existing Pumps in Practice
A pump is useful when its domain fields match the question. Read the selected software sheet and verify the exact route, rather than assuming an entire executable is covered.
The source inventory records the actual manifests and command identifiers for the five providers below. Only Git, ripgrep and PowerShell are activated by the walkthrough helper; Podman and pnpm are documented from their current provider code and sheets.
Git: repository state
git.status invokes porcelain v2 with branch metadata and NUL-delimited paths. Its data includes Branch, Upstream, Ahead, Behind, Head and grouped changed paths. Renames retain the original path. Upstream describes the tracking reference; it is not a fetched view of the server or a remote URL.
Ahead and behind use locally known references. These read-only pumps do not fetch. Narrow the path when a repository-wide capture is too large.
The inspected provider also supplies git.diff, git.changes and git.log. These are separate operations with different data and limits. The independent article provider supplies gitworktrees.list; it does not replace or extend the existing Git project's source.
Ripgrep: exact line counts with selected evidence
ripgrep.search uses rg --json. ripgrep.files uses NUL-delimited file discovery. The native scope should use paths and globs before applying preview limits.
$search = Invoke-OutputPumpStep -Name todos -ScriptBlock {
Pump-Me rg -NativeArguments @('TODO','src','--glob','*.cs') -WorkingDirectory $repo -MaxItems 2
}$search = Invoke-OutputPumpStep -Name todos -ScriptBlock {
Pump-Me rg -NativeArguments @('TODO','src','--glob','*.cs') -WorkingDirectory $repo -MaxItems 2
}Run step snippets inside a task body. Check Complete before using MatchLines or FileCount as exact values. Exit code 1 means no matches and is a functional success; exit code 2 is an error and may accompany partial results.
The default search respects ignore rules and normally skips hidden and binary files. A complete count is complete for that selected scope, not for every byte in the repository. Unrepresentable preview encoding is reported separately.
PowerShell: selected files, directories and logs
The PowerShell provider supplies powershell.directory, powershell.file and powershell.log. These are routes such as pwsh file implemented by provider functions; they are not a claim that the native pwsh executable has a file subcommand.
A file request selects a literal path and a numbered line window. Log extraction keeps selected recent lines, with a window description. Reading the tail does not establish a total for the complete log.
$file = Invoke-OutputPumpStep -Name source-window -ScriptBlock {
Pump-Me pwsh -NativeArguments @('file',$sourcePath) -MaxItems 10
}$file = Invoke-OutputPumpStep -Name source-window -ScriptBlock {
Pump-Me pwsh -NativeArguments @('file',$sourcePath) -MaxItems 10
}The selected provider sheet documents the window parameters available through Get-PumpFile; a generated specialized caller can pass StartLine, LineCount, Filter and Tail directly. Long retained lines are limited, and secrets are sanitized. Smaller MaxItems alone does not reduce the native work or source scope.
Podman: inventory and bounded log windows
The Podman provider offers podman.containers, podman.images and podman.log. Inventories use JSON and select identifiers, names, images, states and sizes, omitting environment variables and full container commands.
$containers = Invoke-OutputPumpStep -Name containers -ScriptBlock {
Pump-Me podman -NativeArguments @('ps','--filter','status=running') -MaxItems 5
}$containers = Invoke-OutputPumpStep -Name containers -ScriptBlock {
Pump-Me podman -NativeArguments @('ps','--filter','status=running') -MaxItems 5
}Verify that this route is active before running it. The provider does not start a Podman machine or pull images. An inaccessible service is a failure, distinguishable from an empty inventory.
Logs select a container, a time boundary and a bounded tail; they do not follow an infinite stream. Their global total is unknown, and equal-timestamp events do not guarantee exact cross-stream ordering. Use the provider's documented native options and fields rather than treating a log window as the whole history.
pnpm: installed dependencies
The current pnpm provider covers list, through pnpm.dependencies, using JSON and a bounded dependency depth. It selects project, package, version, dependency kind and depth without exposing store internals or authentication configuration.
$dependencies = Invoke-OutputPumpStep -Name dependencies -ScriptBlock {
Pump-Me pnpm -NativeArguments @('list','--depth','0') -WorkingDirectory $repo -MaxItems 10
}$dependencies = Invoke-OutputPumpStep -Name dependencies -ScriptBlock {
Pump-Me pnpm -NativeArguments @('list','--depth','0') -WorkingDirectory $repo -MaxItems 10
}It inspects installed dependencies and does not install or repair packages. On Windows it resolves a direct pnpm executable; it does not add a cmd wrapper or change execution policy.
Coverage of pnpm list does not imply coverage of pnpm run, exec or install. A build or test request needs a dedicated reusable provider with useful fields from that tool's machine report. A successful shell process and a shortened build log do not establish that tests passed.
Match coverage to the question
All these examples use the same envelope, but their completion scope differs. Git status is a repository/path snapshot; ripgrep counts selected search events; PowerShell reads a window; Podman logs describe a bounded tail; pnpm describes an installed dependency graph at a selected depth.
If a required field is absent, extend the appropriate reusable provider and its tests. Keep the task script focused on combining already meaningful data.
Previous: Objects, Streaming and Task Budgets · Next: RTK and Pump-Me