agent-ecosystem/test/main/services/team/agentTeamsToolNames.test.ts
2026-04-24 22:41:16 +03:00

62 lines
2 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
canonicalizeAgentTeamsToolName,
isAgentTeamsToolUse,
lineHasAgentTeamsTaskBoundaryToolName,
} from '../../../../src/main/services/team/agentTeamsToolNames';
describe('agentTeamsToolNames', () => {
it.each([
'message_send',
'agent-teams_message_send',
'agent_teams_message_send',
'mcp__agent-teams__message_send',
'mcp__agent_teams__message_send',
'proxy_agent-teams_message_send',
])('canonicalizes %s to message_send', (toolName) => {
expect(canonicalizeAgentTeamsToolName(toolName)).toBe('message_send');
});
it.each([
'"name":"agent-teams_task_start"',
'"name":"agent_teams_task_start"',
'"name":"mcp__agent-teams__task_start"',
'"name":"proxy_agent-teams_task_complete"',
])('detects task boundary aliases in raw log line %s', (line) => {
expect(lineHasAgentTeamsTaskBoundaryToolName(line)).toBe(true);
});
it('does not classify unrelated plain message_send calls without Agent Teams payload shape', () => {
expect(
isAgentTeamsToolUse({
rawName: 'message_send',
canonicalName: 'message_send',
toolInput: { channel: 'general', body: 'hello' },
currentTeamName: 'atlas-hq',
})
).toBe(false);
});
it('does not classify proxy-prefixed plain message_send without Agent Teams payload shape', () => {
expect(
isAgentTeamsToolUse({
rawName: 'proxy_message_send',
canonicalName: 'message_send',
toolInput: { channel: 'general', body: 'hello' },
currentTeamName: 'atlas-hq',
})
).toBe(false);
});
it('classifies proxy-prefixed plain message_send only when payload matches Agent Teams shape', () => {
expect(
isAgentTeamsToolUse({
rawName: 'proxy_message_send',
canonicalName: 'message_send',
toolInput: { teamName: 'atlas-hq', to: 'user', text: 'hello' },
currentTeamName: 'atlas-hq',
})
).toBe(true);
});
});