NAME

PAX::CLI::Progress - DD-style terminal task board for long-running PAX CLI work

SYNOPSIS

my $progress = PAX::CLI::Progress->new(
    title => 'pax build progress',
    tasks => [
        { id => 'compile_code_units', label => 'Compile Perl code units' },
        { id => 'compile_launcher',   label => 'Compile standalone launcher' },
    ],
    stream  => \*STDERR,
    dynamic => 1,
    color   => 1,
);

my $callback = $progress->callback;
$callback->({ task_id => 'compile_code_units', status => 'running' });
$callback->({ task_id => 'compile_code_units', status => 'done' });
$progress->finish;

DESCRIPTION

This module renders the same style of ordered task rundown used by Developer Dashboard lifecycle and skill-install commands. PAX uses it for long-running CLI work such as pax build so operators can see phase-level progress on stderr while structured results stay on stdout.

METHODS

new, callback, update, finish, render, render_text

Construct and drive one task board.

USE

Use this module when a public PAX CLI command takes long enough that operators need visible phase progress without losing machine-readable command output.

PURPOSE

This module keeps build-progress rendering separate from command parsing and build planning so long-running CLI work can report useful progress without tangling presentation logic into the compiler and packaging code.

WHAT USES IT

The public pax build flow uses this module for the DD-style progress rundown shown on stderr.