diff --git a/sdk-typescript/packages/adk/src/__tests__/adapters.test.ts b/sdk-typescript/packages/adk/src/__tests__/adapters.test.ts index c8a787b..06ad85d 100644 --- a/sdk-typescript/packages/adk/src/__tests__/adapters.test.ts +++ b/sdk-typescript/packages/adk/src/__tests__/adapters.test.ts @@ -106,3 +106,35 @@ describe('Kernel adapter', () => { expect(playwrightTool?.parameters.code?.required).toBe(true); }); }); + +describe('LangGraph graph nodes resolve their tools', () => { + // Regression: both factories looked up 'monitor_stream' / 'create_clip', but AgentToolkit names + // every tool with a wave_ prefix. The lookups could never succeed, so each node returned + // { error: ' tool not found' } on every invocation and never made a network call. Asserting + // the ABSENCE of that error is the point — a shape-only test misses it entirely, which is how it + // shipped in @wave-av/adk@1.0.14. + it('createStreamMonitorNode finds wave_monitor_stream', async () => { + const { createStreamMonitorNode } = await import('../adapters/langgraph'); + const node = createStreamMonitorNode({ + apiKey: 'test-key', + streamId: '00000000-0000-4000-8000-000000000000', + }); + + const result = await node({}); + expect(result.error).toBeUndefined(); + expect(result.streamId).toBe('00000000-0000-4000-8000-000000000000'); + }); + + it('createClipNode finds wave_create_clip', async () => { + const { createClipNode } = await import('../adapters/langgraph'); + const node = createClipNode({ apiKey: 'test-key' }); + + const result = await node({ + streamId: '00000000-0000-4000-8000-000000000000', + clipStart: 0, + clipEnd: 10, + }); + expect(result.error).toBeUndefined(); + expect(result).toHaveProperty('clip'); + }); +}); diff --git a/sdk-typescript/packages/adk/src/adapters/langgraph.ts b/sdk-typescript/packages/adk/src/adapters/langgraph.ts index 7fcd09e..0a2ddea 100644 --- a/sdk-typescript/packages/adk/src/adapters/langgraph.ts +++ b/sdk-typescript/packages/adk/src/adapters/langgraph.ts @@ -73,10 +73,10 @@ export function createStreamMonitorNode(config: { return async (state: Record): Promise> => { const tools = toolkit.getTools(); - const monitorTool = tools.find((t) => t.name === 'monitor_stream'); + const monitorTool = tools.find((t) => t.name === 'wave_monitor_stream'); if (!monitorTool) { - return { ...state, error: 'monitor_stream tool not found' }; + return { ...state, error: 'wave_monitor_stream tool not found' }; } const health = await monitorTool.handler({ streamId: config.streamId }); @@ -102,10 +102,10 @@ export function createClipNode(config: { return async (state: Record): Promise> => { const tools = toolkit.getTools(); - const clipTool = tools.find((t) => t.name === 'create_clip'); + const clipTool = tools.find((t) => t.name === 'wave_create_clip'); if (!clipTool) { - return { ...state, error: 'create_clip tool not found' }; + return { ...state, error: 'wave_create_clip tool not found' }; } const clip = await clipTool.handler({