{"version":3,"sources":["/home/mkabumattar/work/withrawi/rawi/dist/chunk-HBDUKCEZ.cjs","../src/core/providers/bedrock.provider.ts"],"names":["bedrockModelIds","bedrockModels","name","bedrockProvider","streamWithBedrock","credentials","prompt","settings","region","bedrockClient","fromNodeProviderChain","createAmazonBedrock","accessKeyId","secretAccessKey","sessionToken","result","streamText","error"],"mappings":"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","file":"/home/mkabumattar/work/withrawi/rawi/dist/chunk-HBDUKCEZ.cjs","sourcesContent":[null,"import {type bedrock, createAmazonBedrock} from '@ai-sdk/amazon-bedrock';\nimport type {ModelMessage} from 'ai';\nimport {generateText, streamText} from 'ai';\nimport {parseCommandFromResponse} from '../exec/parser.js';\nimport type {\n  BedrockSettings,\n  LooseToStrict,\n  ModelInfo,\n  RawiCredentials,\n  StreamingResponse,\n} from '../shared/index.js';\nimport type {\n  ChatCredentials,\n  ChatProvider,\n  ChatStreamOptions,\n  ExecGenerationOptions,\n  ExecGenerationResult,\n} from './types.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-opus-4-1-20250805-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  'openai.gpt-oss-120b-1:0',\n  'openai.gpt-oss-20b-1:0',\n  'amazon.titan-text-express-v1',\n  'amazon.titan-text-lite-v1',\n  'us.amazon.nova-premier-v1:0',\n  'us.amazon.nova-pro-v1:0',\n  'us.amazon.nova-micro-v1:0',\n  'us.amazon.nova-lite-v1:0',\n  'us.anthropic.claude-3-sonnet-20240229-v1:0',\n  'us.anthropic.claude-3-opus-20240229-v1:0',\n  'us.anthropic.claude-3-haiku-20240307-v1:0',\n  'us.anthropic.claude-3-5-sonnet-20240620-v1:0',\n  'us.anthropic.claude-3-5-haiku-20241022-v1:0',\n  'us.anthropic.claude-3-5-sonnet-20241022-v2:0',\n  'us.anthropic.claude-3-7-sonnet-20250219-v1:0',\n  'us.anthropic.claude-sonnet-4-20250514-v1:0',\n  'us.anthropic.claude-opus-4-20250514-v1:0',\n  'us.anthropic.claude-opus-4-1-20250805-v1:0',\n  'us.meta.llama3-2-11b-instruct-v1:0',\n  'us.meta.llama3-2-3b-instruct-v1:0',\n  'us.meta.llama3-2-90b-instruct-v1:0',\n  'us.meta.llama3-2-1b-instruct-v1:0',\n  'us.meta.llama3-1-8b-instruct-v1:0',\n  'us.meta.llama3-1-70b-instruct-v1:0',\n  'us.meta.llama3-3-70b-instruct-v1:0',\n  'us.deepseek.r1-v1:0',\n  'us.mistral.pixtral-large-2502-v1:0',\n  'us.meta.llama4-scout-17b-instruct-v1:0',\n  'us.meta.llama4-maverick-17b-instruct-v1:0',\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    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        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        credentialProvider: () =>\n          Promise.resolve({\n            accessKeyId,\n            secretAccessKey,\n            sessionToken,\n          }),\n      });\n    }\n\n    const result = streamText({\n      model: bedrockClient(credentials.model),\n      prompt,\n      temperature: credentials.temperature || 0.7,\n      maxOutputTokens: 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\nexport const bedrockChatProvider: ChatProvider = {\n  name: 'bedrock',\n  displayName: '🟡 Amazon Bedrock',\n\n  async streamChat(\n    credentials: ChatCredentials,\n    messages: ModelMessage[],\n    options: ChatStreamOptions = {},\n  ): Promise<AsyncIterable<string>> {\n    const settings = (credentials.providerSettings as BedrockSettings) || {};\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        bedrockClient = createAmazonBedrock({\n          region,\n          credentialProvider: fromNodeProviderChain(),\n        });\n      } catch (_) {\n        throw new Error('Failed to load AWS credential provider chain.');\n      }\n    } else {\n      const accessKeyId = 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        credentialProvider: () =>\n          Promise.resolve({\n            accessKeyId,\n            secretAccessKey,\n            sessionToken,\n          }),\n      });\n    }\n\n    const result = streamText({\n      model: bedrockClient(credentials.model),\n      messages,\n      temperature: credentials.temperature || options.temperature || 0.7,\n      maxOutputTokens: credentials.maxTokens || options.maxTokens || 2048,\n    });\n\n    return result.textStream;\n  },\n};\n\nexport const generateWithBedrock = async (\n  options: ExecGenerationOptions,\n): Promise<ExecGenerationResult> => {\n  const startTime = Date.now();\n\n  try {\n    const settings = options.credentials.providerSettings as\n      | BedrockSettings\n      | undefined;\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        bedrockClient = createAmazonBedrock({\n          region,\n          credentialProvider: fromNodeProviderChain(),\n        });\n      } catch (_) {\n        throw new Error('Failed to load AWS credential provider chain.');\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        credentialProvider: () =>\n          Promise.resolve({\n            accessKeyId,\n            secretAccessKey,\n            sessionToken,\n          }),\n      });\n    }\n\n    const result = await generateText({\n      model: bedrockClient(options.credentials.model),\n      system: options.systemPrompt,\n      prompt: options.userPrompt,\n    });\n\n    const generationTime = Date.now() - startTime;\n\n    const command = parseCommandFromResponse(result.text);\n\n    return {\n      command,\n      generationTime,\n    };\n  } catch (error) {\n    throw new Error(`Amazon Bedrock exec generation failed: ${error}`);\n  }\n};\n"]}