using namespace System.Management.Automation using namespace System.Management.Automation.Language Register-ArgumentCompleter -Native -CommandName 'am' -ScriptBlock { param($wordToComplete, $commandAst, $cursorPosition) $commandElements = $commandAst.CommandElements $command = @( 'am' for ($i = 1; $i -lt $commandElements.Count; $i++) { $element = $commandElements[$i] if ($element -isnot [StringConstantExpressionAst] -or $element.StringConstantType -ne [StringConstantType]::BareWord -or $element.Value.StartsWith('-') -or $element.Value -eq $wordToComplete) { break } $element.Value }) -join ';' $completions = @(switch ($command) { 'am' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')') [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version') [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version') [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'List agents: installed ones, or every agent known to the catalog') [CompletionResult]::new('start', 'start', [CompletionResultType]::ParameterValue, 'Start an agent (foreground by default, or detached with --background)') [CompletionResult]::new('stop', 'stop', [CompletionResultType]::ParameterValue, 'Stop a background agent (SIGTERM, then SIGKILL after the timeout)') [CompletionResult]::new('restart', 'restart', [CompletionResultType]::ParameterValue, 'Restart an agent: stop, then start with the same options') [CompletionResult]::new('status', 'status', [CompletionResultType]::ParameterValue, 'Show the state of one agent, or of every installed agent') [CompletionResult]::new('install', 'install', [CompletionResultType]::ParameterValue, 'Install an agent and its dependencies') [CompletionResult]::new('uninstall', 'uninstall', [CompletionResultType]::ParameterValue, 'Uninstall an agent and clean its files') [CompletionResult]::new('update', 'update', [CompletionResultType]::ParameterValue, 'Update an installed agent to the latest available version') [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'Search the catalog by keyword (name, description, category, tags)') [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'Show detailed information about one agent') [CompletionResult]::new('config', 'config', [CompletionResultType]::ParameterValue, 'Manage the configuration file') [CompletionResult]::new('doctor', 'doctor', [CompletionResultType]::ParameterValue, 'Check the environment: tools, config validity, paths, permissions') [CompletionResult]::new('run', 'run', [CompletionResultType]::ParameterValue, 'Run the agent command directly with the given arguments (no process management)') [CompletionResult]::new('completion', 'completion', [CompletionResultType]::ParameterValue, 'Generate a shell completion script') [CompletionResult]::new('self-update', 'self-update', [CompletionResultType]::ParameterValue, 'Update agent-manager itself from GitHub Releases') [CompletionResult]::new('export', 'export', [CompletionResultType]::ParameterValue, 'Export the configuration and installation state (backup)') [CompletionResult]::new('import', 'import', [CompletionResultType]::ParameterValue, 'Import a previously exported configuration and state') [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)') break } 'am;list' { [CompletionResult]::new('--category', '--category', [CompletionResultType]::ParameterName, 'Only show agents of this category') [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--installed-only', '--installed-only', [CompletionResultType]::ParameterName, 'Only show agents that are installed (managed or external)') [CompletionResult]::new('--all', '--all', [CompletionResultType]::ParameterName, 'Include hidden agents as well') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;start' { [CompletionResult]::new('--args', '--args', [CompletionResultType]::ParameterName, 'Extra arguments passed to the agent (repeatable; quoted strings are split on spaces)') [CompletionResult]::new('--env', '--env', [CompletionResultType]::ParameterName, 'Set an environment variable for the agent (repeatable): --env KEY=VALUE') [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-b', '-b', [CompletionResultType]::ParameterName, 'Run detached in the background; output goes to the agent log file') [CompletionResult]::new('--background', '--background', [CompletionResultType]::ParameterName, 'Run detached in the background; output goes to the agent log file') [CompletionResult]::new('-f', '-f', [CompletionResultType]::ParameterName, 'Run in the foreground, attached to this terminal (the default)') [CompletionResult]::new('--foreground', '--foreground', [CompletionResultType]::ParameterName, 'Run in the foreground, attached to this terminal (the default)') [CompletionResult]::new('--notify', '--notify', [CompletionResultType]::ParameterName, 'Send a desktop notification once the agent has started') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;stop' { [CompletionResult]::new('--timeout', '--timeout', [CompletionResultType]::ParameterName, 'Grace period in seconds before killing (default: from config, 5s)') [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Kill immediately instead of terminating gracefully') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;restart' { [CompletionResult]::new('--args', '--args', [CompletionResultType]::ParameterName, 'Extra arguments passed to the agent (repeatable; quoted strings are split on spaces)') [CompletionResult]::new('--env', '--env', [CompletionResultType]::ParameterName, 'Set an environment variable for the agent (repeatable): --env KEY=VALUE') [CompletionResult]::new('--timeout', '--timeout', [CompletionResultType]::ParameterName, 'Grace period in seconds before killing (default: from config, 5s)') [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-b', '-b', [CompletionResultType]::ParameterName, 'Run detached in the background; output goes to the agent log file') [CompletionResult]::new('--background', '--background', [CompletionResultType]::ParameterName, 'Run detached in the background; output goes to the agent log file') [CompletionResult]::new('-f', '-f', [CompletionResultType]::ParameterName, 'Run in the foreground, attached to this terminal (the default)') [CompletionResult]::new('--foreground', '--foreground', [CompletionResultType]::ParameterName, 'Run in the foreground, attached to this terminal (the default)') [CompletionResult]::new('--notify', '--notify', [CompletionResultType]::ParameterName, 'Send a desktop notification once the agent has started') [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Kill immediately instead of terminating gracefully') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;status' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;install' { [CompletionResult]::new('--method', '--method', [CompletionResultType]::ParameterName, 'Select the install method (index, or type: npm, pip, uv, cargo, go, bun, curl, binary, git)') [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Reinstall even if already installed') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;uninstall' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--purge', '--purge', [CompletionResultType]::ParameterName, 'Also remove logs and the agent entry from the user config file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;update' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--all', '--all', [CompletionResultType]::ParameterName, 'Update every installed managed agent') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;search' { [CompletionResult]::new('--category', '--category', [CompletionResultType]::ParameterName, 'Restrict to this category') [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;info' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;config' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('show', 'show', [CompletionResultType]::ParameterValue, 'Print the effective (merged) configuration as YAML') [CompletionResult]::new('path', 'path', [CompletionResultType]::ParameterValue, 'Print the location of the configuration file(s)') [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'Open the user configuration file in your editor') [CompletionResult]::new('validate', 'validate', [CompletionResultType]::ParameterValue, 'Validate the configuration file(s)') [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'Add another agent definition file to the user configuration') [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)') break } 'am;config;show' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;config;path' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;config;edit' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;config;validate' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;config;add' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;config;help' { [CompletionResult]::new('show', 'show', [CompletionResultType]::ParameterValue, 'Print the effective (merged) configuration as YAML') [CompletionResult]::new('path', 'path', [CompletionResultType]::ParameterValue, 'Print the location of the configuration file(s)') [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'Open the user configuration file in your editor') [CompletionResult]::new('validate', 'validate', [CompletionResultType]::ParameterValue, 'Validate the configuration file(s)') [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'Add another agent definition file to the user configuration') [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)') break } 'am;config;help;show' { break } 'am;config;help;path' { break } 'am;config;help;edit' { break } 'am;config;help;validate' { break } 'am;config;help;add' { break } 'am;config;help;help' { break } 'am;doctor' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--fix', '--fix', [CompletionResultType]::ParameterName, 'Attempt to repair problems (create directories, fix the state file)') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;run' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;completion' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;self-update' { [CompletionResult]::new('--to', '--to', [CompletionResultType]::ParameterName, 'Download the new binary to this path instead of replacing the current one') [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--check', '--check', [CompletionResultType]::ParameterName, 'Only check whether a newer version exists') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;export' { [CompletionResult]::new('--output', '--output', [CompletionResultType]::ParameterName, 'Output file (default: am-export.json)') [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;import' { [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('--config', '--config', [CompletionResultType]::ParameterName, 'Use an alternate configuration file') [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Verbose output: show every command executed and its details') [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Quiet mode: only errors are printed') [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation prompt') [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Simulate the action without changing anything') [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Emit machine-readable JSON on stdout (for scripts)') [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Disable ANSI colors') [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help') [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help') break } 'am;help' { [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'List agents: installed ones, or every agent known to the catalog') [CompletionResult]::new('start', 'start', [CompletionResultType]::ParameterValue, 'Start an agent (foreground by default, or detached with --background)') [CompletionResult]::new('stop', 'stop', [CompletionResultType]::ParameterValue, 'Stop a background agent (SIGTERM, then SIGKILL after the timeout)') [CompletionResult]::new('restart', 'restart', [CompletionResultType]::ParameterValue, 'Restart an agent: stop, then start with the same options') [CompletionResult]::new('status', 'status', [CompletionResultType]::ParameterValue, 'Show the state of one agent, or of every installed agent') [CompletionResult]::new('install', 'install', [CompletionResultType]::ParameterValue, 'Install an agent and its dependencies') [CompletionResult]::new('uninstall', 'uninstall', [CompletionResultType]::ParameterValue, 'Uninstall an agent and clean its files') [CompletionResult]::new('update', 'update', [CompletionResultType]::ParameterValue, 'Update an installed agent to the latest available version') [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'Search the catalog by keyword (name, description, category, tags)') [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'Show detailed information about one agent') [CompletionResult]::new('config', 'config', [CompletionResultType]::ParameterValue, 'Manage the configuration file') [CompletionResult]::new('doctor', 'doctor', [CompletionResultType]::ParameterValue, 'Check the environment: tools, config validity, paths, permissions') [CompletionResult]::new('run', 'run', [CompletionResultType]::ParameterValue, 'Run the agent command directly with the given arguments (no process management)') [CompletionResult]::new('completion', 'completion', [CompletionResultType]::ParameterValue, 'Generate a shell completion script') [CompletionResult]::new('self-update', 'self-update', [CompletionResultType]::ParameterValue, 'Update agent-manager itself from GitHub Releases') [CompletionResult]::new('export', 'export', [CompletionResultType]::ParameterValue, 'Export the configuration and installation state (backup)') [CompletionResult]::new('import', 'import', [CompletionResultType]::ParameterValue, 'Import a previously exported configuration and state') [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)') break } 'am;help;list' { break } 'am;help;start' { break } 'am;help;stop' { break } 'am;help;restart' { break } 'am;help;status' { break } 'am;help;install' { break } 'am;help;uninstall' { break } 'am;help;update' { break } 'am;help;search' { break } 'am;help;info' { break } 'am;help;config' { [CompletionResult]::new('show', 'show', [CompletionResultType]::ParameterValue, 'Print the effective (merged) configuration as YAML') [CompletionResult]::new('path', 'path', [CompletionResultType]::ParameterValue, 'Print the location of the configuration file(s)') [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'Open the user configuration file in your editor') [CompletionResult]::new('validate', 'validate', [CompletionResultType]::ParameterValue, 'Validate the configuration file(s)') [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'Add another agent definition file to the user configuration') break } 'am;help;config;show' { break } 'am;help;config;path' { break } 'am;help;config;edit' { break } 'am;help;config;validate' { break } 'am;help;config;add' { break } 'am;help;doctor' { break } 'am;help;run' { break } 'am;help;completion' { break } 'am;help;self-update' { break } 'am;help;export' { break } 'am;help;import' { break } 'am;help;help' { break } }) $completions.Where{ $_.CompletionText -like "$wordToComplete*" } | Sort-Object -Property ListItemText }