padrone 1.8.2 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -1
- package/dist/{args-DrCXxXeP.mjs → args-WmyGc59s.mjs} +45 -33
- package/dist/{args-DrCXxXeP.mjs.map → args-WmyGc59s.mjs.map} +1 -1
- package/dist/codegen/index.mjs +1 -1
- package/dist/{commands-DLR0rFgq.mjs → commands-ohEApqIw.mjs} +2 -2
- package/dist/commands-ohEApqIw.mjs.map +1 -0
- package/dist/{completion-UnBKfGuk.mjs → completion-D8qkAinX.mjs} +2 -2
- package/dist/{completion-UnBKfGuk.mjs.map → completion-D8qkAinX.mjs.map} +1 -1
- package/dist/docs/index.mjs +2 -2
- package/dist/{help-B-ZMYyn-.mjs → help-CeI45CJx.mjs} +3 -3
- package/dist/{help-B-ZMYyn-.mjs.map → help-CeI45CJx.mjs.map} +1 -1
- package/dist/{index-D-Dpz7l_.d.mts → index-C3Ed1LYN.d.mts} +11 -6
- package/dist/index-C3Ed1LYN.d.mts.map +1 -0
- package/dist/index.d.mts +11 -10
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +53 -13
- package/dist/index.mjs.map +1 -1
- package/dist/{mcp-D6PdtjIs.mjs → mcp-wCoVFTXz.mjs} +4 -4
- package/dist/{mcp-D6PdtjIs.mjs.map → mcp-wCoVFTXz.mjs.map} +1 -1
- package/dist/{serve-PaCLsNoD.mjs → serve-ICZFl3xr.mjs} +4 -4
- package/dist/{serve-PaCLsNoD.mjs.map → serve-ICZFl3xr.mjs.map} +1 -1
- package/dist/test.d.mts +1 -1
- package/dist/zod.d.mts +1 -1
- package/package.json +1 -1
- package/src/core/args.ts +63 -37
- package/src/core/runtime.ts +11 -2
- package/src/extension/progress-renderer.ts +32 -8
- package/src/extension/progress.ts +19 -9
- package/src/index.ts +1 -1
- package/src/types/builder.ts +2 -2
- package/dist/commands-DLR0rFgq.mjs.map +0 -1
- package/dist/index-D-Dpz7l_.d.mts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-B-ZMYyn-.mjs","names":[],"sources":["../src/output/colorizer.ts","../src/output/styling.ts","../src/util/utils.ts","../src/output/formatter.ts","../src/output/help.ts"],"sourcesContent":["// ANSI color/style codes\nconst ansiCodes: Record<AnsiStyle, string> = {\n reset: '\\x1b[0m',\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n italic: '\\x1b[3m',\n underline: '\\x1b[4m',\n strikethrough: '\\x1b[9m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n gray: '\\x1b[90m',\n};\n\n/**\n * Available ANSI styles that can be combined for each color role.\n */\nexport type AnsiStyle =\n | 'reset'\n | 'bold'\n | 'dim'\n | 'italic'\n | 'underline'\n | 'strikethrough'\n | 'red'\n | 'green'\n | 'yellow'\n | 'blue'\n | 'magenta'\n | 'cyan'\n | 'white'\n | 'gray';\n\n/**\n * Maps each semantic color role to an array of ANSI styles.\n * Partial configs are merged with the default theme.\n */\nexport type ColorConfig = {\n command?: AnsiStyle[];\n arg?: AnsiStyle[];\n type?: AnsiStyle[];\n description?: AnsiStyle[];\n label?: AnsiStyle[];\n meta?: AnsiStyle[];\n example?: AnsiStyle[];\n exampleValue?: AnsiStyle[];\n deprecated?: AnsiStyle[];\n};\n\nexport type Colorizer = {\n command: (text: string) => string;\n arg: (text: string) => string;\n type: (text: string) => string;\n description: (text: string) => string;\n label: (text: string) => string;\n meta: (text: string) => string;\n example: (text: string) => string;\n exampleValue: (text: string) => string;\n deprecated: (text: string) => string;\n};\n\n// ============================================================================\n// Predefined Themes\n// ============================================================================\n\nconst defaultTheme: Required<ColorConfig> = {\n command: ['cyan', 'bold'],\n arg: ['green'],\n type: ['yellow'],\n description: ['dim'],\n label: ['bold'],\n meta: ['gray'],\n example: ['underline'],\n exampleValue: ['italic'],\n deprecated: ['strikethrough', 'gray'],\n};\n\nconst oceanTheme: Required<ColorConfig> = {\n command: ['blue', 'bold'],\n arg: ['cyan'],\n type: ['green'],\n description: ['dim'],\n label: ['bold'],\n meta: ['gray'],\n example: ['underline', 'cyan'],\n exampleValue: ['italic'],\n deprecated: ['strikethrough', 'gray'],\n};\n\nconst warmTheme: Required<ColorConfig> = {\n command: ['yellow', 'bold'],\n arg: ['red'],\n type: ['magenta'],\n description: ['dim'],\n label: ['bold'],\n meta: ['gray'],\n example: ['underline', 'yellow'],\n exampleValue: ['italic'],\n deprecated: ['strikethrough', 'gray'],\n};\n\nconst monochromeTheme: Required<ColorConfig> = {\n command: ['bold'],\n arg: ['underline'],\n type: ['dim'],\n description: ['dim'],\n label: ['bold'],\n meta: ['dim'],\n example: ['underline'],\n exampleValue: ['italic'],\n deprecated: ['strikethrough', 'dim'],\n};\n\n/**\n * Available predefined color themes.\n */\nexport type ColorTheme = 'default' | 'ocean' | 'warm' | 'monochrome';\n\nexport const colorThemes: Record<ColorTheme, Required<ColorConfig>> = {\n default: defaultTheme,\n ocean: oceanTheme,\n warm: warmTheme,\n monochrome: monochromeTheme,\n};\n\nfunction makeStyleFn(styles: AnsiStyle[]): (text: string) => string {\n const prefix = styles.map((s) => ansiCodes[s]).join('');\n return (text: string) => `${prefix}${text}${ansiCodes.reset}`;\n}\n\nfunction resolveConfig(config?: ColorTheme | ColorConfig): Required<ColorConfig> {\n if (!config) return defaultTheme;\n if (typeof config === 'string') return colorThemes[config] ?? defaultTheme;\n return { ...defaultTheme, ...config };\n}\n\nexport function createColorizer(config?: ColorTheme | ColorConfig): Colorizer {\n const resolved = resolveConfig(config);\n return {\n command: makeStyleFn(resolved.command),\n arg: makeStyleFn(resolved.arg),\n type: makeStyleFn(resolved.type),\n description: makeStyleFn(resolved.description),\n label: makeStyleFn(resolved.label),\n meta: makeStyleFn(resolved.meta),\n example: makeStyleFn(resolved.example),\n exampleValue: makeStyleFn(resolved.exampleValue),\n deprecated: makeStyleFn(resolved.deprecated),\n };\n}\n","import type { PadroneActionContext } from '../types/index.ts';\nimport { type ColorConfig, type ColorTheme, createColorizer } from './colorizer.ts';\n\nexport const DEFAULT_TERMINAL_WIDTH = 80;\n\nexport function wrapText(text: string, maxWidth: number): string[] {\n if (maxWidth <= 0 || text.length <= maxWidth) return [text];\n const words = text.split(' ');\n const lines: string[] = [];\n let current = '';\n for (const word of words) {\n if (current && current.length + 1 + word.length > maxWidth) {\n lines.push(current);\n current = word;\n } else {\n current = current ? `${current} ${word}` : word;\n }\n }\n if (current) lines.push(current);\n return lines.length > 0 ? lines : [text];\n}\n\nexport function escapeHtml(text: string): string {\n return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"').replace(/'/g, ''');\n}\n\n// ── Styler ──────────────────────────────────────────────────────────────\n\n/**\n * Styling functions for semantic text roles.\n * Used by formatters to apply visual styles (ANSI, HTML, Markdown, etc.)\n * to different types of content.\n */\nexport type Styler = {\n command: (text: string) => string;\n arg: (text: string) => string;\n type: (text: string) => string;\n description: (text: string) => string;\n label: (text: string) => string;\n section: (text: string) => string;\n meta: (text: string) => string;\n example: (text: string) => string;\n exampleValue: (text: string) => string;\n deprecated: (text: string) => string;\n};\n\n/**\n * Layout configuration for formatters.\n */\nexport type LayoutConfig = {\n newline: string;\n indent: (level: number) => string;\n join: (parts: string[]) => string;\n wrapDocument?: (content: string) => string;\n};\n\n// ── Styler Factories ────────────────────────────────────────────────────\n\nexport function createTextStyler(): Styler {\n return {\n command: (text) => text,\n arg: (text) => text,\n type: (text) => text,\n description: (text) => text,\n label: (text) => text,\n section: (text) => text,\n meta: (text) => text,\n example: (text) => text,\n exampleValue: (text) => text,\n deprecated: (text) => text,\n };\n}\n\nexport function createAnsiStyler(theme?: ColorTheme | ColorConfig): Styler {\n const colorizer = createColorizer(theme);\n return {\n command: colorizer.command,\n arg: colorizer.arg,\n type: colorizer.type,\n description: colorizer.description,\n label: colorizer.label,\n section: colorizer.label,\n meta: colorizer.meta,\n example: colorizer.example,\n exampleValue: colorizer.exampleValue,\n deprecated: colorizer.deprecated,\n };\n}\n\nexport function createConsoleStyler(theme?: ColorTheme | ColorConfig): Styler {\n return createAnsiStyler(theme);\n}\n\nexport function createMarkdownStyler(): Styler {\n return {\n command: (text) => `**${text}**`,\n arg: (text) => `\\`${text}\\``,\n type: (text) => `\\`${text}\\``,\n description: (text) => text,\n label: (text) => `**${text}**`,\n section: (text) => `### ${text}`,\n meta: (text) => `*${text}*`,\n example: (text) => `**${text}**`,\n exampleValue: (text) => `\\`${text}\\``,\n deprecated: (text) => `~~${text}~~`,\n };\n}\n\nexport function createHtmlStyler(): Styler {\n return {\n command: (text) => `<strong style=\"color: #00bcd4;\">${escapeHtml(text)}</strong>`,\n arg: (text) => `<code style=\"color: #4caf50;\">${escapeHtml(text)}</code>`,\n type: (text) => `<code style=\"color: #ff9800;\">${escapeHtml(text)}</code>`,\n description: (text) => `<span style=\"color: #666;\">${escapeHtml(text)}</span>`,\n label: (text) => `<strong>${escapeHtml(text)}</strong>`,\n section: (text) => `<h3>${escapeHtml(text)}</h3>`,\n meta: (text) => `<span style=\"color: #999;\">${escapeHtml(text)}</span>`,\n example: (text) => `<strong style=\"text-decoration: underline;\">${escapeHtml(text)}</strong>`,\n exampleValue: (text) => `<em>${escapeHtml(text)}</em>`,\n deprecated: (text) => `<del style=\"color: #999;\">${escapeHtml(text)}</del>`,\n };\n}\n\n// ── Layout Factories ────────────────────────────────────────────────────\n\nexport function createTextLayout(): LayoutConfig {\n return {\n newline: '\\n',\n indent: (level) => ' '.repeat(level),\n join: (parts) => parts.filter(Boolean).join(' '),\n };\n}\n\nexport function createMarkdownLayout(): LayoutConfig {\n return {\n newline: '\\n\\n',\n indent: (level) => {\n if (level === 0) return '';\n if (level === 1) return ' ';\n return ' ';\n },\n join: (parts) => parts.filter(Boolean).join(' '),\n };\n}\n\nexport function createHtmlLayout(): LayoutConfig {\n return {\n newline: '<br>',\n indent: (level) => ' '.repeat(level),\n join: (parts) => parts.filter(Boolean).join(' '),\n wrapDocument: (content) => `<div style=\"font-family: monospace; line-height: 1.6;\">${content}</div>`,\n };\n}\n\n// ── Format Detection ────────────────────────────────────────────────────\n\nexport function shouldUseAnsi(env?: Record<string, string | undefined>, isTTY?: boolean): boolean {\n if (env?.NO_COLOR) return false;\n if (env?.CI) return false;\n if (typeof isTTY === 'boolean') return isTTY;\n return false;\n}\n\n// ── Output Context ──────────────────────────────────────────────────────\n\n/** Resolved formatting context used by output primitives. */\nexport type OutputFormat = 'text' | 'ansi' | 'json' | 'markdown' | 'html';\n\nexport type OutputContext = {\n format: OutputFormat;\n styler: Styler;\n layout: LayoutConfig;\n terminalWidth?: number;\n};\n\n/** Resolve the output format from the runtime and caller context. */\nexport function resolveOutputFormat(\n runtime: {\n format?: string;\n theme?: ColorTheme | ColorConfig;\n terminal?: { columns?: number; isTTY?: boolean };\n env: () => Record<string, string | undefined>;\n },\n caller?: PadroneActionContext['caller'],\n): OutputContext {\n let format: OutputFormat;\n\n if (caller === 'serve' || caller === 'mcp' || caller === 'tool') {\n format = 'json';\n } else if (runtime.format && runtime.format !== 'auto' && runtime.format !== 'console') {\n format = runtime.format as OutputFormat;\n } else {\n format = shouldUseAnsi(runtime.env(), runtime.terminal?.isTTY) ? 'ansi' : 'text';\n }\n\n const terminalWidth = format === 'markdown' || format === 'html' ? undefined : (runtime.terminal?.columns ?? DEFAULT_TERMINAL_WIDTH);\n\n let styler: Styler;\n let layout: LayoutConfig;\n\n switch (format) {\n case 'ansi':\n styler = createAnsiStyler(runtime.theme);\n layout = createTextLayout();\n break;\n case 'markdown':\n styler = createMarkdownStyler();\n layout = createMarkdownLayout();\n break;\n case 'html':\n styler = createHtmlStyler();\n layout = createHtmlLayout();\n break;\n default:\n styler = createTextStyler();\n layout = createTextLayout();\n break;\n }\n\n return { format, styler, layout, terminalWidth };\n}\n","import type { AnyPadroneCommand } from '../types/index.ts';\n\nexport function getRootCommand(cmd: AnyPadroneCommand): AnyPadroneCommand {\n let current = cmd;\n while (current.parent) current = current.parent;\n return current;\n}\n\nasync function readVersionFromPackageJson(): Promise<string> {\n try {\n const fs = await import('node:fs');\n const path = await import('node:path');\n let dir = process.cwd();\n\n // Walk up the directory tree looking for package.json\n for (let i = 0; i < 10; i++) {\n const pkgPath = path.join(dir, 'package.json');\n if (fs.existsSync(pkgPath)) {\n const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));\n if (pkg.version) return pkg.version;\n }\n const parentDir = path.dirname(dir);\n if (parentDir === dir) break; // Reached root\n dir = parentDir;\n }\n } catch {\n // Ignore errors (e.g., fs not available in browser)\n }\n return '0.0.0';\n}\n\n/**\n * Attempts to get the version from various sources:\n * 1. Explicit version set on the command\n * 2. npm_package_version environment variable (set by npm/yarn/pnpm when running scripts)\n * 3. package.json in current or parent directories\n *\n * Returns synchronously when an explicit version or env var is available.\n * Falls back to async package.json discovery otherwise.\n */\nexport function getVersion(explicitVersion?: string): string | Promise<string> {\n if (explicitVersion) return explicitVersion;\n\n if (typeof process !== 'undefined' && process.env?.npm_package_version) {\n return process.env.npm_package_version;\n }\n\n if (typeof process !== 'undefined') return readVersionFromPackageJson();\n\n return '0.0.0';\n}\n","import { camelToKebab } from '../util/shell-utils.ts';\nimport type { ColorConfig, ColorTheme } from './colorizer.ts';\nimport {\n createAnsiStyler,\n createConsoleStyler,\n createHtmlLayout,\n createHtmlStyler,\n createMarkdownLayout,\n createMarkdownStyler,\n createTextLayout,\n createTextStyler,\n DEFAULT_TERMINAL_WIDTH,\n type LayoutConfig,\n type Styler,\n shouldUseAnsi,\n wrapText,\n} from './styling.ts';\n\nexport type HelpFormat = 'text' | 'ansi' | 'console' | 'markdown' | 'html' | 'json';\nexport type HelpDetail = 'minimal' | 'standard' | 'full';\n\n// ============================================================================\n// Help Info Types (shared with help.ts)\n// ============================================================================\n\n/**\n * Information about a single positional argument.\n */\nexport type HelpPositionalInfo = {\n name: string;\n description?: string;\n optional: boolean;\n default?: unknown;\n type?: string;\n enum?: string[];\n};\n\n/**\n * Information about a single argument/flag.\n */\nexport type HelpArgumentInfo = {\n name: string;\n description?: string;\n optional: boolean;\n default?: unknown;\n type?: string;\n enum?: string[];\n /** Single-character short flags (shown as `-v`) */\n flags?: string[];\n /** Multi-character alternative long names (shown as `--dry-run`) */\n aliases?: string[];\n deprecated?: boolean | string;\n hidden?: boolean;\n examples?: unknown[];\n /** Environment variable(s) this arg can be set from */\n env?: string | string[];\n /** Whether this arg is an array type (shown as <type...>) */\n variadic?: boolean;\n /** Whether this arg is a boolean (shown as --[no-]arg) */\n negatable?: boolean;\n /** Custom negative keyword(s) that set this arg to false (e.g. `['remote']` for `--remote`) */\n negative?: string[];\n /** Config file key that maps to this arg */\n configKey?: string;\n /** Group name for organizing this option under a labeled section in help output */\n group?: string;\n};\n\n/**\n * Information about a subcommand (minimal info for listing).\n */\nexport type HelpSubcommandInfo = {\n name: string;\n title?: string;\n description?: string;\n aliases?: string[];\n deprecated?: boolean | string;\n hidden?: boolean;\n hasSubcommands?: boolean;\n /** Group name for organizing this command under a labeled section in help output */\n group?: string;\n};\n\n/**\n * Information about a built-in command/flag entry.\n */\nexport type HelpBuiltinInfo = {\n name: string;\n description?: string;\n sub?: { name: string; description?: string }[];\n};\n\n/**\n * Comprehensive JSON structure for help information.\n * This is the single source of truth that all formatters use.\n */\nexport type HelpInfo = {\n /** The full command name (e.g., \"cli serve\" or \"<root>\") */\n name: string;\n /** Short title for the command */\n title?: string;\n /** Command description */\n description?: string;\n /** Alternative names/aliases for this command */\n aliases?: string[];\n /** Whether the command is deprecated */\n deprecated?: boolean | string;\n /** Whether the command is hidden */\n hidden?: boolean;\n /** Usage string parts for flexible formatting */\n usage: {\n command: string;\n hasSubcommands: boolean;\n hasPositionals: boolean;\n hasArguments: boolean;\n /** The name of the field that reads from stdin, if any. Shown as `[stdin > field]` in usage. */\n stdinField?: string;\n };\n /** List of subcommands */\n subcommands?: HelpSubcommandInfo[];\n /** Positional arguments */\n positionals?: HelpPositionalInfo[];\n /** Arguments/flags (only visible ones, hidden filtered out) */\n arguments?: HelpArgumentInfo[];\n /** Built-in commands and flags (shown only for root command) */\n builtins?: HelpBuiltinInfo[];\n /** Command-level usage examples (shown in help output) */\n examples?: string[];\n /** Full help info for nested commands (used in 'full' detail mode) */\n nestedCommands?: HelpInfo[];\n};\n\n// ============================================================================\n// Formatter Interface\n// ============================================================================\n\n/**\n * A formatter that takes the entire HelpInfo structure and produces formatted output.\n */\nexport type Formatter = {\n /** Format the entire help info structure into a string */\n format: (info: HelpInfo) => string;\n};\n\n// ============================================================================\n// Generic Formatter Implementation\n// ============================================================================\n\n/**\n * Creates a formatter that uses the given styler and layout configuration.\n */\nfunction createGenericFormatter(styler: Styler, layout: LayoutConfig, showAllBuiltins?: boolean, terminalWidth?: number): Formatter {\n const { newline, indent, join, wrapDocument } = layout;\n\n function formatUsageSection(info: HelpInfo): string[] {\n const usageParts: string[] = [styler.command(info.usage.command), info.usage.hasSubcommands ? styler.meta('[command]') : ''];\n // Show actual positional argument names in usage line\n if (info.positionals && info.positionals.length > 0) {\n for (const arg of info.positionals) {\n const name = arg.name.startsWith('...') ? `${arg.name}` : arg.name;\n usageParts.push(styler.meta(arg.optional ? `[${name}]` : `<${name}>`));\n }\n }\n if (info.usage.hasArguments) usageParts.push(styler.meta('[options]'));\n return [`${styler.label('Usage:')} ${join(usageParts)}`];\n }\n\n function formatSubcommandsSection(info: HelpInfo): string[] {\n const lines: string[] = [];\n const subcommands = info.subcommands!;\n\n const subcommandSuffix = (c: HelpSubcommandInfo) => (c.hasSubcommands ? ' <subcommand>' : '');\n const formatAliasParts = (c: HelpSubcommandInfo) => {\n if (!c.aliases?.length) return { plain: '', styled: '' };\n const realAliases = c.aliases.filter((a) => a !== '[default]');\n const hasDefault = c.aliases.some((a) => a === '[default]');\n const parts: string[] = [];\n const styledParts: string[] = [];\n if (realAliases.length) {\n parts.push(`(${realAliases.join(', ')})`);\n styledParts.push(`(${realAliases.join(', ')})`);\n }\n if (hasDefault) {\n parts.push('[default]');\n styledParts.push(styler.meta('[default]'));\n }\n return { plain: parts.length ? ` ${parts.join(' ')}` : '', styled: styledParts.length ? ` ${styledParts.join(' ')}` : '' };\n };\n // Column width is computed across all subcommands for consistent alignment\n const maxNameLength = Math.max(\n ...subcommands.map((c) => {\n return (c.name + subcommandSuffix(c) + formatAliasParts(c).plain).length;\n }),\n );\n\n const grouped = Object.groupBy(subcommands, (c) => c.group ?? '');\n\n const renderSubcommands = (cmds: HelpSubcommandInfo[]) => {\n for (const subCmd of cmds) {\n const aliasParts = formatAliasParts(subCmd);\n const suffix = subcommandSuffix(subCmd);\n const commandDisplay = subCmd.name + suffix + aliasParts.plain;\n const padding = ' '.repeat(Math.max(0, maxNameLength - commandDisplay.length + 2));\n const isDeprecated = !!subCmd.deprecated;\n const isDefaultEntry = subCmd.name === '[default]';\n const commandName = isDeprecated\n ? styler.deprecated(commandDisplay)\n : (isDefaultEntry ? styler.meta(subCmd.name) : styler.command(subCmd.name)) +\n (suffix ? styler.meta(suffix) : '') +\n aliasParts.styled;\n const lineParts: string[] = [commandName, padding];\n\n // Use title if available, otherwise use description\n const displayText = subCmd.title ?? subCmd.description;\n if (displayText) {\n lineParts.push(isDeprecated ? styler.deprecated(displayText) : styler.description(displayText));\n }\n if (isDeprecated) {\n const deprecatedMeta =\n typeof subCmd.deprecated === 'string' ? styler.meta(` (deprecated: ${subCmd.deprecated})`) : styler.meta(' (deprecated)');\n lineParts.push(deprecatedMeta);\n }\n lines.push(indent(1) + lineParts.join(''));\n }\n };\n\n for (const [key, items] of Object.entries(grouped)) {\n if (lines.length > 0) lines.push('');\n lines.push(styler.section(key ? `${key}:` : 'Commands:'));\n renderSubcommands(items!);\n }\n\n // Skip hint when builtins are present — the builtins section shows a combined hint\n if (!info.builtins?.length) {\n lines.push('');\n lines.push(styler.meta(`Run \"${info.name} [command] --help\" for more information on a command.`));\n }\n\n return lines;\n }\n\n function formatPositionalsSection(info: HelpInfo): string[] {\n const lines: string[] = [];\n const args = info.positionals!;\n\n lines.push(styler.section('Arguments:'));\n\n const maxNameLength = Math.min(32, Math.max(...args.map((a) => a.name.length)));\n const descCol = 2 + maxNameLength + 2;\n const posAvailWidth = terminalWidth ? terminalWidth - descCol : undefined;\n const descColPad = ' '.repeat(descCol);\n\n for (const arg of args) {\n const padding = ' '.repeat(Math.max(2, maxNameLength - arg.name.length + 2));\n const prefix = indent(1) + styler.arg(arg.name) + padding;\n\n const descPlain = arg.description ?? '';\n const styledDesc = descPlain ? styler.description(descPlain) : '';\n\n const metaParts: string[] = [];\n const styledMetaParts: string[] = [];\n if (info.usage.stdinField === arg.name) {\n metaParts.push('(stdin)');\n styledMetaParts.push(styler.meta('(stdin)'));\n }\n if (arg.enum) {\n const text = `(choices: ${arg.enum.join(', ')})`;\n metaParts.push(text);\n styledMetaParts.push(styler.meta(text));\n }\n if (arg.default !== undefined) {\n const text = `(default: ${String(arg.default)})`;\n metaParts.push(text);\n styledMetaParts.push(styler.meta(text));\n }\n\n const metaStyled = join(styledMetaParts);\n\n if (posAvailWidth && posAvailWidth > 0) {\n const metaPlain = metaParts.join(' ');\n const fullPlain = [descPlain, metaPlain].filter(Boolean).join(' ');\n if (fullPlain.length <= posAvailWidth) {\n lines.push(prefix + [styledDesc, metaStyled].filter(Boolean).join(' '));\n } else if (!descPlain || descPlain.length <= posAvailWidth) {\n lines.push(prefix + styledDesc);\n if (metaStyled) lines.push(descColPad + metaStyled);\n } else {\n const wrapped = wrapText(descPlain, posAvailWidth);\n lines.push(prefix + styler.description(wrapped[0]!));\n for (const wline of wrapped.slice(1)) lines.push(descColPad + styler.description(wline));\n if (metaStyled) lines.push(descColPad + metaStyled);\n }\n } else {\n lines.push(prefix + join([styledDesc, metaStyled]));\n }\n }\n\n return lines;\n }\n\n function formatArgumentsSection(info: HelpInfo): string[] {\n const lines: string[] = [];\n const argList = info.arguments || [];\n\n // Helper to check if a default value is meaningful (not empty string/array)\n const hasDefault = (value: unknown): boolean => {\n if (value === undefined) return false;\n if (value === '') return false;\n if (Array.isArray(value) && value.length === 0) return false;\n return true;\n };\n\n // Build columns: flags | names | type | description\n const argColumns = argList.map((arg) => {\n // Promote kebab-case alias to primary display name if it exists\n const kebab = camelToKebab(arg.name);\n const primaryName = kebab && arg.aliases?.includes(kebab) ? kebab : arg.name;\n const remainingAliases = arg.aliases?.filter((a) => a !== primaryName);\n\n const flagsPlain = arg.flags?.length ? arg.flags.map((f) => `-${f}`).join(', ') : '';\n const negPlain = arg.negative?.length ? arg.negative.map((n) => `--${n}`).join(', ') : '';\n const namesPlain = [`--${primaryName}`, ...(remainingAliases?.map((a) => `--${a}`) || []), ...(negPlain ? [negPlain] : [])].join(\n ', ',\n );\n const typePlain = arg.type && arg.type !== 'boolean' ? (arg.optional ? `[${arg.type}]` : `<${arg.type}>`) : '';\n\n const isDeprecated = !!arg.deprecated;\n\n return { flagsPlain, namesPlain, typePlain, isDeprecated, arg };\n });\n\n // Column widths are computed across all args (regardless of group) for consistent alignment\n const maxFlagsWidth = Math.min(12, Math.max(0, ...argColumns.map((c) => c.flagsPlain.length)));\n const maxNamesWidth = Math.min(32, Math.max(0, ...argColumns.map((c) => c.namesPlain.length)));\n const maxTypeWidth = Math.min(16, Math.max(0, ...argColumns.map((c) => c.typePlain.length)));\n const hasAnyFlags = maxFlagsWidth > 0;\n const descCol = 2 + (hasAnyFlags ? maxFlagsWidth + 2 : 0) + maxNamesWidth + 2 + (maxTypeWidth > 0 ? maxTypeWidth + 2 : 0);\n const argAvailWidth = terminalWidth ? terminalWidth - descCol : undefined;\n const descColPad = ' '.repeat(descCol);\n\n // Split into ordered groups: ungrouped first as \"Options:\", then each group in first-seen order\n const grouped = Object.groupBy(argColumns, (c) => c.arg.group ?? '');\n\n const renderArgColumns = (columns: typeof argColumns) => {\n for (const { flagsPlain, namesPlain, typePlain, isDeprecated, arg } of columns) {\n const parts: string[] = [];\n\n // Flags column\n if (hasAnyFlags) {\n const styledFlags = isDeprecated ? (flagsPlain ? styler.deprecated(flagsPlain) : '') : flagsPlain ? styler.arg(flagsPlain) : '';\n const flagsPadding = ' '.repeat(Math.max(0, maxFlagsWidth - flagsPlain.length));\n const separator = flagsPlain ? ', ' : ' ';\n parts.push(styledFlags + flagsPadding + separator);\n }\n\n // Names column\n const styledNames = isDeprecated ? styler.deprecated(namesPlain) : styler.arg(namesPlain);\n const namesPadding = ' '.repeat(Math.max(2, maxNamesWidth - namesPlain.length + 2));\n parts.push(styledNames + namesPadding);\n\n // Type column\n if (maxTypeWidth > 0) {\n const styledType = typePlain ? styler.type(typePlain) : '';\n const typePadding = ' '.repeat(Math.max(2, maxTypeWidth - typePlain.length + 2));\n parts.push(styledType + typePadding);\n }\n\n const prefix = indent(1) + parts.join('');\n const contPad = argAvailWidth ? descColPad : indent(3);\n\n // Build inline meta (deprecated no-reason, default, choices)\n const inlineMeta: string[] = [];\n const styledInlineMeta: string[] = [];\n if (isDeprecated && typeof arg.deprecated !== 'string') {\n inlineMeta.push('(deprecated)');\n styledInlineMeta.push(styler.meta('(deprecated)'));\n }\n if (hasDefault(arg.default)) {\n const text = `(default: ${String(arg.default)})`;\n inlineMeta.push(text);\n styledInlineMeta.push(styler.meta(text));\n }\n if (arg.enum) {\n const text = `(choices: ${arg.enum.join(', ')})`;\n inlineMeta.push(text);\n styledInlineMeta.push(styler.meta(text));\n }\n\n const descPlain = arg.description ?? '';\n const styledDesc = descPlain ? (isDeprecated ? styler.deprecated(descPlain) : styler.description(descPlain)) : '';\n const metaStyled = join(styledInlineMeta);\n\n if (argAvailWidth && argAvailWidth > 0) {\n // Terminal-width-aware: try to fit description + meta on one line\n const metaPlain = inlineMeta.join(' ');\n const fullPlain = [descPlain, metaPlain].filter(Boolean).join(' ');\n if (fullPlain.length <= argAvailWidth) {\n lines.push(prefix + [styledDesc, metaStyled].filter(Boolean).join(' '));\n } else if (!descPlain || descPlain.length <= argAvailWidth) {\n lines.push(prefix + styledDesc);\n if (metaStyled) lines.push(descColPad + metaStyled);\n } else {\n const wrapped = wrapText(descPlain, argAvailWidth);\n const styleFn = isDeprecated ? styler.deprecated : styler.description;\n lines.push(prefix + styleFn(wrapped[0]!));\n for (const wline of wrapped.slice(1)) lines.push(descColPad + styleFn(wline));\n if (metaStyled) lines.push(descColPad + metaStyled);\n }\n } else {\n // No terminal width (markdown/html): description on line 1, meta on line 2\n const descParts: string[] = [];\n if (styledDesc) descParts.push(styledDesc);\n lines.push(prefix + join(descParts));\n if (styledInlineMeta.length > 0) lines.push(indent(3) + metaStyled);\n }\n\n // Deprecated (with reason), examples — always on separate line\n const line3Parts: string[] = [];\n if (isDeprecated && typeof arg.deprecated === 'string') line3Parts.push(styler.meta(`(deprecated: ${arg.deprecated})`));\n if (arg.examples && arg.examples.length > 0) {\n const exampleValues = arg.examples.map((example) => (typeof example === 'string' ? example : JSON.stringify(example))).join(', ');\n line3Parts.push(styler.example('Example:'), styler.exampleValue(exampleValues));\n }\n if (line3Parts.length > 0) lines.push(contPad + join(line3Parts));\n\n // stdin, env, config — always on separate line\n const line4Parts: string[] = [];\n if (info.usage.stdinField === arg.name) line4Parts.push(styler.meta('(stdin)'));\n if (arg.env) {\n const envVars = typeof arg.env === 'string' ? [arg.env] : arg.env;\n line4Parts.push(styler.example('Env:'), styler.exampleValue(envVars.join(', ')));\n }\n if (arg.configKey) {\n line4Parts.push(styler.example('Config:'), styler.exampleValue(arg.configKey));\n }\n if (line4Parts.length > 0) lines.push(contPad + join(line4Parts));\n }\n };\n\n for (const [key, items] of Object.entries(grouped)) {\n if (lines.length > 0) lines.push('');\n lines.push(styler.section(key ? `${key}:` : 'Options:'));\n renderArgColumns(items!);\n }\n\n return lines;\n }\n\n function formatBuiltinsSection(info: HelpInfo): string[] {\n const lines: string[] = [];\n const builtins = info.builtins!;\n\n if (!showAllBuiltins) {\n // Collapsed summary: show selected builtins on a single line with a combined hint\n const highlights = ['help [command]', 'version', '[command] --repl'];\n lines.push(`${styler.label('Global:')} ${styler.meta(highlights.join(', '))}`);\n const hint = info.usage.hasSubcommands\n ? `Run \"${info.name} [command] --help\" for more information. Use \"--all\" for all global commands.`\n : `Use \"${info.name} help --all\" for more information on global commands.`;\n lines.push(styler.meta(hint));\n return lines;\n }\n\n lines.push(styler.section('Global:'));\n\n // Compute max effective name length for alignment across main and sub entries\n const allLengths: number[] = [];\n for (const entry of builtins) {\n allLengths.push(entry.name.length);\n if (entry.sub) {\n for (const sub of entry.sub) {\n // Sub entries get extra indent(2) - indent(1) = 2 chars\n allLengths.push(sub.name.length + 2);\n }\n }\n }\n const maxLen = Math.max(...allLengths);\n\n for (const entry of builtins) {\n const padding = ' '.repeat(Math.max(2, maxLen - entry.name.length + 2));\n const parts: string[] = [styler.command(entry.name)];\n if (entry.description) parts.push(padding + styler.description(entry.description));\n lines.push(indent(1) + parts.join(''));\n\n if (entry.sub) {\n for (const sub of entry.sub) {\n const subPadding = ' '.repeat(Math.max(2, maxLen - sub.name.length));\n const subParts: string[] = [styler.arg(sub.name)];\n if (sub.description) subParts.push(subPadding + styler.description(sub.description));\n lines.push(indent(2) + subParts.join(''));\n }\n }\n }\n\n return lines;\n }\n\n return {\n format(info: HelpInfo): string {\n const lines: string[] = [];\n\n // Show deprecation warning at the top if command is deprecated\n if (info.deprecated) {\n const deprecationMessage =\n typeof info.deprecated === 'string' ? `⚠️ This command is deprecated: ${info.deprecated}` : '⚠️ This command is deprecated';\n lines.push(styler.deprecated(deprecationMessage));\n lines.push('');\n }\n\n // Usage section\n lines.push(...formatUsageSection(info));\n lines.push('');\n\n // Title section (if present, shows a short summary line)\n if (info.title) {\n lines.push(styler.label(info.title));\n lines.push('');\n }\n\n // Aliases section (if present)\n if (info.aliases && info.aliases.length > 0) {\n lines.push(styler.meta(`Aliases: ${info.aliases.join(', ')}`));\n lines.push('');\n }\n\n // Description section (if present)\n if (info.description) {\n lines.push(styler.description(info.description));\n lines.push('');\n }\n\n // Examples section (if present)\n if (info.examples && info.examples.length > 0) {\n lines.push(styler.section('Examples:'));\n for (const ex of info.examples) {\n lines.push(indent(1) + styler.meta('$ ') + styler.exampleValue(ex));\n }\n lines.push('');\n }\n\n // Subcommands section\n if (info.subcommands && info.subcommands.length > 0) {\n lines.push(...formatSubcommandsSection(info));\n lines.push('');\n }\n\n if (info.positionals && info.positionals.length > 0) {\n lines.push(...formatPositionalsSection(info));\n lines.push('');\n }\n\n if (info.arguments && info.arguments.length > 0) {\n lines.push(...formatArgumentsSection(info));\n lines.push('');\n }\n\n if (info.builtins && info.builtins.length > 0) {\n lines.push(...formatBuiltinsSection(info));\n lines.push('');\n }\n\n // Show --no- hint when there are negatable boolean options defaulting to true\n if (info.arguments?.some((arg) => arg.negatable && arg.default === true)) {\n lines.push(styler.meta('Boolean options can be negated with --no-<option>.'));\n lines.push('');\n }\n\n // Nested commands section (full detail mode)\n if (info.nestedCommands?.length) {\n lines.push(styler.section('Subcommand Details:'));\n lines.push('');\n for (const nestedCmd of info.nestedCommands) {\n lines.push(styler.meta('─'.repeat(60)));\n lines.push(this.format(nestedCmd));\n }\n }\n\n const result = lines.join(newline);\n return wrapDocument ? wrapDocument(result) : result;\n },\n };\n}\n\n// ============================================================================\n// JSON Formatter\n// ============================================================================\n\nfunction createJsonFormatter(): Formatter {\n return {\n format(info: HelpInfo): string {\n return JSON.stringify(info, null, 2);\n },\n };\n}\n\n// ============================================================================\n// Minimal Formatter\n// ============================================================================\n\n/**\n * Creates a minimal formatter that outputs just a single-line usage string.\n */\nfunction createMinimalFormatter(): Formatter {\n return {\n format(info: HelpInfo): string {\n const parts: string[] = [info.usage.command];\n if (info.usage.hasSubcommands) parts.push('[command]');\n if (info.positionals && info.positionals.length > 0) {\n for (const arg of info.positionals) {\n const name = arg.name.startsWith('...') ? `${arg.name}` : arg.name;\n parts.push(arg.optional ? `[${name}]` : `<${name}>`);\n }\n }\n if (info.usage.hasArguments) parts.push('[options]');\n return parts.join(' ');\n },\n };\n}\n\nexport function createFormatter(\n format: HelpFormat | 'auto',\n detail: HelpDetail = 'standard',\n theme?: ColorTheme | ColorConfig,\n all?: boolean,\n width?: number,\n terminal?: { columns?: number; isTTY?: boolean },\n env?: Record<string, string | undefined>,\n): Formatter {\n if (detail === 'minimal') return createMinimalFormatter();\n if (format === 'json') return createJsonFormatter();\n const tw = format === 'markdown' || format === 'html' ? undefined : (width ?? terminal?.columns ?? DEFAULT_TERMINAL_WIDTH);\n if (format === 'ansi' || (format === 'auto' && shouldUseAnsi(env, terminal?.isTTY)))\n return createGenericFormatter(createAnsiStyler(theme), createTextLayout(), all, tw);\n if (format === 'console') return createGenericFormatter(createConsoleStyler(theme), createTextLayout(), all, tw);\n if (format === 'markdown') return createGenericFormatter(createMarkdownStyler(), createMarkdownLayout(), all);\n if (format === 'html') return createGenericFormatter(createHtmlStyler(), createHtmlLayout(), all);\n return createGenericFormatter(createTextStyler(), createTextLayout(), all, tw);\n}\n","import type { StandardJSONSchemaV1 } from '@standard-schema/spec';\nimport { extractSchemaMetadata, getJsonSchema, type PadroneArgsSchemaMeta, parsePositionalConfig } from '../core/args.ts';\nimport { findCommandByName } from '../core/commands.ts';\nimport type { AnyPadroneCommand } from '../types/index.ts';\nimport { getRootCommand } from '../util/utils.ts';\nimport type { ColorConfig, ColorTheme } from './colorizer.ts';\nimport {\n createFormatter,\n type HelpArgumentInfo,\n type HelpDetail,\n type HelpFormat,\n type HelpInfo,\n type HelpPositionalInfo,\n type HelpSubcommandInfo,\n} from './formatter.ts';\n\nexport type HelpPreferences = {\n format?: HelpFormat | 'auto';\n detail?: HelpDetail;\n theme?: ColorTheme | ColorConfig;\n /** Show all global commands and flags in full detail */\n all?: boolean;\n /** Terminal width for text wrapping. Defaults to terminal columns or 80. */\n width?: number;\n /** Terminal capabilities for auto-detection of ANSI and width. */\n terminal?: { columns?: number; isTTY?: boolean };\n /** Environment variables for auto-detection (e.g., NO_COLOR, CI). */\n env?: Record<string, string | undefined>;\n};\n\n/**\n * Extract positional arguments info from schema based on meta.positional config.\n */\nfunction extractPositionalArgsInfo(\n schema: StandardJSONSchemaV1,\n meta?: PadroneArgsSchemaMeta,\n): { args: HelpPositionalInfo[]; positionalNames: Set<string> } {\n const args: HelpPositionalInfo[] = [];\n const positionalNames = new Set<string>();\n\n if (!schema || !meta?.positional || meta.positional.length === 0) {\n return { args, positionalNames };\n }\n\n const positionalConfig = parsePositionalConfig(meta.positional);\n\n try {\n const jsonSchema = getJsonSchema(schema) as Record<string, any>;\n\n if (jsonSchema.type === 'object' && jsonSchema.properties) {\n const properties = jsonSchema.properties as Record<string, any>;\n const required = (jsonSchema.required as string[]) || [];\n\n for (const { name, variadic } of positionalConfig) {\n const prop = properties[name];\n if (!prop) continue;\n\n positionalNames.add(name);\n const optMeta = meta.fields?.[name];\n\n args.push({\n name: variadic ? `...${name}` : name,\n description: optMeta?.description ?? prop.description,\n optional: !required.includes(name),\n default: prop.default,\n type: variadic ? `array<${prop.items?.type || 'string'}>` : prop.type,\n enum: (prop.enum ?? prop.items?.enum) as string[] | undefined,\n });\n }\n }\n } catch {\n // Fallback to empty result if toJSONSchema fails\n }\n\n return { args, positionalNames };\n}\n\nfunction extractArgsInfo(schema: StandardJSONSchemaV1, meta?: PadroneArgsSchemaMeta, positionalNames?: Set<string>) {\n const result: HelpArgumentInfo[] = [];\n if (!schema) return result;\n\n const vendor = schema['~standard'].vendor;\n if (!vendor.includes('zod')) return result;\n\n const argsMeta = meta?.fields;\n\n try {\n const jsonSchema = getJsonSchema(schema) as Record<string, any>;\n\n // Handle object: z.object({ key: z.string(), ... })\n if (jsonSchema.type === 'object' && jsonSchema.properties) {\n const properties = jsonSchema.properties as Record<string, any>;\n const required = (jsonSchema.required as string[]) || [];\n const propertyNames = new Set(Object.keys(properties));\n\n // Helper to check if a negated version of an arg exists\n const hasExplicitNegation = (key: string): boolean => {\n // Check for noVerbose style (camelCase)\n const camelNegated = `no${key.charAt(0).toUpperCase()}${key.slice(1)}`;\n if (propertyNames.has(camelNegated)) return true;\n // Check for no-verbose style (kebab-case, though rare in JS)\n const kebabNegated = `no-${key}`;\n if (propertyNames.has(kebabNegated)) return true;\n return false;\n };\n\n // Helper to check if this arg is itself a negation of another arg\n const isNegationOf = (key: string): boolean => {\n // Check for noVerbose -> verbose (camelCase)\n if (key.startsWith('no') && key.length > 2 && key[2] === key[2]?.toUpperCase()) {\n const positiveKey = key.charAt(2).toLowerCase() + key.slice(3);\n if (propertyNames.has(positiveKey)) return true;\n }\n // Check for no-verbose -> verbose (kebab-case)\n if (key.startsWith('no-')) {\n const positiveKey = key.slice(3);\n if (propertyNames.has(positiveKey)) return true;\n }\n return false;\n };\n\n for (const [key, prop] of Object.entries(properties)) {\n // Skip positional arguments - they are shown in arguments section\n if (positionalNames?.has(key)) continue;\n\n const isOptional = !required.includes(key);\n const enumValues = (prop.enum ?? prop.items?.enum) as string[] | undefined;\n const optMeta = argsMeta?.[key];\n const propType = prop.type as string;\n\n // Resolve custom negative keywords from meta or schema\n const rawNegative = optMeta?.negative ?? prop?.negative;\n const hasCustomNegative = rawNegative !== undefined;\n const negativeList = hasCustomNegative\n ? typeof rawNegative === 'string'\n ? rawNegative\n ? [rawNegative]\n : []\n : Array.from(rawNegative as readonly string[]).filter(Boolean)\n : undefined;\n\n // Booleans are negatable unless there's an explicit noArg property,\n // this arg is itself a negation of another arg, or custom negative keywords are set\n const isNegatable = propType === 'boolean' && !hasCustomNegative && !hasExplicitNegation(key) && !isNegationOf(key);\n\n result.push({\n name: key,\n description: optMeta?.description ?? prop.description,\n optional: isOptional,\n default: prop.default,\n type: propType === 'array' ? `${prop.items?.type || 'string'}[]` : propType,\n enum: enumValues,\n deprecated: optMeta?.deprecated ?? prop?.deprecated,\n hidden: optMeta?.hidden ?? prop?.hidden,\n examples: optMeta?.examples ?? prop?.examples,\n variadic: propType === 'array',\n negatable: isNegatable,\n negative: negativeList?.length ? negativeList : undefined,\n group: optMeta?.group,\n });\n }\n }\n } catch {\n // Fallback to empty result if toJSONSchema fails\n }\n\n return result;\n}\n\n// ============================================================================\n// Core Help Info Builder\n// ============================================================================\n\n/**\n * Builds a comprehensive HelpInfo structure from a command.\n * This is the single source of truth that all formatters use.\n * @param cmd - The command to build help info for\n * @param detail - The level of detail ('minimal', 'standard', or 'full')\n */\nexport function getHelpInfo(cmd: AnyPadroneCommand, detail: HelpPreferences['detail'] = 'standard', all?: boolean): HelpInfo {\n const rootCmd = getRootCommand(cmd);\n // A command is a \"default\" command if its name is '' or it has '' as an alias\n const isDefaultCommand = cmd.parent && (!cmd.name || cmd.aliases?.includes(''));\n // For commands with empty name, use the first non-empty alias as display name\n const nonEmptyAliases = cmd.aliases?.filter(Boolean);\n const commandName = cmd.path || cmd.name || nonEmptyAliases?.[0] || (cmd.parent ? '[default]' : 'program');\n // Build display aliases: real aliases (excluding the one promoted to display name) + [default] marker\n const remainingAliases = !cmd.name && nonEmptyAliases?.length ? nonEmptyAliases.slice(1) : (nonEmptyAliases ?? []);\n const displayAliases = isDefaultCommand ? [...remainingAliases, '[default]'] : nonEmptyAliases;\n\n // Extract positional args from schema based on meta.positional\n const { args: positionalArgs, positionalNames } = cmd.argsSchema\n ? extractPositionalArgsInfo(cmd.argsSchema, cmd.meta)\n : { args: [], positionalNames: new Set<string>() };\n\n const hasPositionals = positionalArgs.length > 0;\n\n const helpInfo: HelpInfo = {\n name: commandName,\n title: cmd.title,\n description: cmd.description,\n examples: cmd.examples,\n aliases: displayAliases,\n deprecated: cmd.deprecated,\n hidden: cmd.hidden,\n usage: {\n command: rootCmd === cmd ? commandName : `${rootCmd.name} ${commandName}`,\n hasSubcommands: !!(cmd.commands && cmd.commands.length > 0),\n hasPositionals,\n hasArguments: false, // updated below after extracting arguments\n stdinField: cmd.meta?.stdin,\n },\n };\n\n // Build subcommands info (filter out hidden commands unless showing full detail)\n if (cmd.commands && cmd.commands.length > 0) {\n const visibleCommands = detail === 'full' ? cmd.commands : cmd.commands.filter((c) => !c.hidden);\n // If the command has both a handler and subcommands, show the handler as a \"[default]\" entry\n const selfEntry: typeof helpInfo.subcommands = cmd.action\n ? [{ name: '[default]', title: cmd.title, description: cmd.description }]\n : [];\n\n helpInfo.subcommands = [\n ...selfEntry,\n ...visibleCommands.flatMap((c): HelpSubcommandInfo[] => {\n const isDefault = !c.name || c.aliases?.includes('');\n const nonEmptyAliases = c.aliases?.filter(Boolean);\n const displayName = c.name || nonEmptyAliases?.[0] || '[default]';\n const remainingAliases = !c.name && nonEmptyAliases?.length ? nonEmptyAliases.slice(1) : (nonEmptyAliases ?? []);\n // Only add [default] alias marker if it's not already the display name\n const displayAliases =\n isDefault && displayName !== '[default]' ? [...remainingAliases, '[default]'] : isDefault ? remainingAliases : nonEmptyAliases;\n const hasSubcommands = !!(c.commands && c.commands.length > 0);\n\n // If a command has subcommands AND a default handler (direct or '' subcommand),\n // show two entries: one for the default action, one for the subcommand router\n const hasDefaultHandler = c.action || c.commands?.some((sub) => !sub.name || sub.aliases?.includes(''));\n if (hasSubcommands && hasDefaultHandler) {\n const defaultSub = !c.action ? c.commands?.find((sub) => !sub.name || sub.aliases?.includes('')) : undefined;\n const hasDefaultSubInfo = defaultSub && (defaultSub.title || defaultSub.description);\n return [\n {\n name: displayName,\n title: hasDefaultSubInfo ? defaultSub.title : c.title,\n description: hasDefaultSubInfo ? defaultSub.description : c.description,\n aliases: displayAliases?.length ? displayAliases : undefined,\n deprecated: c.deprecated,\n hidden: c.hidden,\n group: c.group,\n },\n {\n name: displayName,\n title: c.title,\n description: c.description,\n deprecated: c.deprecated,\n hidden: c.hidden,\n hasSubcommands: true,\n group: c.group,\n },\n ];\n }\n\n return [\n {\n name: displayName,\n title: c.title,\n description: c.description,\n aliases: displayAliases?.length ? displayAliases : undefined,\n deprecated: c.deprecated,\n hidden: c.hidden,\n hasSubcommands,\n group: c.group,\n },\n ];\n }),\n ];\n\n // In 'full' detail mode, recursively build help for all nested commands\n if (detail === 'full') {\n helpInfo.nestedCommands = visibleCommands.map((c) => getHelpInfo(c, 'full'));\n }\n }\n\n // Build arguments info from positionals\n if (hasPositionals) {\n helpInfo.positionals = positionalArgs;\n }\n\n // Build arguments info with aliases (excluding positional args)\n if (cmd.argsSchema) {\n const argsInfo = extractArgsInfo(cmd.argsSchema, cmd.meta, positionalNames);\n const argMap: Record<string, HelpArgumentInfo> = Object.fromEntries(argsInfo.map((arg) => [arg.name, arg]));\n\n // Merge flags and aliases into arguments\n const { flags, aliases } = extractSchemaMetadata(cmd.argsSchema, cmd.meta?.fields, cmd.meta?.autoAlias);\n for (const [flag, name] of Object.entries(flags)) {\n const arg = argMap[name];\n if (!arg) continue;\n arg.flags = [...(arg.flags || []), flag];\n }\n for (const [alias, name] of Object.entries(aliases)) {\n const arg = argMap[name];\n if (!arg) continue;\n arg.aliases = [...(arg.aliases || []), alias];\n }\n\n // Filter out hidden arguments\n const visibleArgs = argsInfo.filter((arg) => !arg.hidden);\n if (visibleArgs.length > 0) {\n helpInfo.arguments = visibleArgs;\n helpInfo.usage.hasArguments = true;\n }\n }\n\n // Add global commands/flags (root command by default, all commands when --all is passed)\n if (!cmd.parent || all) {\n const builtins: HelpInfo['builtins'] = [];\n\n if (!findCommandByName('help', rootCmd.commands)) {\n builtins.push({\n name: 'help [command], -h, --help',\n description: 'Show help for a command',\n sub: [\n { name: '--all', description: 'Show all global commands and flags' },\n { name: '--detail <level>', description: 'Detail level (minimal, standard, full)' },\n { name: '--format <format>', description: 'Output format (text, ansi, json, markdown, html)' },\n ],\n });\n }\n\n if (!findCommandByName('version', rootCmd.commands)) {\n builtins.push({\n name: 'version, -v, --version',\n description: 'Show version information',\n });\n }\n\n if (!findCommandByName('completion', rootCmd.commands)) {\n builtins.push({\n name: 'completion [shell]',\n description: 'Generate shell completions (bash, zsh, fish, powershell)',\n });\n }\n\n if (!findCommandByName('man', rootCmd.commands)) {\n builtins.push({\n name: 'man',\n description: 'Show or install man pages (--setup to install, --remove to uninstall) (experimental)',\n });\n }\n\n builtins.push({\n name: '[command] --repl',\n description: 'Start interactive REPL scoped to a command',\n });\n\n if (!findCommandByName('mcp', rootCmd.commands)) {\n builtins.push({\n name: 'mcp [http|stdio]',\n description: 'Start a Model Context Protocol server to expose commands as AI tools (experimental)',\n sub: [\n { name: '--port <port>', description: 'HTTP port (default: 3000)' },\n { name: '--host <host>', description: 'HTTP host (default: 127.0.0.1)' },\n ],\n });\n }\n\n builtins.push({\n name: '--color [theme], --no-color',\n description: 'Set color theme (default, ocean, warm, monochrome) or disable colors',\n });\n\n if (builtins.length > 0) {\n helpInfo.builtins = builtins;\n }\n }\n\n return helpInfo;\n}\n\n// ============================================================================\n// Main Entry Point\n// ============================================================================\n\nexport function generateHelp(rootCommand: AnyPadroneCommand, commandObj: AnyPadroneCommand = rootCommand, prefs?: HelpPreferences): string {\n const helpInfo = getHelpInfo(commandObj, prefs?.detail, prefs?.all);\n const formatter = createFormatter(\n prefs?.format ?? 'auto',\n prefs?.detail,\n prefs?.theme,\n prefs?.all,\n prefs?.width,\n prefs?.terminal,\n prefs?.env,\n );\n return formatter.format(helpInfo);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"help-CeI45CJx.mjs","names":[],"sources":["../src/output/colorizer.ts","../src/output/styling.ts","../src/util/utils.ts","../src/output/formatter.ts","../src/output/help.ts"],"sourcesContent":["// ANSI color/style codes\nconst ansiCodes: Record<AnsiStyle, string> = {\n reset: '\\x1b[0m',\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n italic: '\\x1b[3m',\n underline: '\\x1b[4m',\n strikethrough: '\\x1b[9m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n gray: '\\x1b[90m',\n};\n\n/**\n * Available ANSI styles that can be combined for each color role.\n */\nexport type AnsiStyle =\n | 'reset'\n | 'bold'\n | 'dim'\n | 'italic'\n | 'underline'\n | 'strikethrough'\n | 'red'\n | 'green'\n | 'yellow'\n | 'blue'\n | 'magenta'\n | 'cyan'\n | 'white'\n | 'gray';\n\n/**\n * Maps each semantic color role to an array of ANSI styles.\n * Partial configs are merged with the default theme.\n */\nexport type ColorConfig = {\n command?: AnsiStyle[];\n arg?: AnsiStyle[];\n type?: AnsiStyle[];\n description?: AnsiStyle[];\n label?: AnsiStyle[];\n meta?: AnsiStyle[];\n example?: AnsiStyle[];\n exampleValue?: AnsiStyle[];\n deprecated?: AnsiStyle[];\n};\n\nexport type Colorizer = {\n command: (text: string) => string;\n arg: (text: string) => string;\n type: (text: string) => string;\n description: (text: string) => string;\n label: (text: string) => string;\n meta: (text: string) => string;\n example: (text: string) => string;\n exampleValue: (text: string) => string;\n deprecated: (text: string) => string;\n};\n\n// ============================================================================\n// Predefined Themes\n// ============================================================================\n\nconst defaultTheme: Required<ColorConfig> = {\n command: ['cyan', 'bold'],\n arg: ['green'],\n type: ['yellow'],\n description: ['dim'],\n label: ['bold'],\n meta: ['gray'],\n example: ['underline'],\n exampleValue: ['italic'],\n deprecated: ['strikethrough', 'gray'],\n};\n\nconst oceanTheme: Required<ColorConfig> = {\n command: ['blue', 'bold'],\n arg: ['cyan'],\n type: ['green'],\n description: ['dim'],\n label: ['bold'],\n meta: ['gray'],\n example: ['underline', 'cyan'],\n exampleValue: ['italic'],\n deprecated: ['strikethrough', 'gray'],\n};\n\nconst warmTheme: Required<ColorConfig> = {\n command: ['yellow', 'bold'],\n arg: ['red'],\n type: ['magenta'],\n description: ['dim'],\n label: ['bold'],\n meta: ['gray'],\n example: ['underline', 'yellow'],\n exampleValue: ['italic'],\n deprecated: ['strikethrough', 'gray'],\n};\n\nconst monochromeTheme: Required<ColorConfig> = {\n command: ['bold'],\n arg: ['underline'],\n type: ['dim'],\n description: ['dim'],\n label: ['bold'],\n meta: ['dim'],\n example: ['underline'],\n exampleValue: ['italic'],\n deprecated: ['strikethrough', 'dim'],\n};\n\n/**\n * Available predefined color themes.\n */\nexport type ColorTheme = 'default' | 'ocean' | 'warm' | 'monochrome';\n\nexport const colorThemes: Record<ColorTheme, Required<ColorConfig>> = {\n default: defaultTheme,\n ocean: oceanTheme,\n warm: warmTheme,\n monochrome: monochromeTheme,\n};\n\nfunction makeStyleFn(styles: AnsiStyle[]): (text: string) => string {\n const prefix = styles.map((s) => ansiCodes[s]).join('');\n return (text: string) => `${prefix}${text}${ansiCodes.reset}`;\n}\n\nfunction resolveConfig(config?: ColorTheme | ColorConfig): Required<ColorConfig> {\n if (!config) return defaultTheme;\n if (typeof config === 'string') return colorThemes[config] ?? defaultTheme;\n return { ...defaultTheme, ...config };\n}\n\nexport function createColorizer(config?: ColorTheme | ColorConfig): Colorizer {\n const resolved = resolveConfig(config);\n return {\n command: makeStyleFn(resolved.command),\n arg: makeStyleFn(resolved.arg),\n type: makeStyleFn(resolved.type),\n description: makeStyleFn(resolved.description),\n label: makeStyleFn(resolved.label),\n meta: makeStyleFn(resolved.meta),\n example: makeStyleFn(resolved.example),\n exampleValue: makeStyleFn(resolved.exampleValue),\n deprecated: makeStyleFn(resolved.deprecated),\n };\n}\n","import type { PadroneActionContext } from '../types/index.ts';\nimport { type ColorConfig, type ColorTheme, createColorizer } from './colorizer.ts';\n\nexport const DEFAULT_TERMINAL_WIDTH = 80;\n\nexport function wrapText(text: string, maxWidth: number): string[] {\n if (maxWidth <= 0 || text.length <= maxWidth) return [text];\n const words = text.split(' ');\n const lines: string[] = [];\n let current = '';\n for (const word of words) {\n if (current && current.length + 1 + word.length > maxWidth) {\n lines.push(current);\n current = word;\n } else {\n current = current ? `${current} ${word}` : word;\n }\n }\n if (current) lines.push(current);\n return lines.length > 0 ? lines : [text];\n}\n\nexport function escapeHtml(text: string): string {\n return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"').replace(/'/g, ''');\n}\n\n// ── Styler ──────────────────────────────────────────────────────────────\n\n/**\n * Styling functions for semantic text roles.\n * Used by formatters to apply visual styles (ANSI, HTML, Markdown, etc.)\n * to different types of content.\n */\nexport type Styler = {\n command: (text: string) => string;\n arg: (text: string) => string;\n type: (text: string) => string;\n description: (text: string) => string;\n label: (text: string) => string;\n section: (text: string) => string;\n meta: (text: string) => string;\n example: (text: string) => string;\n exampleValue: (text: string) => string;\n deprecated: (text: string) => string;\n};\n\n/**\n * Layout configuration for formatters.\n */\nexport type LayoutConfig = {\n newline: string;\n indent: (level: number) => string;\n join: (parts: string[]) => string;\n wrapDocument?: (content: string) => string;\n};\n\n// ── Styler Factories ────────────────────────────────────────────────────\n\nexport function createTextStyler(): Styler {\n return {\n command: (text) => text,\n arg: (text) => text,\n type: (text) => text,\n description: (text) => text,\n label: (text) => text,\n section: (text) => text,\n meta: (text) => text,\n example: (text) => text,\n exampleValue: (text) => text,\n deprecated: (text) => text,\n };\n}\n\nexport function createAnsiStyler(theme?: ColorTheme | ColorConfig): Styler {\n const colorizer = createColorizer(theme);\n return {\n command: colorizer.command,\n arg: colorizer.arg,\n type: colorizer.type,\n description: colorizer.description,\n label: colorizer.label,\n section: colorizer.label,\n meta: colorizer.meta,\n example: colorizer.example,\n exampleValue: colorizer.exampleValue,\n deprecated: colorizer.deprecated,\n };\n}\n\nexport function createConsoleStyler(theme?: ColorTheme | ColorConfig): Styler {\n return createAnsiStyler(theme);\n}\n\nexport function createMarkdownStyler(): Styler {\n return {\n command: (text) => `**${text}**`,\n arg: (text) => `\\`${text}\\``,\n type: (text) => `\\`${text}\\``,\n description: (text) => text,\n label: (text) => `**${text}**`,\n section: (text) => `### ${text}`,\n meta: (text) => `*${text}*`,\n example: (text) => `**${text}**`,\n exampleValue: (text) => `\\`${text}\\``,\n deprecated: (text) => `~~${text}~~`,\n };\n}\n\nexport function createHtmlStyler(): Styler {\n return {\n command: (text) => `<strong style=\"color: #00bcd4;\">${escapeHtml(text)}</strong>`,\n arg: (text) => `<code style=\"color: #4caf50;\">${escapeHtml(text)}</code>`,\n type: (text) => `<code style=\"color: #ff9800;\">${escapeHtml(text)}</code>`,\n description: (text) => `<span style=\"color: #666;\">${escapeHtml(text)}</span>`,\n label: (text) => `<strong>${escapeHtml(text)}</strong>`,\n section: (text) => `<h3>${escapeHtml(text)}</h3>`,\n meta: (text) => `<span style=\"color: #999;\">${escapeHtml(text)}</span>`,\n example: (text) => `<strong style=\"text-decoration: underline;\">${escapeHtml(text)}</strong>`,\n exampleValue: (text) => `<em>${escapeHtml(text)}</em>`,\n deprecated: (text) => `<del style=\"color: #999;\">${escapeHtml(text)}</del>`,\n };\n}\n\n// ── Layout Factories ────────────────────────────────────────────────────\n\nexport function createTextLayout(): LayoutConfig {\n return {\n newline: '\\n',\n indent: (level) => ' '.repeat(level),\n join: (parts) => parts.filter(Boolean).join(' '),\n };\n}\n\nexport function createMarkdownLayout(): LayoutConfig {\n return {\n newline: '\\n\\n',\n indent: (level) => {\n if (level === 0) return '';\n if (level === 1) return ' ';\n return ' ';\n },\n join: (parts) => parts.filter(Boolean).join(' '),\n };\n}\n\nexport function createHtmlLayout(): LayoutConfig {\n return {\n newline: '<br>',\n indent: (level) => ' '.repeat(level),\n join: (parts) => parts.filter(Boolean).join(' '),\n wrapDocument: (content) => `<div style=\"font-family: monospace; line-height: 1.6;\">${content}</div>`,\n };\n}\n\n// ── Format Detection ────────────────────────────────────────────────────\n\nexport function shouldUseAnsi(env?: Record<string, string | undefined>, isTTY?: boolean): boolean {\n if (env?.NO_COLOR) return false;\n if (env?.CI) return false;\n if (typeof isTTY === 'boolean') return isTTY;\n return false;\n}\n\n// ── Output Context ──────────────────────────────────────────────────────\n\n/** Resolved formatting context used by output primitives. */\nexport type OutputFormat = 'text' | 'ansi' | 'json' | 'markdown' | 'html';\n\nexport type OutputContext = {\n format: OutputFormat;\n styler: Styler;\n layout: LayoutConfig;\n terminalWidth?: number;\n};\n\n/** Resolve the output format from the runtime and caller context. */\nexport function resolveOutputFormat(\n runtime: {\n format?: string;\n theme?: ColorTheme | ColorConfig;\n terminal?: { columns?: number; isTTY?: boolean };\n env: () => Record<string, string | undefined>;\n },\n caller?: PadroneActionContext['caller'],\n): OutputContext {\n let format: OutputFormat;\n\n if (caller === 'serve' || caller === 'mcp' || caller === 'tool') {\n format = 'json';\n } else if (runtime.format && runtime.format !== 'auto' && runtime.format !== 'console') {\n format = runtime.format as OutputFormat;\n } else {\n format = shouldUseAnsi(runtime.env(), runtime.terminal?.isTTY) ? 'ansi' : 'text';\n }\n\n const terminalWidth = format === 'markdown' || format === 'html' ? undefined : (runtime.terminal?.columns ?? DEFAULT_TERMINAL_WIDTH);\n\n let styler: Styler;\n let layout: LayoutConfig;\n\n switch (format) {\n case 'ansi':\n styler = createAnsiStyler(runtime.theme);\n layout = createTextLayout();\n break;\n case 'markdown':\n styler = createMarkdownStyler();\n layout = createMarkdownLayout();\n break;\n case 'html':\n styler = createHtmlStyler();\n layout = createHtmlLayout();\n break;\n default:\n styler = createTextStyler();\n layout = createTextLayout();\n break;\n }\n\n return { format, styler, layout, terminalWidth };\n}\n","import type { AnyPadroneCommand } from '../types/index.ts';\n\nexport function getRootCommand(cmd: AnyPadroneCommand): AnyPadroneCommand {\n let current = cmd;\n while (current.parent) current = current.parent;\n return current;\n}\n\nasync function readVersionFromPackageJson(): Promise<string> {\n try {\n const fs = await import('node:fs');\n const path = await import('node:path');\n let dir = process.cwd();\n\n // Walk up the directory tree looking for package.json\n for (let i = 0; i < 10; i++) {\n const pkgPath = path.join(dir, 'package.json');\n if (fs.existsSync(pkgPath)) {\n const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));\n if (pkg.version) return pkg.version;\n }\n const parentDir = path.dirname(dir);\n if (parentDir === dir) break; // Reached root\n dir = parentDir;\n }\n } catch {\n // Ignore errors (e.g., fs not available in browser)\n }\n return '0.0.0';\n}\n\n/**\n * Attempts to get the version from various sources:\n * 1. Explicit version set on the command\n * 2. npm_package_version environment variable (set by npm/yarn/pnpm when running scripts)\n * 3. package.json in current or parent directories\n *\n * Returns synchronously when an explicit version or env var is available.\n * Falls back to async package.json discovery otherwise.\n */\nexport function getVersion(explicitVersion?: string): string | Promise<string> {\n if (explicitVersion) return explicitVersion;\n\n if (typeof process !== 'undefined' && process.env?.npm_package_version) {\n return process.env.npm_package_version;\n }\n\n if (typeof process !== 'undefined') return readVersionFromPackageJson();\n\n return '0.0.0';\n}\n","import { camelToKebab } from '../util/shell-utils.ts';\nimport type { ColorConfig, ColorTheme } from './colorizer.ts';\nimport {\n createAnsiStyler,\n createConsoleStyler,\n createHtmlLayout,\n createHtmlStyler,\n createMarkdownLayout,\n createMarkdownStyler,\n createTextLayout,\n createTextStyler,\n DEFAULT_TERMINAL_WIDTH,\n type LayoutConfig,\n type Styler,\n shouldUseAnsi,\n wrapText,\n} from './styling.ts';\n\nexport type HelpFormat = 'text' | 'ansi' | 'console' | 'markdown' | 'html' | 'json';\nexport type HelpDetail = 'minimal' | 'standard' | 'full';\n\n// ============================================================================\n// Help Info Types (shared with help.ts)\n// ============================================================================\n\n/**\n * Information about a single positional argument.\n */\nexport type HelpPositionalInfo = {\n name: string;\n description?: string;\n optional: boolean;\n default?: unknown;\n type?: string;\n enum?: string[];\n};\n\n/**\n * Information about a single argument/flag.\n */\nexport type HelpArgumentInfo = {\n name: string;\n description?: string;\n optional: boolean;\n default?: unknown;\n type?: string;\n enum?: string[];\n /** Single-character short flags (shown as `-v`) */\n flags?: string[];\n /** Multi-character alternative long names (shown as `--dry-run`) */\n aliases?: string[];\n deprecated?: boolean | string;\n hidden?: boolean;\n examples?: unknown[];\n /** Environment variable(s) this arg can be set from */\n env?: string | string[];\n /** Whether this arg is an array type (shown as <type...>) */\n variadic?: boolean;\n /** Whether this arg is a boolean (shown as --[no-]arg) */\n negatable?: boolean;\n /** Custom negative keyword(s) that set this arg to false (e.g. `['remote']` for `--remote`) */\n negative?: string[];\n /** Config file key that maps to this arg */\n configKey?: string;\n /** Group name for organizing this option under a labeled section in help output */\n group?: string;\n};\n\n/**\n * Information about a subcommand (minimal info for listing).\n */\nexport type HelpSubcommandInfo = {\n name: string;\n title?: string;\n description?: string;\n aliases?: string[];\n deprecated?: boolean | string;\n hidden?: boolean;\n hasSubcommands?: boolean;\n /** Group name for organizing this command under a labeled section in help output */\n group?: string;\n};\n\n/**\n * Information about a built-in command/flag entry.\n */\nexport type HelpBuiltinInfo = {\n name: string;\n description?: string;\n sub?: { name: string; description?: string }[];\n};\n\n/**\n * Comprehensive JSON structure for help information.\n * This is the single source of truth that all formatters use.\n */\nexport type HelpInfo = {\n /** The full command name (e.g., \"cli serve\" or \"<root>\") */\n name: string;\n /** Short title for the command */\n title?: string;\n /** Command description */\n description?: string;\n /** Alternative names/aliases for this command */\n aliases?: string[];\n /** Whether the command is deprecated */\n deprecated?: boolean | string;\n /** Whether the command is hidden */\n hidden?: boolean;\n /** Usage string parts for flexible formatting */\n usage: {\n command: string;\n hasSubcommands: boolean;\n hasPositionals: boolean;\n hasArguments: boolean;\n /** The name of the field that reads from stdin, if any. Shown as `[stdin > field]` in usage. */\n stdinField?: string;\n };\n /** List of subcommands */\n subcommands?: HelpSubcommandInfo[];\n /** Positional arguments */\n positionals?: HelpPositionalInfo[];\n /** Arguments/flags (only visible ones, hidden filtered out) */\n arguments?: HelpArgumentInfo[];\n /** Built-in commands and flags (shown only for root command) */\n builtins?: HelpBuiltinInfo[];\n /** Command-level usage examples (shown in help output) */\n examples?: string[];\n /** Full help info for nested commands (used in 'full' detail mode) */\n nestedCommands?: HelpInfo[];\n};\n\n// ============================================================================\n// Formatter Interface\n// ============================================================================\n\n/**\n * A formatter that takes the entire HelpInfo structure and produces formatted output.\n */\nexport type Formatter = {\n /** Format the entire help info structure into a string */\n format: (info: HelpInfo) => string;\n};\n\n// ============================================================================\n// Generic Formatter Implementation\n// ============================================================================\n\n/**\n * Creates a formatter that uses the given styler and layout configuration.\n */\nfunction createGenericFormatter(styler: Styler, layout: LayoutConfig, showAllBuiltins?: boolean, terminalWidth?: number): Formatter {\n const { newline, indent, join, wrapDocument } = layout;\n\n function formatUsageSection(info: HelpInfo): string[] {\n const usageParts: string[] = [styler.command(info.usage.command), info.usage.hasSubcommands ? styler.meta('[command]') : ''];\n // Show actual positional argument names in usage line\n if (info.positionals && info.positionals.length > 0) {\n for (const arg of info.positionals) {\n const name = arg.name.startsWith('...') ? `${arg.name}` : arg.name;\n usageParts.push(styler.meta(arg.optional ? `[${name}]` : `<${name}>`));\n }\n }\n if (info.usage.hasArguments) usageParts.push(styler.meta('[options]'));\n return [`${styler.label('Usage:')} ${join(usageParts)}`];\n }\n\n function formatSubcommandsSection(info: HelpInfo): string[] {\n const lines: string[] = [];\n const subcommands = info.subcommands!;\n\n const subcommandSuffix = (c: HelpSubcommandInfo) => (c.hasSubcommands ? ' <subcommand>' : '');\n const formatAliasParts = (c: HelpSubcommandInfo) => {\n if (!c.aliases?.length) return { plain: '', styled: '' };\n const realAliases = c.aliases.filter((a) => a !== '[default]');\n const hasDefault = c.aliases.some((a) => a === '[default]');\n const parts: string[] = [];\n const styledParts: string[] = [];\n if (realAliases.length) {\n parts.push(`(${realAliases.join(', ')})`);\n styledParts.push(`(${realAliases.join(', ')})`);\n }\n if (hasDefault) {\n parts.push('[default]');\n styledParts.push(styler.meta('[default]'));\n }\n return { plain: parts.length ? ` ${parts.join(' ')}` : '', styled: styledParts.length ? ` ${styledParts.join(' ')}` : '' };\n };\n // Column width is computed across all subcommands for consistent alignment\n const maxNameLength = Math.max(\n ...subcommands.map((c) => {\n return (c.name + subcommandSuffix(c) + formatAliasParts(c).plain).length;\n }),\n );\n\n const grouped = Object.groupBy(subcommands, (c) => c.group ?? '');\n\n const renderSubcommands = (cmds: HelpSubcommandInfo[]) => {\n for (const subCmd of cmds) {\n const aliasParts = formatAliasParts(subCmd);\n const suffix = subcommandSuffix(subCmd);\n const commandDisplay = subCmd.name + suffix + aliasParts.plain;\n const padding = ' '.repeat(Math.max(0, maxNameLength - commandDisplay.length + 2));\n const isDeprecated = !!subCmd.deprecated;\n const isDefaultEntry = subCmd.name === '[default]';\n const commandName = isDeprecated\n ? styler.deprecated(commandDisplay)\n : (isDefaultEntry ? styler.meta(subCmd.name) : styler.command(subCmd.name)) +\n (suffix ? styler.meta(suffix) : '') +\n aliasParts.styled;\n const lineParts: string[] = [commandName, padding];\n\n // Use title if available, otherwise use description\n const displayText = subCmd.title ?? subCmd.description;\n if (displayText) {\n lineParts.push(isDeprecated ? styler.deprecated(displayText) : styler.description(displayText));\n }\n if (isDeprecated) {\n const deprecatedMeta =\n typeof subCmd.deprecated === 'string' ? styler.meta(` (deprecated: ${subCmd.deprecated})`) : styler.meta(' (deprecated)');\n lineParts.push(deprecatedMeta);\n }\n lines.push(indent(1) + lineParts.join(''));\n }\n };\n\n for (const [key, items] of Object.entries(grouped)) {\n if (lines.length > 0) lines.push('');\n lines.push(styler.section(key ? `${key}:` : 'Commands:'));\n renderSubcommands(items!);\n }\n\n // Skip hint when builtins are present — the builtins section shows a combined hint\n if (!info.builtins?.length) {\n lines.push('');\n lines.push(styler.meta(`Run \"${info.name} [command] --help\" for more information on a command.`));\n }\n\n return lines;\n }\n\n function formatPositionalsSection(info: HelpInfo): string[] {\n const lines: string[] = [];\n const args = info.positionals!;\n\n lines.push(styler.section('Arguments:'));\n\n const maxNameLength = Math.min(32, Math.max(...args.map((a) => a.name.length)));\n const descCol = 2 + maxNameLength + 2;\n const posAvailWidth = terminalWidth ? terminalWidth - descCol : undefined;\n const descColPad = ' '.repeat(descCol);\n\n for (const arg of args) {\n const padding = ' '.repeat(Math.max(2, maxNameLength - arg.name.length + 2));\n const prefix = indent(1) + styler.arg(arg.name) + padding;\n\n const descPlain = arg.description ?? '';\n const styledDesc = descPlain ? styler.description(descPlain) : '';\n\n const metaParts: string[] = [];\n const styledMetaParts: string[] = [];\n if (info.usage.stdinField === arg.name) {\n metaParts.push('(stdin)');\n styledMetaParts.push(styler.meta('(stdin)'));\n }\n if (arg.enum) {\n const text = `(choices: ${arg.enum.join(', ')})`;\n metaParts.push(text);\n styledMetaParts.push(styler.meta(text));\n }\n if (arg.default !== undefined) {\n const text = `(default: ${String(arg.default)})`;\n metaParts.push(text);\n styledMetaParts.push(styler.meta(text));\n }\n\n const metaStyled = join(styledMetaParts);\n\n if (posAvailWidth && posAvailWidth > 0) {\n const metaPlain = metaParts.join(' ');\n const fullPlain = [descPlain, metaPlain].filter(Boolean).join(' ');\n if (fullPlain.length <= posAvailWidth) {\n lines.push(prefix + [styledDesc, metaStyled].filter(Boolean).join(' '));\n } else if (!descPlain || descPlain.length <= posAvailWidth) {\n lines.push(prefix + styledDesc);\n if (metaStyled) lines.push(descColPad + metaStyled);\n } else {\n const wrapped = wrapText(descPlain, posAvailWidth);\n lines.push(prefix + styler.description(wrapped[0]!));\n for (const wline of wrapped.slice(1)) lines.push(descColPad + styler.description(wline));\n if (metaStyled) lines.push(descColPad + metaStyled);\n }\n } else {\n lines.push(prefix + join([styledDesc, metaStyled]));\n }\n }\n\n return lines;\n }\n\n function formatArgumentsSection(info: HelpInfo): string[] {\n const lines: string[] = [];\n const argList = info.arguments || [];\n\n // Helper to check if a default value is meaningful (not empty string/array)\n const hasDefault = (value: unknown): boolean => {\n if (value === undefined) return false;\n if (value === '') return false;\n if (Array.isArray(value) && value.length === 0) return false;\n return true;\n };\n\n // Build columns: flags | names | type | description\n const argColumns = argList.map((arg) => {\n // Promote kebab-case alias to primary display name if it exists\n const kebab = camelToKebab(arg.name);\n const primaryName = kebab && arg.aliases?.includes(kebab) ? kebab : arg.name;\n const remainingAliases = arg.aliases?.filter((a) => a !== primaryName);\n\n const flagsPlain = arg.flags?.length ? arg.flags.map((f) => `-${f}`).join(', ') : '';\n const negPlain = arg.negative?.length ? arg.negative.map((n) => `--${n}`).join(', ') : '';\n const namesPlain = [`--${primaryName}`, ...(remainingAliases?.map((a) => `--${a}`) || []), ...(negPlain ? [negPlain] : [])].join(\n ', ',\n );\n const typePlain = arg.type && arg.type !== 'boolean' ? (arg.optional ? `[${arg.type}]` : `<${arg.type}>`) : '';\n\n const isDeprecated = !!arg.deprecated;\n\n return { flagsPlain, namesPlain, typePlain, isDeprecated, arg };\n });\n\n // Column widths are computed across all args (regardless of group) for consistent alignment\n const maxFlagsWidth = Math.min(12, Math.max(0, ...argColumns.map((c) => c.flagsPlain.length)));\n const maxNamesWidth = Math.min(32, Math.max(0, ...argColumns.map((c) => c.namesPlain.length)));\n const maxTypeWidth = Math.min(16, Math.max(0, ...argColumns.map((c) => c.typePlain.length)));\n const hasAnyFlags = maxFlagsWidth > 0;\n const descCol = 2 + (hasAnyFlags ? maxFlagsWidth + 2 : 0) + maxNamesWidth + 2 + (maxTypeWidth > 0 ? maxTypeWidth + 2 : 0);\n const argAvailWidth = terminalWidth ? terminalWidth - descCol : undefined;\n const descColPad = ' '.repeat(descCol);\n\n // Split into ordered groups: ungrouped first as \"Options:\", then each group in first-seen order\n const grouped = Object.groupBy(argColumns, (c) => c.arg.group ?? '');\n\n const renderArgColumns = (columns: typeof argColumns) => {\n for (const { flagsPlain, namesPlain, typePlain, isDeprecated, arg } of columns) {\n const parts: string[] = [];\n\n // Flags column\n if (hasAnyFlags) {\n const styledFlags = isDeprecated ? (flagsPlain ? styler.deprecated(flagsPlain) : '') : flagsPlain ? styler.arg(flagsPlain) : '';\n const flagsPadding = ' '.repeat(Math.max(0, maxFlagsWidth - flagsPlain.length));\n const separator = flagsPlain ? ', ' : ' ';\n parts.push(styledFlags + flagsPadding + separator);\n }\n\n // Names column\n const styledNames = isDeprecated ? styler.deprecated(namesPlain) : styler.arg(namesPlain);\n const namesPadding = ' '.repeat(Math.max(2, maxNamesWidth - namesPlain.length + 2));\n parts.push(styledNames + namesPadding);\n\n // Type column\n if (maxTypeWidth > 0) {\n const styledType = typePlain ? styler.type(typePlain) : '';\n const typePadding = ' '.repeat(Math.max(2, maxTypeWidth - typePlain.length + 2));\n parts.push(styledType + typePadding);\n }\n\n const prefix = indent(1) + parts.join('');\n const contPad = argAvailWidth ? descColPad : indent(3);\n\n // Build inline meta (deprecated no-reason, default, choices)\n const inlineMeta: string[] = [];\n const styledInlineMeta: string[] = [];\n if (isDeprecated && typeof arg.deprecated !== 'string') {\n inlineMeta.push('(deprecated)');\n styledInlineMeta.push(styler.meta('(deprecated)'));\n }\n if (hasDefault(arg.default)) {\n const text = `(default: ${String(arg.default)})`;\n inlineMeta.push(text);\n styledInlineMeta.push(styler.meta(text));\n }\n if (arg.enum) {\n const text = `(choices: ${arg.enum.join(', ')})`;\n inlineMeta.push(text);\n styledInlineMeta.push(styler.meta(text));\n }\n\n const descPlain = arg.description ?? '';\n const styledDesc = descPlain ? (isDeprecated ? styler.deprecated(descPlain) : styler.description(descPlain)) : '';\n const metaStyled = join(styledInlineMeta);\n\n if (argAvailWidth && argAvailWidth > 0) {\n // Terminal-width-aware: try to fit description + meta on one line\n const metaPlain = inlineMeta.join(' ');\n const fullPlain = [descPlain, metaPlain].filter(Boolean).join(' ');\n if (fullPlain.length <= argAvailWidth) {\n lines.push(prefix + [styledDesc, metaStyled].filter(Boolean).join(' '));\n } else if (!descPlain || descPlain.length <= argAvailWidth) {\n lines.push(prefix + styledDesc);\n if (metaStyled) lines.push(descColPad + metaStyled);\n } else {\n const wrapped = wrapText(descPlain, argAvailWidth);\n const styleFn = isDeprecated ? styler.deprecated : styler.description;\n lines.push(prefix + styleFn(wrapped[0]!));\n for (const wline of wrapped.slice(1)) lines.push(descColPad + styleFn(wline));\n if (metaStyled) lines.push(descColPad + metaStyled);\n }\n } else {\n // No terminal width (markdown/html): description on line 1, meta on line 2\n const descParts: string[] = [];\n if (styledDesc) descParts.push(styledDesc);\n lines.push(prefix + join(descParts));\n if (styledInlineMeta.length > 0) lines.push(indent(3) + metaStyled);\n }\n\n // Deprecated (with reason), examples — always on separate line\n const line3Parts: string[] = [];\n if (isDeprecated && typeof arg.deprecated === 'string') line3Parts.push(styler.meta(`(deprecated: ${arg.deprecated})`));\n if (arg.examples && arg.examples.length > 0) {\n const exampleValues = arg.examples.map((example) => (typeof example === 'string' ? example : JSON.stringify(example))).join(', ');\n line3Parts.push(styler.example('Example:'), styler.exampleValue(exampleValues));\n }\n if (line3Parts.length > 0) lines.push(contPad + join(line3Parts));\n\n // stdin, env, config — always on separate line\n const line4Parts: string[] = [];\n if (info.usage.stdinField === arg.name) line4Parts.push(styler.meta('(stdin)'));\n if (arg.env) {\n const envVars = typeof arg.env === 'string' ? [arg.env] : arg.env;\n line4Parts.push(styler.example('Env:'), styler.exampleValue(envVars.join(', ')));\n }\n if (arg.configKey) {\n line4Parts.push(styler.example('Config:'), styler.exampleValue(arg.configKey));\n }\n if (line4Parts.length > 0) lines.push(contPad + join(line4Parts));\n }\n };\n\n for (const [key, items] of Object.entries(grouped)) {\n if (lines.length > 0) lines.push('');\n lines.push(styler.section(key ? `${key}:` : 'Options:'));\n renderArgColumns(items!);\n }\n\n return lines;\n }\n\n function formatBuiltinsSection(info: HelpInfo): string[] {\n const lines: string[] = [];\n const builtins = info.builtins!;\n\n if (!showAllBuiltins) {\n // Collapsed summary: show selected builtins on a single line with a combined hint\n const highlights = ['help [command]', 'version', '[command] --repl'];\n lines.push(`${styler.label('Global:')} ${styler.meta(highlights.join(', '))}`);\n const hint = info.usage.hasSubcommands\n ? `Run \"${info.name} [command] --help\" for more information. Use \"--all\" for all global commands.`\n : `Use \"${info.name} help --all\" for more information on global commands.`;\n lines.push(styler.meta(hint));\n return lines;\n }\n\n lines.push(styler.section('Global:'));\n\n // Compute max effective name length for alignment across main and sub entries\n const allLengths: number[] = [];\n for (const entry of builtins) {\n allLengths.push(entry.name.length);\n if (entry.sub) {\n for (const sub of entry.sub) {\n // Sub entries get extra indent(2) - indent(1) = 2 chars\n allLengths.push(sub.name.length + 2);\n }\n }\n }\n const maxLen = Math.max(...allLengths);\n\n for (const entry of builtins) {\n const padding = ' '.repeat(Math.max(2, maxLen - entry.name.length + 2));\n const parts: string[] = [styler.command(entry.name)];\n if (entry.description) parts.push(padding + styler.description(entry.description));\n lines.push(indent(1) + parts.join(''));\n\n if (entry.sub) {\n for (const sub of entry.sub) {\n const subPadding = ' '.repeat(Math.max(2, maxLen - sub.name.length));\n const subParts: string[] = [styler.arg(sub.name)];\n if (sub.description) subParts.push(subPadding + styler.description(sub.description));\n lines.push(indent(2) + subParts.join(''));\n }\n }\n }\n\n return lines;\n }\n\n return {\n format(info: HelpInfo): string {\n const lines: string[] = [];\n\n // Show deprecation warning at the top if command is deprecated\n if (info.deprecated) {\n const deprecationMessage =\n typeof info.deprecated === 'string' ? `⚠️ This command is deprecated: ${info.deprecated}` : '⚠️ This command is deprecated';\n lines.push(styler.deprecated(deprecationMessage));\n lines.push('');\n }\n\n // Usage section\n lines.push(...formatUsageSection(info));\n lines.push('');\n\n // Title section (if present, shows a short summary line)\n if (info.title) {\n lines.push(styler.label(info.title));\n lines.push('');\n }\n\n // Aliases section (if present)\n if (info.aliases && info.aliases.length > 0) {\n lines.push(styler.meta(`Aliases: ${info.aliases.join(', ')}`));\n lines.push('');\n }\n\n // Description section (if present)\n if (info.description) {\n lines.push(styler.description(info.description));\n lines.push('');\n }\n\n // Examples section (if present)\n if (info.examples && info.examples.length > 0) {\n lines.push(styler.section('Examples:'));\n for (const ex of info.examples) {\n lines.push(indent(1) + styler.meta('$ ') + styler.exampleValue(ex));\n }\n lines.push('');\n }\n\n // Subcommands section\n if (info.subcommands && info.subcommands.length > 0) {\n lines.push(...formatSubcommandsSection(info));\n lines.push('');\n }\n\n if (info.positionals && info.positionals.length > 0) {\n lines.push(...formatPositionalsSection(info));\n lines.push('');\n }\n\n if (info.arguments && info.arguments.length > 0) {\n lines.push(...formatArgumentsSection(info));\n lines.push('');\n }\n\n if (info.builtins && info.builtins.length > 0) {\n lines.push(...formatBuiltinsSection(info));\n lines.push('');\n }\n\n // Show --no- hint when there are negatable boolean options defaulting to true\n if (info.arguments?.some((arg) => arg.negatable && arg.default === true)) {\n lines.push(styler.meta('Boolean options can be negated with --no-<option>.'));\n lines.push('');\n }\n\n // Nested commands section (full detail mode)\n if (info.nestedCommands?.length) {\n lines.push(styler.section('Subcommand Details:'));\n lines.push('');\n for (const nestedCmd of info.nestedCommands) {\n lines.push(styler.meta('─'.repeat(60)));\n lines.push(this.format(nestedCmd));\n }\n }\n\n const result = lines.join(newline);\n return wrapDocument ? wrapDocument(result) : result;\n },\n };\n}\n\n// ============================================================================\n// JSON Formatter\n// ============================================================================\n\nfunction createJsonFormatter(): Formatter {\n return {\n format(info: HelpInfo): string {\n return JSON.stringify(info, null, 2);\n },\n };\n}\n\n// ============================================================================\n// Minimal Formatter\n// ============================================================================\n\n/**\n * Creates a minimal formatter that outputs just a single-line usage string.\n */\nfunction createMinimalFormatter(): Formatter {\n return {\n format(info: HelpInfo): string {\n const parts: string[] = [info.usage.command];\n if (info.usage.hasSubcommands) parts.push('[command]');\n if (info.positionals && info.positionals.length > 0) {\n for (const arg of info.positionals) {\n const name = arg.name.startsWith('...') ? `${arg.name}` : arg.name;\n parts.push(arg.optional ? `[${name}]` : `<${name}>`);\n }\n }\n if (info.usage.hasArguments) parts.push('[options]');\n return parts.join(' ');\n },\n };\n}\n\nexport function createFormatter(\n format: HelpFormat | 'auto',\n detail: HelpDetail = 'standard',\n theme?: ColorTheme | ColorConfig,\n all?: boolean,\n width?: number,\n terminal?: { columns?: number; isTTY?: boolean },\n env?: Record<string, string | undefined>,\n): Formatter {\n if (detail === 'minimal') return createMinimalFormatter();\n if (format === 'json') return createJsonFormatter();\n const tw = format === 'markdown' || format === 'html' ? undefined : (width ?? terminal?.columns ?? DEFAULT_TERMINAL_WIDTH);\n if (format === 'ansi' || (format === 'auto' && shouldUseAnsi(env, terminal?.isTTY)))\n return createGenericFormatter(createAnsiStyler(theme), createTextLayout(), all, tw);\n if (format === 'console') return createGenericFormatter(createConsoleStyler(theme), createTextLayout(), all, tw);\n if (format === 'markdown') return createGenericFormatter(createMarkdownStyler(), createMarkdownLayout(), all);\n if (format === 'html') return createGenericFormatter(createHtmlStyler(), createHtmlLayout(), all);\n return createGenericFormatter(createTextStyler(), createTextLayout(), all, tw);\n}\n","import type { StandardJSONSchemaV1 } from '@standard-schema/spec';\nimport { extractSchemaMetadata, getJsonSchema, type PadroneArgsSchemaMeta, parsePositionalConfig } from '../core/args.ts';\nimport { findCommandByName } from '../core/commands.ts';\nimport type { AnyPadroneCommand } from '../types/index.ts';\nimport { getRootCommand } from '../util/utils.ts';\nimport type { ColorConfig, ColorTheme } from './colorizer.ts';\nimport {\n createFormatter,\n type HelpArgumentInfo,\n type HelpDetail,\n type HelpFormat,\n type HelpInfo,\n type HelpPositionalInfo,\n type HelpSubcommandInfo,\n} from './formatter.ts';\n\nexport type HelpPreferences = {\n format?: HelpFormat | 'auto';\n detail?: HelpDetail;\n theme?: ColorTheme | ColorConfig;\n /** Show all global commands and flags in full detail */\n all?: boolean;\n /** Terminal width for text wrapping. Defaults to terminal columns or 80. */\n width?: number;\n /** Terminal capabilities for auto-detection of ANSI and width. */\n terminal?: { columns?: number; isTTY?: boolean };\n /** Environment variables for auto-detection (e.g., NO_COLOR, CI). */\n env?: Record<string, string | undefined>;\n};\n\n/**\n * Extract positional arguments info from schema based on meta.positional config.\n */\nfunction extractPositionalArgsInfo(\n schema: StandardJSONSchemaV1,\n meta?: PadroneArgsSchemaMeta,\n): { args: HelpPositionalInfo[]; positionalNames: Set<string> } {\n const args: HelpPositionalInfo[] = [];\n const positionalNames = new Set<string>();\n\n if (!schema || !meta?.positional || meta.positional.length === 0) {\n return { args, positionalNames };\n }\n\n const positionalConfig = parsePositionalConfig(meta.positional);\n\n try {\n const jsonSchema = getJsonSchema(schema) as Record<string, any>;\n\n if (jsonSchema.type === 'object' && jsonSchema.properties) {\n const properties = jsonSchema.properties as Record<string, any>;\n const required = (jsonSchema.required as string[]) || [];\n\n for (const { name, variadic } of positionalConfig) {\n const prop = properties[name];\n if (!prop) continue;\n\n positionalNames.add(name);\n const optMeta = meta.fields?.[name];\n\n args.push({\n name: variadic ? `...${name}` : name,\n description: optMeta?.description ?? prop.description,\n optional: !required.includes(name),\n default: prop.default,\n type: variadic ? `array<${prop.items?.type || 'string'}>` : prop.type,\n enum: (prop.enum ?? prop.items?.enum) as string[] | undefined,\n });\n }\n }\n } catch {\n // Fallback to empty result if toJSONSchema fails\n }\n\n return { args, positionalNames };\n}\n\nfunction extractArgsInfo(schema: StandardJSONSchemaV1, meta?: PadroneArgsSchemaMeta, positionalNames?: Set<string>) {\n const result: HelpArgumentInfo[] = [];\n if (!schema) return result;\n\n const vendor = schema['~standard'].vendor;\n if (!vendor.includes('zod')) return result;\n\n const argsMeta = meta?.fields;\n\n try {\n const jsonSchema = getJsonSchema(schema) as Record<string, any>;\n\n // Handle object: z.object({ key: z.string(), ... })\n if (jsonSchema.type === 'object' && jsonSchema.properties) {\n const properties = jsonSchema.properties as Record<string, any>;\n const required = (jsonSchema.required as string[]) || [];\n const propertyNames = new Set(Object.keys(properties));\n\n // Helper to check if a negated version of an arg exists\n const hasExplicitNegation = (key: string): boolean => {\n // Check for noVerbose style (camelCase)\n const camelNegated = `no${key.charAt(0).toUpperCase()}${key.slice(1)}`;\n if (propertyNames.has(camelNegated)) return true;\n // Check for no-verbose style (kebab-case, though rare in JS)\n const kebabNegated = `no-${key}`;\n if (propertyNames.has(kebabNegated)) return true;\n return false;\n };\n\n // Helper to check if this arg is itself a negation of another arg\n const isNegationOf = (key: string): boolean => {\n // Check for noVerbose -> verbose (camelCase)\n if (key.startsWith('no') && key.length > 2 && key[2] === key[2]?.toUpperCase()) {\n const positiveKey = key.charAt(2).toLowerCase() + key.slice(3);\n if (propertyNames.has(positiveKey)) return true;\n }\n // Check for no-verbose -> verbose (kebab-case)\n if (key.startsWith('no-')) {\n const positiveKey = key.slice(3);\n if (propertyNames.has(positiveKey)) return true;\n }\n return false;\n };\n\n for (const [key, prop] of Object.entries(properties)) {\n // Skip positional arguments - they are shown in arguments section\n if (positionalNames?.has(key)) continue;\n\n const isOptional = !required.includes(key);\n const enumValues = (prop.enum ?? prop.items?.enum) as string[] | undefined;\n const optMeta = argsMeta?.[key];\n const propType = prop.type as string;\n\n // Resolve custom negative keywords from meta or schema\n const rawNegative = optMeta?.negative ?? prop?.negative;\n const hasCustomNegative = rawNegative !== undefined;\n const negativeList = hasCustomNegative\n ? typeof rawNegative === 'string'\n ? rawNegative\n ? [rawNegative]\n : []\n : Array.from(rawNegative as readonly string[]).filter(Boolean)\n : undefined;\n\n // Booleans are negatable unless there's an explicit noArg property,\n // this arg is itself a negation of another arg, or custom negative keywords are set\n const isNegatable = propType === 'boolean' && !hasCustomNegative && !hasExplicitNegation(key) && !isNegationOf(key);\n\n result.push({\n name: key,\n description: optMeta?.description ?? prop.description,\n optional: isOptional,\n default: prop.default,\n type: propType === 'array' ? `${prop.items?.type || 'string'}[]` : propType,\n enum: enumValues,\n deprecated: optMeta?.deprecated ?? prop?.deprecated,\n hidden: optMeta?.hidden ?? prop?.hidden,\n examples: optMeta?.examples ?? prop?.examples,\n variadic: propType === 'array',\n negatable: isNegatable,\n negative: negativeList?.length ? negativeList : undefined,\n group: optMeta?.group,\n });\n }\n }\n } catch {\n // Fallback to empty result if toJSONSchema fails\n }\n\n return result;\n}\n\n// ============================================================================\n// Core Help Info Builder\n// ============================================================================\n\n/**\n * Builds a comprehensive HelpInfo structure from a command.\n * This is the single source of truth that all formatters use.\n * @param cmd - The command to build help info for\n * @param detail - The level of detail ('minimal', 'standard', or 'full')\n */\nexport function getHelpInfo(cmd: AnyPadroneCommand, detail: HelpPreferences['detail'] = 'standard', all?: boolean): HelpInfo {\n const rootCmd = getRootCommand(cmd);\n // A command is a \"default\" command if its name is '' or it has '' as an alias\n const isDefaultCommand = cmd.parent && (!cmd.name || cmd.aliases?.includes(''));\n // For commands with empty name, use the first non-empty alias as display name\n const nonEmptyAliases = cmd.aliases?.filter(Boolean);\n const commandName = cmd.path || cmd.name || nonEmptyAliases?.[0] || (cmd.parent ? '[default]' : 'program');\n // Build display aliases: real aliases (excluding the one promoted to display name) + [default] marker\n const remainingAliases = !cmd.name && nonEmptyAliases?.length ? nonEmptyAliases.slice(1) : (nonEmptyAliases ?? []);\n const displayAliases = isDefaultCommand ? [...remainingAliases, '[default]'] : nonEmptyAliases;\n\n // Extract positional args from schema based on meta.positional\n const { args: positionalArgs, positionalNames } = cmd.argsSchema\n ? extractPositionalArgsInfo(cmd.argsSchema, cmd.meta)\n : { args: [], positionalNames: new Set<string>() };\n\n const hasPositionals = positionalArgs.length > 0;\n\n const helpInfo: HelpInfo = {\n name: commandName,\n title: cmd.title,\n description: cmd.description,\n examples: cmd.examples,\n aliases: displayAliases,\n deprecated: cmd.deprecated,\n hidden: cmd.hidden,\n usage: {\n command: rootCmd === cmd ? commandName : `${rootCmd.name} ${commandName}`,\n hasSubcommands: !!(cmd.commands && cmd.commands.length > 0),\n hasPositionals,\n hasArguments: false, // updated below after extracting arguments\n stdinField: cmd.meta?.stdin,\n },\n };\n\n // Build subcommands info (filter out hidden commands unless showing full detail)\n if (cmd.commands && cmd.commands.length > 0) {\n const visibleCommands = detail === 'full' ? cmd.commands : cmd.commands.filter((c) => !c.hidden);\n // If the command has both a handler and subcommands, show the handler as a \"[default]\" entry\n const selfEntry: typeof helpInfo.subcommands = cmd.action\n ? [{ name: '[default]', title: cmd.title, description: cmd.description }]\n : [];\n\n helpInfo.subcommands = [\n ...selfEntry,\n ...visibleCommands.flatMap((c): HelpSubcommandInfo[] => {\n const isDefault = !c.name || c.aliases?.includes('');\n const nonEmptyAliases = c.aliases?.filter(Boolean);\n const displayName = c.name || nonEmptyAliases?.[0] || '[default]';\n const remainingAliases = !c.name && nonEmptyAliases?.length ? nonEmptyAliases.slice(1) : (nonEmptyAliases ?? []);\n // Only add [default] alias marker if it's not already the display name\n const displayAliases =\n isDefault && displayName !== '[default]' ? [...remainingAliases, '[default]'] : isDefault ? remainingAliases : nonEmptyAliases;\n const hasSubcommands = !!(c.commands && c.commands.length > 0);\n\n // If a command has subcommands AND a default handler (direct or '' subcommand),\n // show two entries: one for the default action, one for the subcommand router\n const hasDefaultHandler = c.action || c.commands?.some((sub) => !sub.name || sub.aliases?.includes(''));\n if (hasSubcommands && hasDefaultHandler) {\n const defaultSub = !c.action ? c.commands?.find((sub) => !sub.name || sub.aliases?.includes('')) : undefined;\n const hasDefaultSubInfo = defaultSub && (defaultSub.title || defaultSub.description);\n return [\n {\n name: displayName,\n title: hasDefaultSubInfo ? defaultSub.title : c.title,\n description: hasDefaultSubInfo ? defaultSub.description : c.description,\n aliases: displayAliases?.length ? displayAliases : undefined,\n deprecated: c.deprecated,\n hidden: c.hidden,\n group: c.group,\n },\n {\n name: displayName,\n title: c.title,\n description: c.description,\n deprecated: c.deprecated,\n hidden: c.hidden,\n hasSubcommands: true,\n group: c.group,\n },\n ];\n }\n\n return [\n {\n name: displayName,\n title: c.title,\n description: c.description,\n aliases: displayAliases?.length ? displayAliases : undefined,\n deprecated: c.deprecated,\n hidden: c.hidden,\n hasSubcommands,\n group: c.group,\n },\n ];\n }),\n ];\n\n // In 'full' detail mode, recursively build help for all nested commands\n if (detail === 'full') {\n helpInfo.nestedCommands = visibleCommands.map((c) => getHelpInfo(c, 'full'));\n }\n }\n\n // Build arguments info from positionals\n if (hasPositionals) {\n helpInfo.positionals = positionalArgs;\n }\n\n // Build arguments info with aliases (excluding positional args)\n if (cmd.argsSchema) {\n const argsInfo = extractArgsInfo(cmd.argsSchema, cmd.meta, positionalNames);\n const argMap: Record<string, HelpArgumentInfo> = Object.fromEntries(argsInfo.map((arg) => [arg.name, arg]));\n\n // Merge flags and aliases into arguments\n const { flags, aliases } = extractSchemaMetadata(cmd.argsSchema, cmd.meta?.fields, cmd.meta?.autoAlias);\n for (const [flag, name] of Object.entries(flags)) {\n const arg = argMap[name];\n if (!arg) continue;\n arg.flags = [...(arg.flags || []), flag];\n }\n for (const [alias, name] of Object.entries(aliases)) {\n const arg = argMap[name];\n if (!arg) continue;\n arg.aliases = [...(arg.aliases || []), alias];\n }\n\n // Filter out hidden arguments\n const visibleArgs = argsInfo.filter((arg) => !arg.hidden);\n if (visibleArgs.length > 0) {\n helpInfo.arguments = visibleArgs;\n helpInfo.usage.hasArguments = true;\n }\n }\n\n // Add global commands/flags (root command by default, all commands when --all is passed)\n if (!cmd.parent || all) {\n const builtins: HelpInfo['builtins'] = [];\n\n if (!findCommandByName('help', rootCmd.commands)) {\n builtins.push({\n name: 'help [command], -h, --help',\n description: 'Show help for a command',\n sub: [\n { name: '--all', description: 'Show all global commands and flags' },\n { name: '--detail <level>', description: 'Detail level (minimal, standard, full)' },\n { name: '--format <format>', description: 'Output format (text, ansi, json, markdown, html)' },\n ],\n });\n }\n\n if (!findCommandByName('version', rootCmd.commands)) {\n builtins.push({\n name: 'version, -v, --version',\n description: 'Show version information',\n });\n }\n\n if (!findCommandByName('completion', rootCmd.commands)) {\n builtins.push({\n name: 'completion [shell]',\n description: 'Generate shell completions (bash, zsh, fish, powershell)',\n });\n }\n\n if (!findCommandByName('man', rootCmd.commands)) {\n builtins.push({\n name: 'man',\n description: 'Show or install man pages (--setup to install, --remove to uninstall) (experimental)',\n });\n }\n\n builtins.push({\n name: '[command] --repl',\n description: 'Start interactive REPL scoped to a command',\n });\n\n if (!findCommandByName('mcp', rootCmd.commands)) {\n builtins.push({\n name: 'mcp [http|stdio]',\n description: 'Start a Model Context Protocol server to expose commands as AI tools (experimental)',\n sub: [\n { name: '--port <port>', description: 'HTTP port (default: 3000)' },\n { name: '--host <host>', description: 'HTTP host (default: 127.0.0.1)' },\n ],\n });\n }\n\n builtins.push({\n name: '--color [theme], --no-color',\n description: 'Set color theme (default, ocean, warm, monochrome) or disable colors',\n });\n\n if (builtins.length > 0) {\n helpInfo.builtins = builtins;\n }\n }\n\n return helpInfo;\n}\n\n// ============================================================================\n// Main Entry Point\n// ============================================================================\n\nexport function generateHelp(rootCommand: AnyPadroneCommand, commandObj: AnyPadroneCommand = rootCommand, prefs?: HelpPreferences): string {\n const helpInfo = getHelpInfo(commandObj, prefs?.detail, prefs?.all);\n const formatter = createFormatter(\n prefs?.format ?? 'auto',\n prefs?.detail,\n prefs?.theme,\n prefs?.all,\n prefs?.width,\n prefs?.terminal,\n prefs?.env,\n );\n return formatter.format(helpInfo);\n}\n"],"mappings":"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"}
|
|
@@ -132,7 +132,7 @@ interface PadroneArgsSchemaMeta<TObj = Record<string, any>> {
|
|
|
132
132
|
//#region src/core/runtime.d.ts
|
|
133
133
|
/** Process signals that Padrone can handle for graceful shutdown. */
|
|
134
134
|
type PadroneSignal = 'SIGINT' | 'SIGTERM' | 'SIGHUP';
|
|
135
|
-
/** Value accepted by `
|
|
135
|
+
/** Value accepted by `PadroneProgress.update()`. */
|
|
136
136
|
type PadroneProgressUpdate = string | number | {
|
|
137
137
|
message?: string;
|
|
138
138
|
progress?: number;
|
|
@@ -143,7 +143,7 @@ type PadroneProgressUpdate = string | number | {
|
|
|
143
143
|
* A progress indicator instance (spinner, progress bar, etc).
|
|
144
144
|
* Created by the runtime's `progress` factory and used to show loading state during command execution.
|
|
145
145
|
*/
|
|
146
|
-
type
|
|
146
|
+
type PadroneProgress = {
|
|
147
147
|
/**
|
|
148
148
|
* Update the indicator.
|
|
149
149
|
* - `string` — update the displayed message.
|
|
@@ -164,7 +164,12 @@ type PadroneProgressIndicator = {
|
|
|
164
164
|
}) => void; /** Mark as failed and stop. Pass `null` to stop without rendering a final message. */
|
|
165
165
|
fail: (message?: string | null, options?: {
|
|
166
166
|
indicator?: string;
|
|
167
|
-
}) => void; /**
|
|
167
|
+
}) => void; /** Control ETA (estimated time remaining) display at runtime. */
|
|
168
|
+
eta: {
|
|
169
|
+
/** Enable ETA tracking. Starts collecting samples from subsequent `update()` calls. */start: () => void; /** Disable ETA display. */
|
|
170
|
+
stop: () => void; /** Clear collected samples and restart estimation. Useful between operation phases. */
|
|
171
|
+
reset: () => void;
|
|
172
|
+
}; /** Stop without success/fail status. */
|
|
168
173
|
stop: () => void; /** Temporarily hide the indicator so other output can be written cleanly. */
|
|
169
174
|
pause: () => void; /** Redraw the indicator after a `pause()`. */
|
|
170
175
|
resume: () => void;
|
|
@@ -1380,7 +1385,7 @@ type PadroneExtension<TIn extends CommandTypesBase = CommandTypesBase, TOut exte
|
|
|
1380
1385
|
interface DefineCommandContext {
|
|
1381
1386
|
logger?: PadroneLogger;
|
|
1382
1387
|
tracing?: PadroneTracer;
|
|
1383
|
-
progress?:
|
|
1388
|
+
progress?: PadroneProgress;
|
|
1384
1389
|
}
|
|
1385
1390
|
/** Error brand returned by `.command()` when a `defineCommand.requires()` context requirement is not satisfied. */
|
|
1386
1391
|
type DefineCommandRequiresError = {
|
|
@@ -1423,5 +1428,5 @@ type DefineCommandBuilder<TContextProvided = DefineCommandContext, TBrand = unkn
|
|
|
1423
1428
|
};
|
|
1424
1429
|
type DefaultArgs = Record<string, unknown> | void;
|
|
1425
1430
|
//#endregion
|
|
1426
|
-
export { PadroneLogger as $, InterceptorParseResult as A, RegisteredInterceptor as B, InterceptorErrorContext as C, PadroneSpinnerPreset as Ct, InterceptorFactory as D, InterceptorExecuteResult as E, InterceptorValidateContext as F, OtelSpan as G, WrapResult as H, InterceptorValidateResult as I, PadroneTracer as J, OtelTracer as K, PadroneContextInterceptor as L, InterceptorRouteContext as M, InterceptorShutdownContext as N, InterceptorMeta as O, InterceptorStartContext as P, PadroneLogLevel as Q, PadroneInterceptor as R, InterceptorDefBuilder as S, PadroneSpinnerConfig as St, InterceptorExecuteContext as T, PadroneServePreferences as U, WrapConfig as V, PadroneMcpPreferences as W, WithTracing as X, PadroneTracingConfig as Y, padroneTracing as Z, PadroneCommand as _, PadroneProgressOptions as _t, DefineCommandContext as a, PossibleCommands as at, ExtractInterceptorRequires as b, PadroneRuntime as bt, PadroneProgram as c, WithInterceptor as ct, PadroneParseResult as d, InteractiveMode as dt, PadroneLoggerConfig as et, PadroneReplPreferences as f, InteractivePromptConfig as ft, PadroneActionContext as g,
|
|
1427
|
-
//# sourceMappingURL=index-
|
|
1431
|
+
export { PadroneLogger as $, InterceptorParseResult as A, RegisteredInterceptor as B, InterceptorErrorContext as C, PadroneSpinnerPreset as Ct, InterceptorFactory as D, InterceptorExecuteResult as E, InterceptorValidateContext as F, OtelSpan as G, WrapResult as H, InterceptorValidateResult as I, PadroneTracer as J, OtelTracer as K, PadroneContextInterceptor as L, InterceptorRouteContext as M, InterceptorShutdownContext as N, InterceptorMeta as O, InterceptorStartContext as P, PadroneLogLevel as Q, PadroneInterceptor as R, InterceptorDefBuilder as S, PadroneSpinnerConfig as St, InterceptorExecuteContext as T, PadroneServePreferences as U, WrapConfig as V, PadroneMcpPreferences as W, WithTracing as X, PadroneTracingConfig as Y, padroneTracing as Z, PadroneCommand as _, PadroneProgressOptions as _t, DefineCommandContext as a, PossibleCommands as at, ExtractInterceptorRequires as b, PadroneRuntime as bt, PadroneProgram as c, WithInterceptor as ct, PadroneParseResult as d, InteractiveMode as dt, PadroneLoggerConfig as et, PadroneReplPreferences as f, InteractivePromptConfig as ft, PadroneActionContext as g, PadroneProgress as gt, GetArgsMeta as h, PadroneBarConfig as ht, DefineCommandBuilder as i, PickCommandByName as it, InterceptorPhases as j, InterceptorParseContext as k, PadroneCommandResult as l, AsyncPadroneSchema as lt, CommandTypesBase as m, PadroneBarChar as mt, AnyPadroneProgram as n, padroneLogger as nt, PadroneBuilder as o, WithAsync as ot, AnyPadroneCommand as p, PadroneBarAnimation as pt, OtelTracerProvider as q, DefineCommand as r, Drained as rt, PadroneExtension as s, WithCommand as st, AnyPadroneBuilder as t, WithLogger as tt, PadroneDrainResult as u, PadroneSchema as ut, PadroneProgramMeta as v, PadroneProgressShow as vt, InterceptorErrorResult as w, REPL_SIGINT as wt, InterceptorBaseContext as x, PadroneSignal as xt, ExtractInterceptorContext as y, PadroneProgressUpdate as yt, PadroneInterceptorFn as z };
|
|
1432
|
+
//# sourceMappingURL=index-C3Ed1LYN.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-C3Ed1LYN.d.mts","names":[],"sources":["../src/types/args-meta.ts","../src/core/runtime.ts","../src/types/schema.ts","../src/util/type-utils.ts","../src/extension/logger.ts","../src/extension/tracing.ts","../src/feature/mcp.ts","../src/feature/serve.ts","../src/feature/wrap.ts","../src/output/help.ts","../src/types/interceptor.ts","../src/types/command.ts","../src/types/preferences.ts","../src/types/result.ts","../src/types/builder.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as ColorConfig, i as AnsiStyle, n as HelpFormat, o as ColorTheme, r as HelpInfo, s as colorThemes, t as HelpDetail } from "./formatter-CY3KrOEd.mjs";
|
|
2
|
-
import { $ as PadroneLogger, A as InterceptorParseResult, B as RegisteredInterceptor, C as InterceptorErrorContext, Ct as PadroneSpinnerPreset, D as InterceptorFactory, E as InterceptorExecuteResult, F as InterceptorValidateContext, G as OtelSpan, H as WrapResult, I as InterceptorValidateResult, J as PadroneTracer, K as OtelTracer, L as PadroneContextInterceptor, M as InterceptorRouteContext, N as InterceptorShutdownContext, O as InterceptorMeta, P as InterceptorStartContext, Q as PadroneLogLevel, R as PadroneInterceptor, S as InterceptorDefBuilder, St as PadroneSpinnerConfig, T as InterceptorExecuteContext, U as PadroneServePreferences, V as WrapConfig, W as PadroneMcpPreferences, X as WithTracing, Y as PadroneTracingConfig, Z as padroneTracing, _ as PadroneCommand, _t as PadroneProgressOptions, a as DefineCommandContext, at as PossibleCommands, b as ExtractInterceptorRequires, bt as PadroneRuntime, c as PadroneProgram, ct as WithInterceptor, d as PadroneParseResult, dt as InteractiveMode, et as PadroneLoggerConfig, f as PadroneReplPreferences, ft as InteractivePromptConfig, g as PadroneActionContext, gt as
|
|
2
|
+
import { $ as PadroneLogger, A as InterceptorParseResult, B as RegisteredInterceptor, C as InterceptorErrorContext, Ct as PadroneSpinnerPreset, D as InterceptorFactory, E as InterceptorExecuteResult, F as InterceptorValidateContext, G as OtelSpan, H as WrapResult, I as InterceptorValidateResult, J as PadroneTracer, K as OtelTracer, L as PadroneContextInterceptor, M as InterceptorRouteContext, N as InterceptorShutdownContext, O as InterceptorMeta, P as InterceptorStartContext, Q as PadroneLogLevel, R as PadroneInterceptor, S as InterceptorDefBuilder, St as PadroneSpinnerConfig, T as InterceptorExecuteContext, U as PadroneServePreferences, V as WrapConfig, W as PadroneMcpPreferences, X as WithTracing, Y as PadroneTracingConfig, Z as padroneTracing, _ as PadroneCommand, _t as PadroneProgressOptions, a as DefineCommandContext, at as PossibleCommands, b as ExtractInterceptorRequires, bt as PadroneRuntime, c as PadroneProgram, ct as WithInterceptor, d as PadroneParseResult, dt as InteractiveMode, et as PadroneLoggerConfig, f as PadroneReplPreferences, ft as InteractivePromptConfig, g as PadroneActionContext, gt as PadroneProgress, h as GetArgsMeta, ht as PadroneBarConfig, i as DefineCommandBuilder, it as PickCommandByName, j as InterceptorPhases, k as InterceptorParseContext, l as PadroneCommandResult, lt as AsyncPadroneSchema, m as CommandTypesBase, mt as PadroneBarChar, n as AnyPadroneProgram, nt as padroneLogger, o as PadroneBuilder, ot as WithAsync, p as AnyPadroneCommand, pt as PadroneBarAnimation, q as OtelTracerProvider, r as DefineCommand, rt as Drained, s as PadroneExtension, st as WithCommand, t as AnyPadroneBuilder, tt as WithLogger, u as PadroneDrainResult, ut as PadroneSchema, v as PadroneProgramMeta, vt as PadroneProgressShow, w as InterceptorErrorResult, wt as REPL_SIGINT, x as InterceptorBaseContext, xt as PadroneSignal, y as ExtractInterceptorContext, yt as PadroneProgressUpdate, z as PadroneInterceptorFn } from "./index-C3Ed1LYN.mjs";
|
|
3
3
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
4
4
|
import * as _$ink from "ink";
|
|
5
5
|
|
|
@@ -580,13 +580,13 @@ type WithMcp<T> = WithCommand<T, 'mcp', McpCommand>;
|
|
|
580
580
|
declare function padroneMcp(defaults?: PadroneMcpPreferences): <T extends CommandTypesBase>(builder: T) => WithMcp<T>;
|
|
581
581
|
//#endregion
|
|
582
582
|
//#region src/extension/progress-renderer.d.ts
|
|
583
|
-
/** Factory function that creates a `
|
|
584
|
-
type PadroneProgressRenderer = (message: string, options?: PadroneProgressOptions) =>
|
|
583
|
+
/** Factory function that creates a `PadroneProgress`. */
|
|
584
|
+
type PadroneProgressRenderer = (message: string, options?: PadroneProgressOptions) => PadroneProgress;
|
|
585
585
|
/**
|
|
586
586
|
* Creates a terminal progress indicator (spinner, bar, or both).
|
|
587
587
|
* Returns a no-op indicator in non-TTY/CI environments.
|
|
588
588
|
*/
|
|
589
|
-
declare function createTerminalProgress(message: string, options?: PadroneProgressOptions):
|
|
589
|
+
declare function createTerminalProgress(message: string, options?: PadroneProgressOptions): PadroneProgress;
|
|
590
590
|
//#endregion
|
|
591
591
|
//#region src/extension/progress.d.ts
|
|
592
592
|
/** A progress message value: a plain string, `null` to suppress, or an object with a message and custom indicator icon. */
|
|
@@ -614,7 +614,8 @@ type PadroneProgressConfig<TRes = unknown> = {
|
|
|
614
614
|
* Custom renderer factory. Called to create the progress indicator.
|
|
615
615
|
* Defaults to the built-in terminal renderer (`createTerminalProgress`).
|
|
616
616
|
*/
|
|
617
|
-
renderer?: PadroneProgressRenderer;
|
|
617
|
+
renderer?: PadroneProgressRenderer; /** Suppress all progress output. The `progress` interface is still provided on the context as a no-op. */
|
|
618
|
+
silent?: boolean;
|
|
618
619
|
};
|
|
619
620
|
/**
|
|
620
621
|
* Shared progress defaults that can be provided via context instead of repeating
|
|
@@ -623,10 +624,10 @@ type PadroneProgressConfig<TRes = unknown> = {
|
|
|
623
624
|
*
|
|
624
625
|
* Provide via context as `{ progressConfig: PadroneProgressDefaults }`.
|
|
625
626
|
*/
|
|
626
|
-
type PadroneProgressDefaults = Pick<PadroneProgressConfig, 'message' | 'spinner' | 'bar' | 'time' | 'eta' | 'renderer'>;
|
|
627
|
-
/** Builder/program type after applying `padroneProgress()`. Adds `{ progress:
|
|
627
|
+
type PadroneProgressDefaults = Pick<PadroneProgressConfig, 'message' | 'spinner' | 'bar' | 'time' | 'eta' | 'renderer' | 'silent'>;
|
|
628
|
+
/** Builder/program type after applying `padroneProgress()`. Adds `{ progress: PadroneProgress }` to the command context. */
|
|
628
629
|
type WithProgress<T> = WithInterceptor<T, {
|
|
629
|
-
progress:
|
|
630
|
+
progress: PadroneProgress;
|
|
630
631
|
}>;
|
|
631
632
|
/**
|
|
632
633
|
* Extension that adds an auto-managed progress indicator to the command pipeline.
|
|
@@ -637,7 +638,7 @@ type WithProgress<T> = WithInterceptor<T, {
|
|
|
637
638
|
* The indicator is automatically started before validation, updated at each phase transition,
|
|
638
639
|
* and stopped on success (`.succeed()`) or failure (`.fail()`).
|
|
639
640
|
*
|
|
640
|
-
* Provides `{ progress:
|
|
641
|
+
* Provides `{ progress: PadroneProgress }` on the command context.
|
|
641
642
|
* Access it in action handlers as `ctx.context.progress`.
|
|
642
643
|
*
|
|
643
644
|
* Uses the built-in terminal renderer by default. Pass a custom `renderer` for non-terminal
|
|
@@ -897,5 +898,5 @@ type InferInterceptorRequires<T extends PadroneInterceptorFn & {
|
|
|
897
898
|
*/
|
|
898
899
|
type InferCommand<T extends AnyPadroneCommand | AnyPadroneProgram, TPath extends PossibleCommands<T extends AnyPadroneCommand ? [T] : T['~types']['commands'], true, true>> = T extends AnyPadroneProgram ? PickCommandByName<[PadroneCommand<'', '', any, any, T['~types']['commands']>], TPath> : T extends AnyPadroneCommand ? PickCommandByName<[T], TPath> : never;
|
|
899
900
|
//#endregion
|
|
900
|
-
export { ActionError, type AnsiStyle, type AnyPadroneBuilder, type AnyPadroneCommand, type AnyPadroneProgram, type AsyncPadroneSchema, type AsyncStreamMeta, type ColorConfig, type ColorTheme, type CommandTypesBase, ConfigError, type DefineCommand, type DefineCommandBuilder, type DefineCommandContext, type Drained, type ExtractInterceptorContext, type ExtractInterceptorRequires, type GetArgsMeta, type HelpCommand, type HelpDetail, type HelpFormat, type HelpInfo, type InferArgsInput, type InferArgsOutput, type InferCommand, type InferContext, type InferContextProvided, type InferInterceptorContext, type InferInterceptorRequires, type InkOptions, type InteractiveMode, type InteractivePromptConfig, type InterceptorBaseContext, type InterceptorDefBuilder, type InterceptorErrorContext, type InterceptorErrorResult, type InterceptorExecuteContext, type InterceptorExecuteResult, type InterceptorFactory, type InterceptorMeta, type InterceptorParseContext, type InterceptorParseResult, type InterceptorPhases, type InterceptorRouteContext, type InterceptorShutdownContext, type InterceptorStartContext, type InterceptorValidateContext, type InterceptorValidateResult, type KeyValueOptions, type ListItem, type ListOptions, type OtelSpan, type OtelTracer, type OtelTracerProvider, type OutputContext, type OutputFormat, type PadroneActionContext, type PadroneBarAnimation, type PadroneBarChar, type PadroneBarConfig, type PadroneBuilder, type PadroneCommand, type PadroneCommandResult, type PadroneContextInterceptor, type PadroneDrainResult, PadroneError, type PadroneErrorOptions, type PadroneExtension, type PadroneInterceptor, type PadroneInterceptorFn, type PadroneLogLevel, type PadroneLogger, type PadroneLoggerConfig, type PadroneMcpPreferences, type PadroneOptions, type PadroneOutputIndicator, type PadroneParseResult, type PadroneProgram, type PadroneProgramMeta, type
|
|
901
|
+
export { ActionError, type AnsiStyle, type AnyPadroneBuilder, type AnyPadroneCommand, type AnyPadroneProgram, type AsyncPadroneSchema, type AsyncStreamMeta, type ColorConfig, type ColorTheme, type CommandTypesBase, ConfigError, type DefineCommand, type DefineCommandBuilder, type DefineCommandContext, type Drained, type ExtractInterceptorContext, type ExtractInterceptorRequires, type GetArgsMeta, type HelpCommand, type HelpDetail, type HelpFormat, type HelpInfo, type InferArgsInput, type InferArgsOutput, type InferCommand, type InferContext, type InferContextProvided, type InferInterceptorContext, type InferInterceptorRequires, type InkOptions, type InteractiveMode, type InteractivePromptConfig, type InterceptorBaseContext, type InterceptorDefBuilder, type InterceptorErrorContext, type InterceptorErrorResult, type InterceptorExecuteContext, type InterceptorExecuteResult, type InterceptorFactory, type InterceptorMeta, type InterceptorParseContext, type InterceptorParseResult, type InterceptorPhases, type InterceptorRouteContext, type InterceptorShutdownContext, type InterceptorStartContext, type InterceptorValidateContext, type InterceptorValidateResult, type KeyValueOptions, type ListItem, type ListOptions, type OtelSpan, type OtelTracer, type OtelTracerProvider, type OutputContext, type OutputFormat, type PadroneActionContext, type PadroneBarAnimation, type PadroneBarChar, type PadroneBarConfig, type PadroneBuilder, type PadroneCommand, type PadroneCommandResult, type PadroneContextInterceptor, type PadroneDrainResult, PadroneError, type PadroneErrorOptions, type PadroneExtension, type PadroneInterceptor, type PadroneInterceptorFn, type PadroneLogLevel, type PadroneLogger, type PadroneLoggerConfig, type PadroneMcpPreferences, type PadroneOptions, type PadroneOutputIndicator, type PadroneParseResult, type PadroneProgram, type PadroneProgramMeta, type PadroneProgress, type PadroneProgressConfig, type PadroneProgressDefaults, type PadroneProgressMessage, type PadroneProgressMessages, type PadroneProgressOptions, type PadroneProgressRenderer, type PadroneProgressShow, type PadroneProgressUpdate, type PadroneRuntime, type PadroneSchema, type PadroneSignal, type PadroneSpinnerConfig, type PadroneSpinnerPreset, type PadroneTracer, type PadroneTracingConfig, REPL_SIGINT, type RegisteredInterceptor, RoutingError, SignalError, type TableOptions, type TreeNode, type TreeOptions, type UpdateCheckConfig, ValidationError, type VersionCommand, type WithAsync, type WithCompletion, type WithHelp, type WithLogger, type WithMan, type WithMcp, type WithProgress, type WithRepl, type WithServe, type WithTracing, type WithVersion, type WrapConfig, type WrapResult, asyncSchema, asyncStream, buildReplCompleter, colorThemes, createPadrone, createTerminalProgress, defineCommand, defineInterceptor, isReactElement, padroneAutoOutput, padroneColor, padroneCompletion, padroneConfig, padroneEnv, padroneHelp, padroneInk, padroneInteractive, padroneLogger, padroneMan, padroneMcp, padroneProgress, padroneRepl, padroneServe, padroneSignalHandling, padroneStdin, padroneSuggestions, padroneTiming, padroneTracing, padroneUpdateCheck, padroneVersion };
|
|
901
902
|
//# sourceMappingURL=index.d.mts.map
|