@qwen-code/web-shell 0.26.2 → 0.26.3-nightly.20261028.ca204559a7
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/README.md +39 -2
- package/dist/{PierreFilePreview-O6IBJs2H.js → PierreFilePreview-gL1oCaFW.js} +1 -1
- package/dist/{SpreadsheetPreview-q8wEr2or.js → SpreadsheetPreview-CUn1GBWK.js} +2 -2
- package/dist/{WorkspaceFileBrowser-BOWKyjrM.js → WorkspaceFileBrowser-CRQ4kvpc.js} +2 -2
- package/dist/{agents-route-Vi7-UViC.js → agents-route-BnbsQlQd.js} +2 -2
- package/dist/daemon-react-sdk.js +1 -1
- package/dist/{index-DXZfOyhz.js → index--8imD68R.js} +57422 -56851
- package/dist/index.js +3 -3
- package/dist/sw.js +1 -1
- package/dist/transcript.js +6677 -6584
- package/dist/types/App.d.ts +3 -1
- package/dist/types/adapters/messageTypes.d.ts +9 -0
- package/dist/types/components/composer/AddMenu.d.ts +2 -1
- package/dist/types/components/messages/McpApp.d.ts +8 -1
- package/dist/types/components/messages/SettingsMessage.d.ts +2 -1
- package/dist/types/components/sidebar/WebShellSidebar.d.ts +3 -1
- package/dist/types/customization.d.ts +1 -0
- package/dist/types/daemon/session/actions.d.ts +3 -1
- package/dist/types/daemon/session/types.d.ts +7 -1
- package/dist/types/generated-ui/GeneratedUiRuntimeProvider.d.ts +12 -0
- package/dist/types/generated-ui/instance-store.d.ts +92 -0
- package/dist/types/mcpAppHostContext.d.ts +27 -1
- package/dist/types/settings.d.ts +1 -1
- package/dist/{useDaemonMidTurnInjected-CvLW7Fjj.js → useDaemonMidTurnInjected-Du9Zxaez.js} +5996 -5750
- package/package.json +1 -1
package/dist/types/App.d.ts
CHANGED
|
@@ -220,6 +220,8 @@ export interface WebShellProps {
|
|
|
220
220
|
composerToolbarActions?: readonly ComposerToolbarAction[];
|
|
221
221
|
/** Execution mode choices. Overrides ui.allowedApprovalModes; [] offers none. Presentation only. */
|
|
222
222
|
allowedApprovalModes?: readonly WebShellApprovalMode[];
|
|
223
|
+
/** Composer presentation shared by the main chat, split panes, and side tasks. */
|
|
224
|
+
composerVariant?: 'default' | 'simple';
|
|
223
225
|
/** Optionally filter main-model entries without changing shared defaults. */
|
|
224
226
|
mainModelFilter?: (model: ModelDialogModel) => boolean;
|
|
225
227
|
/** Stack completion details vertically for narrow embedded hosts. */
|
|
@@ -456,4 +458,4 @@ export declare function canArchiveSideTaskSummary(session: Pick<DaemonSessionSum
|
|
|
456
458
|
export declare function mergeSideTaskCatalog(catalog: SideTaskCatalogState, parentSessionId: string, listedItems: SideTaskListItem[], optimisticIds: ReadonlySet<string>): SideTaskCatalogState;
|
|
457
459
|
export declare function getEnvironmentAgentTasks(messages: readonly Message[], sessionTasks: readonly DaemonSessionTaskWithWorkflowStatus[]): EnvironmentAgentTask[];
|
|
458
460
|
export declare function mergeAgentTrace(liveAgents: readonly EnvironmentAgentTask[], trace: DaemonAgentTrace | undefined, now?: number): EnvironmentAgentTask[];
|
|
459
|
-
export declare function App({ onRefreshModels, askUserFreeTextLabel, onSessionIdChange, onSessionInfoChange, onSessionCreated, managedAgentProvider, theme: providedTheme, onThemeChange, onThemeResolved, language: providedLanguage, onLanguageChange, onLanguageResolved, brand: providedBrand, onBrandResolved, className: externalClassName, style: externalStyle, shadowDom, onConnectionChange, onStreamingStateChange, onError, onBugReport, hiddenSlashCommands, slashCommandCategoryOrder, onSlashCommand, builtinAtProviders, atProviders, composerTagIcons, fileUploadEnabled, fileUploadDirectory, artifact, fileDropAction, renderToolHeaderExtra, renderWelcomeHeader, renderWelcomeFooter, mobileWelcomeFooterMiddle, parseUserMessageContent, renderUserMessageContent, renderComposerTag, renderComposerTagTooltip, onComposerTagClick, renderAssistantTurnFooter, assistantFeedback, getAssistantSourcesIcon, sourceReferences, renderComposerToolbarStart, renderComposerToolbarEnd, renderComposerToolbarRight, renderComposerHeader, renderComposerFooter, renderChatHeader, renderFooter, bottomStatusItems, chatMaxWidth, sidebar, settings: settingsPresentation, modelManagement, unavailableModels, mountUnavailableModelTooltip, header, rightPanel, showToolCalls, environmentPanel, splitSessionIds: externalSplitSessionIds, onSplitSessionIdsChange, renderPaneHeaderActions, onRightPanelOpen, onFileReviewOpen, onWorkspaceFileOpen, onInsightReportOpen, onContextUsageOpen, messageTurnOutputs, filterArtifact, shellRef, composerToolbarActions, allowedApprovalModes: allowedApprovalModesProp, mainModelFilter, compactComposerOverlays, autoSubmitSlashCommands, additionalSlashCommands, contextUsageAlwaysVisible, userMessageEditing, onUserMessageEditRequest, cycleModeOnTab, sessionSourceType, composerToolbarAdditionalActions, composerPlaceholders, compactThinking, hostOwnsEditDiffPreview, collapseCompletedTurns, markdownTableMode, virtualScrollThreshold, conversationSearchThreshold, markdown, loadingPhrases, onAgentTasksChange, onTranscriptChange, onSessionArtifactsChange, onToast, composerRef, onComposerReady, composerInput, composerInputVersion, onSessionChange, onAssistantTurnSettled, prepareSubmit, onSubmitBefore, restartSseOnPrompt, historyPageSize, initialSelectedWorkspaceCwd, lockedWorkspaceCwd, lockedWorkspaceCapability, }?: AppProps): import("react/jsx-runtime").JSX.Element;
|
|
461
|
+
export declare function App({ onRefreshModels, askUserFreeTextLabel, onSessionIdChange, onSessionInfoChange, onSessionCreated, managedAgentProvider, theme: providedTheme, onThemeChange, onThemeResolved, language: providedLanguage, onLanguageChange, onLanguageResolved, brand: providedBrand, onBrandResolved, className: externalClassName, style: externalStyle, shadowDom, onConnectionChange, onStreamingStateChange, onError, onBugReport, hiddenSlashCommands, slashCommandCategoryOrder, onSlashCommand, builtinAtProviders, atProviders, composerTagIcons, fileUploadEnabled, fileUploadDirectory, artifact, fileDropAction, renderToolHeaderExtra, renderWelcomeHeader, renderWelcomeFooter, mobileWelcomeFooterMiddle, parseUserMessageContent, renderUserMessageContent, renderComposerTag, renderComposerTagTooltip, onComposerTagClick, renderAssistantTurnFooter, assistantFeedback, getAssistantSourcesIcon, sourceReferences, renderComposerToolbarStart, renderComposerToolbarEnd, renderComposerToolbarRight, renderComposerHeader, renderComposerFooter, renderChatHeader, renderFooter, bottomStatusItems, chatMaxWidth, sidebar, settings: settingsPresentation, modelManagement, unavailableModels, mountUnavailableModelTooltip, header, rightPanel, showToolCalls, environmentPanel, splitSessionIds: externalSplitSessionIds, onSplitSessionIdsChange, renderPaneHeaderActions, onRightPanelOpen, onFileReviewOpen, onWorkspaceFileOpen, onInsightReportOpen, onContextUsageOpen, messageTurnOutputs, filterArtifact, shellRef, composerToolbarActions, allowedApprovalModes: allowedApprovalModesProp, composerVariant, mainModelFilter, compactComposerOverlays, autoSubmitSlashCommands, additionalSlashCommands, contextUsageAlwaysVisible, userMessageEditing, onUserMessageEditRequest, cycleModeOnTab, sessionSourceType, composerToolbarAdditionalActions, composerPlaceholders, compactThinking, hostOwnsEditDiffPreview, collapseCompletedTurns, markdownTableMode, virtualScrollThreshold, conversationSearchThreshold, markdown, loadingPhrases, onAgentTasksChange, onTranscriptChange, onSessionArtifactsChange, onToast, composerRef, onComposerReady, composerInput, composerInputVersion, onSessionChange, onAssistantTurnSettled, prepareSubmit, onSubmitBefore, restartSseOnPrompt, historyPageSize, initialSelectedWorkspaceCwd, lockedWorkspaceCwd, lockedWorkspaceCapability, }?: AppProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -42,6 +42,8 @@ export interface DaemonMessageToolCall {
|
|
|
42
42
|
parentToolCallId?: string;
|
|
43
43
|
/** The producer's own call ID when `callId` is keyed by something else. */
|
|
44
44
|
toolCallId?: string;
|
|
45
|
+
/** Stable producer identity from the daemon tool-block projection only. */
|
|
46
|
+
generatedUiToolCallId?: string;
|
|
45
47
|
title?: string;
|
|
46
48
|
content?: readonly DaemonMessageToolCallContent[];
|
|
47
49
|
rawOutput?: unknown;
|
|
@@ -53,6 +55,13 @@ export interface DaemonMessageToolCall {
|
|
|
53
55
|
endTime?: number;
|
|
54
56
|
wasCancelled?: boolean;
|
|
55
57
|
subContent?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Path-style identity of the agent that produced this call's sub-content,
|
|
60
|
+
* e.g. `/root/general-purpose`. Carried from the transcript block's `agent`
|
|
61
|
+
* field so the panel can name a subagent precisely instead of by type alone
|
|
62
|
+
* — two parallel subagents of the same type are otherwise indistinguishable.
|
|
63
|
+
*/
|
|
64
|
+
agentPath?: string;
|
|
56
65
|
subTools?: DaemonMessageToolCall[];
|
|
57
66
|
/** Transcript blocks folded into this tool presentation. */
|
|
58
67
|
sourceBlockIds?: string[];
|
|
@@ -36,6 +36,7 @@ export interface AddMenuProps {
|
|
|
36
36
|
onLiveVoice?: () => void;
|
|
37
37
|
};
|
|
38
38
|
commandsOnly?: boolean;
|
|
39
|
+
simpleMode?: boolean;
|
|
39
40
|
}
|
|
40
41
|
export interface AddMenuPlanControl {
|
|
41
42
|
checked: boolean;
|
|
@@ -43,4 +44,4 @@ export interface AddMenuPlanControl {
|
|
|
43
44
|
disabled?: boolean;
|
|
44
45
|
onToggle: () => void;
|
|
45
46
|
}
|
|
46
|
-
export declare function AddMenu({ disabled, availabilityKey, addFileAvailable, uploadAvailable, onAddFiles, onFilePickerCancel, onInsertReference, onPrependSkill, getWorkspaceActions, skills, onSkillsOpenChange, skillsLoading, skillsLoadError, skillsLoaded, plan, btw, mobileActions, commandsOnly, }: AddMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export declare function AddMenu({ disabled, availabilityKey, addFileAvailable, uploadAvailable, onAddFiles, onFilePickerCancel, onInsertReference, onPrependSkill, getWorkspaceActions, skills, onSkillsOpenChange, skillsLoading, skillsLoadError, skillsLoaded, plan, btw, mobileActions, commandsOnly, simpleMode, }: AddMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AppBridge } from '@modelcontextprotocol/ext-apps/app-bridge';
|
|
2
|
+
import type { GeneratedUiInstance } from '../../generated-ui/instance-store';
|
|
2
3
|
type SandboxResource = Parameters<AppBridge['sendSandboxResourceReady']>[0];
|
|
3
4
|
type AppToolResult = Parameters<AppBridge['sendToolResult']>[0];
|
|
4
5
|
export interface McpAppDisplay {
|
|
@@ -19,7 +20,13 @@ export declare function applySandboxCspQuery(sandboxUrl: string, cspJson: string
|
|
|
19
20
|
export declare function GeneratedUiFallback({ display }: {
|
|
20
21
|
display: McpAppDisplay;
|
|
21
22
|
}): import("react/jsx-runtime").JSX.Element;
|
|
22
|
-
export declare function McpApp({ display }: {
|
|
23
|
+
export declare function McpApp({ display, toolId, visible, }: {
|
|
23
24
|
display: McpAppDisplay;
|
|
25
|
+
toolId?: string;
|
|
26
|
+
visible?: boolean;
|
|
27
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function McpAppRuntime({ display, retained, }: {
|
|
29
|
+
display: McpAppDisplay;
|
|
30
|
+
retained?: GeneratedUiInstance['runtime'];
|
|
24
31
|
}): import("react/jsx-runtime").JSX.Element;
|
|
25
32
|
export {};
|
|
@@ -24,6 +24,7 @@ interface SettingsMessageProps {
|
|
|
24
24
|
modelManagementSectionProps?: ModelManagementProps;
|
|
25
25
|
/** Browser-local remote computer catalog and connection controls. */
|
|
26
26
|
connections?: ReactNode;
|
|
27
|
+
archivedSessions?: ReactNode;
|
|
27
28
|
/**
|
|
28
29
|
* Extra-directory management for the selected workspace. Rendered only on
|
|
29
30
|
* the Workspace scope tab; omitted when the daemon cannot manage them.
|
|
@@ -63,5 +64,5 @@ export type FlatRow = {
|
|
|
63
64
|
localKey: 'chatWidth' | 'browserNotifications';
|
|
64
65
|
};
|
|
65
66
|
export declare function nextSettingIdx(rows: FlatRow[], current: number, dir: 1 | -1): number;
|
|
66
|
-
export declare function SettingsMessage({ settingsState, presentation, onLanguageChange, onOutputLanguageChange, onSubDialog, onThemeChange, chatWidthMode, onChatWidthModeChange, modelManagementSectionProps, connections, workspaceDirectoriesSection, embedded, initialCategory, workspaceSettingsWritable, }: SettingsMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
export declare function SettingsMessage({ settingsState, presentation, onLanguageChange, onOutputLanguageChange, onSubDialog, onThemeChange, chatWidthMode, onChatWidthModeChange, modelManagementSectionProps, connections, archivedSessions, workspaceDirectoriesSection, embedded, initialCategory, workspaceSettingsWritable, }: SettingsMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
67
68
|
export {};
|
|
@@ -146,6 +146,8 @@ interface WebShellSidebarProps {
|
|
|
146
146
|
sessionContent?: ReactNode;
|
|
147
147
|
sessionHeader?: ReactNode;
|
|
148
148
|
managedWorkspaces?: ReactNode;
|
|
149
|
+
canOpenSettings?: boolean;
|
|
150
|
+
archivedSessionsTarget?: HTMLElement | null;
|
|
149
151
|
managedArchivedSessions?: ManagedArchivedSessionsStatus & {
|
|
150
152
|
content: ReactNode;
|
|
151
153
|
};
|
|
@@ -179,4 +181,4 @@ interface WebShellSidebarProps {
|
|
|
179
181
|
onLoadStandaloneSession?: (sessionId: string, displayName?: string) => Promise<void> | void;
|
|
180
182
|
onStandaloneNotice?: (message: string) => void;
|
|
181
183
|
}
|
|
182
|
-
export declare function WebShellSidebar({ collapsed, layout, activePage, containerWidth, onOpenHome, onCollapsedChange, onOpenSettings, onOpenAgents, onOpenPlugins, onOpenChannels, onOpenLive, onLiveVoiceSlotChange, onOpenManagedSessions, onOpenDaemonStatus, onOpenScheduledTasks, onOpenPrWatches, onOpenWorkflows, onOpenGoals, onOpenSessions, canOpenSessionsOverview, onOpenWorkspacesOverview, onOpenSplitView, canOpenSplitView, onNewSession, onNewStandaloneSession, onLoadSession, onOpenHostSession, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, sessionContent, sessionHeader, managedWorkspaces, managedArchivedSessions, onSearchQueryChange, currentSessionActive, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
184
|
+
export declare function WebShellSidebar({ collapsed, layout, activePage, containerWidth, onOpenHome, onCollapsedChange, onOpenSettings, canOpenSettings, onOpenAgents, onOpenPlugins, onOpenChannels, onOpenLive, onLiveVoiceSlotChange, onOpenManagedSessions, onOpenDaemonStatus, onOpenScheduledTasks, onOpenPrWatches, onOpenWorkflows, onOpenGoals, onOpenSessions, canOpenSessionsOverview, onOpenWorkspacesOverview, onOpenSplitView, canOpenSplitView, onNewSession, onNewStandaloneSession, onLoadSession, onOpenHostSession, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, sessionContent, sessionHeader, managedWorkspaces, managedArchivedSessions, archivedSessionsTarget, onSearchQueryChange, currentSessionActive, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -526,6 +526,7 @@ export interface WebShellCustomization {
|
|
|
526
526
|
parseUserMessageContent?: UserMessageContentParser;
|
|
527
527
|
renderUserMessageContent?: UserMessageContentRenderer;
|
|
528
528
|
composerTagIcons?: WebShellComposerTagIconMap;
|
|
529
|
+
composerVariant?: 'default' | 'simple';
|
|
529
530
|
/**
|
|
530
531
|
* Built-in / host @ mention providers. Split-view panes share this context
|
|
531
532
|
* so they match the main composer without ChatPane prop drilling.
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { Dispatch, SetStateAction } from 'react';
|
|
7
|
+
import type { McpAppGeneratedUiInvalidation } from '../../mcpAppHostContext.js';
|
|
7
8
|
import type { DaemonClient, DaemonSessionClient, CreateSessionRequest, DaemonTranscriptStore, DaemonCapabilities } from '@qwen-code/sdk/daemon';
|
|
8
9
|
import { type TimerRef } from '../timing.js';
|
|
9
10
|
import type { ActivePrompt, AddDaemonSessionNotice, DaemonActivePromptState, DaemonConnectionState, DaemonPromptStatus, DaemonSessionActions, SettledPrompt, PendingSessionLoad, DaemonProductSessionContext } from './types.js';
|
|
@@ -77,6 +78,7 @@ export interface CreateDaemonSessionActionsArgs {
|
|
|
77
78
|
setAttachSessionNonce: Dispatch<SetStateAction<number>>;
|
|
78
79
|
setNewSessionNonce: Dispatch<SetStateAction<number>>;
|
|
79
80
|
clearLiveJournalRepair?: () => void;
|
|
81
|
+
onGeneratedUiInvalidated?: (owner: DaemonSessionClient, reason: McpAppGeneratedUiInvalidation['reason'], sessionId?: string) => void;
|
|
80
82
|
onPromptAdmitted?: (owner: DaemonSessionClient, admission: {
|
|
81
83
|
promptId: string;
|
|
82
84
|
label: string;
|
|
@@ -88,7 +90,7 @@ export interface CreateDaemonSessionActionsArgs {
|
|
|
88
90
|
export declare function getWorkspaceModelsAfterSessionClear(current: DaemonConnectionState): DaemonConnectionState['models'];
|
|
89
91
|
export declare function getConnectionAfterSessionClear(current: DaemonConnectionState, clearedSessionId: string | undefined, preserveWorkspaceMetadata?: boolean, dropSessionContext?: boolean): DaemonConnectionState;
|
|
90
92
|
export declare function advanceSessionRecoveryGeneration(generations: WeakMap<DaemonSessionClient, number>, session: DaemonSessionClient): number;
|
|
91
|
-
export declare function createDaemonSessionActions({ store, sessionRef, activePromptsRef, settledPromptsRef, pendingSessionLoadRef, pendingSessionLoadIdRef, sessionConfigGeneration, sessionRecoveryGeneration, heartbeatSupportedRef, manualSessionClearRef, skipNextCleanupDetachSessionRef, passiveAssistantDoneTimerRef, daemonActivePromptRef, settleRestoredActivePrompt, flushTranscript, getCreateSessionRequest, createDetachedSession, createDetachedStandaloneSession, getDefaultSessionContext, getClient, getConnection, getEventDetailMode, hasSessionActivePrompt, resetCurrentSessionActivePrompt, restartEventStream, addNotice, setConnection, setPromptStatus, setRestoreSessionId, setRestoreSessionContext, setRestoreMode, setRestoreSessionNonce, setAttachSessionNonce, setNewSessionNonce, clearLiveJournalRepair, onPromptAdmitted, onContinuationAdmitted, onPromptRemoved, }: CreateDaemonSessionActionsArgs): DaemonSessionActions;
|
|
93
|
+
export declare function createDaemonSessionActions({ store, sessionRef, activePromptsRef, settledPromptsRef, pendingSessionLoadRef, pendingSessionLoadIdRef, sessionConfigGeneration, sessionRecoveryGeneration, heartbeatSupportedRef, manualSessionClearRef, skipNextCleanupDetachSessionRef, passiveAssistantDoneTimerRef, daemonActivePromptRef, settleRestoredActivePrompt, flushTranscript, getCreateSessionRequest, createDetachedSession, createDetachedStandaloneSession, getDefaultSessionContext, getClient, getConnection, getEventDetailMode, hasSessionActivePrompt, resetCurrentSessionActivePrompt, restartEventStream, addNotice, setConnection, setPromptStatus, setRestoreSessionId, setRestoreSessionContext, setRestoreMode, setRestoreSessionNonce, setAttachSessionNonce, setNewSessionNonce, clearLiveJournalRepair, onGeneratedUiInvalidated, onPromptAdmitted, onContinuationAdmitted, onPromptRemoved, }: CreateDaemonSessionActionsArgs): DaemonSessionActions;
|
|
92
94
|
/**
|
|
93
95
|
* Key under which a shell command tracks its prompt in the active-prompt map.
|
|
94
96
|
* Shell commands run as their own prompt alongside a conversation turn, so they
|
|
@@ -268,6 +268,12 @@ export interface SendPromptOptions {
|
|
|
268
268
|
submittedPrompt?: string;
|
|
269
269
|
source?: 'mcp-app';
|
|
270
270
|
optimisticUserMessage?: boolean;
|
|
271
|
+
/**
|
|
272
|
+
* Existing transcript user block the admitted prompt binds to. Needed when
|
|
273
|
+
* `optimisticUserMessage: false` reuses the block a failed attempt already
|
|
274
|
+
* appended, so admission still has a block to bind.
|
|
275
|
+
*/
|
|
276
|
+
bindBlockId?: string;
|
|
271
277
|
images?: DaemonPromptImage[];
|
|
272
278
|
files?: DaemonPromptFile[];
|
|
273
279
|
inputAnnotations?: DaemonInputAnnotation[];
|
|
@@ -293,7 +299,7 @@ export interface SendPromptOptions {
|
|
|
293
299
|
promptId: string;
|
|
294
300
|
}) => void;
|
|
295
301
|
}
|
|
296
|
-
export interface SubmitPromptOptions extends Omit<SendPromptOptions, 'beforeDispatch' | 'source'> {
|
|
302
|
+
export interface SubmitPromptOptions extends Omit<SendPromptOptions, 'beforeDispatch' | 'source' | 'bindBlockId'> {
|
|
297
303
|
sessionId?: string;
|
|
298
304
|
signal?: AbortSignal;
|
|
299
305
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type McpAppDisplay } from '../components/messages/McpApp';
|
|
3
|
+
import { GeneratedUiInstanceStore } from './instance-store';
|
|
4
|
+
export declare function GeneratedUiRuntimeProvider({ children, }: {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function useGeneratedUiRetention(): GeneratedUiInstanceStore | undefined;
|
|
8
|
+
export declare function GeneratedUiSlot({ display, toolId, visible, }: {
|
|
9
|
+
display: McpAppDisplay;
|
|
10
|
+
toolId: string;
|
|
11
|
+
visible: boolean;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { ContextType } from 'react';
|
|
2
|
+
import type { McpAppDisplay } from '../components/messages/McpApp';
|
|
3
|
+
import type { McpAppGeneratedUi, McpAppGeneratedUiInvalidation, McpAppGeneratedUiOwnerSource, McpAppMessages, McpAppToolsContext } from '../mcpAppHostContext';
|
|
4
|
+
export declare const MAX_PARKED_INSTANCES = 4;
|
|
5
|
+
export declare const PARKED_INSTANCE_TTL: number;
|
|
6
|
+
export declare const MAX_INSTANCE_RECORDS = 128;
|
|
7
|
+
type ToolHost = NonNullable<ContextType<typeof McpAppToolsContext>>;
|
|
8
|
+
export interface InstanceHost {
|
|
9
|
+
source: McpAppGeneratedUiOwnerSource;
|
|
10
|
+
receipt: McpAppGeneratedUi;
|
|
11
|
+
tools?: ToolHost;
|
|
12
|
+
messages?: McpAppMessages;
|
|
13
|
+
baseUrl: string;
|
|
14
|
+
}
|
|
15
|
+
export interface InstanceSlot extends InstanceHost {
|
|
16
|
+
key: string;
|
|
17
|
+
resourceKey: string;
|
|
18
|
+
display: McpAppDisplay;
|
|
19
|
+
element: HTMLElement;
|
|
20
|
+
token: object;
|
|
21
|
+
visible: boolean;
|
|
22
|
+
reset(): void;
|
|
23
|
+
}
|
|
24
|
+
interface Lease {
|
|
25
|
+
generation: number;
|
|
26
|
+
controller: AbortController;
|
|
27
|
+
owner: ReturnType<McpAppGeneratedUiOwnerSource['captureOwner']>;
|
|
28
|
+
host: InstanceHost;
|
|
29
|
+
reset(): void;
|
|
30
|
+
}
|
|
31
|
+
export interface GeneratedUiInstance {
|
|
32
|
+
id: number;
|
|
33
|
+
key: string;
|
|
34
|
+
scopeId: string;
|
|
35
|
+
sessionId: string;
|
|
36
|
+
resourceKey: string;
|
|
37
|
+
display: McpAppDisplay;
|
|
38
|
+
baseUrl: string;
|
|
39
|
+
container: HTMLDivElement;
|
|
40
|
+
canCallTool: boolean;
|
|
41
|
+
canMessage: boolean;
|
|
42
|
+
token?: object;
|
|
43
|
+
lease?: Lease;
|
|
44
|
+
leaseGeneration?: number;
|
|
45
|
+
parkedAt?: number;
|
|
46
|
+
timer?: ReturnType<typeof setTimeout>;
|
|
47
|
+
tools: ToolHost;
|
|
48
|
+
messages: McpAppMessages;
|
|
49
|
+
runtime: {
|
|
50
|
+
reopened: boolean;
|
|
51
|
+
getSignal(): AbortSignal;
|
|
52
|
+
isVisible(): boolean;
|
|
53
|
+
reset(): void;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
interface InstanceRecord {
|
|
57
|
+
scopeId: string;
|
|
58
|
+
sessionId: string;
|
|
59
|
+
entry?: GeneratedUiInstance;
|
|
60
|
+
reason?: string;
|
|
61
|
+
}
|
|
62
|
+
export declare function instanceKey(source: McpAppGeneratedUiOwnerSource, toolId: string, display: McpAppDisplay): string;
|
|
63
|
+
export declare function resourceKey(display: McpAppDisplay, eventEpoch?: string, capabilities?: {
|
|
64
|
+
tools: boolean;
|
|
65
|
+
messages: boolean;
|
|
66
|
+
}): string;
|
|
67
|
+
export declare class GeneratedUiInstanceStore {
|
|
68
|
+
private records;
|
|
69
|
+
private listeners;
|
|
70
|
+
private version;
|
|
71
|
+
private generation;
|
|
72
|
+
private snapshot;
|
|
73
|
+
private revoked;
|
|
74
|
+
private parkingHosts;
|
|
75
|
+
parking?: HTMLElement;
|
|
76
|
+
registerParking(element: HTMLElement): () => void;
|
|
77
|
+
subscribe: (listener: () => void) => () => void;
|
|
78
|
+
getVersion: () => number;
|
|
79
|
+
getEntries: () => GeneratedUiInstance[];
|
|
80
|
+
getRecord: (key: string) => InstanceRecord | undefined;
|
|
81
|
+
private changed;
|
|
82
|
+
private current;
|
|
83
|
+
private revoke;
|
|
84
|
+
private grant;
|
|
85
|
+
attach(slot: InstanceSlot, explicit?: boolean): GeneratedUiInstance | undefined;
|
|
86
|
+
update(slot: InstanceSlot): void;
|
|
87
|
+
release(key: string, token: object): void;
|
|
88
|
+
dispose(key: string, reason: string): void;
|
|
89
|
+
invalidate: (event: McpAppGeneratedUiInvalidation) => void;
|
|
90
|
+
clear(): void;
|
|
91
|
+
}
|
|
92
|
+
export {};
|
|
@@ -24,7 +24,33 @@ export interface McpAppGeneratedUi {
|
|
|
24
24
|
status: NonNullable<DaemonSession['generatedUi']>;
|
|
25
25
|
}
|
|
26
26
|
export declare const McpAppGeneratedUiContext: import("react").Context<McpAppGeneratedUi | undefined>;
|
|
27
|
-
export
|
|
27
|
+
export interface McpAppGeneratedUiOwnerSource {
|
|
28
|
+
scopeId: string;
|
|
29
|
+
sessionId: string;
|
|
30
|
+
clientId: string;
|
|
31
|
+
workspaceCwd: string;
|
|
32
|
+
eventEpoch?: string;
|
|
33
|
+
captureOwner(): {
|
|
34
|
+
isCurrent(): boolean;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export interface McpAppGeneratedUiInvalidation {
|
|
38
|
+
scopeId: string;
|
|
39
|
+
sessionId?: string;
|
|
40
|
+
reason: 'policy' | 'epoch' | 'runtime-stopped' | 'cleared' | 'deleted' | 'rewound' | 'auth-failed' | 'scope-changed';
|
|
41
|
+
}
|
|
42
|
+
export interface McpAppGeneratedUiOwner {
|
|
43
|
+
scopeId: string;
|
|
44
|
+
workspaceCwd?: string;
|
|
45
|
+
source?: McpAppGeneratedUiOwnerSource;
|
|
46
|
+
subscribeInvalidation(listener: (event: McpAppGeneratedUiInvalidation) => void): () => void;
|
|
47
|
+
invalidate(event: McpAppGeneratedUiInvalidation): void;
|
|
48
|
+
captureSessionDeletion(workspaceCwd: string | undefined): (sessionIds: readonly string[]) => void;
|
|
49
|
+
}
|
|
50
|
+
export declare const McpAppGeneratedUiOwnerContext: import("react").Context<McpAppGeneratedUiOwner | undefined>;
|
|
51
|
+
export declare const McpAppVisibilityContext: import("react").Context<boolean>;
|
|
52
|
+
export declare function isBuiltInGeneratedUi(display?: {
|
|
28
53
|
resourceUri: string;
|
|
29
54
|
requiredFeature?: 'generated-ui';
|
|
30
55
|
}): boolean;
|
|
56
|
+
export declare function useMcpAppAdmission(display?: Parameters<typeof isBuiltInGeneratedUi>[0]): boolean;
|
package/dist/types/settings.d.ts
CHANGED
|
@@ -66,7 +66,7 @@ declare const SETTING_KEYS: {
|
|
|
66
66
|
readonly 'setting:voice-model': "voiceModel";
|
|
67
67
|
readonly 'setting:image-model': "imageModel";
|
|
68
68
|
};
|
|
69
|
-
declare const BUILTIN_IDS: readonly ["builtin:chat-width", "builtin:browser-notifications", "builtin:live-setup", "builtin:local-control", "builtin:connections", "builtin:workspace-directories", "builtin:model-management"];
|
|
69
|
+
declare const BUILTIN_IDS: readonly ["builtin:chat-width", "builtin:browser-notifications", "builtin:live-setup", "builtin:local-control", "builtin:connections", "builtin:archived-sessions", "builtin:workspace-directories", "builtin:model-management"];
|
|
70
70
|
export type WebShellSettingItemId = keyof typeof SETTING_KEYS | (typeof BUILTIN_IDS)[number];
|
|
71
71
|
export declare const WEB_SHELL_SETTING_ITEM_IDS: readonly WebShellSettingItemId[];
|
|
72
72
|
export interface WebShellSettingsOptions {
|