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

19 lines 7.75 kB
#!/usr/bin/env node "use strict"; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }/* 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 an intelligent development workspace. */ require('./chunk-QGJQ6X7U.cjs');var _chunkWUU5DHZ5cjs = require('./chunk-WUU5DHZ5.cjs');require('./chunk-CCBNHZYV.cjs');require('./chunk-4HB7ANGM.cjs');require('./chunk-NQWMSMA6.cjs');var _chunkHCTIMJB4cjs = require('./chunk-HCTIMJB4.cjs');require('./chunk-4P4BMYHX.cjs');require('./chunk-FPFYOGYF.cjs');require('./chunk-5F473JVS.cjs');require('./chunk-S7ZMWO3F.cjs');require('./chunk-M6CDTIKS.cjs');require('./chunk-7W7B6YZQ.cjs');require('./chunk-GXQCEOUL.cjs');require('./chunk-XZS45DET.cjs');require('./chunk-DXMXDEUP.cjs');require('./chunk-TOV2IXDL.cjs');require('./chunk-IAC4SQQC.cjs');require('./chunk-65B2KITR.cjs');require('./chunk-2VSUGZSR.cjs');require('./chunk-A3AM4C5J.cjs');require('./chunk-57ISK4WT.cjs');require('./chunk-YMFDGLDP.cjs');require('./chunk-YW2ECH45.cjs');require('./chunk-PAKWO5IN.cjs');require('./chunk-IX4EYYGN.cjs');require('./chunk-AR2KIMCH.cjs');require('./chunk-4RFN2JBI.cjs');require('./chunk-7D7CXXN7.cjs');require('./chunk-6RL24HUM.cjs');require('./chunk-ZGYIUFEW.cjs');require('./chunk-JIQYHHMV.cjs');require('./chunk-O3NIUWMW.cjs');require('./chunk-5SUCR572.cjs');require('./chunk-SUWS4T5H.cjs');require('./chunk-PLYVWSF7.cjs');require('./chunk-GXNVCCHS.cjs');require('./chunk-K5NJVUL4.cjs');require('./chunk-JZN45U2H.cjs');require('./chunk-ADQVXX4K.cjs');require('./chunk-DQXNPI2P.cjs');require('./chunk-32YL5W65.cjs');require('./chunk-KKPOH4UH.cjs');require('./chunk-PLNANJ2O.cjs');require('./chunk-5CRCR6CM.cjs');require('./chunk-P47BPYQX.cjs');require('./chunk-ETBZEY6Q.cjs');require('./chunk-X4T4DLSS.cjs');require('./chunk-YFAWY6KH.cjs');require('./chunk-PGLADL2H.cjs');require('./chunk-Z6PI7SD3.cjs');require('./chunk-MF4BUNPN.cjs');require('./chunk-ZDWNVWWB.cjs');require('./chunk-3PE3THCL.cjs');require('./chunk-F2QPTJNZ.cjs');require('./chunk-OJLMC7PN.cjs');require('./chunk-QTQ5ASXU.cjs');require('./chunk-5GCADSBN.cjs');require('./chunk-P4NH5RQR.cjs');var _boxen = require('boxen'); var _boxen2 = _interopRequireDefault(_boxen);var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);var _leven = require('leven'); var _leven2 = _interopRequireDefault(_leven);var _updatenotifier = require('update-notifier'); var _updatenotifier2 = _interopRequireDefault(_updatenotifier);var d=await _updatenotifier2.default.call(void 0, {pkg:_chunkHCTIMJB4cjs.a,updateCheckInterval:1e3*60*60*2,shouldNotifyInNpmScript:!0,distTag:"latest"});d.notify();function A(s,o){let r=Number.POSITIVE_INFINITY,n=null;for(let i of o){let t=_leven2.default.call(void 0, s,i);t<r&&(r=t,n=i)}return r<=2?n:null}if(d.update){let{current:s,latest:o,type:r}=d.update,n=_chunkHCTIMJB4cjs.a.name,i=_optionalChain([_chunkHCTIMJB4cjs.a, 'optionalAccess', _ => _.repository, 'optionalAccess', _2 => _2.url])?`${_chunkHCTIMJB4cjs.a.repository.url.replace(/^git\+/,"").replace(/\.git$/,"")}/releases/latest`:null,t,l="",a="";switch(r){case"major":t=_chalk2.default.red.bold,l="Major ",a="\u{1F525}";break;case"minor":case"patch":t=_chalk2.default.yellow.bold,l="",a="\u2728";break;case"prerelease":case"build":t=_chalk2.default.cyan.italic,l="Pre-release ",a="\u{1F9EA}";break;default:t=_chalk2.default.gray,l="",a="\u2139\uFE0F"}let m=_chalk2.default.hex("#32CD32").bold(`${a} UPDATE AVAILABLE ${a}`),f=`${_chalk2.default.bold(l)}${t(r.toUpperCase())} Update`,g=`${_chalk2.default.dim("Current:")} ${_chalk2.default.white(s)} ${_chalk2.default.dim("\u2192")} ${_chalk2.default.green(o)} ${_chalk2.default.dim("(Latest)")}`,h=_chalk2.default.whiteBright(`Unlock the latest features and bug fixes for ${_chalk2.default.bold(n)}!`),$=_chalk2.default.yellow.bold("Upgrade by running one of these commands:"),y=[`npm install -g ${n} `,`pnpm install -g ${n}`,`yarn global add ${n}`,`bun add -g ${n} `].map(x=>_chalk2.default.blue.bold(` $ ${x}`)).join(` `),b=i?` ${_chalk2.default.underline.blue("See release notes:")} ${_chalk2.default.dim(i)} `:"",k=_chalk2.default.dim(` Tip: Restart your terminal or IDE after upgrade for changes to take effect.`),w=[m,"",f,"",g,"",h,"",$,y,b,k].join(` `);console.log(_boxen2.default.call(void 0, w,{padding:1,margin:1,borderColor:"#FF4500",borderStyle:"round",backgroundColor:"#1A1A1A",textAlignment:"center",title:_chalk2.default.bold.white(` ${n} Update `),titleAlignment:"center",float:"center"}))}process.on("uncaughtException",s=>{if(s instanceof Error&&s.name==="ExitPromptError"&&(console.log(` \u{1F44B} Exiting Rawi. Until next time!`),process.exit(0)),s instanceof Error){let o=s.message||"";if(o.includes("Unknown command")){let r=o.match(/Unknown command '([^']+)'/),n=r?r[1]:null,i=["ask","act","configure","provider","history","info"],t=null;if(n&&(t=A(n,i)),console.error(` ${_chalk2.default.red(`\u274C Unknown command: ${n||o}`)}`),t)console.info(_chalk2.default.yellowBright(`Did you mean '${t}'?`));else{let l=i.find(a=>n&&a.startsWith(n[0]));l&&console.info(_chalk2.default.yellowBright(`Did you mean '${l}'?`))}console.info(_chalk2.default.gray("Run `rawi --help` to see all available commands.")),process.exit(1)}o.includes("Missing required argument")&&(console.error(` ${_chalk2.default.red(`\u274C ${o}`)}`),console.info(_chalk2.default.gray("Use `--help` with the command for usage details.")),process.exit(1)),o.includes("Invalid option")&&(console.error(` ${_chalk2.default.red(`\u274C ${o}`)}`),console.info(_chalk2.default.gray("Check available options with `--help`.")),process.exit(1)),(o.includes("not configured")||o.includes("credentials"))&&(console.error(` ${_chalk2.default.red(`\u274C ${o}`)}`),console.info(_chalk2.default.yellow("Run `rawi configure` to set up your provider and credentials.")),process.exit(2)),(o.includes("network")||o.includes("timeout"))&&(console.error(` ${_chalk2.default.red(`\u274C ${o}`)}`),console.info(_chalk2.default.yellow("Check your internet connection or provider status.")),process.exit(3)),(o.includes("authentication")||o.includes("API key"))&&(console.error(` ${_chalk2.default.red(`\u274C ${o}`)}`),console.info(_chalk2.default.yellow("Check your API key and provider configuration.")),process.exit(4)),console.error(` ${_chalk2.default.red(`\u274C Unexpected error: ${o}`)}`),console.info(_chalk2.default.gray("If this issue persists, run `rawi info` for diagnostics or see the Troubleshooting guide.")),process.exit(1)}console.error(` \u274C An unknown error occurred.`),process.exit(1)});var p=_chunkWUU5DHZ5cjs.a.call(void 0, );process.argv.length<=2&&(p.outputHelp(),process.exit(0));p.parse(process.argv); /* 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 an intelligent development workspace. */ //# sourceMappingURL=index.cjs.map