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