@agenite/bedrock
Version:
AWS Bedrock provider for Agenite
1 lines • 30.3 kB
Source Map (JSON)
{"version":3,"sources":["../src/utils.ts","../src/tool-adapter.ts","../src/provider.ts"],"names":["BaseLLMProvider","BedrockRuntimeClient","convertStringToMessages","ConverseStreamCommand","ConverseCommand"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n BaseMessage,\n ContentBlock,\n StopReason as AgentStopReason,\n} from '@agenite/llm';\nimport {\n ContentBlock as BedrockContentBlock,\n ImageFormat,\n Message,\n StopReason,\n} from '@aws-sdk/client-bedrock-runtime';\n\n/**\n * Maps Bedrock stop reasons to our standard stop reasons\n */\nexport const mapStopReason = (\n bedrockStopReason?: StopReason\n): AgentStopReason | undefined => {\n if (!bedrockStopReason) return undefined;\n\n const stopReasonMap: Record<Exclude<StopReason, null>, AgentStopReason> = {\n max_tokens: 'maxTokens',\n stop_sequence: 'stopSequence',\n end_turn: 'endTurn',\n tool_use: 'toolUse',\n guardrail_intervened: 'endTurn',\n content_filtered: 'endTurn',\n };\n\n return stopReasonMap[bedrockStopReason];\n};\n\n/**\n * Maps Bedrock content blocks to our standard content blocks\n */\nexport const mapContent = (\n bedrockContent: BedrockContentBlock[]\n): ContentBlock[] => {\n return bedrockContent\n .map((block) => {\n if (block.text) {\n // Check if the text only has whitespace including newlines\n if (/^\\s*$/.test(block.text)) {\n return null;\n }\n\n return {\n type: 'text',\n text: block.text,\n } as const;\n }\n\n if (block.toolUse) {\n const toolUseId = block.toolUse.toolUseId;\n if (!toolUseId) {\n throw new Error('Tool use ID is required');\n }\n return {\n type: 'toolUse',\n toolName: block.toolUse.name,\n input: block.toolUse.input || {},\n id: toolUseId,\n name: block.toolUse.name || 'unknown',\n } as const;\n }\n\n if (block.image) {\n const format = block.image.format || 'webp';\n const validFormat = ['jpeg', 'png', 'gif', 'webp'].includes(format)\n ? format\n : 'webp';\n return {\n type: 'image',\n source: {\n type: 'base64',\n data: block.image.source?.$unknown?.[1] || '',\n media_type: `image/${validFormat as 'jpeg' | 'png' | 'gif' | 'webp'}`,\n },\n } as const;\n }\n\n if (block.reasoningContent) {\n return {\n type: 'thinking',\n thinking: block.reasoningContent.reasoningText?.text || '',\n signature: block.reasoningContent.reasoningText?.signature || '',\n } as const;\n }\n\n throw new Error(\n `Unsupported content block type: ${JSON.stringify(block, null, 2)}`\n );\n })\n .filter((block) => block !== null);\n};\n\n/**\n * Converts our message format to Bedrock's format\n */\nexport const convertToMessageFormat = (messages: BaseMessage[]): Message[] => {\n return messages\n ?.filter(\n (message): message is BaseMessage & { role: 'user' | 'assistant' } =>\n ['user', 'assistant'].includes(message.role)\n )\n .map((message) => ({\n role: message.role,\n content: message.content.map((block): BedrockContentBlock => {\n if (typeof block === 'string') {\n return {\n text: block,\n $unknown: undefined,\n };\n }\n\n switch (block.type) {\n case 'text':\n return {\n text: block.text,\n $unknown: undefined,\n };\n case 'toolUse':\n return {\n toolUse: {\n toolUseId: block.id,\n name: block.name,\n input:\n block.input as BedrockContentBlock.ToolUseMember['toolUse']['input'],\n },\n };\n case 'toolResult':\n return {\n toolResult: {\n toolUseId: block.toolUseId,\n content: [\n {\n text: JSON.stringify(block.content),\n },\n ],\n status: block.isError ? 'error' : 'success',\n },\n };\n case 'image':\n return {\n image: {\n source: {\n $unknown: ['source', block.source],\n },\n format: (block.source.type === 'url'\n ? 'url'\n : (block.source.media_type.split('/')[1] as ImageFormat) ||\n 'webp') as ImageFormat,\n },\n $unknown: undefined,\n };\n case 'thinking':\n return {\n reasoningContent: {\n reasoningText: {\n text: block.thinking,\n signature: block.signature as string,\n },\n },\n };\n case 'document':\n return {\n document: {\n format: block.source?.type === 'url' ? 'pdf' : 'txt',\n name: String(block.name || block.title),\n source: {\n $unknown: ['url', block.source],\n },\n },\n };\n default:\n throw new Error(\n `Unsupported content block type: ${JSON.stringify(block, null, 2)}`\n );\n }\n }),\n }));\n};\n","import { Tool } from '@aws-sdk/client-bedrock-runtime';\nimport { ToolDefinition } from '@agenite/llm';\n\nexport class BedrockToolAdapter {\n convertToProviderTool(tool: ToolDefinition): Tool {\n return {\n toolSpec: {\n name: tool.name,\n description: tool.description || tool.name,\n inputSchema: {\n json: {\n type: 'object',\n properties: tool.inputSchema.properties,\n required: tool.inputSchema.required,\n },\n },\n },\n } as Tool;\n }\n} \n","import {\n BedrockRuntimeClient,\n ConverseCommand,\n ConverseStreamCommand,\n StopReason,\n ContentBlock as BedrockContentBlock,\n ContentBlockStartEvent,\n ContentBlockDeltaEvent,\n ContentBlockStopEvent,\n ConverseStreamOutput,\n ReasoningContentBlockDelta,\n} from '@aws-sdk/client-bedrock-runtime';\n\nimport {\n GenerateResponse,\n ToolUseBlock,\n GenerateOptions,\n PartialReturn,\n convertStringToMessages,\n BaseLLMProvider,\n BaseMessage,\n} from '@agenite/llm';\nimport { BedrockConfig } from './types';\nimport { mapContent, mapStopReason, convertToMessageFormat } from './utils';\nimport { BedrockToolAdapter } from './tool-adapter';\n\nconst DEFAULT_MODEL = 'anthropic.claude-3-sonnet-20240229-v1:0';\nconst DEFAULT_MAX_TOKENS = 4096;\n\nexport class BedrockProvider extends BaseLLMProvider {\n private client: BedrockRuntimeClient;\n private config: BedrockConfig;\n private toolAdapter: BedrockToolAdapter;\n readonly name = 'Bedrock';\n readonly version = '1.0';\n\n constructor(config: BedrockConfig) {\n super();\n this.config = config;\n this.client = new BedrockRuntimeClient({\n region: config.region,\n credentials: config.credentials,\n ...config.bedrockClientConfig,\n });\n this.toolAdapter = new BedrockToolAdapter();\n }\n\n private createRequestBody(\n input: string | BaseMessage[],\n options?: Partial<GenerateOptions>\n ) {\n const messageArray = convertStringToMessages(input);\n const transformedMessages = convertToMessageFormat(messageArray);\n\n const providerTools = options?.tools?.map((tool) =>\n this.toolAdapter.convertToProviderTool(tool)\n );\n\n // When reasoning is enabled, we set temperature to 1 as it's the only way to get reasoning\n const temperature =\n this.config.enableThinking || this.config.enableReasoning\n ? 1\n : (options?.temperature ?? this.config.temperature ?? 0.7);\n\n return {\n modelId: this.config.model || DEFAULT_MODEL,\n system: options?.systemPrompt\n ? [{ text: options.systemPrompt }]\n : undefined,\n messages: transformedMessages,\n inferenceConfig: {\n maxTokens: options?.maxTokens ?? DEFAULT_MAX_TOKENS,\n temperature,\n stopSequences: options?.stopSequences,\n },\n toolConfig: providerTools?.length\n ? {\n tools: providerTools,\n toolChoice: { auto: {} },\n }\n : undefined,\n additionalModelRequestFields:\n this.config.enableThinking || this.config.enableReasoning\n ? {\n reasoning_config: {\n type: 'enabled',\n budget_tokens: this.config.reasoningBudgetTokens || 1024,\n },\n }\n : undefined,\n };\n }\n\n private handleError(error: unknown): never {\n console.error('Bedrock generation failed:', error);\n throw error instanceof Error\n ? new Error(`Bedrock generation failed: ${error.message}`)\n : new Error('Bedrock generation failed with unknown error');\n }\n\n private createGenerateResponse(\n content: GenerateResponse['content'],\n stopReason: StopReason | undefined,\n inputTokens: number,\n outputTokens: number\n ): GenerateResponse {\n return {\n content,\n stopReason: mapStopReason(stopReason),\n tokenUsage: {\n model: this.config.model || DEFAULT_MODEL,\n inputTokens,\n outputTokens,\n // TODO: introduce cost LLM\n inputCost: 0,\n outputCost: 0,\n },\n };\n }\n\n private handleStreamEvent(\n event: ConverseStreamOutput,\n state: {\n buffer: string;\n inputTokens: number;\n outputTokens: number;\n contentBlocks: BedrockContentBlock[];\n }\n ) {\n // Handle usage metadata\n if ('metadata' in event && event.metadata) {\n state.inputTokens =\n event.metadata.usage?.inputTokens || state.inputTokens;\n state.outputTokens =\n event.metadata.usage?.outputTokens || state.outputTokens;\n }\n\n // Handle content block start\n if ('contentBlockStart' in event && event.contentBlockStart) {\n this.handleContentBlockStart(\n event.contentBlockStart,\n state.contentBlocks\n );\n return null;\n }\n\n // Handle content block delta\n if ('contentBlockDelta' in event && event.contentBlockDelta) {\n return this.handleContentBlockDelta(event.contentBlockDelta, state);\n }\n\n return null;\n }\n\n private handleContentBlockStart(\n { contentBlockIndex = 0, start }: ContentBlockStartEvent,\n contentBlocks: BedrockContentBlock[]\n ) {\n if (start?.toolUse) {\n contentBlocks[contentBlockIndex] = {\n ...contentBlocks[contentBlockIndex],\n toolUse: {\n ...start.toolUse,\n ...contentBlocks[contentBlockIndex]?.toolUse,\n },\n } as BedrockContentBlock;\n }\n }\n\n private handleContentBlockDelta(\n { delta, contentBlockIndex = 0 }: ContentBlockDeltaEvent,\n state: {\n buffer: string;\n contentBlocks: BedrockContentBlock[];\n }\n ) {\n if (!delta) return null;\n\n if (delta.reasoningContent) {\n return this.handleReasoningDelta(\n delta.reasoningContent,\n contentBlockIndex,\n state\n );\n }\n\n if (delta.text) {\n return this.handleTextDelta(delta.text, contentBlockIndex, state);\n } else if (delta.toolUse) {\n this.handleToolUseDelta(\n delta.toolUse,\n contentBlockIndex,\n state.contentBlocks\n );\n }\n return null;\n }\n\n private handleTextDelta(\n text: string,\n contentBlockIndex: number,\n state: {\n buffer: string;\n contentBlocks: BedrockContentBlock[];\n }\n ) {\n state.buffer += text || '';\n\n // Accumulate text in contentBlocks\n state.contentBlocks[contentBlockIndex] = {\n ...state.contentBlocks[contentBlockIndex],\n text: (state.contentBlocks[contentBlockIndex]?.text || '') + text || '',\n } as BedrockContentBlock;\n\n if (state.buffer.length > 10) {\n const result = {\n type: 'text' as const,\n text: state.buffer,\n };\n state.buffer = '';\n return result;\n }\n return null;\n }\n\n private handleReasoningDelta(\n reasoningContent: ReasoningContentBlockDelta,\n contentBlockIndex: number,\n state: {\n buffer: string;\n contentBlocks: BedrockContentBlock[];\n }\n ) {\n state.buffer += reasoningContent.text || '';\n\n // Accumulate reasoning content in contentBlocks\n state.contentBlocks[contentBlockIndex] = {\n ...state.contentBlocks[contentBlockIndex],\n reasoningContent: {\n ...state.contentBlocks[contentBlockIndex]?.reasoningContent,\n reasoningText: {\n text:\n (state.contentBlocks[contentBlockIndex]?.reasoningContent\n ?.reasoningText?.text || '') + (reasoningContent.text || ''),\n signature: reasoningContent.signature,\n },\n },\n } as BedrockContentBlock;\n\n if (state.buffer.length > 10) {\n const result = {\n type: 'thinking' as const,\n thinking: state.buffer,\n };\n state.buffer = '';\n return result;\n }\n\n return null;\n }\n\n private handleToolUseDelta(\n toolUse: { input?: string },\n contentBlockIndex: number,\n contentBlocks: BedrockContentBlock[]\n ) {\n contentBlocks[contentBlockIndex] = {\n toolUse: {\n ...contentBlocks[contentBlockIndex]?.toolUse,\n input:\n (contentBlocks[contentBlockIndex]?.toolUse?.input || '') +\n (toolUse.input || ''),\n },\n } as BedrockContentBlock;\n }\n\n private handleContentBlockStop(\n event: { contentBlockStop?: ContentBlockStopEvent },\n state: {\n buffer: string;\n contentBlocks: BedrockContentBlock[];\n }\n ): PartialReturn | null {\n if (\n event.contentBlockStop &&\n event.contentBlockStop.contentBlockIndex !== undefined\n ) {\n const blockIndex = event.contentBlockStop.contentBlockIndex;\n const block = state.contentBlocks[blockIndex];\n\n if (block?.toolUse?.input) {\n block.toolUse.input = JSON.parse(String(block.toolUse.input));\n const toolUseResult = {\n type: 'toolUse' as const,\n toolUse: mapContent([block])[0] as ToolUseBlock,\n isEnd: true,\n };\n\n return toolUseResult;\n }\n\n const finalBuffer = state.buffer;\n state.buffer = '';\n if (block?.text) {\n return {\n type: 'text' as const,\n text: finalBuffer,\n isEnd: true,\n } as const;\n }\n\n if (block?.reasoningContent) {\n return {\n type: 'thinking' as const,\n thinking: finalBuffer,\n isEnd: true,\n } as const;\n }\n }\n return null;\n }\n\n private handleTextBlockStart(\n event: { contentBlockDelta?: ContentBlockDeltaEvent },\n state: {\n buffer: string;\n contentBlocks: BedrockContentBlock[];\n }\n ) {\n const contentBlockIndex = event.contentBlockDelta?.contentBlockIndex;\n\n const hasExistingBlock =\n contentBlockIndex !== undefined &&\n state.contentBlocks[contentBlockIndex] !== undefined;\n\n if (hasExistingBlock) {\n return null;\n }\n\n if (event.contentBlockDelta?.delta?.text) {\n return {\n type: 'text' as const,\n text: '',\n isStart: true,\n };\n }\n\n if (event.contentBlockDelta?.delta?.reasoningContent) {\n return {\n type: 'thinking' as const,\n thinking: '',\n isStart: true,\n };\n }\n }\n\n async *stream(\n input: string | BaseMessage[],\n options?: Partial<GenerateOptions>\n ): AsyncGenerator<PartialReturn, GenerateResponse, unknown> {\n try {\n const requestBody = this.createRequestBody(input, options);\n const response = await this.client.send(\n new ConverseStreamCommand({\n ...requestBody,\n ...this.config.converseCommandConfig,\n })\n );\n\n if (!response.stream) {\n throw new Error('No stream found in response');\n }\n\n const state = {\n buffer: '',\n inputTokens: 0,\n outputTokens: 0,\n contentBlocks: [] as BedrockContentBlock[],\n };\n let finalStopReason: StopReason | undefined;\n\n for await (const event of response.stream) {\n // Handle message stop\n if ('messageStop' in event) {\n finalStopReason = event.messageStop?.stopReason;\n continue;\n }\n\n const startBlock = this.handleTextBlockStart(event, state);\n\n if (startBlock) {\n yield startBlock;\n }\n\n // Handle content block stop\n const stopResult = this.handleContentBlockStop(event, state);\n\n if (stopResult) {\n yield stopResult;\n }\n // Handle other events\n const result = this.handleStreamEvent(event, state);\n\n if (result) yield result;\n }\n\n return this.createGenerateResponse(\n mapContent(state.contentBlocks),\n finalStopReason,\n state.inputTokens,\n state.outputTokens\n );\n } catch (error) {\n this.handleError(error);\n }\n }\n\n async generate(\n input: string | BaseMessage[],\n options?: Partial<GenerateOptions>\n ): Promise<GenerateResponse> {\n try {\n const requestBody = this.createRequestBody(input, options);\n const response = await this.client.send(\n new ConverseCommand({\n ...requestBody,\n ...this.config.converseCommandConfig,\n })\n );\n\n return this.createGenerateResponse(\n mapContent(response.output?.message?.content || []),\n response.stopReason,\n response.usage?.inputTokens || 0,\n response.usage?.outputTokens || 0\n );\n } catch (error) {\n this.handleError(error);\n }\n }\n}\n"]}