UNPKG

rawi

Version:

Rawi (راوي) is the developer-friendly AI CLI that brings the power of 11 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 2.75 kB
{"version":3,"sources":["/home/mkabumattar/work/withrawi/rawi/dist/chunk-YTPAJ6Q2.cjs","../src/core/exec/parser.ts"],"names":["parseCommandFromResponse","response","cleaned","lines","line"],"mappings":"AAAA;ACAO,SAASA,CAAAA,CAAyBC,CAAAA,CAA0B,CACjE,IAAIC,CAAAA,CAAUD,CAAAA,CAAS,OAAA,CAAQ,4BAAA,CAA8B,EAAE,CAAA,CAE/DC,CAAAA,CAAUA,CAAAA,CAAQ,OAAA,CAAQ,iBAAA,CAAmB,EAAE,CAAA,CAC/CA,CAAAA,CAAUA,CAAAA,CAAQ,OAAA,CAAQ,YAAA,CAAc,IAAI,CAAA,CAE5C,IAAMC,CAAAA,CAAQD,CAAAA,CACX,KAAA,CAAM,CAAA;AAAA,CAAI,CAAA,CACV,GAAA,CAAKE,CAAAA,EAASA,CAAAA,CAAK,IAAA,CAAK,CAAC,CAAA,CACzB,MAAA,CAAO,OAAO,CAAA,CAEjB,GAAA,CAAA,IAAWA,EAAAA,GAAQD,CAAAA,CACjB,EAAA,CACE,CAAA,CAAAC,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,KAAK,CAAA,EACjCA,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,UAAU,CAAA,CAAA,EAKtC,CAAA,CAAAA,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,MAAM,CAAA,EAClCA,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,SAAS,CAAA,CAAA,EAKrC,CAAA,CAAAA,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,SAAS,CAAA,EACrCA,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,KAAK,CAAA,CAAA,EAK/B,+BAAA,CAAgC,IAAA,CAAKA,CAAI,CAAA,CAC3C,OAAOA,CAAAA,CAIX,GAAA,CAAA,IAAWA,EAAAA,GAAQD,CAAAA,CACjB,EAAA,CACE,CAACC,CAAAA,CAAK,QAAA,CAAS,KAAK,CAAA,EACpB,CAACA,CAAAA,CAAK,QAAA,CAAS,MAAM,CAAA,EACrB,CAACA,CAAAA,CAAK,QAAA,CAAS,SAAS,CAAA,EACxB,CAACA,CAAAA,CAAK,QAAA,CAAS,cAAc,CAAA,EAC7B,CAACA,CAAAA,CAAK,QAAA,CAAS,aAAa,CAAA,EAC5BA,CAAAA,CAAK,MAAA,CAAS,CAAA,CAEd,OAAOA,CAAAA,CAIX,OAAOF,CAAAA,CAAQ,IAAA,CAAK,CACtB,CAAA,cAAA;AD/CA","file":"/home/mkabumattar/work/withrawi/rawi/dist/chunk-YTPAJ6Q2.cjs","sourcesContent":[null,"export function parseCommandFromResponse(response: string): string {\n let cleaned = response.replace(/<think>[\\s\\S]*?<\\/think>/gi, '');\n\n cleaned = cleaned.replace(/```[\\s\\S]*?```/g, '');\n cleaned = cleaned.replace(/`([^`]+)`/g, '$1');\n\n const lines = cleaned\n .split('\\n')\n .map((line) => line.trim())\n .filter(Boolean);\n\n for (const line of lines) {\n if (\n line.toLowerCase().includes('to ') &&\n line.toLowerCase().includes(' command')\n ) {\n continue;\n }\n if (\n line.toLowerCase().includes('here') &&\n line.toLowerCase().includes('command')\n ) {\n continue;\n }\n if (\n line.toLowerCase().includes('you can') &&\n line.toLowerCase().includes('use')\n ) {\n continue;\n }\n\n if (/^[a-zA-Z][a-zA-Z0-9_-]*(\\s|$)/.test(line)) {\n return line;\n }\n }\n\n for (const line of lines) {\n if (\n !line.includes('To ') &&\n !line.includes('Here') &&\n !line.includes('You can') &&\n !line.includes('This command') &&\n !line.includes('The command') &&\n line.length > 0\n ) {\n return line;\n }\n }\n\n return cleaned.trim();\n}\n"]}