import type { ParsedCommand } from '@mosaicstack/types';
import { commandRegistry } from '../registry.js';

export function executeHelp(_parsed: ParsedCommand): string {
  const commands = commandRegistry.getAll();
  const lines = ['Available commands:', ''];

  for (const cmd of commands) {
    const aliases =
      cmd.aliases.length > 0 ? ` (${cmd.aliases.map((a) => `/${a}`).join(', ')})` : '';
    const argsStr =
      cmd.args && cmd.args.length > 0
        ? ' ' + cmd.args.map((a) => (a.optional ? `[${a.name}]` : `<${a.name}>`)).join(' ')
        : '';
    lines.push(`  /${cmd.name}${argsStr}${aliases} — ${cmd.description}`);
  }

  return lines.join('\n').trimEnd();
}
