From d3195fb76424373f9354b4468a18c88a32287dcd Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Mon, 13 Oct 2025 13:37:49 +0200 Subject: [PATCH 1/2] fix: return the default dialog value correctly --- src/McpResponse.ts | 2 +- tests/McpResponse.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/McpResponse.ts b/src/McpResponse.ts index bf7603bf..27983a51 100644 --- a/src/McpResponse.ts +++ b/src/McpResponse.ts @@ -193,7 +193,7 @@ export class McpResponse implements Response { const dialog = context.getDialog(); if (dialog) { response.push(`# Open dialog -${dialog.type()}: ${dialog.message()} (default value: ${dialog.message()}). +${dialog.type()}: ${dialog.message()} (default value: ${dialog.defaultValue()}). Call ${handleDialog.name} to handle it before continuing.`); } diff --git a/tests/McpResponse.test.ts b/tests/McpResponse.test.ts index 586b524f..e1a954c8 100644 --- a/tests/McpResponse.test.ts +++ b/tests/McpResponse.test.ts @@ -159,7 +159,7 @@ Emulating: 4x slowdown`, }); }); page.evaluate(() => { - alert('test'); + prompt('message', 'default'); }); await dialogPromise; const result = await response.handle('test', context); @@ -168,7 +168,7 @@ Emulating: 4x slowdown`, result[0].text, `# test response # Open dialog -alert: test (default value: test). +prompt: test (default value: default). Call handle_dialog to handle it before continuing.`, ); }); From e05dec7d4beb15dc1a02ea98d156fb366927e19b Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Mon, 13 Oct 2025 13:43:25 +0200 Subject: [PATCH 2/2] Update src/McpResponse.ts Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com> --- src/McpResponse.ts | 6 +++++- tests/McpResponse.test.ts | 28 ++++++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/McpResponse.ts b/src/McpResponse.ts index 27983a51..4ea9f796 100644 --- a/src/McpResponse.ts +++ b/src/McpResponse.ts @@ -192,8 +192,12 @@ export class McpResponse implements Response { const dialog = context.getDialog(); if (dialog) { + const defaultValueIfNeeded = + dialog.type() === 'prompt' + ? ` (default value: "${dialog.defaultValue()}")` + : ''; response.push(`# Open dialog -${dialog.type()}: ${dialog.message()} (default value: ${dialog.defaultValue()}). +${dialog.type()}: ${dialog.message()}${defaultValueIfNeeded}. Call ${handleDialog.name} to handle it before continuing.`); } diff --git a/tests/McpResponse.test.ts b/tests/McpResponse.test.ts index e1a954c8..d34abe8c 100644 --- a/tests/McpResponse.test.ts +++ b/tests/McpResponse.test.ts @@ -150,7 +150,7 @@ Emulating: 4x slowdown`, }); }); - it('adds a dialog', async () => { + it('adds a prompt dialog', async () => { await withBrowser(async (response, context) => { const page = context.getSelectedPage(); const dialogPromise = new Promise(resolve => { @@ -168,7 +168,31 @@ Emulating: 4x slowdown`, result[0].text, `# test response # Open dialog -prompt: test (default value: default). +prompt: message (default value: "default"). +Call handle_dialog to handle it before continuing.`, + ); + }); + }); + + it('adds an alert dialog', async () => { + await withBrowser(async (response, context) => { + const page = context.getSelectedPage(); + const dialogPromise = new Promise(resolve => { + page.on('dialog', () => { + resolve(); + }); + }); + page.evaluate(() => { + alert('message'); + }); + await dialogPromise; + const result = await response.handle('test', context); + await context.getDialog()?.dismiss(); + assert.strictEqual( + result[0].text, + `# test response +# Open dialog +alert: message. Call handle_dialog to handle it before continuing.`, ); });