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 • 4.16 kB
Source Map (JSON)
{"version":3,"sources":["/home/mkabumattar/work/withrawi/rawi/dist/chunk-K6LPSTUC.cjs","../src/cli/commands/ask/actions/response-handling.ts"],"names":["streamResponse","provider","sessionId","filteredQuery","context","dbManager","credentials","options","spinnerManager","stream","response","isFirstChunk","chunk","chalk","error"],"mappings":"AAAA;AACA,wDAAwC,4ECDtB,IAILA,CAAAA,CAAiB,KAAA,CAC5BC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CAAAA,EACkB,CACdA,CAAAA,CAAQ,OAAA,EACVC,mBAAAA,CAAe,KAAA,CAAM,OAAA,CAAS,0BAA0B,CAAA,CAG1D,GAAI,CACF,IAAMC,CAAAA,CAAS,MAAMR,CAAAA,CAAS,cAAA,CAAe,CAC3C,OAAA,CAASE,CAAAA,CACT,OAAA,CAASC,CAAAA,EAAW,EACtB,CAAC,CAAA,CAEGM,CAAAA,CAAW,EAAA,CACXC,CAAAA,CAAe,CAAA,CAAA,CAEnB,IAAA,KAAA,CAAA,IAAiBC,EAAAA,GAASH,CAAAA,CACpBE,CAAAA,EAAAA,CACEJ,CAAAA,CAAQ,OAAA,EACVC,mBAAAA,CAAe,IAAA,CAAK,OAAO,CAAA,CAE7BG,CAAAA,CAAe,CAAA,CAAA,CAAA,CAGjB,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAMC,CAAK,CAAA,CAC1BF,CAAAA,EAAYE,CAAAA,CAGTF,CAAAA,CAAS,QAAA,CAAS,CAAA;AAAA,CAAI,CAAA,EACzB,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA;AAAA,CAAI,CAAA,CAG3B,MAAML,CAAAA,CAAU,UAAA,CACdH,CAAAA,CACA,MAAA,CACAC,CAAAA,CACAG,CAAAA,CAAY,QAAA,CACZA,CAAAA,CAAY,KAAA,EAAS,SAAA,CACrBA,CAAAA,CAAY,WAAA,CACZA,CAAAA,CAAY,SACd,CAAA,CAEA,MAAMD,CAAAA,CAAU,UAAA,CACdH,CAAAA,CACA,WAAA,CACAQ,CAAAA,CACAJ,CAAAA,CAAY,QAAA,CACZA,CAAAA,CAAY,KAAA,EAAS,SAAA,CACrBA,CAAAA,CAAY,WAAA,CACZA,CAAAA,CAAY,SACd,CAAA,CAEIC,CAAAA,CAAQ,OAAA,EACV,OAAA,CAAQ,GAAA,CAAIM,eAAAA,CAAM,GAAA,CAAI,CAAA;AAAA,wCAAA,CAAuC,CAAC,CAElE,CAAA,KAAA,CAASC,CAAAA,CAAO,CACVP,CAAAA,CAAQ,OAAA,EACVC,mBAAAA,CAAe,IAAA,CAAK,OAAA,CAAS,yBAAyB,CAAA,CAGxD,OAAA,CAAQ,KAAA,CAAMK,eAAAA,CAAM,GAAA,CAAI,gCAA2B,CAAC,CAAA,CACpD,OAAA,CAAQ,KAAA,CAAMA,eAAAA,CAAM,GAAA,CAAKC,CAAAA,CAAgB,OAAO,CAAC,CAAA,CAE7CP,CAAAA,CAAQ,OAAA,EAAWO,EAAAA,WAAiB,KAAA,EAASA,CAAAA,CAAM,KAAA,EAAA,CACrD,OAAA,CAAQ,KAAA,CAAMD,eAAAA,CAAM,GAAA,CAAI,cAAc,CAAC,CAAA,CACvC,OAAA,CAAQ,KAAA,CAAMA,eAAAA,CAAM,GAAA,CAAIC,CAAAA,CAAM,KAAK,CAAC,CAAA,CAAA,CAGtC,OAAA,CAAQ,IAAA,CAAK,CAAC,CAChB,CACF,CAAA,CAAA,cAAA;AD3EA","file":"/home/mkabumattar/work/withrawi/rawi/dist/chunk-K6LPSTUC.cjs","sourcesContent":[null,"import chalk from 'chalk';\nimport type {DatabaseManager} from '../../../../core/database/manager.js';\nimport {spinnerManager} from '../../../../core/shared/spinner.js';\n\nexport const streamResponse = async (\n provider: any,\n sessionId: string,\n filteredQuery: string,\n context: string | null,\n dbManager: DatabaseManager,\n credentials: any,\n options: any,\n): Promise<void> => {\n if (options.verbose) {\n spinnerManager.start('query', 'Processing your query...');\n }\n\n try {\n const stream = await provider.generateStream({\n message: filteredQuery,\n context: context || '',\n });\n\n let response = '';\n let isFirstChunk = true;\n\n for await (const chunk of stream) {\n if (isFirstChunk) {\n if (options.verbose) {\n spinnerManager.stop('query');\n }\n isFirstChunk = false;\n }\n\n process.stdout.write(chunk);\n response += chunk;\n }\n\n if (!response.endsWith('\\n')) {\n process.stdout.write('\\n');\n }\n\n await dbManager.addMessage(\n sessionId,\n 'user',\n filteredQuery,\n credentials.provider,\n credentials.model || 'default',\n credentials.temperature,\n credentials.maxTokens,\n );\n\n await dbManager.addMessage(\n sessionId,\n 'assistant',\n response,\n credentials.provider,\n credentials.model || 'default',\n credentials.temperature,\n credentials.maxTokens,\n );\n\n if (options.verbose) {\n console.log(chalk.dim('\\n✅ Response saved to session history'));\n }\n } catch (error) {\n if (options.verbose) {\n spinnerManager.fail('query', 'Failed to process query');\n }\n\n console.error(chalk.red('❌ Error processing query:'));\n console.error(chalk.red((error as Error).message));\n\n if (options.verbose && error instanceof Error && error.stack) {\n console.error(chalk.dim('Stack trace:'));\n console.error(chalk.dim(error.stack));\n }\n\n process.exit(1);\n }\n};\n"]}