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

19 lines 8.28 kB
#!/usr/bin/env node /* 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. */ import"./chunk-YYA6ANKI.js";import{a as u}from"./chunk-KEEJKFMB.js";import"./chunk-X2NXOVMD.js";import"./chunk-7WQT5DC7.js";import"./chunk-6GIWV32Y.js";import"./chunk-DOAPVXOG.js";import"./chunk-X3JQLL6A.js";import"./chunk-JUT4EELG.js";import"./chunk-4TU32DZ6.js";import"./chunk-DOCDUULR.js";import"./chunk-RAPYU56U.js";import"./chunk-LRM7AD6A.js";import"./chunk-3A2UFOTH.js";import"./chunk-WKRKQOPB.js";import"./chunk-DNW2MOM5.js";import"./chunk-OTNRFJZC.js";import{a as c}from"./chunk-O3K2VA55.js";import"./chunk-UTSGYB5Y.js";import"./chunk-IEYIB7TZ.js";import"./chunk-SN7YCAJE.js";import"./chunk-NQV23TOR.js";import"./chunk-XA7EC5QX.js";import"./chunk-CZA3QRID.js";import"./chunk-ZJOIQZL2.js";import"./chunk-JPTI6W3F.js";import"./chunk-SB4A275L.js";import"./chunk-FYGI4O6R.js";import"./chunk-ZNER2JA3.js";import"./chunk-A7VR4LYS.js";import"./chunk-GYWK3T7M.js";import"./chunk-GBZXT4VA.js";import"./chunk-NVUM2MT4.js";import"./chunk-62R6CZGW.js";import"./chunk-EPFSGFEA.js";import"./chunk-OJ5USVGA.js";import"./chunk-6T6MAFID.js";import"./chunk-3N2PN4ZV.js";import"./chunk-KEQQBX2Y.js";import"./chunk-C7QHKDQ2.js";import"./chunk-5AEAOCYC.js";import"./chunk-QDXXTJG3.js";import"./chunk-3BYEFZXL.js";import"./chunk-KXS4AXOL.js";import"./chunk-ELIZDCHH.js";import"./chunk-WOJNTZOO.js";import"./chunk-YYVNPDHR.js";import"./chunk-CTTIQJ3E.js";import"./chunk-NL3MPM75.js";import"./chunk-XWYH2IRC.js";import"./chunk-3N26QP7K.js";import"./chunk-CRE6AUZZ.js";import"./chunk-FPN326HL.js";import"./chunk-VGU5KDTM.js";import"./chunk-N3ZYCAAF.js";import"./chunk-647RAHEY.js";import"./chunk-HVGSPGCF.js";import"./chunk-VTQFBVMB.js";import"./chunk-CMHMGEUB.js";import"./chunk-APBYWUUQ.js";import"./chunk-KCPUX5VM.js";import"./chunk-55PK4CVJ.js";import"./chunk-2J3IGXNW.js";import"./chunk-KIOJGWD7.js";import"./chunk-KOEGZRVP.js";import"./chunk-ZQZZVFAX.js";import"./chunk-VUMTKEGR.js";import"./chunk-Y6X5YUIS.js";import"./chunk-GKJTHFMS.js";import"./chunk-VSPMROUG.js";import"./chunk-NDLYP5MP.js";import"./chunk-3NZMTRDD.js";import"./chunk-RLDN5XX3.js";import"./chunk-KBNGSILU.js";import"./chunk-QRNZMVTN.js";import"./chunk-EZQAUTEV.js";import"./chunk-XEKY7EQQ.js";import"./chunk-COMPMKDH.js";import"./chunk-PIMZJ5PA.js";import"./chunk-VRNK6ZGU.js";import"./chunk-I53R2YNN.js";import"./chunk-VRKU5YYZ.js";import"./chunk-RUQO26UY.js";import"./chunk-PT5U2YR3.js";import"./chunk-LYW4VAAJ.js";import"./chunk-PW7XA5FK.js";import"./chunk-EKUMQZYR.js";import"./chunk-74BMVZGU.js";import"./chunk-7GP3BBAG.js";import"./chunk-2DPVFSBV.js";import"./chunk-KLFNRVV6.js";import"./chunk-DXKL2UPB.js";import"./chunk-J3VDTHHY.js";import"./chunk-TK3ACB5Q.js";import"./chunk-SAWBX465.js";import"./chunk-HI45C3TT.js";import"./chunk-ZU4KRPRK.js";import"./chunk-VZTFFEJU.js";import"./chunk-PSQR4KXO.js";import"./chunk-TNMN536Z.js";import"./chunk-WXJU5KQM.js";import"./chunk-QFH6Q4E7.js";import"./chunk-OY42LAGY.js";import"./chunk-EIJWLKSV.js";import"./chunk-ZOSFCFHR.js";import"./chunk-3HQ5HKAI.js";import"./chunk-7GH5WHNV.js";import"./chunk-LJSOQ4E6.js";import"./chunk-WZ4OI4RK.js";import"./chunk-OG3J7LTA.js";import"./chunk-ZTZHR23U.js";import"./chunk-FQMEN54U.js";import"./chunk-Y7HHNFZ5.js";import"./chunk-UPQRVM7B.js";import"./chunk-XVKF3DVA.js";import"./chunk-VUUGHF7U.js";import"./chunk-QWYMQ5HZ.js";import"./chunk-WTN6X75T.js";import"./chunk-2RYLPKY5.js";import"./chunk-77KIPQ6F.js";import"./chunk-EQ3TMTCU.js";import"./chunk-HSFKFEZ4.js";import"./chunk-23CD3UYQ.js";import"./chunk-UVCGEIMD.js";import"./chunk-MONCMSA6.js";import"./chunk-DZIEWBQ3.js";import"./chunk-AHHBETNN.js";import"./chunk-XTEBLTG6.js";import"./chunk-572P46YW.js";import"./chunk-TTJTQWRE.js";import"./chunk-YYQXJ73P.js";import"./chunk-TFIOGS4E.js";import"./chunk-S2NLG6B4.js";import"./chunk-BBFC7LFN.js";import"./chunk-NLCRAQNW.js";import"./chunk-FTL5CSJ6.js";import"./chunk-MXBDSI4U.js";import"./chunk-A65FQHKW.js";import"./chunk-YGEDZIJR.js";import"./chunk-UQKH3JL4.js";import"./chunk-FS4HSIW2.js";import"./chunk-QVLIXKPH.js";import"./chunk-5DFT2D2X.js";import"./chunk-KIRGRUSX.js";import"./chunk-IUUGRWE5.js";import C from"boxen";import e from"chalk";import I from"leven";import v from"update-notifier";var d=await v({pkg:c,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=I(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=c.name,i=c?.repository?.url?`${c.repository.url.replace(/^git\+/,"").replace(/\.git$/,"")}/releases/latest`:null,t,l="",a="";switch(r){case"major":t=e.red.bold,l="Major ",a="\u{1F525}";break;case"minor":case"patch":t=e.yellow.bold,l="",a="\u2728";break;case"prerelease":case"build":t=e.cyan.italic,l="Pre-release ",a="\u{1F9EA}";break;default:t=e.gray,l="",a="\u2139\uFE0F"}let m=e.hex("#32CD32").bold(`${a} UPDATE AVAILABLE ${a}`),f=`${e.bold(l)}${t(r.toUpperCase())} Update`,g=`${e.dim("Current:")} ${e.white(s)} ${e.dim("\u2192")} ${e.green(o)} ${e.dim("(Latest)")}`,h=e.whiteBright(`Unlock the latest features and bug fixes for ${e.bold(n)}!`),$=e.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=>e.blue.bold(` $ ${x}`)).join(` `),b=i?` ${e.underline.blue("See release notes:")} ${e.dim(i)} `:"",k=e.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(C(w,{padding:1,margin:1,borderColor:"#FF4500",borderStyle:"round",backgroundColor:"#1A1A1A",textAlignment:"center",title:e.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(` ${e.red(`\u274C Unknown command: ${n||o}`)}`),t)console.info(e.yellowBright(`Did you mean '${t}'?`));else{let l=i.find(a=>n&&a.startsWith(n[0]));l&&console.info(e.yellowBright(`Did you mean '${l}'?`))}console.info(e.gray("Run `rawi --help` to see all available commands.")),process.exit(1)}o.includes("Missing required argument")&&(console.error(` ${e.red(`\u274C ${o}`)}`),console.info(e.gray("Use `--help` with the command for usage details.")),process.exit(1)),o.includes("Invalid option")&&(console.error(` ${e.red(`\u274C ${o}`)}`),console.info(e.gray("Check available options with `--help`.")),process.exit(1)),(o.includes("not configured")||o.includes("credentials"))&&(console.error(` ${e.red(`\u274C ${o}`)}`),console.info(e.yellow("Run `rawi configure` to set up your provider and credentials.")),process.exit(2)),(o.includes("network")||o.includes("timeout"))&&(console.error(` ${e.red(`\u274C ${o}`)}`),console.info(e.yellow("Check your internet connection or provider status.")),process.exit(3)),(o.includes("authentication")||o.includes("API key"))&&(console.error(` ${e.red(`\u274C ${o}`)}`),console.info(e.yellow("Check your API key and provider configuration.")),process.exit(4)),console.error(` ${e.red(`\u274C Unexpected error: ${o}`)}`),console.info(e.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=u();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 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=index.js.map