From 91ad6c2739863588e433c9570ede01e197581eeb Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 19 Apr 2026 04:05:28 +0100 Subject: [PATCH] test: share mcp cache tool turn helper --- src/agents/pi-mcp-style.cache.live.test.ts | 35 +++++++++------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/src/agents/pi-mcp-style.cache.live.test.ts b/src/agents/pi-mcp-style.cache.live.test.ts index 82756d35da9..ffda611c814 100644 --- a/src/agents/pi-mcp-style.cache.live.test.ts +++ b/src/agents/pi-mcp-style.cache.live.test.ts @@ -47,13 +47,14 @@ function buildToolResultMessage(toolCallId: string) { }; } -async function runToolOnlyTurn(params: { +type ToolOnlyTurnParams = { apiKey: string; model: Awaited>["model"]; sessionId: string; -}) { - let prompt = `Call the tool \`${MCP_TOOL.name}\` with {}. IMPORTANT: respond ONLY with the tool call and no other text.`; - let response = await completeSimpleWithLiveTimeout( +}; + +async function completeToolOnlyTurn(params: ToolOnlyTurnParams, prompt: string, label: string) { + return completeSimpleWithLiveTimeout( params.model, { systemPrompt: OPENAI_PREFIX, @@ -68,31 +69,23 @@ async function runToolOnlyTurn(params: { temperature: 0, reasoning: "none" as unknown as never, }, - "openai mcp-style tool-only turn", + label, OPENAI_TIMEOUT_MS, ); +} + +async function runToolOnlyTurn(params: ToolOnlyTurnParams) { + let prompt = `Call the tool \`${MCP_TOOL.name}\` with {}. IMPORTANT: respond ONLY with the tool call and no other text.`; + let response = await completeToolOnlyTurn(params, prompt, "openai mcp-style tool-only turn"); let toolCall = extractFirstToolCall(response); let text = extractAssistantText(response); for (let attempt = 0; attempt < 2 && (!toolCall || text.length > 0); attempt += 1) { prompt = `Return only a tool call for \`${MCP_TOOL.name}\` with {}. No text.`; - response = await completeSimpleWithLiveTimeout( - params.model, - { - systemPrompt: OPENAI_PREFIX, - messages: [{ role: "user", content: prompt, timestamp: Date.now() }], - tools: [MCP_TOOL], - }, - { - apiKey: params.apiKey, - cacheRetention: "short", - sessionId: params.sessionId, - maxTokens: 128, - temperature: 0, - reasoning: "none" as unknown as never, - }, + response = await completeToolOnlyTurn( + params, + prompt, `openai mcp-style tool-only retry ${attempt + 1}`, - OPENAI_TIMEOUT_MS, ); toolCall = extractFirstToolCall(response); text = extractAssistantText(response);