Have apps request display mode instead
This commit is contained in:
parent
372c24181e
commit
83860d7c31
1 changed files with 272 additions and 1 deletions
40
src/app.ts
40
src/app.ts
|
|
@ -42,6 +42,8 @@ import {
|
|||
McpUiToolInputPartialNotificationSchema,
|
||||
McpUiToolResultNotification,
|
||||
McpUiToolResultNotificationSchema,
|
||||
McpUiRequestDisplayModeRequest,
|
||||
McpUiRequestDisplayModeResultSchema,
|
||||
} from "./types";
|
||||
import { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
|
||||
|
||||
|
|
@ -839,6 +841,44 @@ export class App extends Protocol<AppRequest, AppNotification, AppResult> {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Request a change to the display mode.
|
||||
*
|
||||
* Requests the host to change the UI container to the specified display mode
|
||||
* (e.g., "inline", "fullscreen", "pip"). The host will respond with the actual
|
||||
* display mode that was set, which may differ from the requested mode if
|
||||
* the requested mode is not available (check `availableDisplayModes` in host context).
|
||||
*
|
||||
* @param params - The display mode being requested
|
||||
* @param options - Request options (timeout, etc.)
|
||||
* @returns Result containing the actual display mode that was set
|
||||
*
|
||||
* @example Request fullscreen mode
|
||||
* ```typescript
|
||||
* const context = app.getHostContext();
|
||||
* if (context?.availableDisplayModes?.includes("fullscreen")) {
|
||||
* const result = await app.requestDisplayMode({ mode: "fullscreen" });
|
||||
* console.log("Display mode set to:", result.mode);
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @see {@link McpUiRequestDisplayModeRequest} for request structure
|
||||
* @see {@link McpUiHostContext} for checking availableDisplayModes
|
||||
*/
|
||||
requestDisplayMode(
|
||||
params: McpUiRequestDisplayModeRequest["params"],
|
||||
options?: RequestOptions,
|
||||
) {
|
||||
return this.request(
|
||||
<McpUiRequestDisplayModeRequest>{
|
||||
method: "ui/request-display-mode",
|
||||
params,
|
||||
},
|
||||
McpUiRequestDisplayModeResultSchema,
|
||||
options,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify the host of UI size changes.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in a new issue