NAME

Langertha::Raider::CLI::Output - Internal terminal renderer of the raider CLI

VERSION

version 0.503

SYNOPSIS

# Internal to Langertha-Raider -- no API promise.
my $out = Langertha::Raider::CLI::Output->new;

$out->say_meta('history cleared.');
$out->say_error('something failed');
$out->say_agent($result);
$out->config_report($app->explain_config);

DESCRIPTION

Internal module. Its interface may change without notice.

Everything the raider CLI prints for a human goes through here: the blue/yellow palette, the agent/meta/error lines, the raider config explain report and the raider config migrate report. The machine output (--json and friends) is Langertha::Raider::CLI::Machine.

out

Filehandle everything is printed to. Defaults to STDOUT.

color

Whether to emit ANSI colors. Defaults to true when "out" is a terminal; ANSI_COLORS_DISABLED switches them off as well.

c

my $text = $out->c(meta => 'some', ' text');

The text in the palette color meta, title, agent, ... -- plain when "color" is off.

emit

Prints its arguments to "out".

say_agent

One line of agent output, inline `code` highlighted.

say_meta

One line of meta information.

say_error

An error: line.

error_text

my $text = $out->error_text($@);

An exception as one line for the user: without the trailing newline and the Perl source location croak appends, also the form Moose adds for a constructor or accessor.

render_inline_code

Wraps `...` spans in a darker background when colors are on. Triple backticks stay untouched so fenced code blocks keep their own flow.

config_report

Prints a report of "explain_config" in Langertha::Raider::Application: the config file in use and any config file ignored next to it (a legacy .raider.yml beside .raider/config.yml); the home file ~/.raider/config.yml when it is loaded; one line per setting with its value, source, what it was merged with, what it overrides and whether it applies to the engine or to raider; the instructions source (-M, .raider/instructions.md, .raider.md, default) with (bare) under --bare, and any instructions file ignored next to the one in use (a legacy .raider.md beside .raider/instructions.md); each pack with its state, the kind of place it was found in (project, home, shipped, env) and why it is on or off; the pack directories that were skipped, and why; the perl tools grant; and each mounted tool with its source and effect classes (unknown for a tool the built-in table does not know); and, when ~/.raider/config.yml has a project_tools, each of its selectors (matched or not, and why) and each tool name with the selectors granting it, the packs requesting it and whether raider knows it -- information only.

migrate_report

$out->migrate_report($plan, dry_run => 1);

Prints what raider config migrate does, from a "plan" in Langertha::Raider::Config::Migrate that was not refused: per legacy file its new file, its backup and whether the content changes -- copied unchanged, without the api_key lines (their line numbers), or rewritten (then the new content follows, it holds no api_key) -- and where an api_key was left out; whether .raider/.gitignore is created; with dry_run that nothing was written. Never prints the value of an api_key.

migrate_done

$out->migrate_done(@results);

One line per step of "apply" in Langertha::Raider::Config::Migrate that was done: migrated FROM -> TO (backup BACKUP). Failed and skipped steps are the caller's to report.

pack_reason

my $text = $out->pack_reason($entry, rule => 1);

Why a pack of "activation_report" in Langertha::Raider::Packs::Collection is on or off: SOURCE: REASON (detected: must file=cpanfile (cpanfile), flag: --no-pack), or the detection outcome of an inactive pack (not matched: ...). With rule the origin of a detection rule is appended ([rule: pack default]).

SEE ALSO

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/langertha-raider/issues.

IRC

Join #langertha on irc.perl.org or message Getty directly.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.