From 63bf26080ed61ee495ae73aa78bd5da620064140 Mon Sep 17 00:00:00 2001 From: Jake Fineman Date: Sun, 26 Jul 2026 18:26:59 -0400 Subject: [PATCH] fix(langgraph): look up tools by their real wave_-prefixed names createStreamMonitorNode and createClipNode searched for "monitor_stream" and "create_clip", but AgentToolkit names them "wave_monitor_stream" and "wave_create_clip". Neither node could ever find its tool, so both returned { error: " tool not found" } on every invocation and never made a network call. Proven against the built package before the fix: createStreamMonitorNode({}) -> {"error":"monitor_stream tool not found"} createClipNode({}) -> {"error":"create_clip tool not found"} and after, the handler is reached (it now rejects a non-uuid streamId in zod). The sibling livekit adapter already used the correct wave_monitor_stream, which is why this was isolated to langgraph. --- src/adapters/langgraph.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/adapters/langgraph.ts b/src/adapters/langgraph.ts index 87e1083..33559cc 100644 --- a/src/adapters/langgraph.ts +++ b/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({