Skip to content

Commit dbd6b38

Browse files
committed
Reduce warning/stdout outputs during test executions
1 parent d7fd8dc commit dbd6b38

File tree

8 files changed

+97
-12
lines changed

8 files changed

+97
-12
lines changed

packages/agents-core/src/runImplementation.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
RunToolCallItem,
1313
RunToolCallOutputItem,
1414
} from './items';
15-
import logger from './logger';
15+
import logger, { Logger } from './logger';
1616
import { ModelResponse, ModelSettings } from './model';
1717
import { ComputerTool, FunctionTool, Tool, FunctionToolResult } from './tool';
1818
import { AgentInputItem, UnknownContext } from './types';
@@ -695,7 +695,9 @@ export async function executeComputerActions(
695695
actions: ToolRunComputer[],
696696
runner: Runner,
697697
runContext: RunContext,
698+
customLogger: Logger | undefined = undefined,
698699
): Promise<RunItem[]> {
700+
const _logger = customLogger ?? logger;
699701
const results: RunItem[] = [];
700702
for (const action of actions) {
701703
const computer = action.computer.computer;
@@ -712,7 +714,7 @@ export async function executeComputerActions(
712714
try {
713715
output = await _runComputerActionAndScreenshot(computer, toolCall);
714716
} catch (err) {
715-
logger.error('Failed to execute computer action:', err);
717+
_logger.error('Failed to execute computer action:', err);
716718
output = '';
717719
}
718720

@@ -930,7 +932,6 @@ export async function checkForFinalOutputFromTools<
930932
return toolUseBehavior(state._context, toolResults);
931933
}
932934

933-
logger.error('Invalid toolUseBehavior: ', toolUseBehavior);
934935
throw new UserError(`Invalid toolUseBehavior: ${toolUseBehavior}`, state);
935936
}
936937

packages/agents-core/test/run.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import {
88
run,
99
Runner,
1010
setDefaultModelProvider,
11+
setTraceProcessors,
1112
setTracingDisabled,
13+
BatchTraceProcessor,
1214
} from '../src';
1315
import { RunStreamEvent } from '../src/events';
1416
import { handoff } from '../src/handoff';
@@ -25,6 +27,7 @@ import {
2527
FakeModel,
2628
fakeModelMessage,
2729
FakeModelProvider,
30+
FakeTracingExporter,
2831
TEST_MODEL_MESSAGE,
2932
TEST_MODEL_RESPONSE_BASIC,
3033
TEST_TOOL,
@@ -425,6 +428,7 @@ describe('Runner.run', () => {
425428

426429
it('does nothing when no input guardrails are configured', async () => {
427430
setTracingDisabled(false);
431+
setTraceProcessors([new BatchTraceProcessor(new FakeTracingExporter())]);
428432
const agent = new Agent({
429433
name: 'NoIG',
430434
model: new FakeModel([

packages/agents-core/test/runImplementation.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import * as protocol from '../src/types/protocol';
4646
import { Runner } from '../src/run';
4747
import { RunContext } from '../src/runContext';
4848
import { setDefaultModelProvider } from '../src';
49+
import { Logger } from '../src/logger';
4950

5051
beforeAll(() => {
5152
setTracingDisabled(true);
@@ -627,6 +628,7 @@ describe('executeComputerActions', () => {
627628
[call],
628629
new Runner({ tracingDisabled: true }),
629630
new RunContext(),
631+
{ error: (_: string) => {} } as unknown as Logger,
630632
),
631633
);
632634

packages/agents-core/test/runState.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,21 @@ describe('RunState', () => {
5050
expect(JSON.parse(str)).toEqual(json);
5151
});
5252

53-
it('throws error if schema version is missing or invalid', () => {
53+
it('throws error if schema version is missing or invalid', async () => {
5454
const context = new RunContext();
5555
const agent = new Agent({ name: 'Agent1' });
5656
const state = new RunState(context, 'input1', agent, 2);
5757
const jsonVersion = state.toJSON() as any;
5858
delete jsonVersion.$schemaVersion;
5959

6060
const str = JSON.stringify(jsonVersion);
61-
expect(async () => await RunState.fromString(agent, str)).rejects.toThrow(
61+
await expect(() => RunState.fromString(agent, str)).rejects.toThrow(
6262
'Run state is missing schema version',
6363
);
6464

6565
jsonVersion.$schemaVersion = '0.1';
66-
expect(
67-
async () => await RunState.fromString(agent, JSON.stringify(jsonVersion)),
66+
await expect(() =>
67+
RunState.fromString(agent, JSON.stringify(jsonVersion)),
6868
).rejects.toThrow(
6969
`Run state schema version 0.1 is not supported. Please use version ${CURRENT_SCHEMA_VERSION}`,
7070
);
Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,29 @@
1-
import { describe, test, expect } from 'vitest';
1+
import { describe, test, expect, vi, afterAll, beforeAll } from 'vitest';
22
import { NodeMCPServerStdio } from '../../../src/shims/mcp-stdio/node';
3+
import { TransportSendOptions } from '@modelcontextprotocol/sdk/shared/transport';
4+
import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types';
35

46
describe('NodeMCPServerStdio', () => {
7+
beforeAll(() => {
8+
vi.mock(
9+
'@modelcontextprotocol/sdk/client/stdio.js',
10+
async (importOriginal) => {
11+
return {
12+
...(await importOriginal()),
13+
StdioClientTransport: MockStdioClientTransport,
14+
};
15+
},
16+
);
17+
vi.mock(
18+
'@modelcontextprotocol/sdk/client/index.js',
19+
async (importOriginal) => {
20+
return {
21+
...(await importOriginal()),
22+
Client: MockClient,
23+
};
24+
},
25+
);
26+
});
527
test('should be available', async () => {
628
const server = new NodeMCPServerStdio({
729
name: 'test',
@@ -11,6 +33,56 @@ describe('NodeMCPServerStdio', () => {
1133
expect(server).toBeDefined();
1234
expect(server.name).toBe('test');
1335
expect(server.cacheToolsList).toBe(true);
14-
await expect(server.connect()).rejects.toThrow();
36+
await server.connect();
37+
await server.close();
38+
});
39+
40+
afterAll(() => {
41+
vi.clearAllMocks();
1542
});
1643
});
44+
45+
class MockStdioClientTransport {
46+
options: {
47+
command: string;
48+
args: string[];
49+
env: Record<string, string>;
50+
cwd: string;
51+
};
52+
constructor(options: {
53+
command: string;
54+
args: string[];
55+
env: Record<string, string>;
56+
cwd: string;
57+
}) {
58+
this.options = options;
59+
}
60+
start(): Promise<void> {
61+
return Promise.resolve();
62+
}
63+
send(
64+
_message: JSONRPCMessage,
65+
_options?: TransportSendOptions,
66+
): Promise<void> {
67+
return Promise.resolve();
68+
}
69+
close(): Promise<void> {
70+
return Promise.resolve();
71+
}
72+
}
73+
74+
class MockClient {
75+
options: {
76+
name: string;
77+
version: string;
78+
};
79+
constructor(options: { name: string; version: string }) {
80+
this.options = options;
81+
}
82+
connect(): Promise<void> {
83+
return Promise.resolve();
84+
}
85+
close(): Promise<void> {
86+
return Promise.resolve();
87+
}
88+
}

packages/agents-core/test/stubs.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import type { Computer } from '../src/computer';
1111
import type { Environment } from '../src/computer';
1212
import * as protocol from '../src/types/protocol';
1313
import { Usage } from '../src/usage';
14+
import { Span, Trace, TracingExporter } from '../src';
1415

1516
export const TEST_MODEL_MESSAGE: protocol.AssistantMessageItem = {
1617
id: '123',
@@ -93,7 +94,7 @@ export class FakeComputer implements Computer {
9394
dimensions: [number, number] = [1, 1];
9495

9596
async screenshot(): Promise<string> {
96-
return '';
97+
return 'img';
9798
}
9899
async click(_x: number, _y: number, _button: any): Promise<void> {}
99100
async doubleClick(_x: number, _y: number): Promise<void> {}
@@ -134,3 +135,9 @@ export class FakeModelProvider implements ModelProvider {
134135
return new FakeModel([TEST_MODEL_RESPONSE_BASIC]);
135136
}
136137
}
138+
139+
export class FakeTracingExporter implements TracingExporter {
140+
export(_items: (Trace | Span<any>)[], _signal?: AbortSignal): Promise<void> {
141+
return Promise.resolve();
142+
}
143+
}

packages/agents-extensions/test/aiSdk.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ describe('AiSdkModel.getStreamedResponse', () => {
551551
}),
552552
);
553553

554-
expect(async () => {
554+
await expect(async () => {
555555
const iter = model.getStreamedResponse({
556556
input: 'hi',
557557
tools: [],

packages/agents-extensions/test/index.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ describe('TwilioRealtimeTransportLayer', () => {
6060
const call = sendEventSpy.mock.calls.find(
6161
(c) => c[0]?.type === 'conversation.item.truncate',
6262
);
63-
console.log('call', call);
6463
expect(call?.[0].audio_end_ms).toBe(50);
6564
});
6665
});

0 commit comments

Comments
 (0)