A configured TigerCli command application: the immutable result of
Build(). Owns the full run pipeline — culture resolution, theme
application, command resolution, contributed global options, parsing, prompting, validation,
and handler execution — and
maps the outcome to a process exit code through the configured exit-code policy.
Create one with CreateBuilder(); instances cannot be constructed directly.
Fluent builder for a TigerCliApp, obtained from
CreateBuilder(). Configures app metadata, commands and command groups,
interaction/prompt modes, app contributions, providers, environment-variable help metadata,
themes, cultures, and exit-code policy; call
Build() to produce the immutable app. All configuration methods return this
builder for chaining.
Builds the app-wide configuration supplied by registered ITigerCliAppContribution
instances. Contributions may add optional string global options and help-only metadata for
environment variables recognized by the contributing library.
A help-footer link configured through the TigerCliAppBuilder link methods
(AddLink, AddWebsite, AddRepository, AddDocumentation) or derived
from assembly metadata. Instances are created by the builder and exposed on
Links.
The app's resolved display metadata — display name, versions, copyright, and help-footer
links — assembled by Build() from explicit builder calls and
assembly-metadata defaults. Exposed on ApplicationMetadata.
Binds a settings property to a positional command-line argument. Arguments are matched by
position (Index) after the command path; they carry no alias on the command line.
Apply to a writable property on a TigerCliSettings-derived type.
Base class for async command handlers returning a raw integer exit code. Handlers are created
per run — via their parameterless constructor, or via the registration's factory when one was
supplied — so they must not assume shared state between runs.
Base class for async command handlers returning a typed exit code. The returned
TExitCode value is converted to its underlying integer and used as the
process exit code as-is for app-specific enums. TigerCliExitKind is the deliberate
exception: it is a portable semantic outcome and resolves through the app's exit-code policy,
letting reusable command libraries return a framework vocabulary without owning the consuming
app's final process codes. Registering an app-specific enum via
TigerCliAppBuilder.UseExitCodes<TExitCode> keeps app codes and framework codes in one
documented scheme.
Configures a command alias registered via
AddCommandAlias(string, string, Action<TigerCliCommandAliasBuilder>?).
An alias is an alternate entry point into the existing command tree: it owns no handler,
settings, or providers, and the target command owns parsing, prompting, validation, and
execution. The alias may own only its help/menu presentation.
Configures a command group: a command-path prefix that owns a set of child
commands. The group name is chosen by the consuming app, and a reusable command
library can populate the same group, including inherited provider and environment-variable help
metadata, via a static helper that takes a
TigerCliCommandGroupBuilder.
Marks a string / string? command option so that, when TigerCli needs to prompt
for its missing value in semi-interactive mode, it uses the inline folder picker
(InlineFolderSelect) instead of a plain text prompt. The selected folder path becomes
the option value.
Registers simple app-wide global options supplied by app contributions. Options use one
constrained shape: an optional string value with one canonical long option name.
Describes the active app run when a contributed global option is applied. A contribution can
use this context and its parsed value to update contribution-owned options or services before
command settings are bound.
Marks a collection command option as a multi-select. TigerCli then treats the option as
"select zero or more values" sourced from the option's value provider, in the same spirit as
TigerCliFolderSelectAttribute.
Binds a settings property to a named command-line option (e.g. -c / --connection).
Apply to a writable property on a TigerCliSettings-derived type; the constructor
template defines the option's aliases.
Registers app-level named dynamic value providers, configured through
TigerCliAppBuilder.ConfigureProviders(...). A provider is referenced by key from
Provider / Provider
(or matched implicitly by property name for options) and supplies the choices used by
provider-backed prompting and by validation of supplied values. String providers use each
string as both value and label; named providers return key/label pairs. On every overload the
optional dependsOn names values that should be resolved first, and the trailing
configure callback receives a TigerCliProviderOptions for provider-specific
framework text (loading message, empty message) — omit it for generic localized defaults.
Run-time context passed to dynamic value-provider callbacks. Exposes the effective cancellation
token, the active run culture, and read access to option values that were already bound or
prompted earlier in the run (declare ordering with the registration's dependsOn hint).
Optional per-registration provider options, supplied through the trailing configure callback on
the provider registration APIs (AddProvider, AddAsyncProvider, Add, AddAsync).
Carries provider-specific framework text such as the interactive slow-provider loading message and
the required-prompt empty message. Providers never render UI — this only describes text the
framework may show while handling provider choices.
Declares that a command accepts a raw trailing argument tail: every command-line token
after the first -- separator, bound literally and in order. Apply to a writable
string-collection property on a TigerCliSettings-derived type.
Base class for command settings. A settings class declares a command's CLI surface through
properties decorated with TigerCliOptionAttribute and
TigerCliArgumentAttribute; the framework creates the instance, binds command-line
input onto the decorated properties, prompts for missing promptable values (mode permitting),
runs framework validation and then Validate(), and finally passes the instance to
the command handler's ExecuteAsync.
The middle layer of the layered exit model: a small, stable grouping of
TigerCliExitKind values. Categories let an app map a whole family of framework
failures to one exit code without enumerating every kind.
A portable semantic command outcome or specific framework reason a run ended. Small apps may
use these declared values directly as process exit codes; reusable command libraries may return
them for the consuming app to map through its exit-code policy. This is the most granular layer
of the layered exit model (TigerCliExitOutcome →
TigerCliExitCategory → TigerCliExitKind).
The coarsest layer of the layered exit model: whether a run ultimately succeeded or failed.
Every TigerCliExitCategory rolls up into exactly one outcome, and every
TigerCliExitKind rolls up into exactly one category.
Per-option/per-argument prompting opinion, assigned through
Promptable / Promptable.
Values other than No also influence prompt ordering. When the attribute property
is not assigned, the effective command/app prompt mode decides, in normal prompt order.
Controls how a supplied command-line value is matched against a provider-backed
option's / argument's choices during non-interactive validation and multi-select
resolution. In every case the bound value remains the provider's canonical
key/value — matching only decides whether a supplied value corresponds to a
choice; it never replaces the bound value with the raw user input.