import type { EffortLevel } from "@mono-agent/config"; import { type WizardModelCandidate } from "./model-discovery.js"; /** * One `@clack/prompts` `select`/`multiselect` option. `value` is the machine key * the wizard maps back onto {@link WizardAnswers}; `label`/`hint` are display-only. */ export interface WizardSelectOption { readonly value: string; readonly label: string; readonly hint?: string; } /** Keep large catalogs navigable without hiding any searchable row. */ export declare const MODEL_AUTOCOMPLETE_MAX_ITEMS = 10; export declare const CUSTOM_PI_MODEL_OPTION = "__pi_manual__"; /** * Thrown when a clack prompt returns its cancel symbol (Ctrl-C / Esc). The wizard * catches it once at the top and turns it into a clean `p.cancel` — nothing is * ever written, because {@link runInitWizard} only collects answers. */ export declare class WizardCancelled extends Error { constructor(); } /** Escape requests one logical step back; Ctrl-C requests an exit confirmation. */ export declare class WizardBack extends Error { constructor(); } export declare class WizardExitRequested extends Error { constructor(); } export interface WizardKey { readonly name?: string; readonly ctrl?: boolean; } /** Pure key classifier used by the scoped production observer and tests. */ export declare function wizardCancelIntentForKey(key: WizardKey): "back" | "exit" | undefined; /** Pure back transition: `undefined` means the user is already at the first step. */ export declare function previousWizardStep(step: number): number | undefined; /** * Unwrap a clack prompt result: return the value, or throw {@link WizardCancelled} * when the user cancelled (clack signals cancel with a sentinel symbol). Every * prompt result must pass through here so a single top-level catch handles cancel. */ export declare function guard(value: T | symbol): T; /** Folder/public-name validation mirrors the config loader's 80-code-point contract. */ export declare function validateWizardAgentName(value: string | undefined): string | undefined; export declare const MAX_AGENT_PURPOSE_LENGTH = 240; /** One short, printable role statement for the generated Identity. */ export declare function validateWizardAgentPurpose(value: string | undefined): string | undefined; /** * Channel options for the "how will you talk to this agent?" multiselect: every * channel module in catalog order (webhook first), value = module id. */ export declare function channelSelectOptions(options?: { readonly readyOnly?: boolean; }): WizardSelectOption[]; /** * Memory options: a leading "None (stateless)" whose empty-string value maps to * `memory: undefined`, then every memory module in catalog order. */ export declare function memorySelectOptions(options?: { readonly includeOptionalPlugins?: boolean; }): WizardSelectOption[]; /** * A discovered/ranked model menu plus explicit escape hatches for Pi provider * refs and generic full model refs. */ export declare function modelSelectOptions(candidates?: readonly WizardModelCandidate[], authoredModel?: string): WizardSelectOption[]; /** * The Pi-specific "Other Pi model" submenu. Discovered Pi candidates are offered * first when available; the final option is the explicit manual provider/model * escape hatch. */ export declare function piModelSelectOptions(candidates?: readonly WizardModelCandidate[], excludedModels?: readonly string[]): WizardSelectOption[]; export declare function assertConcreteWizardModelRef(value: string): void; /** * Fallback model choices use the same labels/hints as the primary model picker, * but hide the chosen primary and fallbacks already added to the chain. The Pi * and generic custom-reference escape hatches remain available; `Done` finishes * the ordered fallback chain. */ export declare function fallbackModelSelectOptions(candidates: readonly WizardModelCandidate[] | undefined, primaryModel: string, selectedFallbacks?: readonly string[]): WizardSelectOption[]; /** Reasoning-effort choices. Empty value means no `runtime.effort` is written. */ export declare function effortSelectOptions(supportedEfforts?: readonly EffortLevel[], defaultEffort?: EffortLevel): WizardSelectOption[]; export declare const ROUTE_SAFETY_OPTIONS: readonly WizardSelectOption[]; /** Exact per-route contract shown before accepting a mixed/provider-native chain. */ export declare function routeSafetyContract(model: string, managedSrt: boolean): string; export declare function formatRouteSafetyMatrix(primary: { readonly model: string; readonly effort?: string; }, fallbacks: readonly { readonly model: string; readonly effort?: string; }[], managedSrt: boolean): string; export declare function routeFamilies(models: readonly string[]): readonly string[]; export declare function isMixedRouteChain(models: readonly string[]): boolean; export declare function creationReviewOptions(options: { readonly setupRequired: boolean; }): WizardSelectOption[]; /** * The "choose specific" tools multiselect: runtime built-ins first, then app-owned * policy-gated tools, adapter send tools contributed by the selected channels * (deduped, in channel order), and finally the channel-agnostic `AskUser`. */ export declare function toolMultiselectOptions(selectedChannelIds: readonly string[]): WizardSelectOption[]; /** * The "start from…" menu: every preset (labelled with its risk + description), * ending with a "Custom" escape hatch that walks the full step-by-step flow. */ export declare function presetSelectOptions(): WizardSelectOption[]; //# sourceMappingURL=prompts.d.ts.map