Skip to content

Interface: ExtensionCliContribution

Makaio Framework


Makaio Framework / contracts/extension / ExtensionCliContribution

Defined in: ../../../packages/contracts/src/extension/extension-cli.ts:68

An extension’s CLI contribution declared in its MakaioExtension manifest.

Full implementation types live in @makaio/kernel/cli. This contract keeps the extension layer on the executable shape only.

readonly description: string

Defined in: ../../../packages/contracts/src/extension/manifest.ts:240

One-line description shown in help text.

CliManifest.description


readonly optional hasInteractive?: boolean

Defined in: ../../../packages/contracts/src/extension/manifest.ts:255

Whether this extension provides an interactive TUI handler.

When true, invoking the bare command (without a subcommand) launches the interactive handler. When false or omitted, bare invocation shows help. This is a serializable declaration in descriptor.json; the executable handler itself lives in ExtensionCliContribution.interactive.

Named hasInteractive (not interactive) to avoid a type conflict with the ExtensionCliContribution property of the same short name, which carries the function implementation rather than a boolean flag.

CliManifest.hasInteractive


readonly optional interactive?: (ctx) => Promise<void>

Defined in: ../../../packages/contracts/src/extension/extension-cli.ts:72

Interactive TUI launched when the command is invoked without a subcommand.

ExtensionCliInteractiveContext

Promise<void>


readonly name: string

Defined in: ../../../packages/contracts/src/extension/manifest.ts:238

Top-level command name (e.g. 'account-manager').

CliManifest.name


readonly subcommands: readonly ExtensionCliSubcommandEntry[]

Defined in: ../../../packages/contracts/src/extension/extension-cli.ts:74

Declared subcommands exposed by this contribution.

CliManifest.subcommands