import { Command } from 'commander' import { runLsCommand } from './ls.js' import { runAllowCommand } from './allow.js' import { runDenyCommand } from './deny.js' import { withOutput } from '../../output/index.js' export function createPermitCommand(): Command { const permit = new Command('permit').description('Manage permission requests') permit .command('ls') .description('List all pending permissions') .option('--json', 'Output in JSON format') .option('--host ', 'Daemon host target (default: local socket/pipe, then localhost:6767)') .action(withOutput(runLsCommand)) permit .command('allow') .description('Allow a permission request') .argument('', 'Agent ID (or prefix)') .argument('[req_id]', 'Permission request ID (optional if --all)') .option('--all', 'Allow all pending permissions for this agent') .option('--input ', 'Modified input parameters (JSON)') .option('--json', 'Output in JSON format') .option('--host ', 'Daemon host target (default: local socket/pipe, then localhost:6767)') .action(withOutput(runAllowCommand)) permit .command('deny') .description('Deny a permission request') .argument('', 'Agent ID (or prefix)') .argument('[req_id]', 'Permission request ID (optional if --all)') .option('--all', 'Deny all pending permissions for this agent') .option('--message ', 'Denial reason message') .option('--interrupt', 'Stop agent after denial') .option('--json', 'Output in JSON format') .option('--host ', 'Daemon host target (default: local socket/pipe, then localhost:6767)') .action(withOutput(runDenyCommand)) return permit }