/** * host-subcommand-groups — the action-less Commander subcommand GROUPS * (`runs`, `sessions`, `tools`, …) and their leaf {@link CommandSpec}s, PLUS the * DOMAIN-BOUND per-tool `plugin` group leaves (launch Phase 6 + the * command-surface-taxonomy "packs under the tool" refinement). * * Split out of `host-command-specs.ts` for ONE reason: to break a module cycle. * The completion-script generator (`completion.ts`) sources its `sessions` / * `tools` sub-subcommand NAME lists from the live leaf specs (single source — * Phase 6 Task 6.2), so it must import the group inventory. The * `host-command-specs.ts` module, in turn, imports `printCompletionScript` from * `completion.ts` for the `completion` command's handler. Housing the GROUP * leaves + inventory here (a module that imports NEITHER `completion.ts` nor * `host-command-specs.ts`) lets both depend on this leaf module without a cycle. * * Leaf specs are split across `host-subcommand-sessions.ts` and * `host-subcommand-plugins.ts` to stay under the file-length-limit; this module * remains the cycle-free assembly + inventory surface. */ import { type HostSpec } from './host-subcommand-shared.js'; import type { CliCommandsContext } from './shared.js'; export type { HostSpec } from './host-subcommand-shared.js'; export { effectiveCwd } from './host-subcommand-shared.js'; export { buildToolPluginLeaves, buildToolPluginGroups, mountToolPluginGroups, type ToolPluginGroup, } from './host-subcommand-plugins.js'; /** One subcommand-group parent: a raw action-less `program.command(name)` * shell + the leaf specs that mount onto it. */ export interface HostSubcommandGroup { readonly name: string; readonly description: string; readonly leaves: readonly HostSpec[]; } /** * The action-less Commander subcommand GROUPS that legitimately cannot be a * single {@link CommandSpec} — they have no action body, only sub-subcommands. * This is the FINITE, NAMED set the Phase 7 `command-surface-parity` guardrail * allow-lists as documented host exceptions. Every other host command IS a spec. */ export declare const HOST_SUBCOMMAND_GROUPS: readonly string[]; /** Build the subcommand-group parents with their leaf specs. */ export declare function buildHostSubcommandGroups(ctx: CliCommandsContext): readonly HostSubcommandGroup[]; export interface HostCommandInventory { readonly groupSubcommands: Readonly>; } /** Build the host subcommand-group name inventory (single source for completion). */ export declare function buildHostCommandInventory(): HostCommandInventory; //# sourceMappingURL=host-subcommand-groups.d.ts.map