|
15 | 15 | * - "standalone" — Goose-specific mode for dedicated Electron windows |
16 | 16 | */ |
17 | 17 |
|
18 | | -import { AppRenderer } from '@mcp-ui/client'; |
| 18 | +import { AppRenderer, RequestHandlerExtra } from '@mcp-ui/client'; |
19 | 19 | import type { |
20 | 20 | McpUiDisplayMode, |
21 | 21 | McpUiHostContext, |
22 | 22 | McpUiResourceCsp, |
23 | 23 | McpUiResourcePermissions, |
24 | 24 | McpUiSizeChangedNotification, |
25 | 25 | } from '@modelcontextprotocol/ext-apps/app-bridge'; |
26 | | -import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; |
| 26 | +import type { CallToolResult, JSONRPCRequest } from '@modelcontextprotocol/sdk/types.js'; |
27 | 27 | import { useCallback, useEffect, useMemo, useReducer, useState } from 'react'; |
28 | 28 | import { callTool, readResource } from '../../api'; |
29 | 29 | import { AppEvents } from '../../constants/events'; |
@@ -400,6 +400,15 @@ export default function McpAppRenderer({ |
400 | 400 | [] |
401 | 401 | ); |
402 | 402 |
|
| 403 | + const handleFallbackRequest = useCallback( |
| 404 | + async (request: JSONRPCRequest, _extra: RequestHandlerExtra) => { |
| 405 | + console.log('Fallback request:', request.method); |
| 406 | + // todo: add `sampling/createMessage` per https://github.com/block/goose/pull/7039 |
| 407 | + return { status: 'success' as const }; |
| 408 | + }, |
| 409 | + [] |
| 410 | + ); |
| 411 | + |
403 | 412 | const handleError = useCallback((err: Error) => { |
404 | 413 | console.error('[MCP App Error]:', err); |
405 | 414 | dispatch({ type: 'ERROR', message: errorMessage(err) }); |
@@ -516,6 +525,7 @@ export default function McpAppRenderer({ |
516 | 525 | onReadResource={handleReadResource} |
517 | 526 | onLoggingMessage={handleLoggingMessage} |
518 | 527 | onSizeChanged={handleSizeChanged} |
| 528 | + onFallbackRequest={handleFallbackRequest} |
519 | 529 | onError={handleError} |
520 | 530 | /> |
521 | 531 | ); |
|
0 commit comments