(agentDefinitions: {
activeAgents: AgentDefinition[]
})
| 730 | } |
| 731 | |
| 732 | async function countCustomAgentTokens(agentDefinitions: { |
| 733 | activeAgents: AgentDefinition[] |
| 734 | }): Promise<{ |
| 735 | agentTokens: number |
| 736 | agentDetails: Agent[] |
| 737 | }> { |
| 738 | const customAgents = agentDefinitions.activeAgents.filter( |
| 739 | a => a.source !== 'built-in', |
| 740 | ) |
| 741 | const agentDetails: Agent[] = [] |
| 742 | let agentTokens = 0 |
| 743 | |
| 744 | const tokenCounts = await Promise.all( |
| 745 | customAgents.map(agent => |
| 746 | countTokensWithFallback( |
| 747 | [ |
| 748 | { |
| 749 | role: 'user', |
| 750 | content: [agent.agentType, agent.whenToUse].join(' '), |
| 751 | }, |
| 752 | ], |
| 753 | [], |
| 754 | ), |
| 755 | ), |
| 756 | ) |
| 757 | |
| 758 | for (const [i, agent] of customAgents.entries()) { |
| 759 | const tokens = tokenCounts[i] || 0 |
| 760 | agentTokens += tokens || 0 |
| 761 | agentDetails.push({ |
| 762 | agentType: agent.agentType, |
| 763 | source: agent.source, |
| 764 | tokens: tokens || 0, |
| 765 | }) |
| 766 | } |
| 767 | return { agentTokens, agentDetails } |
| 768 | } |
| 769 | |
| 770 | type MessageBreakdown = { |
| 771 | totalTokens: number |
no test coverage detected