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
1 lines • 6.47 kB
Source Map (JSON)
{"version":3,"sources":["/home/mkabumattar/withrawi/rawi/dist/chunk-YFAWY6KH.cjs","../src/core/providers/amazon-bedrock.provider.ts"],"names":["bedrockModelIds","bedrockModels","name","bedrockProvider","streamWithBedrock","credentials","prompt","settings","region","bedrockClient","fromNodeProviderChain","createAmazonBedrock","accessKeyId","secretAccessKey","sessionToken","result","streamText","error"],"mappings":"AAAA;ACCA,uDAAkC,wBACT,IAYnBA,CAAAA,CAAkB,CACtB,wBAAA,CACA,8BAAA,CACA,qBAAA,CACA,uBAAA,CACA,6BAAA,CACA,yCAAA,CACA,uCAAA,CACA,2CAAA,CACA,2CAAA,CACA,2CAAA,CACA,0CAAA,CACA,yCAAA,CACA,wCAAA,CACA,uCAAA,CACA,yBAAA,CACA,+BAAA,CACA,uBAAA,CACA,4BAAA,CACA,+BAAA,CACA,8BAAA,CACA,kCAAA,CACA,iCAAA,CACA,gCAAA,CACA,iCAAA,CACA,gCAAA,CACA,gCAAA,CACA,iCAAA,CACA,kCAAA,CACA,oCAAA,CACA,iCAAA,CACA,iCAAA,CACA,8BAAA,CACA,2BACF,CAAA,CAEaC,CAAAA,aAA6BD,CAAAA,CAAgB,GAAA,CAAKE,CAAAA,EAAAA,CAAU,CACvE,IAAA,CAAAA,CAAAA,CACA,WAAA,CAAaA,CACf,CAAA,CAAE,CAAA,CAEWC,CAAAA,aAAkB,CAC7B,IAAA,CAAM,SAAA,CACN,WAAA,CAAa,0BAAA,CACb,MAAA,CAAQF,CACV,CAAA,CAEaG,CAAAA,aAAoB,KAAA,CAC/BC,CAAAA,CACAC,CAAAA,CAAAA,EAC+B,CAC/B,GAAI,CACF,IAAMC,CAAAA,CAAWF,CAAAA,CAAY,gBAAA,CAIvBG,CAAAA,iBAASD,CAAAA,2BAAU,QAAA,EAAU,OAAA,CAAQ,GAAA,CAAI,UAAA,EAAc,WAAA,CAEzDE,CAAAA,CAEJ,EAAA,iBAAIF,CAAAA,6BAAU,kBAAA,CACZ,GAAI,CACF,GAAM,CAAC,qBAAA,CAAAG,CAAqB,CAAA,CAAI,MAAM,4DAAA,CACpC,+BACF,GAAA,CAEAD,CAAAA,CAAgBE,gDAAAA,CACd,MAAA,CAAAH,CAAAA,CACA,kBAAA,CAAoBE,CAAAA,CAAsB,CAC5C,CAAC,CACH,CAAA,UAAY,CACV,MAAM,IAAI,KAAA,CACR,6JAEF,CACF,CAAA,IACK,CACL,IAAME,CAAAA,iBACJL,CAAAA,6BAAU,aAAA,EAAe,OAAA,CAAQ,GAAA,CAAI,iBAAA,CACjCM,CAAAA,iBACJN,CAAAA,6BAAU,iBAAA,EAAmB,OAAA,CAAQ,GAAA,CAAI,qBAAA,CACrCO,CAAAA,iBACJP,CAAAA,6BAAU,cAAA,EAAgB,OAAA,CAAQ,GAAA,CAAI,iBAAA,CAExC,EAAA,CAAI,CAACK,CAAAA,EAAe,CAACC,CAAAA,CACnB,MAAM,IAAI,KAAA,CACR,yEACF,CAAA,CAGFJ,CAAAA,CAAgBE,gDAAAA,CACd,MAAA,CAAAH,CAAAA,CACA,WAAA,CAAAI,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAC,CACH,CAEA,IAAMC,CAAAA,CAASC,4BAAAA,CACb,KAAA,CAAOP,CAAAA,CAAcJ,CAAAA,CAAY,KAAK,CAAA,CACtC,MAAA,CAAAC,CAAAA,CACA,WAAA,CAAaD,CAAAA,CAAY,WAAA,EAAe,EAAA,CACxC,SAAA,CAAWA,CAAAA,CAAY,SAAA,EAAa,IACtC,CAAC,CAAA,CAED,MAAO,CACL,UAAA,CAAYU,CAAAA,CAAO,UAAA,CACnB,YAAA,CAAcA,CAAAA,CAAO,IACvB,CACF,CAAA,KAAA,CAASE,CAAAA,CAAO,CACd,MAAM,IAAI,KAAA,CACR,CAAA,4CAAA,EACEA,EAAAA,WAAiB,KAAA,CAAQA,CAAAA,CAAM,OAAA,CAAU,MAAA,CAAOA,CAAK,CACvD,CAAA,CAAA;AD7HixE","file":"/home/mkabumattar/withrawi/rawi/dist/chunk-YFAWY6KH.cjs","sourcesContent":[null,"import type {bedrock} from '@ai-sdk/amazon-bedrock';\nimport {createAmazonBedrock} from '@ai-sdk/amazon-bedrock';\nimport {streamText} from 'ai';\nimport type {\n BedrockSettings,\n LooseToStrict,\n ModelInfo,\n RawiCredentials,\n StreamingResponse,\n} from '../shared/index.js';\n\ntype LooseBedrockModelId = Parameters<typeof bedrock>[0];\nexport type BedrockModelId = LooseToStrict<LooseBedrockModelId>;\n\nconst bedrockModelIds = [\n 'amazon.titan-tg1-large',\n 'amazon.titan-text-express-v1',\n 'anthropic.claude-v2',\n 'anthropic.claude-v2:1',\n 'anthropic.claude-instant-v1',\n 'anthropic.claude-sonnet-4-20250514-v1:0',\n 'anthropic.claude-opus-4-20250514-v1:0',\n 'anthropic.claude-3-7-sonnet-20250219-v1:0',\n 'anthropic.claude-3-5-sonnet-20240620-v1:0',\n 'anthropic.claude-3-5-sonnet-20241022-v2:0',\n 'anthropic.claude-3-5-haiku-20241022-v1:0',\n 'anthropic.claude-3-sonnet-20240229-v1:0',\n 'anthropic.claude-3-haiku-20240307-v1:0',\n 'anthropic.claude-3-opus-20240229-v1:0',\n 'cohere.command-text-v14',\n 'cohere.command-light-text-v14',\n 'cohere.command-r-v1:0',\n 'cohere.command-r-plus-v1:0',\n 'meta.llama3-70b-instruct-v1:0',\n 'meta.llama3-8b-instruct-v1:0',\n 'meta.llama3-1-405b-instruct-v1:0',\n 'meta.llama3-1-70b-instruct-v1:0',\n 'meta.llama3-1-8b-instruct-v1:0',\n 'meta.llama3-2-11b-instruct-v1:0',\n 'meta.llama3-2-1b-instruct-v1:0',\n 'meta.llama3-2-3b-instruct-v1:0',\n 'meta.llama3-2-90b-instruct-v1:0',\n 'mistral.mistral-7b-instruct-v0:2',\n 'mistral.mixtral-8x7b-instruct-v0:1',\n 'mistral.mistral-large-2402-v1:0',\n 'mistral.mistral-small-2402-v1:0',\n 'amazon.titan-text-express-v1',\n 'amazon.titan-text-lite-v1',\n] as const;\n\nexport const bedrockModels: ModelInfo[] = bedrockModelIds.map((name) => ({\n name,\n displayName: name,\n}));\n\nexport const bedrockProvider = {\n name: 'bedrock' as const,\n displayName: '🟠 Amazon Bedrock',\n models: bedrockModels,\n};\n\nexport const streamWithBedrock = async (\n credentials: RawiCredentials,\n prompt: string,\n): Promise<StreamingResponse> => {\n try {\n const settings = credentials.providerSettings as\n | BedrockSettings\n | undefined;\n\n const region = settings?.region || process.env.AWS_REGION || 'us-east-1';\n\n let bedrockClient: ReturnType<typeof createAmazonBedrock>;\n\n if (settings?.useProviderChain) {\n try {\n const {fromNodeProviderChain} = await import(\n '@aws-sdk/credential-providers'\n );\n\n bedrockClient = createAmazonBedrock({\n region,\n credentialProvider: fromNodeProviderChain(),\n });\n } catch (_) {\n throw new Error(\n 'Failed to load AWS credential provider chain. Make sure you have installed ' +\n '@aws-sdk/credential-providers package: npm install @aws-sdk/credential-providers',\n );\n }\n } else {\n const accessKeyId =\n settings?.accessKeyId || process.env.AWS_ACCESS_KEY_ID;\n const secretAccessKey =\n settings?.secretAccessKey || process.env.AWS_SECRET_ACCESS_KEY;\n const sessionToken =\n settings?.sessionToken || process.env.AWS_SESSION_TOKEN;\n\n if (!accessKeyId || !secretAccessKey) {\n throw new Error(\n 'AWS access key ID and secret access key are required for Amazon Bedrock',\n );\n }\n\n bedrockClient = createAmazonBedrock({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n });\n }\n\n const result = streamText({\n model: bedrockClient(credentials.model),\n prompt,\n temperature: credentials.temperature || 0.7,\n maxTokens: credentials.maxTokens || 2048,\n });\n\n return {\n textStream: result.textStream,\n fullResponse: result.text,\n };\n } catch (error) {\n throw new Error(\n `Error calling Amazon Bedrock streaming API: ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n};\n"]}