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
4 lines • 5.99 kB
JavaScript
/* 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{a as l}from"./chunk-DZIEWBQ3.js";import{createAmazonBedrock as i}from"@ai-sdk/amazon-bedrock";import{generateText as v,streamText as u}from"ai";var h=["amazon.titan-tg1-large","amazon.titan-text-express-v1","anthropic.claude-v2","anthropic.claude-v2:1","anthropic.claude-instant-v1","anthropic.claude-sonnet-4-20250514-v1:0","anthropic.claude-opus-4-20250514-v1:0","anthropic.claude-opus-4-1-20250805-v1:0","anthropic.claude-3-7-sonnet-20250219-v1:0","anthropic.claude-3-5-sonnet-20240620-v1:0","anthropic.claude-3-5-sonnet-20241022-v2:0","anthropic.claude-3-5-haiku-20241022-v1:0","anthropic.claude-3-sonnet-20240229-v1:0","anthropic.claude-3-haiku-20240307-v1:0","anthropic.claude-3-opus-20240229-v1:0","cohere.command-text-v14","cohere.command-light-text-v14","cohere.command-r-v1:0","cohere.command-r-plus-v1:0","meta.llama3-70b-instruct-v1:0","meta.llama3-8b-instruct-v1:0","meta.llama3-1-405b-instruct-v1:0","meta.llama3-1-70b-instruct-v1:0","meta.llama3-1-8b-instruct-v1:0","meta.llama3-2-11b-instruct-v1:0","meta.llama3-2-1b-instruct-v1:0","meta.llama3-2-3b-instruct-v1:0","meta.llama3-2-90b-instruct-v1:0","mistral.mistral-7b-instruct-v0:2","mistral.mixtral-8x7b-instruct-v0:1","mistral.mistral-large-2402-v1:0","mistral.mistral-small-2402-v1:0","openai.gpt-oss-120b-1:0","openai.gpt-oss-20b-1:0","amazon.titan-text-express-v1","amazon.titan-text-lite-v1","us.amazon.nova-premier-v1:0","us.amazon.nova-pro-v1:0","us.amazon.nova-micro-v1:0","us.amazon.nova-lite-v1:0","us.anthropic.claude-3-sonnet-20240229-v1:0","us.anthropic.claude-3-opus-20240229-v1:0","us.anthropic.claude-3-haiku-20240307-v1:0","us.anthropic.claude-3-5-sonnet-20240620-v1:0","us.anthropic.claude-3-5-haiku-20241022-v1:0","us.anthropic.claude-3-5-sonnet-20241022-v2:0","us.anthropic.claude-3-7-sonnet-20250219-v1:0","us.anthropic.claude-sonnet-4-20250514-v1:0","us.anthropic.claude-opus-4-20250514-v1:0","us.anthropic.claude-opus-4-1-20250805-v1:0","us.meta.llama3-2-11b-instruct-v1:0","us.meta.llama3-2-3b-instruct-v1:0","us.meta.llama3-2-90b-instruct-v1:0","us.meta.llama3-2-1b-instruct-v1:0","us.meta.llama3-1-8b-instruct-v1:0","us.meta.llama3-1-70b-instruct-v1:0","us.meta.llama3-3-70b-instruct-v1:0","us.deepseek.r1-v1:0","us.mistral.pixtral-large-2502-v1:0","us.meta.llama4-scout-17b-instruct-v1:0","us.meta.llama4-maverick-17b-instruct-v1:0"],S=h.map(t=>({name:t,displayName:t})),E={name:"bedrock",displayName:"\u{1F7E1} Amazon Bedrock",models:S},g=async(t,d)=>{try{let e=t.providerSettings,r=e?.region||process.env.AWS_REGION||"us-east-1",o;if(e?.useProviderChain)try{let{fromNodeProviderChain:c}=await import("@aws-sdk/credential-providers");o=i({region:r,credentialProvider:c()})}catch{throw new Error("Failed to load AWS credential provider chain. Make sure you have installed @aws-sdk/credential-providers package: npm install @aws-sdk/credential-providers")}else{let c=e?.accessKeyId||process.env.AWS_ACCESS_KEY_ID,a=e?.secretAccessKey||process.env.AWS_SECRET_ACCESS_KEY,s=e?.sessionToken||process.env.AWS_SESSION_TOKEN;if(!c||!a)throw new Error("AWS access key ID and secret access key are required for Amazon Bedrock");o=i({region:r,credentialProvider:()=>Promise.resolve({accessKeyId:c,secretAccessKey:a,sessionToken:s})})}let n=u({model:o(t.model),prompt:d,temperature:t.temperature||.7,maxOutputTokens:t.maxTokens||2048});return{textStream:n.textStream,fullResponse:n.text}}catch(e){throw new Error(`Error calling Amazon Bedrock streaming API: ${e instanceof Error?e.message:String(e)}`)}},C={name:"bedrock",displayName:"\u{1F7E1} Amazon Bedrock",async streamChat(t,d,e={}){let r=t.providerSettings||{},o=r.region||process.env.AWS_REGION||"us-east-1",n;if(r.useProviderChain)try{let{fromNodeProviderChain:a}=await import("@aws-sdk/credential-providers");n=i({region:o,credentialProvider:a()})}catch{throw new Error("Failed to load AWS credential provider chain.")}else{let a=r.accessKeyId||process.env.AWS_ACCESS_KEY_ID,s=r.secretAccessKey||process.env.AWS_SECRET_ACCESS_KEY,m=r?.sessionToken||process.env.AWS_SESSION_TOKEN;if(!a||!s)throw new Error("AWS access key ID and secret access key are required for Amazon Bedrock");n=i({region:o,credentialProvider:()=>Promise.resolve({accessKeyId:a,secretAccessKey:s,sessionToken:m})})}return u({model:n(t.model),messages:d,temperature:t.temperature||e.temperature||.7,maxOutputTokens:t.maxTokens||e.maxTokens||2048}).textStream}},b=async t=>{let d=Date.now();try{let e=t.credentials.providerSettings,r=e?.region||process.env.AWS_REGION||"us-east-1",o;if(e?.useProviderChain)try{let{fromNodeProviderChain:s}=await import("@aws-sdk/credential-providers");o=i({region:r,credentialProvider:s()})}catch{throw new Error("Failed to load AWS credential provider chain.")}else{let s=e?.accessKeyId||process.env.AWS_ACCESS_KEY_ID,m=e?.secretAccessKey||process.env.AWS_SECRET_ACCESS_KEY,p=e?.sessionToken||process.env.AWS_SESSION_TOKEN;if(!s||!m)throw new Error("AWS access key ID and secret access key are required for Amazon Bedrock");o=i({region:r,credentialProvider:()=>Promise.resolve({accessKeyId:s,secretAccessKey:m,sessionToken:p})})}let n=await v({model:o(t.credentials.model),system:t.systemPrompt,prompt:t.userPrompt}),c=Date.now()-d;return{command:l(n.text),generationTime:c}}catch(e){throw new Error(`Amazon Bedrock exec generation failed: ${e}`)}};export{S as a,E as b,g as c,C as d,b as e};
/* 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-MONCMSA6.js.map