(input: string, targetTokens: number)
| 269 | } |
| 270 | |
| 271 | function forceTruncate(input: string, targetTokens: number): string { |
| 272 | const lines = input.split('\n') |
| 273 | const result: string[] = [] |
| 274 | let tokens = 0 |
| 275 | for (const line of lines) { |
| 276 | const lineTokens = countTokens(line) |
| 277 | if (tokens + lineTokens > targetTokens) break |
| 278 | result.push(line) |
| 279 | tokens += lineTokens |
| 280 | } |
| 281 | return result.join('\n') || input.slice(0, targetTokens * 3) |
| 282 | } |
no test coverage detected