| 998 | 998 | chatCompletion.insert(Message.fromPrompt(prompt), 'main', prompt.position); |
| 999 | 999 | } |
| 1000 | 1000 | |
| 1001 | + // Pre-allocation of tokens for tool data |
| 1002 | + if (ToolManager.canPerformToolCalls(type)) { |
| 1003 | + const toolData = {}; |
| 1004 | + await ToolManager.registerFunctionToolsOpenAI(toolData); |
| 1005 | + const toolMessage = [{ role: 'user', content: JSON.stringify(toolData) }]; |
| 1006 | + const toolTokens = tokenHandler.count(toolMessage); |
| 1007 | + chatCompletion.reserveBudget(toolTokens); |
| 1008 | + } |
| 1009 | + |
| 1001 | 1010 | // Add in-chat injections |
| 1002 | 1011 | messages = populationInjectionPrompts(absolutePrompts, messages); |
| 1003 | 1012 | |