@codingame/monaco-vscode-katex-common 26.2.2 → 27.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +10 -4
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +35 -11
- package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +3 -0
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +15 -4
- package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +548 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +168 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +67 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +12 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +42 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +63 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +77 -73
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +69 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +381 -83
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +28 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +38 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +109 -113
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +16 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +28 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +226 -123
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +9 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +7 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +22 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.js +11 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +51 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +20 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.js +11 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +36 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +166 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +16 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +14 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +98 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +241 -78
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts +29 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +252 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +39 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +36 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +42 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +12 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +48 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatHookContentPart.css +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +351 -422
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +14 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +102 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +69 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/codeBlockPart.css +48 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +47 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +0 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +103 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +61 -66
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +7 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +41 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +17 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +310 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +13 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +441 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +24 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +392 -86
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +52 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +271 -187
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +668 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +57 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +78 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +86 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +9 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +393 -134
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +36 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +20 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +141 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +18 -13
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +108 -27
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +20 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +4 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +74 -32
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +11 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +68 -27
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +125 -13
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +8 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +54 -45
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +11 -10
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +172 -112
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +0 -42
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +27 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +83 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +58 -33
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.d.ts +1 -548
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +0 -187
- /package/vscode/src/vs/{workbench/contrib → platform}/mcp/common/modelContextProtocolApps.js +0 -0
|
@@ -0,0 +1,548 @@
|
|
|
1
|
+
import { MCP } from "@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/modelContextProtocol";
|
|
2
|
+
type CallToolResult = MCP.CallToolResult;
|
|
3
|
+
type ContentBlock = MCP.ContentBlock;
|
|
4
|
+
type Implementation = MCP.Implementation;
|
|
5
|
+
type RequestId = MCP.RequestId;
|
|
6
|
+
type Tool = MCP.Tool;
|
|
7
|
+
export declare namespace McpApps {
|
|
8
|
+
type AppRequest = MCP.CallToolRequest | MCP.ReadResourceRequest | MCP.PingRequest | (McpUiOpenLinkRequest & MCP.JSONRPCRequest) | (McpUiUpdateModelContextRequest & MCP.JSONRPCRequest) | (McpUiMessageRequest & MCP.JSONRPCRequest) | (McpUiRequestDisplayModeRequest & MCP.JSONRPCRequest) | (McpApps.McpUiInitializeRequest & MCP.JSONRPCRequest);
|
|
9
|
+
type AppNotification = McpUiInitializedNotification | McpUiSizeChangedNotification | MCP.LoggingMessageNotification | CustomSandboxWheelNotification;
|
|
10
|
+
type AppMessage = AppRequest | AppNotification;
|
|
11
|
+
type HostResult = MCP.CallToolResult | MCP.ReadResourceResult | MCP.EmptyResult | McpApps.McpUiInitializeResult | McpUiMessageResult | McpUiOpenLinkResult | McpUiRequestDisplayModeResult;
|
|
12
|
+
type HostNotification = McpUiHostContextChangedNotification | McpUiResourceTeardownRequest | McpUiToolInputNotification | McpUiToolInputPartialNotification | McpUiToolResultNotification | McpUiToolCancelledNotification | McpUiSizeChangedNotification;
|
|
13
|
+
type HostMessage = HostResult | HostNotification;
|
|
14
|
+
/** Custom notification used for bubbling up sandbox wheel events. */
|
|
15
|
+
interface CustomSandboxWheelNotification {
|
|
16
|
+
method: "ui/notifications/sandbox-wheel";
|
|
17
|
+
params: {
|
|
18
|
+
deltaMode: number;
|
|
19
|
+
deltaX: number;
|
|
20
|
+
deltaY: number;
|
|
21
|
+
deltaZ: number;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Schema updated from the Model Context Protocol Apps repository at
|
|
27
|
+
* https://github.com/modelcontextprotocol/ext-apps/blob/main/src/spec.types.ts
|
|
28
|
+
*
|
|
29
|
+
* ⚠️ Do not edit within `namespace` manually except to update schema versions ⚠️
|
|
30
|
+
*/
|
|
31
|
+
export declare namespace McpApps {
|
|
32
|
+
/**
|
|
33
|
+
* Current protocol version supported by this SDK.
|
|
34
|
+
*
|
|
35
|
+
* The SDK automatically handles version negotiation during initialization.
|
|
36
|
+
* Apps and hosts don't need to manage protocol versions manually.
|
|
37
|
+
*/
|
|
38
|
+
const LATEST_PROTOCOL_VERSION = "2026-01-26";
|
|
39
|
+
/**
|
|
40
|
+
* @description Color theme preference for the host environment.
|
|
41
|
+
*/
|
|
42
|
+
type McpUiTheme = "light" | "dark";
|
|
43
|
+
/**
|
|
44
|
+
* @description Display mode for UI presentation.
|
|
45
|
+
*/
|
|
46
|
+
type McpUiDisplayMode = "inline" | "fullscreen" | "pip";
|
|
47
|
+
/**
|
|
48
|
+
* @description CSS variable keys available to MCP apps for theming.
|
|
49
|
+
*/
|
|
50
|
+
type McpUiStyleVariableKey = "--color-background-primary" | "--color-background-secondary" | "--color-background-tertiary" | "--color-background-inverse" | "--color-background-ghost" | "--color-background-info" | "--color-background-danger" | "--color-background-success" | "--color-background-warning" | "--color-background-disabled" | "--color-text-primary" | "--color-text-secondary" | "--color-text-tertiary" | "--color-text-inverse" | "--color-text-ghost" | "--color-text-info" | "--color-text-danger" | "--color-text-success" | "--color-text-warning" | "--color-text-disabled" | "--color-text-ghost" | "--color-border-primary" | "--color-border-secondary" | "--color-border-tertiary" | "--color-border-inverse" | "--color-border-ghost" | "--color-border-info" | "--color-border-danger" | "--color-border-success" | "--color-border-warning" | "--color-border-disabled" | "--color-ring-primary" | "--color-ring-secondary" | "--color-ring-inverse" | "--color-ring-info" | "--color-ring-danger" | "--color-ring-success" | "--color-ring-warning" | "--font-sans" | "--font-mono" | "--font-weight-normal" | "--font-weight-medium" | "--font-weight-semibold" | "--font-weight-bold" | "--font-text-xs-size" | "--font-text-sm-size" | "--font-text-md-size" | "--font-text-lg-size" | "--font-heading-xs-size" | "--font-heading-sm-size" | "--font-heading-md-size" | "--font-heading-lg-size" | "--font-heading-xl-size" | "--font-heading-2xl-size" | "--font-heading-3xl-size" | "--font-text-xs-line-height" | "--font-text-sm-line-height" | "--font-text-md-line-height" | "--font-text-lg-line-height" | "--font-heading-xs-line-height" | "--font-heading-sm-line-height" | "--font-heading-md-line-height" | "--font-heading-lg-line-height" | "--font-heading-xl-line-height" | "--font-heading-2xl-line-height" | "--font-heading-3xl-line-height" | "--border-radius-xs" | "--border-radius-sm" | "--border-radius-md" | "--border-radius-lg" | "--border-radius-xl" | "--border-radius-full" | "--border-width-regular" | "--shadow-hairline" | "--shadow-sm" | "--shadow-md" | "--shadow-lg";
|
|
51
|
+
/**
|
|
52
|
+
* @description Style variables for theming MCP apps.
|
|
53
|
+
*
|
|
54
|
+
* Individual style keys are optional - hosts may provide any subset of these values.
|
|
55
|
+
* Values are strings containing CSS values (colors, sizes, font stacks, etc.).
|
|
56
|
+
*
|
|
57
|
+
* Note: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`
|
|
58
|
+
* for compatibility with Zod schema generation. Both are functionally equivalent for validation.
|
|
59
|
+
*/
|
|
60
|
+
type McpUiStyles = Record<McpUiStyleVariableKey, string | undefined>;
|
|
61
|
+
/**
|
|
62
|
+
* @description Request to open an external URL in the host's default browser.
|
|
63
|
+
* @see {@link app.App.sendOpenLink} for the method that sends this request
|
|
64
|
+
*/
|
|
65
|
+
interface McpUiOpenLinkRequest {
|
|
66
|
+
method: "ui/open-link";
|
|
67
|
+
params: {
|
|
68
|
+
/** @description URL to open in the host's browser */
|
|
69
|
+
url: string;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @description Result from opening a URL.
|
|
74
|
+
* @see {@link McpUiOpenLinkRequest}
|
|
75
|
+
*/
|
|
76
|
+
interface McpUiOpenLinkResult {
|
|
77
|
+
/** @description True if the host failed to open the URL (e.g., due to security policy). */
|
|
78
|
+
isError?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Index signature required for MCP SDK `Protocol` class compatibility.
|
|
81
|
+
* Note: The schema intentionally omits this to enforce strict validation.
|
|
82
|
+
*/
|
|
83
|
+
[key: string]: unknown;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* @description Request to send a message to the host's chat interface.
|
|
87
|
+
* @see {@link app.App.sendMessage} for the method that sends this request
|
|
88
|
+
*/
|
|
89
|
+
interface McpUiMessageRequest {
|
|
90
|
+
method: "ui/message";
|
|
91
|
+
params: {
|
|
92
|
+
/** @description Message role, currently only "user" is supported. */
|
|
93
|
+
role: "user";
|
|
94
|
+
/** @description Message content blocks (text, image, etc.). */
|
|
95
|
+
content: ContentBlock[];
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* @description Result from sending a message.
|
|
100
|
+
* @see {@link McpUiMessageRequest}
|
|
101
|
+
*/
|
|
102
|
+
interface McpUiMessageResult {
|
|
103
|
+
/** @description True if the host rejected or failed to deliver the message. */
|
|
104
|
+
isError?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Index signature required for MCP SDK `Protocol` class compatibility.
|
|
107
|
+
* Note: The schema intentionally omits this to enforce strict validation.
|
|
108
|
+
*/
|
|
109
|
+
[key: string]: unknown;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @description Notification that the sandbox proxy iframe is ready to receive content.
|
|
113
|
+
* @internal
|
|
114
|
+
* @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx#sandbox-proxy
|
|
115
|
+
*/
|
|
116
|
+
interface McpUiSandboxProxyReadyNotification {
|
|
117
|
+
method: "ui/notifications/sandbox-proxy-ready";
|
|
118
|
+
params: {};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* @description Notification containing HTML resource for the sandbox proxy to load.
|
|
122
|
+
* @internal
|
|
123
|
+
* @see https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx#sandbox-proxy
|
|
124
|
+
*/
|
|
125
|
+
interface McpUiSandboxResourceReadyNotification {
|
|
126
|
+
method: "ui/notifications/sandbox-resource-ready";
|
|
127
|
+
params: {
|
|
128
|
+
/** @description HTML content to load into the inner iframe. */
|
|
129
|
+
html: string;
|
|
130
|
+
/** @description Optional override for the inner iframe's sandbox attribute. */
|
|
131
|
+
sandbox?: string;
|
|
132
|
+
/** @description CSP configuration from resource metadata. */
|
|
133
|
+
csp?: McpUiResourceCsp;
|
|
134
|
+
/** @description Sandbox permissions from resource metadata. */
|
|
135
|
+
permissions?: McpUiResourcePermissions;
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* @description Notification of UI size changes (bidirectional: Guest <-> Host).
|
|
140
|
+
* @see {@link app.App.sendSizeChanged} for the method to send this from Guest UI
|
|
141
|
+
*/
|
|
142
|
+
interface McpUiSizeChangedNotification {
|
|
143
|
+
method: "ui/notifications/size-changed";
|
|
144
|
+
params: {
|
|
145
|
+
/** @description New width in pixels. */
|
|
146
|
+
width?: number;
|
|
147
|
+
/** @description New height in pixels. */
|
|
148
|
+
height?: number;
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @description Notification containing complete tool arguments (Host -> Guest UI).
|
|
153
|
+
*/
|
|
154
|
+
interface McpUiToolInputNotification {
|
|
155
|
+
method: "ui/notifications/tool-input";
|
|
156
|
+
params: {
|
|
157
|
+
/** @description Complete tool call arguments as key-value pairs. */
|
|
158
|
+
arguments?: Record<string, unknown>;
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* @description Notification containing partial/streaming tool arguments (Host -> Guest UI).
|
|
163
|
+
*/
|
|
164
|
+
interface McpUiToolInputPartialNotification {
|
|
165
|
+
method: "ui/notifications/tool-input-partial";
|
|
166
|
+
params: {
|
|
167
|
+
/** @description Partial tool call arguments (incomplete, may change). */
|
|
168
|
+
arguments?: Record<string, unknown>;
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* @description Notification containing tool execution result (Host -> Guest UI).
|
|
173
|
+
*/
|
|
174
|
+
interface McpUiToolResultNotification {
|
|
175
|
+
method: "ui/notifications/tool-result";
|
|
176
|
+
/** @description Standard MCP tool execution result. */
|
|
177
|
+
params: CallToolResult;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* @description Notification that tool execution was cancelled (Host -> Guest UI).
|
|
181
|
+
* Host MUST send this if tool execution was cancelled for any reason (user action,
|
|
182
|
+
* sampling error, classifier intervention, etc.).
|
|
183
|
+
*/
|
|
184
|
+
interface McpUiToolCancelledNotification {
|
|
185
|
+
method: "ui/notifications/tool-cancelled";
|
|
186
|
+
params: {
|
|
187
|
+
/** @description Optional reason for the cancellation (e.g., "user action", "timeout"). */
|
|
188
|
+
reason?: string;
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* @description CSS blocks that can be injected by apps.
|
|
193
|
+
*/
|
|
194
|
+
interface McpUiHostCss {
|
|
195
|
+
/** @description CSS for font loading (@font-face rules or @import statements). Apps must apply using applyHostFonts(). */
|
|
196
|
+
fonts?: string;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* @description Style configuration for theming MCP apps.
|
|
200
|
+
*/
|
|
201
|
+
interface McpUiHostStyles {
|
|
202
|
+
/** @description CSS variables for theming the app. */
|
|
203
|
+
variables?: McpUiStyles;
|
|
204
|
+
/** @description CSS blocks that apps can inject. */
|
|
205
|
+
css?: McpUiHostCss;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* @description Rich context about the host environment provided to Guest UIs.
|
|
209
|
+
*/
|
|
210
|
+
interface McpUiHostContext {
|
|
211
|
+
/** @description Allow additional properties for forward compatibility. */
|
|
212
|
+
[key: string]: unknown;
|
|
213
|
+
/** @description Metadata of the tool call that instantiated this App. */
|
|
214
|
+
toolInfo?: {
|
|
215
|
+
/** @description JSON-RPC id of the tools/call request. */
|
|
216
|
+
id?: RequestId;
|
|
217
|
+
/** @description Tool definition including name, inputSchema, etc. */
|
|
218
|
+
tool: Tool;
|
|
219
|
+
};
|
|
220
|
+
/** @description Current color theme preference. */
|
|
221
|
+
theme?: McpUiTheme;
|
|
222
|
+
/** @description Style configuration for theming the app. */
|
|
223
|
+
styles?: McpUiHostStyles;
|
|
224
|
+
/** @description How the UI is currently displayed. */
|
|
225
|
+
displayMode?: McpUiDisplayMode;
|
|
226
|
+
/** @description Display modes the host supports. */
|
|
227
|
+
availableDisplayModes?: string[];
|
|
228
|
+
/**
|
|
229
|
+
* @description Container dimensions. Represents the dimensions of the iframe or other
|
|
230
|
+
* container holding the app. Specify either width or maxWidth, and either height or maxHeight.
|
|
231
|
+
*/
|
|
232
|
+
containerDimensions?: ({
|
|
233
|
+
/** @description Fixed container height in pixels. */
|
|
234
|
+
height: number;
|
|
235
|
+
} | {
|
|
236
|
+
/** @description Maximum container height in pixels. */
|
|
237
|
+
maxHeight?: number | undefined;
|
|
238
|
+
}) & ({
|
|
239
|
+
/** @description Fixed container width in pixels. */
|
|
240
|
+
width: number;
|
|
241
|
+
} | {
|
|
242
|
+
/** @description Maximum container width in pixels. */
|
|
243
|
+
maxWidth?: number | undefined;
|
|
244
|
+
});
|
|
245
|
+
/** @description User's language and region preference in BCP 47 format. */
|
|
246
|
+
locale?: string;
|
|
247
|
+
/** @description User's timezone in IANA format. */
|
|
248
|
+
timeZone?: string;
|
|
249
|
+
/** @description Host application identifier. */
|
|
250
|
+
userAgent?: string;
|
|
251
|
+
/** @description Platform type for responsive design decisions. */
|
|
252
|
+
platform?: "web" | "desktop" | "mobile";
|
|
253
|
+
/** @description Device input capabilities. */
|
|
254
|
+
deviceCapabilities?: {
|
|
255
|
+
/** @description Whether the device supports touch input. */
|
|
256
|
+
touch?: boolean;
|
|
257
|
+
/** @description Whether the device supports hover interactions. */
|
|
258
|
+
hover?: boolean;
|
|
259
|
+
};
|
|
260
|
+
/** @description Mobile safe area boundaries in pixels. */
|
|
261
|
+
safeAreaInsets?: {
|
|
262
|
+
/** @description Top safe area inset in pixels. */
|
|
263
|
+
top: number;
|
|
264
|
+
/** @description Right safe area inset in pixels. */
|
|
265
|
+
right: number;
|
|
266
|
+
/** @description Bottom safe area inset in pixels. */
|
|
267
|
+
bottom: number;
|
|
268
|
+
/** @description Left safe area inset in pixels. */
|
|
269
|
+
left: number;
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* @description Notification that host context has changed (Host -> Guest UI).
|
|
274
|
+
* @see {@link McpUiHostContext} for the full context structure
|
|
275
|
+
*/
|
|
276
|
+
interface McpUiHostContextChangedNotification {
|
|
277
|
+
method: "ui/notifications/host-context-changed";
|
|
278
|
+
/** @description Partial context update containing only changed fields. */
|
|
279
|
+
params: McpUiHostContext;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* @description Request to update the agent's context without requiring a follow-up action (Guest UI -> Host).
|
|
283
|
+
*
|
|
284
|
+
* Unlike `notifications/message` which is for debugging/logging, this request is intended
|
|
285
|
+
* to update the Host's model context. Each request overwrites the previous context sent by the Guest UI.
|
|
286
|
+
* Unlike messages, context updates do not trigger follow-ups.
|
|
287
|
+
*
|
|
288
|
+
* The host will typically defer sending the context to the model until the next user message
|
|
289
|
+
* (including `ui/message`), and will only send the last update received.
|
|
290
|
+
*
|
|
291
|
+
* @see {@link app.App.updateModelContext} for the method that sends this request
|
|
292
|
+
*/
|
|
293
|
+
interface McpUiUpdateModelContextRequest {
|
|
294
|
+
method: "ui/update-model-context";
|
|
295
|
+
params: {
|
|
296
|
+
/** @description Context content blocks (text, image, etc.). */
|
|
297
|
+
content?: ContentBlock[];
|
|
298
|
+
/** @description Structured content for machine-readable context data. */
|
|
299
|
+
structuredContent?: Record<string, unknown>;
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* @description Request for graceful shutdown of the Guest UI (Host -> Guest UI).
|
|
304
|
+
* @see {@link app-bridge.AppBridge.teardownResource} for the host method that sends this
|
|
305
|
+
*/
|
|
306
|
+
interface McpUiResourceTeardownRequest {
|
|
307
|
+
method: "ui/resource-teardown";
|
|
308
|
+
params: {};
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* @description Result from graceful shutdown request.
|
|
312
|
+
* @see {@link McpUiResourceTeardownRequest}
|
|
313
|
+
*/
|
|
314
|
+
interface McpUiResourceTeardownResult {
|
|
315
|
+
/**
|
|
316
|
+
* Index signature required for MCP SDK `Protocol` class compatibility.
|
|
317
|
+
*/
|
|
318
|
+
[key: string]: unknown;
|
|
319
|
+
}
|
|
320
|
+
interface McpUiSupportedContentBlockModalities {
|
|
321
|
+
/** @description Host supports text content blocks. */
|
|
322
|
+
text?: {};
|
|
323
|
+
/** @description Host supports image content blocks. */
|
|
324
|
+
image?: {};
|
|
325
|
+
/** @description Host supports audio content blocks. */
|
|
326
|
+
audio?: {};
|
|
327
|
+
/** @description Host supports resource content blocks. */
|
|
328
|
+
resource?: {};
|
|
329
|
+
/** @description Host supports resource link content blocks. */
|
|
330
|
+
resourceLink?: {};
|
|
331
|
+
/** @description Host supports structured content. */
|
|
332
|
+
structuredContent?: {};
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* @description Capabilities supported by the host application.
|
|
336
|
+
* @see {@link McpUiInitializeResult} for the initialization result that includes these capabilities
|
|
337
|
+
*/
|
|
338
|
+
interface McpUiHostCapabilities {
|
|
339
|
+
/** @description Experimental features (structure TBD). */
|
|
340
|
+
experimental?: {};
|
|
341
|
+
/** @description Host supports opening external URLs. */
|
|
342
|
+
openLinks?: {};
|
|
343
|
+
/** @description Host can proxy tool calls to the MCP server. */
|
|
344
|
+
serverTools?: {
|
|
345
|
+
/** @description Host supports tools/list_changed notifications. */
|
|
346
|
+
listChanged?: boolean;
|
|
347
|
+
};
|
|
348
|
+
/** @description Host can proxy resource reads to the MCP server. */
|
|
349
|
+
serverResources?: {
|
|
350
|
+
/** @description Host supports resources/list_changed notifications. */
|
|
351
|
+
listChanged?: boolean;
|
|
352
|
+
};
|
|
353
|
+
/** @description Host accepts log messages. */
|
|
354
|
+
logging?: {};
|
|
355
|
+
/** @description Sandbox configuration applied by the host. */
|
|
356
|
+
sandbox?: {
|
|
357
|
+
/** @description Permissions granted by the host (camera, microphone, geolocation). */
|
|
358
|
+
permissions?: McpUiResourcePermissions;
|
|
359
|
+
/** @description CSP domains approved by the host. */
|
|
360
|
+
csp?: McpUiResourceCsp;
|
|
361
|
+
};
|
|
362
|
+
/** @description Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns. */
|
|
363
|
+
updateModelContext?: McpUiSupportedContentBlockModalities;
|
|
364
|
+
/** @description Host supports receiving content messages (ui/message) from the View. */
|
|
365
|
+
message?: McpUiSupportedContentBlockModalities;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* @description Capabilities provided by the View (App).
|
|
369
|
+
* @see {@link McpUiInitializeRequest} for the initialization request that includes these capabilities
|
|
370
|
+
*/
|
|
371
|
+
interface McpUiAppCapabilities {
|
|
372
|
+
/** @description Experimental features (structure TBD). */
|
|
373
|
+
experimental?: {};
|
|
374
|
+
/** @description App exposes MCP-style tools that the host can call. */
|
|
375
|
+
tools?: {
|
|
376
|
+
/** @description App supports tools/list_changed notifications. */
|
|
377
|
+
listChanged?: boolean;
|
|
378
|
+
};
|
|
379
|
+
/**
|
|
380
|
+
* @description Display modes the app supports. See Display Modes section of the spec for details.
|
|
381
|
+
* @example ["inline", "fullscreen"]
|
|
382
|
+
*/
|
|
383
|
+
availableDisplayModes?: McpUiDisplayMode[];
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* @description Initialization request sent from Guest UI to Host.
|
|
387
|
+
* @see {@link app.App.connect} for the method that sends this request
|
|
388
|
+
*/
|
|
389
|
+
interface McpUiInitializeRequest {
|
|
390
|
+
method: "ui/initialize";
|
|
391
|
+
params: {
|
|
392
|
+
/** @description App identification (name and version). */
|
|
393
|
+
appInfo: Implementation;
|
|
394
|
+
/** @description Features and capabilities this app provides. */
|
|
395
|
+
appCapabilities: McpUiAppCapabilities;
|
|
396
|
+
/** @description Protocol version this app supports. */
|
|
397
|
+
protocolVersion: string;
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* @description Initialization result returned from Host to Guest UI.
|
|
402
|
+
* @see {@link McpUiInitializeRequest}
|
|
403
|
+
*/
|
|
404
|
+
interface McpUiInitializeResult {
|
|
405
|
+
/** @description Negotiated protocol version string (e.g., "2025-11-21"). */
|
|
406
|
+
protocolVersion: string;
|
|
407
|
+
/** @description Host application identification and version. */
|
|
408
|
+
hostInfo: Implementation;
|
|
409
|
+
/** @description Features and capabilities provided by the host. */
|
|
410
|
+
hostCapabilities: McpUiHostCapabilities;
|
|
411
|
+
/** @description Rich context about the host environment. */
|
|
412
|
+
hostContext: McpUiHostContext;
|
|
413
|
+
/**
|
|
414
|
+
* Index signature required for MCP SDK `Protocol` class compatibility.
|
|
415
|
+
* Note: The schema intentionally omits this to enforce strict validation.
|
|
416
|
+
*/
|
|
417
|
+
[key: string]: unknown;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* @description Notification that Guest UI has completed initialization (Guest UI -> Host).
|
|
421
|
+
* @see {@link app.App.connect} for the method that sends this notification
|
|
422
|
+
*/
|
|
423
|
+
interface McpUiInitializedNotification {
|
|
424
|
+
method: "ui/notifications/initialized";
|
|
425
|
+
params?: {};
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* @description Content Security Policy configuration for UI resources.
|
|
429
|
+
*/
|
|
430
|
+
interface McpUiResourceCsp {
|
|
431
|
+
/** @description Origins for network requests (fetch/XHR/WebSocket). */
|
|
432
|
+
connectDomains?: string[];
|
|
433
|
+
/** @description Origins for static resources (scripts, images, styles, fonts). */
|
|
434
|
+
resourceDomains?: string[];
|
|
435
|
+
/** @description Origins for nested iframes (frame-src directive). */
|
|
436
|
+
frameDomains?: string[];
|
|
437
|
+
/** @description Allowed base URIs for the document (base-uri directive). */
|
|
438
|
+
baseUriDomains?: string[];
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* @description Sandbox permissions requested by the UI resource.
|
|
442
|
+
* Hosts MAY honor these by setting appropriate iframe `allow` attributes.
|
|
443
|
+
* Apps SHOULD NOT assume permissions are granted; use JS feature detection as fallback.
|
|
444
|
+
*/
|
|
445
|
+
interface McpUiResourcePermissions {
|
|
446
|
+
/** @description Request camera access (Permission Policy `camera` feature). */
|
|
447
|
+
camera?: {};
|
|
448
|
+
/** @description Request microphone access (Permission Policy `microphone` feature). */
|
|
449
|
+
microphone?: {};
|
|
450
|
+
/** @description Request geolocation access (Permission Policy `geolocation` feature). */
|
|
451
|
+
geolocation?: {};
|
|
452
|
+
/** @description Request clipboard write access (Permission Policy `clipboard-write` feature). */
|
|
453
|
+
clipboardWrite?: {};
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* @description UI Resource metadata for security and rendering configuration.
|
|
457
|
+
*/
|
|
458
|
+
interface McpUiResourceMeta {
|
|
459
|
+
/** @description Content Security Policy configuration. */
|
|
460
|
+
csp?: McpUiResourceCsp;
|
|
461
|
+
/** @description Sandbox permissions requested by the UI. */
|
|
462
|
+
permissions?: McpUiResourcePermissions;
|
|
463
|
+
/** @description Dedicated origin for widget sandbox. */
|
|
464
|
+
domain?: string;
|
|
465
|
+
/** @description Visual boundary preference - true if UI prefers a visible border. */
|
|
466
|
+
prefersBorder?: boolean;
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* @description Request to change the display mode of the UI.
|
|
470
|
+
* The host will respond with the actual display mode that was set,
|
|
471
|
+
* which may differ from the requested mode if not supported.
|
|
472
|
+
* @see {@link app.App.requestDisplayMode} for the method that sends this request
|
|
473
|
+
*/
|
|
474
|
+
interface McpUiRequestDisplayModeRequest {
|
|
475
|
+
method: "ui/request-display-mode";
|
|
476
|
+
params: {
|
|
477
|
+
/** @description The display mode being requested. */
|
|
478
|
+
mode: McpUiDisplayMode;
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* @description Result from requesting a display mode change.
|
|
483
|
+
* @see {@link McpUiRequestDisplayModeRequest}
|
|
484
|
+
*/
|
|
485
|
+
interface McpUiRequestDisplayModeResult {
|
|
486
|
+
/** @description The display mode that was actually set. May differ from requested if not supported. */
|
|
487
|
+
mode: McpUiDisplayMode;
|
|
488
|
+
/**
|
|
489
|
+
* Index signature required for MCP SDK `Protocol` class compatibility.
|
|
490
|
+
* Note: The schema intentionally omits this to enforce strict validation.
|
|
491
|
+
*/
|
|
492
|
+
[key: string]: unknown;
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* @description Tool visibility scope - who can access the tool.
|
|
496
|
+
*/
|
|
497
|
+
type McpUiToolVisibility = "model" | "app";
|
|
498
|
+
/**
|
|
499
|
+
* @description UI-related metadata for tools.
|
|
500
|
+
*/
|
|
501
|
+
interface McpUiToolMeta {
|
|
502
|
+
/**
|
|
503
|
+
* URI of the UI resource to display for this tool, if any.
|
|
504
|
+
* This is converted to `_meta["ui/resourceUri"]`.
|
|
505
|
+
*
|
|
506
|
+
* @example "ui://weather/widget.html"
|
|
507
|
+
*/
|
|
508
|
+
resourceUri?: string;
|
|
509
|
+
/**
|
|
510
|
+
* @description Who can access this tool. Default: ["model", "app"]
|
|
511
|
+
* - "model": Tool visible to and callable by the agent
|
|
512
|
+
* - "app": Tool callable by the app from this server only
|
|
513
|
+
*/
|
|
514
|
+
visibility?: McpUiToolVisibility[];
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Method string constants for MCP Apps protocol messages.
|
|
518
|
+
*
|
|
519
|
+
* These constants provide a type-safe way to check message methods without
|
|
520
|
+
* accessing internal Zod schema properties. External libraries should use
|
|
521
|
+
* these constants instead of accessing `schema.shape.method._def.values[0]`.
|
|
522
|
+
*
|
|
523
|
+
* @example
|
|
524
|
+
* ```typescript
|
|
525
|
+
* import { SANDBOX_PROXY_READY_METHOD } from '@modelcontextprotocol/ext-apps';
|
|
526
|
+
*
|
|
527
|
+
* if (event.data.method === SANDBOX_PROXY_READY_METHOD) {
|
|
528
|
+
* // Handle sandbox proxy ready notification
|
|
529
|
+
* }
|
|
530
|
+
* ```
|
|
531
|
+
*/
|
|
532
|
+
const OPEN_LINK_METHOD: McpUiOpenLinkRequest["method"];
|
|
533
|
+
const MESSAGE_METHOD: McpUiMessageRequest["method"];
|
|
534
|
+
const SANDBOX_PROXY_READY_METHOD: McpUiSandboxProxyReadyNotification["method"];
|
|
535
|
+
const SANDBOX_RESOURCE_READY_METHOD: McpUiSandboxResourceReadyNotification["method"];
|
|
536
|
+
const SIZE_CHANGED_METHOD: McpUiSizeChangedNotification["method"];
|
|
537
|
+
const TOOL_INPUT_METHOD: McpUiToolInputNotification["method"];
|
|
538
|
+
const TOOL_INPUT_PARTIAL_METHOD: McpUiToolInputPartialNotification["method"];
|
|
539
|
+
const TOOL_RESULT_METHOD: McpUiToolResultNotification["method"];
|
|
540
|
+
const TOOL_CANCELLED_METHOD: McpUiToolCancelledNotification["method"];
|
|
541
|
+
const HOST_CONTEXT_CHANGED_METHOD: McpUiHostContextChangedNotification["method"];
|
|
542
|
+
const RESOURCE_TEARDOWN_METHOD: McpUiResourceTeardownRequest["method"];
|
|
543
|
+
const INITIALIZE_METHOD: McpUiInitializeRequest["method"];
|
|
544
|
+
const INITIALIZED_METHOD: McpUiInitializedNotification["method"];
|
|
545
|
+
const REQUEST_DISPLAY_MODE_METHOD: McpUiRequestDisplayModeRequest["method"];
|
|
546
|
+
const UPDATE_MODEL_CONTEXT_METHOD: McpUiUpdateModelContextRequest["method"];
|
|
547
|
+
}
|
|
548
|
+
export {};
|
package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js
CHANGED
|
@@ -25,7 +25,7 @@ const getToolConfirmationAlert = (accessor, toolInvocation) => {
|
|
|
25
25
|
if (state.type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
|
|
26
26
|
const detail = isToolResultInputOutputDetails(state.resultDetails) ? state.resultDetails.input : isToolResultOutputDetails(state.resultDetails) ? undefined : toolContentToA11yString(state.contentForModel);
|
|
27
27
|
return {
|
|
28
|
-
title: ( localize(
|
|
28
|
+
title: ( localize(4670, "Approve results of tool")),
|
|
29
29
|
detail: detail
|
|
30
30
|
};
|
|
31
31
|
}
|
|
@@ -51,18 +51,18 @@ const getToolConfirmationAlert = (accessor, toolInvocation) => {
|
|
|
51
51
|
};
|
|
52
52
|
})).filter(isDefined);
|
|
53
53
|
let message = acceptKb && cancelKb ? ( localize(
|
|
54
|
-
|
|
54
|
+
4671,
|
|
55
55
|
"Chat confirmation required: {0}. Press {1} to accept or {2} to cancel.",
|
|
56
56
|
( text.map(t => t.title)).join(", "),
|
|
57
57
|
acceptKb,
|
|
58
58
|
cancelKb
|
|
59
59
|
)) : ( localize(
|
|
60
|
-
|
|
60
|
+
4672,
|
|
61
61
|
"Chat confirmation required: {0}",
|
|
62
62
|
( text.map(t => t.title)).join(", ")
|
|
63
63
|
));
|
|
64
64
|
if (( text.some(t => t.detail))) {
|
|
65
|
-
message += " " + ( localize(
|
|
65
|
+
message += " " + ( localize(4673, "Details: {0}", ( text.map(t => t.detail ? t.detail : "")).join(" ")));
|
|
66
66
|
}
|
|
67
67
|
return message;
|
|
68
68
|
};
|
|
@@ -78,7 +78,7 @@ let ChatAccessibilityProvider = class ChatAccessibilityProvider {
|
|
|
78
78
|
return "listitem";
|
|
79
79
|
}
|
|
80
80
|
getWidgetAriaLabel() {
|
|
81
|
-
return localize(
|
|
81
|
+
return localize(4674, "Chat");
|
|
82
82
|
}
|
|
83
83
|
getAriaLabel(element) {
|
|
84
84
|
if (isRequestVM(element)) {
|
|
@@ -109,10 +109,10 @@ let ChatAccessibilityProvider = class ChatAccessibilityProvider {
|
|
|
109
109
|
case 0:
|
|
110
110
|
break;
|
|
111
111
|
case 1:
|
|
112
|
-
tableCountHint = ( localize(
|
|
112
|
+
tableCountHint = ( localize(4675, "1 table "));
|
|
113
113
|
break;
|
|
114
114
|
default:
|
|
115
|
-
tableCountHint = ( localize(
|
|
115
|
+
tableCountHint = ( localize(4676, "{0} tables ", tableCount));
|
|
116
116
|
break;
|
|
117
117
|
}
|
|
118
118
|
const fileTreeCount = element.response.value.filter(v => v.kind === "treeData").length ?? 0;
|
|
@@ -121,10 +121,10 @@ let ChatAccessibilityProvider = class ChatAccessibilityProvider {
|
|
|
121
121
|
case 0:
|
|
122
122
|
break;
|
|
123
123
|
case 1:
|
|
124
|
-
fileTreeCountHint = ( localize(
|
|
124
|
+
fileTreeCountHint = ( localize(4677, "1 file tree "));
|
|
125
125
|
break;
|
|
126
126
|
default:
|
|
127
|
-
fileTreeCountHint = ( localize(
|
|
127
|
+
fileTreeCountHint = ( localize(4678, "{0} file trees ", fileTreeCount));
|
|
128
128
|
break;
|
|
129
129
|
}
|
|
130
130
|
const elicitationCount = element.response.value.filter(v => v.kind === "elicitation2" || v.kind === "elicitationSerialized");
|
|
@@ -138,7 +138,7 @@ let ChatAccessibilityProvider = class ChatAccessibilityProvider {
|
|
|
138
138
|
switch (codeBlockCount) {
|
|
139
139
|
case 0:
|
|
140
140
|
label = accessibleViewHint ? ( localize(
|
|
141
|
-
|
|
141
|
+
4679,
|
|
142
142
|
"{0}{1}{2}{3}{4} {5}",
|
|
143
143
|
toolInvocationHint,
|
|
144
144
|
fileTreeCountHint,
|
|
@@ -147,7 +147,7 @@ let ChatAccessibilityProvider = class ChatAccessibilityProvider {
|
|
|
147
147
|
(element.response.toString()),
|
|
148
148
|
accessibleViewHint
|
|
149
149
|
)) : ( localize(
|
|
150
|
-
|
|
150
|
+
4680,
|
|
151
151
|
"{0}{1}{2} {3}",
|
|
152
152
|
fileTreeCountHint,
|
|
153
153
|
elicitationHint,
|
|
@@ -157,7 +157,7 @@ let ChatAccessibilityProvider = class ChatAccessibilityProvider {
|
|
|
157
157
|
break;
|
|
158
158
|
case 1:
|
|
159
159
|
label = accessibleViewHint ? ( localize(
|
|
160
|
-
|
|
160
|
+
4681,
|
|
161
161
|
"{0}{1}{2}1 code block: {3} {4}{5}",
|
|
162
162
|
toolInvocationHint,
|
|
163
163
|
fileTreeCountHint,
|
|
@@ -166,7 +166,7 @@ let ChatAccessibilityProvider = class ChatAccessibilityProvider {
|
|
|
166
166
|
(element.response.toString()),
|
|
167
167
|
accessibleViewHint
|
|
168
168
|
)) : ( localize(
|
|
169
|
-
|
|
169
|
+
4682,
|
|
170
170
|
"{0}{1}1 code block: {2} {3}",
|
|
171
171
|
fileTreeCountHint,
|
|
172
172
|
elicitationHint,
|
|
@@ -176,7 +176,7 @@ let ChatAccessibilityProvider = class ChatAccessibilityProvider {
|
|
|
176
176
|
break;
|
|
177
177
|
default:
|
|
178
178
|
label = accessibleViewHint ? ( localize(
|
|
179
|
-
|
|
179
|
+
4683,
|
|
180
180
|
"{0}{1}{2}{3} code blocks: {4}{5} {6}",
|
|
181
181
|
toolInvocationHint,
|
|
182
182
|
fileTreeCountHint,
|
|
@@ -186,7 +186,7 @@ let ChatAccessibilityProvider = class ChatAccessibilityProvider {
|
|
|
186
186
|
(element.response.toString()),
|
|
187
187
|
accessibleViewHint
|
|
188
188
|
)) : ( localize(
|
|
189
|
-
|
|
189
|
+
4684,
|
|
190
190
|
"{0}{1}{2} code blocks: {3} {4}",
|
|
191
191
|
fileTreeCountHint,
|
|
192
192
|
elicitationHint,
|
|
@@ -42,6 +42,11 @@ export declare class ChatContinueInSessionActionItem extends ActionWidgetDropdow
|
|
|
42
42
|
export declare class CreateRemoteAgentJobAction {
|
|
43
43
|
constructor();
|
|
44
44
|
private openUntitledEditor;
|
|
45
|
+
/**
|
|
46
|
+
* Extracts the GitHub "owner/repo" NWO from the source session by checking
|
|
47
|
+
* multiple data sources: chat model repoData, session metadata, and session options.
|
|
48
|
+
*/
|
|
49
|
+
private extractRepoNwoFromSession;
|
|
45
50
|
run(accessor: ServicesAccessor, continuationTarget: IChatSessionsExtensionPoint, _widget?: IChatWidget): Promise<void>;
|
|
46
51
|
}
|
|
47
52
|
export declare class ContinueChatInSessionActionRendering extends Disposable implements IWorkbenchContribution {
|