Table of Contents

Namespace ItTiger.TigerCli.Commands

Classes

TigerCliApp
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.
TigerCliAppBuilder
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.
TigerCliAppContributionBuilder
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.
TigerCliApplicationLink
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.
TigerCliApplicationMetadata
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.
TigerCliArgumentAttribute
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.
TigerCliAsyncCommandHandler<TSettings>
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.
TigerCliAsyncCommandHandler<TSettings, TExitCode>
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.
TigerCliCommandAliasBuilder
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.
TigerCliCommandBuilder
Configures metadata, providers, and help-only environment-variable registrations for a single command registration.
TigerCliCommandGroupBuilder
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.
TigerCliEditLoad<TSettings>
Result of an edit-command loader. Produced by an app loader registered through AsEdit<TSettings>(Func<TSettings, Task<TigerCliEditLoad<TSettings>>>). Use Found(TSettings) to supply the existing object's values, or NotFound() when no matching object exists. On NotFound() the framework reports an invalid-arguments error and the command handler does not run.
TigerCliExactlyOneOfAttribute
Declares that exactly one of the listed option properties must be provided or resolved.
TigerCliFileOpenAttribute
Marks a string command option as an existing-file path that uses the inline file picker when TigerCli prompts for a missing value.
TigerCliFileSaveAttribute
Marks a string command option as an output-file path that uses the inline file picker when TigerCli prompts for a missing value.
TigerCliFolderSelectAttribute
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.
TigerCliGlobalOptionBuilder
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.
TigerCliGlobalOptionContext
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.
TigerCliMultiSelectAttribute
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.
TigerCliOptionAttribute
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.
TigerCliPromptConfiguration<TSettings>
App-level compatibility surface for configuring property-scoped prompt providers for a settings type.
TigerCliPromptContext
Context passed to prompt and provider callbacks while TigerCli is resolving provider-backed values.
TigerCliPromptPropertyBuilder<TSettings, TValue>
Registers a provider-backed prompt for one property selected from TigerCliPromptConfiguration<TSettings>.
TigerCliProviderConfiguration
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.
TigerCliProviderContext
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).
TigerCliProviderOptions
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.
TigerCliRawArgumentsAttribute
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.
TigerCliSettings
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.
TigerCliValidationResult
Result of Validate(): either success or a failure carrying a user-facing error message. Created only through Success() and Error(string).

Interfaces

ITigerCliAppContribution
Contributes reusable, app-wide TigerCli configuration to a host application. Host apps opt in by passing an implementation to AddContribution(ITigerCliAppContribution); TigerCli calls Configure(TigerCliAppContributionBuilder) while the app is built.

Enums

TigerCliExitCategory
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.
TigerCliExitKind
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 (TigerCliExitOutcomeTigerCliExitCategoryTigerCliExitKind).
TigerCliExitOutcome
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.
TigerCliFileOverwrite
Controls whether a TigerCliFileSaveAttribute option may resolve to an existing file.
TigerCliPromptable
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.
TigerCliValueMatchPreset
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.