{"version":3,"sources":["/home/mkabumattar/work/withrawi/rawi/dist/chunk-6GE6TGOK.cjs","../src/core/providers/azure.provider.ts"],"names":["azureModels","azureProvider","streamWithAzure","credentials","prompt","resourceName","apiVersion","createAzure","result","streamText","error"],"mappings":"AAAA;AACA,wDAAwC,sCCDF,wBAEC,IAoB1BA,CAAAA,CAA2B,CAAC,CAAA,CAE5BC,CAAAA,aAAgB,CAC3B,IAAA,CAAM,OAAA,CACN,WAAA,CAAa,wBAAA,CACb,MAAA,CAAQD,CACV,CAAA,CAEaE,CAAAA,aAAkB,KAAA,CAC7BC,CAAAA,CACAC,CAAAA,CAAAA,EAC+B,CAC/B,GAAI,CACF,EAAA,CAAI,CAACD,CAAAA,CAAY,MAAA,CACf,MAAM,IAAI,KAAA,CAAM,sCAAsC,CAAA,CAGxD,EAAA,CACE,CAACA,CAAAA,CAAY,gBAAA,EACb,CAAA,CAAE,cAAA,GAAkBA,CAAAA,CAAY,gBAAA,CAAA,CAEhC,MAAM,IAAI,KAAA,CAAM,iCAAiC,CAAA,CAGnD,IAAME,CAAAA,CAAeF,CAAAA,CAAY,gBAAA,CAAiB,YAAA,CAC5CG,CAAAA,CACJ,YAAA,GAAgBH,CAAAA,CAAY,gBAAA,CACxBA,CAAAA,CAAY,gBAAA,CAAiB,UAAA,CAC7B,oBAAA,CAEAF,CAAAA,CAAgBM,gCAAAA,CACpB,MAAA,CAAQJ,CAAAA,CAAY,MAAA,CACpB,YAAA,CAAcE,CAAAA,CACd,UAAA,CAAYC,CACd,CAAC,CAAA,CAEKE,CAAAA,CAASC,4BAAAA,CACb,KAAA,CAAOR,CAAAA,CAAcE,CAAAA,CAAY,KAAK,CAAA,CACtC,MAAA,CAAAC,CAAAA,CACA,WAAA,CAAaD,CAAAA,CAAY,WAAA,EAAe,EAAA,CACxC,eAAA,CAAiBA,CAAAA,CAAY,SAAA,EAAa,IAC5C,CAAC,CAAA,CAED,MAAO,CACL,UAAA,CAAYK,CAAAA,CAAO,UAAA,CACnB,YAAA,CAAcA,CAAAA,CAAO,IACvB,CACF,CAAA,KAAA,CAASE,CAAAA,CAAO,CACd,MACEA,EAAAA,WAAiB,KAAA,EAAA,CAChBA,CAAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA,EACjCA,CAAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,gBAAgB,CAAA,EACvCA,CAAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,YAAY,CAAA,CAAA,CAE/B,IAAI,KAAA,CACR,CAAA,sDAAA,EAAyDP,CAAAA,CAAY,KAAK,CAAA,wHAAA,EAErDO,CAAAA,CAAM,OAAO,CAAA,CAAA;AD7EghC","file":"/home/mkabumattar/work/withrawi/rawi/dist/chunk-6GE6TGOK.cjs","sourcesContent":[null,"import {type azure, createAzure} from '@ai-sdk/azure';\nimport type {ModelMessage} from 'ai';\nimport {generateText, streamText} from 'ai';\nimport {parseCommandFromResponse} from '../exec/parser.js';\nimport type {\n  AzureSettings,\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 LooseAzureModelId = Parameters<typeof azure>[0];\nexport type AzureModelId = LooseToStrict<LooseAzureModelId>;\n\nexport const azureModels: ModelInfo[] = [];\n\nexport const azureProvider = {\n  name: 'azure' as const,\n  displayName: '🔷 Azure OpenAI',\n  models: azureModels,\n};\n\nexport const streamWithAzure = async (\n  credentials: RawiCredentials,\n  prompt: string,\n): Promise<StreamingResponse> => {\n  try {\n    if (!credentials.apiKey) {\n      throw new Error('API key is required for Azure OpenAI');\n    }\n\n    if (\n      !credentials.providerSettings ||\n      !('resourceName' in credentials.providerSettings)\n    ) {\n      throw new Error('Azure resource name is required');\n    }\n\n    const resourceName = credentials.providerSettings.resourceName;\n    const apiVersion =\n      'apiVersion' in credentials.providerSettings\n        ? credentials.providerSettings.apiVersion\n        : '2024-10-01-preview';\n\n    const azureProvider = createAzure({\n      apiKey: credentials.apiKey,\n      resourceName: resourceName,\n      apiVersion: apiVersion,\n    });\n\n    const result = streamText({\n      model: azureProvider(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    if (\n      error instanceof Error &&\n      (error.message.includes('not found') ||\n        error.message.includes('does not exist') ||\n        error.message.includes('deployment'))\n    ) {\n      throw new Error(\n        `Error calling Azure OpenAI streaming API: Deployment \"${credentials.model}\" not found. ` +\n          `Make sure you've correctly entered your deployment name (not the model name like \"gpt-4\"). ` +\n          `Original error: ${error.message}`,\n      );\n    }\n\n    throw new Error(\n      `Error calling Azure OpenAI streaming API: ${\n        error instanceof Error ? error.message : String(error)\n      }`,\n    );\n  }\n};\n\nexport const azureChatProvider: ChatProvider = {\n  name: 'azure',\n  displayName: '🔷 Azure OpenAI',\n\n  async streamChat(\n    credentials: ChatCredentials,\n    messages: ModelMessage[],\n    options: ChatStreamOptions = {},\n  ): Promise<AsyncIterable<string>> {\n    const settings = credentials.providerSettings || {};\n    const apiKey = settings.apiKey || credentials.apiKey;\n\n    if (!apiKey) {\n      throw new Error('API key is required for Azure OpenAI');\n    }\n\n    if (!settings.resourceName) {\n      throw new Error('Azure resource name is required');\n    }\n\n    const resourceName = settings.resourceName;\n    const apiVersion = settings.apiVersion || '2024-10-01-preview';\n\n    const azureProvider = createAzure({\n      apiKey: apiKey,\n      resourceName: resourceName,\n      apiVersion: apiVersion,\n    });\n\n    const result = streamText({\n      model: azureProvider(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 generateWithAzure = async (\n  options: ExecGenerationOptions,\n): Promise<ExecGenerationResult> => {\n  const startTime = Date.now();\n\n  try {\n    if (!options.credentials.apiKey) {\n      throw new Error('API key is required for Azure OpenAI');\n    }\n\n    const settings = options.credentials.providerSettings as AzureSettings;\n\n    if (!settings?.resourceName) {\n      throw new Error('Azure resource name is required');\n    }\n\n    const resourceName = settings.resourceName;\n    const apiVersion = settings.apiVersion || '2024-10-01-preview';\n\n    const azureProvider = createAzure({\n      apiKey: options.credentials.apiKey,\n      resourceName: resourceName,\n      apiVersion: apiVersion,\n    });\n\n    const result = await generateText({\n      model: azureProvider(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(`Azure exec generation failed: ${error}`);\n  }\n};\n"]}