UNPKG

rawi

Version:

Rawi (راوي) is the developer-friendly AI CLI that brings the power of 12 major AI providers directly to your terminal. With seamless shell integration, persistent conversations, and 200+ specialized prompt templates, Rawi transforms your command line into

1 lines 6 kB
{"version":3,"sources":["/home/mkabumattar/withrawi/rawi/dist/chunk-IAC4SQQC.cjs","../src/cli/commands/act.command.ts"],"names":["createActCommand","actCommand","Command","chalk","options","templates","actTemplates","pageSize","page","totalPages","table","Table","renderPage","pageIdx","tpl"],"mappings":"AAAA;AACA,wDAAwC,wDAAyC,4CCD5D,4EACH,6FACA,sCACI,IAITA,CAAAA,CAAmB,CAAA,CAAA,EAAe,CAC7C,IAAMC,CAAAA,CAAa,IAAIC,uBAAAA,CAAQ,KAAK,CAAA,CAEpC,OAAAD,CAAAA,CACG,WAAA,CACC,CACEE,eAAAA,CAAM,IAAA,CAAK,yDAAyD,CAAA,CACpE,EAAA,CACAA,eAAAA,CAAM,IAAA,CAAK,oDAAoD,CAAA,CAC/DA,eAAAA,CAAM,IAAA,CACJ,iEACF,CACF,CAAA,CAAE,IAAA,CAAK,CAAA;AAAA,CAAI,CACb,CAAA,CACC,MAAA,CAAO,YAAA,CAAcA,eAAAA,CAAM,KAAA,CAAM,kCAAkC,CAAC,CAAA,CACpE,MAAA,CACC,uBAAA,CACAA,eAAAA,CAAM,KAAA,CAAM,yCAAyC,CACvD,CAAA,CACC,WAAA,CACC,OAAA,CACA,CACEA,eAAAA,CAAM,IAAA,CAAK,IAAA,CAAK,CAAA;AAAA,SAAA,CAAa,CAAA,CAC7BA,eAAAA,CAAM,IAAA,CAAK,yDAAyD,CAAA,CACpEA,eAAAA,CAAM,IAAA,CAAK,yBAAyB,CAAA,CACpCA,eAAAA,CAAM,IAAA,CAAK,wBAAwB,CAAA,CACnCA,eAAAA,CAAM,IAAA,CAAK,mBAAmB,CAChC,CAAA,CAAE,IAAA,CAAK,CAAA;AAAA,CAAI,CACb,CAAA,CACC,MAAA,CAAO,MAAOC,CAAAA,EAAY,CACzB,EAAA,CAAIA,CAAAA,CAAQ,IAAA,CAAM,CAChB,IAAMC,CAAAA,CAKDC,mBAAAA,CACL,EAAA,CAAI,CAACD,CAAAA,EAAaA,CAAAA,CAAU,MAAA,GAAW,CAAA,CAAG,CACxC,OAAA,CAAQ,GAAA,CAAIF,eAAAA,CAAM,MAAA,CAAO,yBAAyB,CAAC,CAAA,CACnD,MACF,CACA,IAAMI,CAAAA,CAAW,CAAA,CACbC,CAAAA,CAAO,CAAA,CACLC,CAAAA,CAAa,IAAA,CAAK,IAAA,CAAKJ,CAAAA,CAAU,MAAA,CAASE,CAAQ,CAAA,CAClDG,CAAAA,CAAQ,IAAIC,wBAAAA,CAAM,CACtB,IAAA,CAAM,CACJR,eAAAA,CAAM,IAAA,CAAK,IAAI,CAAA,CACfA,eAAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAClBA,eAAAA,CAAM,IAAA,CAAK,UAAU,CAAA,CACrBA,eAAAA,CAAM,IAAA,CAAK,aAAa,CAC1B,CAAA,CACA,KAAA,CAAO,CAAC,IAAA,CAAM,CAAC,MAAM,CAAC,CAAA,CACtB,SAAA,CAAW,CAAC,EAAA,CAAI,EAAA,CAAI,EAAA,CAAI,EAAE,CAAA,CAC1B,QAAA,CAAU,CAAA,CACZ,CAAC,CAAA,CACKS,CAAAA,CAAcC,CAAAA,EAAoB,CACtCH,CAAAA,CAAM,MAAA,CAAS,CAAA,CACfL,CAAAA,CACG,KAAA,CAAMQ,CAAAA,CAAUN,CAAAA,CAAAA,CAAWM,CAAAA,CAAU,CAAA,CAAA,CAAKN,CAAQ,CAAA,CAClD,OAAA,CAASO,CAAAA,EAAQ,CAChBJ,CAAAA,CAAM,IAAA,CAAK,CACTP,eAAAA,CAAM,IAAA,CAAKW,CAAAA,CAAI,EAAE,CAAA,CACjBA,CAAAA,CAAI,KAAA,CACJA,CAAAA,CAAI,QAAA,CACJA,CAAAA,CAAI,WAAA,EAAe,EACrB,CAAC,CACH,CAAC,CAAA,CACH,OAAA,CAAQ,GAAA,CAAIJ,CAAAA,CAAM,QAAA,CAAS,CAAC,CAAA,CAC5B,OAAA,CAAQ,GAAA,CAAIP,eAAAA,CAAM,IAAA,CAAK,CAAA,KAAA,EAAQU,CAAAA,CAAU,CAAC,CAAA,IAAA,EAAOJ,CAAU,CAAA,CAAA;ADtEuZ","file":"/home/mkabumattar/withrawi/rawi/dist/chunk-IAC4SQQC.cjs","sourcesContent":[null,"import {select} from '@inquirer/prompts';\nimport chalk from 'chalk';\nimport Table from 'cli-table3';\nimport {Command} from 'commander';\nimport {actTemplates} from '../../core/templates/act.js';\nimport {showActTemplate} from '../../core/templates/utils.js';\n\nexport const createActCommand = (): Command => {\n const actCommand = new Command('act');\n\n actCommand\n .description(\n [\n chalk.bold('List and explore act templates for specialized prompts.'),\n '',\n chalk.gray('Use these to quickly apply expert prompt patterns.'),\n chalk.gray(\n 'Use --list to see all templates, --show <template> for details.',\n ),\n ].join('\\n'),\n )\n .option('-l, --list', chalk.white('List all available act templates'))\n .option(\n '-s, --show <template>',\n chalk.white('Show details of a specific act template'),\n )\n .addHelpText(\n 'after',\n [\n chalk.bold.cyan('\\nSee also:'),\n chalk.gray(' rawi ask --profile <profile> --act <template> <query>'),\n chalk.gray(' rawi configure --show'),\n chalk.gray(' rawi provider --list'),\n chalk.gray(' rawi act --list'),\n ].join('\\n'),\n )\n .action(async (options) => {\n if (options.list) {\n const templates: Array<{\n id: string;\n label: string;\n category: string;\n description?: string;\n }> = actTemplates;\n if (!templates || templates.length === 0) {\n console.log(chalk.yellow('No act templates found.'));\n return;\n }\n const pageSize = 6;\n let page = 0;\n const totalPages = Math.ceil(templates.length / pageSize);\n const table = new Table({\n head: [\n chalk.cyan('ID'),\n chalk.cyan('Label'),\n chalk.cyan('Category'),\n chalk.cyan('Description'),\n ],\n style: {head: ['cyan']},\n colWidths: [40, 22, 18, 36],\n wordWrap: true,\n });\n const renderPage = (pageIdx: number) => {\n table.length = 0;\n templates\n .slice(pageIdx * pageSize, (pageIdx + 1) * pageSize)\n .forEach((tpl) => {\n table.push([\n chalk.cyan(tpl.id),\n tpl.label,\n tpl.category,\n tpl.description || '',\n ]);\n });\n console.log(table.toString());\n console.log(chalk.gray(`Page ${pageIdx + 1} of ${totalPages}`));\n };\n if (templates.length > pageSize) {\n let exit = false;\n while (!exit) {\n renderPage(page);\n const choices = [];\n if (page > 0) choices.push({name: 'Previous', value: 'prev'});\n if (page < totalPages - 1)\n choices.push({name: 'Next', value: 'next'});\n choices.push({name: 'Exit', value: 'exit'});\n const nav = await select({\n message: 'Navigate pages:',\n choices,\n default: page < totalPages - 1 ? 'next' : 'exit',\n });\n if (nav === 'prev') page--;\n else if (nav === 'next') page++;\n else exit = true;\n if (!exit) console.clear();\n }\n } else {\n renderPage(0);\n }\n return;\n }\n if (options.show) {\n showActTemplate(options.show);\n return;\n }\n actCommand.help();\n });\n\n return actCommand;\n};\n"]}