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

6 lines 4.49 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }/* 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 an intelligent development workspace. */ var _chunk3BQKIUKScjs = require('./chunk-3BQKIUKS.cjs');var _chunkIUCUN6N2cjs = require('./chunk-IUCUN6N2.cjs');var _chunkG3NONHT6cjs = require('./chunk-G3NONHT6.cjs');var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);var x=async(e,f,u,d,y,b,t)=>{await d.addMessage(f,"user",u,e.provider,e.model,e.temperature,e.maxTokens),t.verbose&&_chunkG3NONHT6cjs.b.start("generation",`Streaming response using ${e.provider} (${e.model})...`,{color:"cyan"}),console.log(`${_chalk2.default.cyan("Result:")}`);let m,v=!1;try{let s="",w=y&&(t.verbose||t.showFiltered);m=await _chunk3BQKIUKScjs.b.call(void 0, e,u,{streaming:!0,filtering:y?{enabled:!0,types:b,showFiltered:!1}:void 0,onChunk:a=>{v||(t.verbose&&_chunkG3NONHT6cjs.b.succeed("generation","Starting to stream response..."),v=!0),w&&(s+=a),process.stdout.write(a)},onComplete:()=>{if(console.log(),w){let h=new (0, _chunkIUCUN6N2cjs.f)({enabled:!0,types:b,showFiltered:!1,highlightFiltered:t.highlightFiltered||!1}).filterContent(s),g=h.filterCount;if(Object.keys(g).length>0){if(t.verbose){console.log(_chalk2.default.yellow("\u{1F4CA} Filtering Summary:")),console.log(_chalk2.default.yellow("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));let c=Object.values(g).reduce((l,r)=>l+r,0);console.log(_chalk2.default.yellow(`Total filtered items: ${c}`)),console.log(_chalk2.default.yellow(` Breakdown by type:`));for(let[l,r]of Object.entries(g)){let n=Math.round(r/c*100),p="\u2588".repeat(Math.min(20,Math.floor(n/5)));console.log(_chalk2.default.yellow(` ${l.padEnd(15)}: ${r.toString().padStart(3)} (${n}%) ${p}`))}}else{let c=Object.values(g).reduce((r,n)=>r+n,0);console.log(_chalk2.default.yellow(`\u{1F4CA} Filtered ${c} sensitive items from response`));let l=Object.entries(g).sort(([,r],[,n])=>n-r).slice(0,3);if(l.length>0){let r=l.map(([n,p])=>`${n} (${p})`).join(", ");console.log(_chalk2.default.yellow(` Most common: ${r}`))}console.log(_chalk2.default.dim(" Use --verbose for detailed filtering statistics"))}t.highlightFiltered&&h.highlightedText&&(console.log(_chalk2.default.yellow(` \u{1F50D} Highlighted sensitive content in response:`)),console.log("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"),console.log(h.highlightedText),console.log("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}else t.verbose&&console.log(_chalk2.default.dim("\u2705 No sensitive information detected in response"))}t.verbose&&console.log(_chalk2.default.dim("\u2705 Streaming completed"))},onError:a=>{t.verbose&&(_chunkG3NONHT6cjs.b.fail("generation","Failed to generate response"),console.error(_chalk2.default.red(`\u274C ${a.message}`)))}}),await d.addMessage(f,"assistant",m,e.provider,e.model,e.temperature,e.maxTokens),t.verbose&&_chunkG3NONHT6cjs.b.succeed("generation","Response streamed successfully!")}catch(s){t.verbose&&(_chunkG3NONHT6cjs.b.fail("generation","Failed to generate response"),console.error(_chalk2.default.red(`\u274C ${s instanceof Error?s.message:String(s)}`))),m=`Unable to generate response using ${e.provider} (${e.model}). Error: ${s instanceof Error?s.message:String(s)}`,await d.addMessage(f,"assistant",m,e.provider,e.model,e.temperature,e.maxTokens,{error:!0})}};exports.a = x; /* 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 an intelligent development workspace. */ //# sourceMappingURL=chunk-TCDDN5PV.cjs.map