Skip to content

Interface: CliContribution

Makaio Framework


Makaio Framework / kernel/cli / CliContribution

Defined in: ../../../packages/kernel/src/cli/types.ts:168

A plugin’s CLI contribution, declared in its MakaioExtension manifest.

Extends CliManifest (pure-data) with executable code: an optional interactive TUI handler and typed subcommand definitions. The CLI router uses CliManifest for discovery and help generation; this type is used when the package is loaded and ready to handle commands.

The CLI router dispatches as follows:

  • makaio account-managerinteractive (if defined)
  • makaio account-manager --help → auto-generated from subcommands + schema metadata
  • makaio account-manager list → matched subcommand handler

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/kernel/src/cli/types.ts:176

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

When defined, bare makaio <name> enters this handler instead of printing help. Typically renders an Ink TUI that reuses the same bus RPC calls as the non-interactive subcommands.

IMakaioBus

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 CliSubcommandEntry[]

Defined in: ../../../packages/kernel/src/cli/types.ts:178

Typed subcommand definitions with Zod schemas and strongly-typed handlers.

CliManifest.subcommands