mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-20 13:02:15 +00:00
fix: apply message transforms for bedrock tool calls (#707)
Ensure Bedrock uses transformMessages before conversion.
This commit is contained in:
parent
d83e1745d8
commit
b74535dc85
1 changed files with 6 additions and 5 deletions
|
|
@ -38,6 +38,7 @@ import type {
|
||||||
import { AssistantMessageEventStream } from "../utils/event-stream.js";
|
import { AssistantMessageEventStream } from "../utils/event-stream.js";
|
||||||
import { parseStreamingJson } from "../utils/json-parse.js";
|
import { parseStreamingJson } from "../utils/json-parse.js";
|
||||||
import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
|
import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
|
||||||
|
import { transformMessages } from "./transform-messages.js";
|
||||||
|
|
||||||
export interface BedrockOptions extends StreamOptions {
|
export interface BedrockOptions extends StreamOptions {
|
||||||
region?: string;
|
region?: string;
|
||||||
|
|
@ -307,10 +308,10 @@ function buildSystemPrompt(
|
||||||
|
|
||||||
function convertMessages(context: Context, model: Model<"bedrock-converse-stream">): Message[] {
|
function convertMessages(context: Context, model: Model<"bedrock-converse-stream">): Message[] {
|
||||||
const result: Message[] = [];
|
const result: Message[] = [];
|
||||||
const messages = context.messages;
|
const transformedMessages = transformMessages(context.messages, model);
|
||||||
|
|
||||||
for (let i = 0; i < messages.length; i++) {
|
for (let i = 0; i < transformedMessages.length; i++) {
|
||||||
const m = messages[i];
|
const m = transformedMessages[i];
|
||||||
|
|
||||||
switch (m.role) {
|
switch (m.role) {
|
||||||
case "user":
|
case "user":
|
||||||
|
|
@ -393,8 +394,8 @@ function convertMessages(context: Context, model: Model<"bedrock-converse-stream
|
||||||
|
|
||||||
// Look ahead for consecutive toolResult messages
|
// Look ahead for consecutive toolResult messages
|
||||||
let j = i + 1;
|
let j = i + 1;
|
||||||
while (j < messages.length && messages[j].role === "toolResult") {
|
while (j < transformedMessages.length && transformedMessages[j].role === "toolResult") {
|
||||||
const nextMsg = messages[j] as ToolResultMessage;
|
const nextMsg = transformedMessages[j] as ToolResultMessage;
|
||||||
toolResults.push({
|
toolResults.push({
|
||||||
toolResult: {
|
toolResult: {
|
||||||
toolUseId: nextMsg.toolCallId,
|
toolUseId: nextMsg.toolCallId,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue