( messages: ChatCompletionMessageParam[], stringsToPrune: string[], )
| 24 | }; |
| 25 | |
| 26 | export const pruneInputMessages = ( |
| 27 | messages: ChatCompletionMessageParam[], |
| 28 | stringsToPrune: string[], |
| 29 | ) => { |
| 30 | for (const stringToPrune of stringsToPrune) { |
| 31 | for (const message of messages) { |
| 32 | if ("content" in message && message.content) { |
| 33 | const content = Array.isArray(message.content) |
| 34 | ? message.content.join("\n") |
| 35 | : message.content; |
| 36 | message.content = content.replaceAll(stringToPrune, ""); |
| 37 | } |
| 38 | } |
| 39 | } |
| 40 | messages = messages.filter( |
| 41 | (message) => |
| 42 | message.content !== "" || |
| 43 | ("tool_calls" in message && message.tool_calls && message.tool_calls.length > 0), |
| 44 | ); |
| 45 | return messages; |
| 46 | }; |
no outgoing calls
no test coverage detected