@qwen-code/web-shell 0.26.3-preview.0 → 0.26.4
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 +110 -9
- package/dist/{PierreFilePreview-DK0Qg591.js → PierreFilePreview-CVoJL-kD.js} +1 -1
- package/dist/{SpreadsheetPreview-nx5JXOUL.js → SpreadsheetPreview-CPSqOai5.js} +2 -2
- package/dist/{WorkspaceFileBrowser-D5vot7Ow.js → WorkspaceFileBrowser-IuQcqNWd.js} +2 -2
- package/dist/agents-route-BBfOMyJ5.js +1552 -0
- package/dist/daemon-react-sdk.js +1 -1
- package/dist/{index-bGRCmaBo.js → index-DyFoZ0bq.js} +59574 -59029
- package/dist/index.js +3 -3
- package/dist/sw.js +1 -1
- package/dist/transcript.js +9243 -9071
- package/dist/types/App.d.ts +8 -4
- package/dist/types/adapters/messageTypes.d.ts +7 -0
- package/dist/types/components/ChatEditor.d.ts +2 -0
- package/dist/types/components/DaemonConnectionBanner.d.ts +1 -0
- package/dist/types/components/SessionOverviewPanel.d.ts +6 -3
- package/dist/types/components/composer/AddMenu.d.ts +2 -1
- package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +7 -3
- package/dist/types/components/dialogs/DialogShell.d.ts +5 -2
- package/dist/types/components/local-control-api.d.ts +2 -1
- package/dist/types/components/managed/ManagedSessionWorktrees.d.ts +12 -0
- package/dist/types/components/managed/ManagedWorktreePopover.d.ts +9 -0
- package/dist/types/components/managed/generated/managed-agent-api.d.ts +249 -8
- package/dist/types/components/managed/java-managed-agent-client.d.ts +8 -9
- package/dist/types/components/managed/managed-agent-provider.d.ts +40 -9
- package/dist/types/components/managed/managed-worktree-messages.d.ts +41 -0
- package/dist/types/components/managed/use-managed-file-upload.d.ts +3 -5
- package/dist/types/components/messages/McpApp.d.ts +4 -0
- package/dist/types/components/messages/SettingsMessage.d.ts +2 -1
- package/dist/types/components/sidebar/SessionDetailsTooltip.d.ts +3 -2
- package/dist/types/components/sidebar/WebShellSidebar.d.ts +5 -3
- package/dist/types/components/ui/alert.d.ts +1 -1
- package/dist/types/components/ui/badge.d.ts +1 -1
- package/dist/types/components/ui/button.d.ts +2 -2
- package/dist/types/components/workspace-agents/agent-events.d.ts +1 -1
- package/dist/types/components/workspace-agents/session-agents-api.d.ts +2 -1
- package/dist/types/components/workspace-agents/threads-api.d.ts +2 -1
- package/dist/types/components/workspace-agents/useAgentChatEntry.d.ts +3 -1
- package/dist/types/customization.d.ts +5 -0
- package/dist/types/daemon/availability-context.d.ts +4 -0
- package/dist/types/daemon/availability.d.ts +43 -0
- package/dist/types/daemon/availability.test-fixtures.d.ts +12 -0
- package/dist/types/daemon/rest-request.d.ts +8 -0
- package/dist/types/desktop-relay/desktop-relay-client.d.ts +1 -1
- package/dist/types/hooks/useMcpAppMessages.d.ts +17 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/live/useLiveVoiceSetup.d.ts +1 -1
- package/dist/types/local-files/bridge-client.d.ts +5 -0
- package/dist/types/mcp-app/messages.d.ts +4 -2
- package/dist/types/mcpAppHostContext.d.ts +25 -3
- package/dist/types/session-catalog/session-catalog-store.d.ts +2 -0
- package/dist/types/settings.d.ts +1 -1
- package/dist/types/utils/planMode.d.ts +1 -1
- package/dist/{useDaemonMidTurnInjected-DPmdVYAB.js → useDaemonMidTurnInjected-BpWZTnoN.js} +8272 -6961
- package/package.json +1 -1
- package/dist/agents-route-CoDAxwQK.js +0 -1546
|
@@ -14,6 +14,22 @@ export type ManagedApprovalMode = 'default' | 'auto-edit' | 'auto' | 'yolo';
|
|
|
14
14
|
export type ManagedInputBlock = components['schemas']['InputBlock'];
|
|
15
15
|
export type ManagedSessionSkills = components['schemas']['WebShellSessionSkills'];
|
|
16
16
|
export type ManagedSessionMcp = components['schemas']['PublicMcpCatalog'];
|
|
17
|
+
export type ManagedWorkspaceFileLocator = {
|
|
18
|
+
sessionId: string;
|
|
19
|
+
workspaceId?: never;
|
|
20
|
+
cwdRelative?: never;
|
|
21
|
+
} | {
|
|
22
|
+
sessionId?: never;
|
|
23
|
+
workspaceId: string;
|
|
24
|
+
cwdRelative: string;
|
|
25
|
+
};
|
|
26
|
+
export type ManagedWorkspaceFileQueryRequest = ManagedWorkspaceFileLocator & Omit<components['schemas']['WebShellWorkspaceFileQueryRequest'], 'sessionId' | 'workspaceId' | 'cwdRelative'>;
|
|
27
|
+
export type ManagedWorkspaceFileReadRequest = ManagedWorkspaceFileLocator & Omit<components['schemas']['WebShellWorkspaceFileReadRequest'], 'sessionId' | 'workspaceId' | 'cwdRelative'>;
|
|
28
|
+
export type ManagedWorkspaceFileUploadRequest = ManagedWorkspaceFileLocator & {
|
|
29
|
+
path: string;
|
|
30
|
+
expectedScopeRevision: string;
|
|
31
|
+
uploadId: string;
|
|
32
|
+
};
|
|
17
33
|
export declare function isManagedApprovalMode(value: unknown): value is ManagedApprovalMode;
|
|
18
34
|
export declare function isManagedInitialApprovalMode(value: unknown): value is Exclude<ManagedApprovalMode, 'auto'>;
|
|
19
35
|
export declare function managedPermissionRulesEqual(left: ManagedPermissionRules | undefined, right: ManagedPermissionRules | undefined): boolean;
|
|
@@ -77,9 +93,12 @@ export type ManagedLifecycleAction = ManagedLifecycleKind | 'unarchive' | 'close
|
|
|
77
93
|
export type ManagedLifecycleOperation = components['schemas']['WebShellCommandOperation'];
|
|
78
94
|
export type ManagedExportPage = components['schemas']['WebShellExportPage'];
|
|
79
95
|
export type ManagedExportItem = components['schemas']['WebShellItem'];
|
|
96
|
+
export type ManagedSessionWorktree = components['schemas']['WebShellSessionWorktree'];
|
|
97
|
+
export type ManagedSessionWorktreeOptions = components['schemas']['WebShellSessionWorktreeOptions'];
|
|
80
98
|
export interface ManagedAgentSessionSummary {
|
|
81
99
|
sessionId: string;
|
|
82
100
|
agentId?: string;
|
|
101
|
+
worktree?: ManagedSessionWorktree | null;
|
|
83
102
|
approvalMode?: ManagedApprovalMode;
|
|
84
103
|
initialApprovalMode?: ManagedApprovalMode;
|
|
85
104
|
approvalRevision?: number;
|
|
@@ -299,15 +318,9 @@ export interface ManagedAgentProvider {
|
|
|
299
318
|
}, options: ManagedAgentCommandOptions): Promise<ManagedModelChangeResult>;
|
|
300
319
|
};
|
|
301
320
|
readonly workspaceFiles?: {
|
|
302
|
-
query(request:
|
|
303
|
-
read(request:
|
|
304
|
-
upload?(request:
|
|
305
|
-
workspaceId: string;
|
|
306
|
-
cwdRelative: string;
|
|
307
|
-
path: string;
|
|
308
|
-
expectedScopeRevision: string;
|
|
309
|
-
uploadId: string;
|
|
310
|
-
}, data: Blob, options: ManagedAgentRequestOptions): Promise<components['schemas']['WebShellWorkspaceFileUploadResult']>;
|
|
321
|
+
query(request: ManagedWorkspaceFileQueryRequest, options: ManagedAgentRequestOptions): Promise<components['schemas']['WebShellWorkspaceFilePage']>;
|
|
322
|
+
read(request: ManagedWorkspaceFileReadRequest, options: ManagedAgentRequestOptions): Promise<components['schemas']['WebShellWorkspaceFileSnapshot']>;
|
|
323
|
+
upload?(request: ManagedWorkspaceFileUploadRequest, data: Blob, options: ManagedAgentRequestOptions): Promise<components['schemas']['WebShellWorkspaceFileUploadResult']>;
|
|
311
324
|
queryUpload?(uploadId: string, options: ManagedAgentRequestOptions): Promise<components['schemas']['WebShellWorkspaceFileUploadStatus']>;
|
|
312
325
|
};
|
|
313
326
|
readonly workspaceBinding?: {
|
|
@@ -354,6 +367,9 @@ export interface ManagedAgentProvider {
|
|
|
354
367
|
planMode?: boolean;
|
|
355
368
|
skills?: ManagedSessionSkill[];
|
|
356
369
|
extensionPins?: ManagedExtensionPin[];
|
|
370
|
+
worktree?: {
|
|
371
|
+
baseRef?: string;
|
|
372
|
+
};
|
|
357
373
|
}, options: ManagedAgentCommandOptions): Promise<{
|
|
358
374
|
sessionId: string;
|
|
359
375
|
}>;
|
|
@@ -368,10 +384,25 @@ export interface ManagedAgentProvider {
|
|
|
368
384
|
planMode?: boolean;
|
|
369
385
|
skills?: ManagedSessionSkill[];
|
|
370
386
|
extensionPins?: ManagedExtensionPin[];
|
|
387
|
+
worktree?: {
|
|
388
|
+
baseRef?: string;
|
|
389
|
+
};
|
|
371
390
|
}, options: ManagedAgentCommandOptions): Promise<{
|
|
372
391
|
sessionId: string;
|
|
373
392
|
}>;
|
|
374
393
|
};
|
|
394
|
+
readonly sessionWorktrees?: {
|
|
395
|
+
options(request: {
|
|
396
|
+
workspaceId: string;
|
|
397
|
+
cwdRelative: string;
|
|
398
|
+
baseRef?: string;
|
|
399
|
+
}, options: ManagedAgentRequestOptions): Promise<ManagedSessionWorktreeOptions>;
|
|
400
|
+
list(workspaceId: string, options: ManagedAgentRequestOptions): Promise<{
|
|
401
|
+
data: ManagedSessionWorktree[];
|
|
402
|
+
}>;
|
|
403
|
+
inspect(workspaceId: string, worktreeId: string, options: ManagedAgentRequestOptions): Promise<components['schemas']['WebShellSessionWorktreeInspection']>;
|
|
404
|
+
cleanup(workspaceId: string, worktreeId: string, options: ManagedAgentCommandOptions): Promise<ManagedSessionWorktree>;
|
|
405
|
+
};
|
|
375
406
|
listSessions(options: ManagedAgentRequestOptions & {
|
|
376
407
|
archiveState?: 'unarchived' | 'archived' | 'all';
|
|
377
408
|
titleQuery?: string;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
declare const EN: {
|
|
2
|
+
readonly mode: "Session files";
|
|
3
|
+
readonly current: "Current directory";
|
|
4
|
+
readonly isolated: "Independent worktree";
|
|
5
|
+
readonly base: "Base branch or commit";
|
|
6
|
+
readonly head: "Current HEAD";
|
|
7
|
+
readonly committed: "Starts from the committed version. Uncommitted changes stay in the current directory.";
|
|
8
|
+
readonly checking: "Checking worktree support…";
|
|
9
|
+
readonly files: "Select workspace files after the worktree is ready. Existing file references must be selected again.";
|
|
10
|
+
readonly manage: "Session worktrees";
|
|
11
|
+
readonly retained: "Closing, archiving or deleting a session keeps its worktree. Cleanup removes the directory and keeps the branch.";
|
|
12
|
+
readonly empty: "No session worktrees in this workspace.";
|
|
13
|
+
readonly inspect: "Inspect cleanup";
|
|
14
|
+
readonly cleanup: "Remove worktree directory";
|
|
15
|
+
readonly confirm: "Remove this directory?";
|
|
16
|
+
readonly confirmDescription: "The session must be closed and the worktree clean. The directory will be removed; its Git branch will be retained.";
|
|
17
|
+
readonly blocked: "Cleanup is unavailable";
|
|
18
|
+
readonly session: "Session";
|
|
19
|
+
readonly branch: "Branch";
|
|
20
|
+
readonly baseCommit: "Base commit";
|
|
21
|
+
readonly preparing: "Preparing worktree";
|
|
22
|
+
readonly ready: "Worktree ready";
|
|
23
|
+
readonly failed: "Worktree preparation failed";
|
|
24
|
+
readonly blockedState: "Worktree needs attention";
|
|
25
|
+
readonly removing: "Removing worktree directory";
|
|
26
|
+
readonly removed: "Directory removed; branch retained";
|
|
27
|
+
readonly reasonUnavailable: "This worktree operation is currently unavailable.";
|
|
28
|
+
readonly workspaceBusy: "Waiting for the workspace to become idle.";
|
|
29
|
+
readonly unsupported: "This deployment or runtime environment does not support session worktrees.";
|
|
30
|
+
readonly notGit: "The selected directory is not in a Git repository.";
|
|
31
|
+
readonly layoutUnsupported: "The repository and its Git metadata must be in the same authorized storage. Select the original checkout.";
|
|
32
|
+
readonly invalidRef: "The selected base branch or commit is invalid.";
|
|
33
|
+
readonly dirty: "The worktree contains uncommitted changes, untracked files or ignored files. Preserve or remove them before cleanup.";
|
|
34
|
+
readonly identityConflict: "The original worktree directory is missing or has changed.";
|
|
35
|
+
readonly stopUnverified: "The previous Git operation has not been confirmed stopped.";
|
|
36
|
+
readonly sessionActive: "Close the session before removing its worktree.";
|
|
37
|
+
readonly backgroundBusy: "Wait for background tasks to finish before cleanup.";
|
|
38
|
+
};
|
|
39
|
+
export declare function useManagedWorktreeText(): (key: keyof typeof EN) => string;
|
|
40
|
+
export declare function useManagedWorktreeReason(): (code?: string | null) => string;
|
|
41
|
+
export {};
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import type { FileUploadClient } from '../../hooks/useFileUpload';
|
|
2
2
|
import type { WebShellComposerTag } from '../../customization';
|
|
3
|
-
import type { ManagedAgentProvider } from './managed-agent-provider';
|
|
3
|
+
import type { ManagedAgentProvider, ManagedWorkspaceFileLocator } from './managed-agent-provider';
|
|
4
4
|
export interface ManagedUploadReference {
|
|
5
5
|
version: 1;
|
|
6
6
|
source: string;
|
|
7
7
|
scopeRevision: string;
|
|
8
8
|
path: string;
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
workspaceId: string;
|
|
12
|
-
cwdRelative: string;
|
|
10
|
+
type UploadScope = ManagedWorkspaceFileLocator & {
|
|
13
11
|
source: string;
|
|
14
12
|
scopeRevision: string;
|
|
15
13
|
maxUploadBytes: number;
|
|
16
|
-
}
|
|
14
|
+
};
|
|
17
15
|
export declare function useManagedFileUpload(provider: ManagedAgentProvider, clientId: string, scope: UploadScope | undefined): {
|
|
18
16
|
client: FileUploadClient;
|
|
19
17
|
targetKey: string;
|
|
@@ -17,6 +17,10 @@ export interface McpAppDisplay {
|
|
|
17
17
|
export declare function getMcpAppDisplay(value: unknown): McpAppDisplay | undefined;
|
|
18
18
|
export declare function resolveMcpAppSandboxUrl(daemonBaseUrl: string, hostUrl: string, dataMode?: boolean): string | undefined;
|
|
19
19
|
export declare function applySandboxCspQuery(sandboxUrl: string, cspJson: string): string;
|
|
20
|
+
/** The saved title and summary of a Generated UI card, as readable text. */
|
|
21
|
+
export declare function GeneratedUiSummary({ display }: {
|
|
22
|
+
display: McpAppDisplay;
|
|
23
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
20
24
|
export declare function GeneratedUiFallback({ display }: {
|
|
21
25
|
display: McpAppDisplay;
|
|
22
26
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -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 {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ReactElement } from 'react';
|
|
1
|
+
import { type ReactElement, type ReactNode } from 'react';
|
|
2
2
|
import type { DaemonSessionSummary } from '@qwen-code/sdk/daemon';
|
|
3
3
|
interface SessionDetailsTooltipProps {
|
|
4
4
|
session: DaemonSessionSummary;
|
|
@@ -7,6 +7,7 @@ interface SessionDetailsTooltipProps {
|
|
|
7
7
|
completedUnread: boolean;
|
|
8
8
|
statusLabel?: string;
|
|
9
9
|
workspaceLabel?: string;
|
|
10
|
+
details?: ReactNode;
|
|
10
11
|
openOnClick?: boolean;
|
|
11
12
|
ownerToken?: string;
|
|
12
13
|
open?: boolean;
|
|
@@ -14,5 +15,5 @@ interface SessionDetailsTooltipProps {
|
|
|
14
15
|
side?: 'right' | 'bottom';
|
|
15
16
|
children: ReactElement;
|
|
16
17
|
}
|
|
17
|
-
export declare function SessionDetailsTooltip({ session, label, time, completedUnread, statusLabel, workspaceLabel, openOnClick, ownerToken, open: controlledOpen, onOpenChange, side, children, }: SessionDetailsTooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function SessionDetailsTooltip({ session, label, time, completedUnread, statusLabel, workspaceLabel, details, openOnClick, ownerToken, open: controlledOpen, onOpenChange, side, children, }: SessionDetailsTooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
18
19
|
export {};
|
|
@@ -19,7 +19,7 @@ export interface WebShellSidebarLockedWorkspace {
|
|
|
19
19
|
}
|
|
20
20
|
export type WebShellSidebarPrimaryNavItem = 'newTask' | 'agents' | 'plugins' | 'channels' | 'live' | 'scheduledTasks' | 'prWatches' | 'workflows' | 'goals' | 'managed';
|
|
21
21
|
export interface WebShellSidebarPrimaryNavOptions {
|
|
22
|
-
/** Built-in primary nav entries to show. Embedded hosts default to New
|
|
22
|
+
/** Built-in primary nav entries to show. Embedded hosts default to New session only. */
|
|
23
23
|
items?: readonly WebShellSidebarPrimaryNavItem[];
|
|
24
24
|
/** Additional custom content rendered after the built-in nav buttons. */
|
|
25
25
|
render?: () => ReactNode;
|
|
@@ -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
|
};
|
|
@@ -156,7 +158,7 @@ interface WebShellSidebarProps {
|
|
|
156
158
|
showSessionSourceSwitch?: boolean;
|
|
157
159
|
/** Show Live conversations and, in rail layout, the Live entry. Defaults to false. */
|
|
158
160
|
showLive?: boolean;
|
|
159
|
-
/** Whether to hide the "
|
|
161
|
+
/** Whether to hide the "Workspaces" header row (with search and add workspace). Defaults to false (shown). */
|
|
160
162
|
hideProjectHeader?: boolean;
|
|
161
163
|
/** Customize which action buttons appear on session rows. */
|
|
162
164
|
sessionActions?: WebShellSidebarSessionActionsOptions;
|
|
@@ -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;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type * as React from 'react';
|
|
2
2
|
import { type VariantProps } from 'class-variance-authority';
|
|
3
3
|
declare const alertVariants: (props?: ({
|
|
4
|
-
variant?: "default" | "
|
|
4
|
+
variant?: "default" | "destructive" | "success" | null | undefined;
|
|
5
5
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
6
|
declare function Alert({ className, variant, ...props }: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
declare function AlertTitle({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type * as React from 'react';
|
|
2
2
|
import { type VariantProps } from 'class-variance-authority';
|
|
3
3
|
declare const badgeVariants: (props?: ({
|
|
4
|
-
variant?: "default" | "
|
|
4
|
+
variant?: "default" | "destructive" | "link" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
5
5
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
6
|
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<'span'> & VariantProps<typeof badgeVariants> & {
|
|
7
7
|
asChild?: boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type VariantProps } from 'class-variance-authority';
|
|
3
3
|
declare const buttonVariants: (props?: ({
|
|
4
|
-
variant?: "default" | "
|
|
5
|
-
size?: "default" | "
|
|
4
|
+
variant?: "default" | "destructive" | "link" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
5
|
+
size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
7
|
type ButtonProps = React.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {
|
|
8
8
|
asChild?: boolean;
|
|
@@ -17,4 +17,4 @@ export type AgentStreamState = 'open' | 'closed';
|
|
|
17
17
|
* connection: browsers allow only a handful per origin, and the sidebar plus
|
|
18
18
|
* an open conversation would otherwise hold several for the same workspace.
|
|
19
19
|
*/
|
|
20
|
-
export declare function subscribeAgentStream<T = unknown>(url: string, token: string | undefined, onEvent: (event: T) => void, onState: (state: AgentStreamState) => void): () => void;
|
|
20
|
+
export declare function subscribeAgentStream<T = unknown>(url: string, token: string | undefined, onEvent: (event: T) => void, onState: (state: AgentStreamState) => void, request: (signal: AbortSignal) => Promise<Response>, onDisconnect: () => void): () => void;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2026 Qwen Team
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import type { DaemonClient } from '@qwen-code/sdk/daemon';
|
|
6
7
|
import type { SessionAgentEventFrame, SessionAgentRunFrame, SessionAgentRunStatus } from '@qwen-code/sdk/daemon';
|
|
7
8
|
import { type AgentStreamState } from './agent-events';
|
|
8
9
|
/** 202 body of `POST sessions/:sessionId/mentions`. */
|
|
@@ -36,4 +37,4 @@ export interface SessionAgentsApi {
|
|
|
36
37
|
respondToPermission(sessionId: string, runId: string, requestId: string, optionId: string): Promise<unknown>;
|
|
37
38
|
subscribe(sessionId: string, onEvent: (event: SessionAgentEventFrame) => void, onState: (state: AgentStreamState) => void): () => void;
|
|
38
39
|
}
|
|
39
|
-
export declare function createSessionAgentsHttpApi(baseUrl: string, token: string | undefined, workspaceCwd: string): SessionAgentsApi;
|
|
40
|
+
export declare function createSessionAgentsHttpApi(baseUrl: string, token: string | undefined, workspaceCwd: string, client?: DaemonClient): SessionAgentsApi;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2026 Qwen Team
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import type { DaemonClient } from '@qwen-code/sdk/daemon';
|
|
6
7
|
import type { AgentConfigPatch, NewWorkspaceAgent, WorkspaceAgentRuntimeView, WorkspaceAgentSummaryView } from './ThreadsPage';
|
|
7
8
|
import type { ConnectExistingInput, JoinCoordinatorInput, JoinToken } from './add-runtime-dialog';
|
|
8
9
|
import type { AgentShare, AgentShareSummary } from './share-agent-dialog';
|
|
@@ -49,4 +50,4 @@ export interface ThreadsApi {
|
|
|
49
50
|
/** Retires the squad (it keeps its name and history). */
|
|
50
51
|
retireSquad?(id: string): Promise<unknown>;
|
|
51
52
|
}
|
|
52
|
-
export declare function createThreadsHttpApi(baseUrl: string, token: string | undefined, workspaceCwd: string): ThreadsApi;
|
|
53
|
+
export declare function createThreadsHttpApi(baseUrl: string, token: string | undefined, workspaceCwd: string, client?: DaemonClient): ThreadsApi;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DaemonClient } from '@qwen-code/sdk/daemon';
|
|
1
2
|
import { type ComponentProps } from 'react';
|
|
2
3
|
import type { ChatEditor } from '../ChatEditor';
|
|
3
4
|
import type { WebShellAtProvider } from '../../customization';
|
|
@@ -57,11 +58,12 @@ export interface PendingAgentMention {
|
|
|
57
58
|
export declare function recordedAgentMentionTexts(blocks: readonly DaemonTranscriptBlock[]): string[];
|
|
58
59
|
/** True once the record of `mention` is among the recorded mention texts. */
|
|
59
60
|
export declare function isPendingMentionRecorded(mention: PendingAgentMention, recordedTexts: readonly string[]): boolean;
|
|
60
|
-
export declare function useAgentChatEntry({ enabled, cwd, baseUrl, token, sessionApi, sessionApiFor, ensureSession, onSubmit, onError, onCreateAgent, sessionId, recordedMentionTexts, t, }: {
|
|
61
|
+
export declare function useAgentChatEntry({ enabled, cwd, baseUrl, token, client, sessionApi, sessionApiFor, ensureSession, onSubmit, onError, onCreateAgent, sessionId, recordedMentionTexts, t, }: {
|
|
61
62
|
enabled: boolean;
|
|
62
63
|
cwd?: string;
|
|
63
64
|
baseUrl: string;
|
|
64
65
|
token?: string;
|
|
66
|
+
client?: DaemonClient;
|
|
65
67
|
/** The session routes of the same workspace (`cwd`). */
|
|
66
68
|
sessionApi?: SessionAgentsApi;
|
|
67
69
|
/**
|
|
@@ -10,6 +10,10 @@ import type { ACPToolCall } from './adapters/types';
|
|
|
10
10
|
import type { WelcomeHeaderProps } from './components/WelcomeHeader';
|
|
11
11
|
import type { WebShellTheme } from './themeContext';
|
|
12
12
|
export type MarkdownContentSource = 'assistant' | 'thinking';
|
|
13
|
+
/** Select an existing directory on the connected daemon, or cancel with undefined. */
|
|
14
|
+
export type WebShellWorkspaceDirectoryPicker = (opts?: {
|
|
15
|
+
signal?: AbortSignal;
|
|
16
|
+
}) => Promise<string | undefined>;
|
|
13
17
|
export interface MarkdownRenderContext {
|
|
14
18
|
source: MarkdownContentSource;
|
|
15
19
|
/**
|
|
@@ -526,6 +530,7 @@ export interface WebShellCustomization {
|
|
|
526
530
|
parseUserMessageContent?: UserMessageContentParser;
|
|
527
531
|
renderUserMessageContent?: UserMessageContentRenderer;
|
|
528
532
|
composerTagIcons?: WebShellComposerTagIconMap;
|
|
533
|
+
composerVariant?: 'default' | 'simple';
|
|
529
534
|
/**
|
|
530
535
|
* Built-in / host @ mention providers. Split-view panes share this context
|
|
531
536
|
* so they match the main composer without ChatPane prop drilling.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DaemonAvailability, DaemonAvailabilityState } from './availability.js';
|
|
2
|
+
export declare const DaemonAvailabilityContext: import("react").Context<DaemonAvailability | undefined>;
|
|
3
|
+
export declare function useDaemonAvailabilityController(): DaemonAvailability | undefined;
|
|
4
|
+
export declare function useDaemonAvailability(): DaemonAvailabilityState;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { DaemonClient } from '@qwen-code/sdk/daemon';
|
|
7
|
+
import type { DaemonCapabilities, DaemonClientOptions, DaemonTransport } from '@qwen-code/sdk/daemon';
|
|
8
|
+
export type DaemonAvailabilityState = 'available' | 'unavailable' | 'auth-required';
|
|
9
|
+
export declare class DaemonUnavailableError extends Error {
|
|
10
|
+
constructor();
|
|
11
|
+
}
|
|
12
|
+
export declare function isDaemonUnavailableError(error: unknown): boolean;
|
|
13
|
+
export declare function findDaemonAvailability(baseUrl: string, token?: string, client?: DaemonClient): DaemonAvailability | undefined;
|
|
14
|
+
export declare function registerDaemonAvailability(baseUrl: string, token: string | undefined, availability: DaemonAvailability): () => void;
|
|
15
|
+
/** One recovery loop for all requests owned by an active daemon connection. */
|
|
16
|
+
export declare class DaemonAvailability {
|
|
17
|
+
private baseUrl;
|
|
18
|
+
private token?;
|
|
19
|
+
private nativeFetch;
|
|
20
|
+
private state;
|
|
21
|
+
private listeners;
|
|
22
|
+
private timer?;
|
|
23
|
+
private probe?;
|
|
24
|
+
private controller?;
|
|
25
|
+
private attempt;
|
|
26
|
+
private generation;
|
|
27
|
+
private disposed;
|
|
28
|
+
recoveredCapabilities?: DaemonCapabilities;
|
|
29
|
+
constructor(baseUrl: string, token?: string | undefined, nativeFetch?: typeof globalThis.fetch);
|
|
30
|
+
getSnapshot: () => DaemonAvailabilityState;
|
|
31
|
+
subscribe: (listener: () => void) => (() => void);
|
|
32
|
+
private publish;
|
|
33
|
+
assertAvailable(): void;
|
|
34
|
+
waitUntilAvailable(signal?: AbortSignal): Promise<void>;
|
|
35
|
+
getGeneration(): number;
|
|
36
|
+
reportFailure(error: unknown, signal?: AbortSignal, generation?: number, source?: 'fetch' | 'consumer'): void;
|
|
37
|
+
wrapFetch(fetch: typeof globalThis.fetch): typeof globalThis.fetch;
|
|
38
|
+
wrapTransport(transport: DaemonTransport): DaemonTransport;
|
|
39
|
+
check: (immediate?: boolean) => Promise<void>;
|
|
40
|
+
private runProbe;
|
|
41
|
+
dispose(): void;
|
|
42
|
+
}
|
|
43
|
+
export declare function createDaemonClient(options: DaemonClientOptions, availability?: DaemonAvailability | undefined): DaemonClient;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { DaemonAvailability } from './availability.js';
|
|
7
|
+
export declare function offlineDaemon(baseUrl?: string, features?: string[]): {
|
|
8
|
+
server: {
|
|
9
|
+
healthy: boolean;
|
|
10
|
+
};
|
|
11
|
+
availability: DaemonAvailability;
|
|
12
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { DaemonClient } from '@qwen-code/sdk/daemon';
|
|
7
|
+
/** Native REST bridge, including hosts on an older supported peer SDK. */
|
|
8
|
+
export declare function createDaemonRestRequest(baseUrl: string, token?: string, client?: DaemonClient, bypassAvailability?: boolean): (path: string, init?: RequestInit) => Promise<Response>;
|
|
@@ -18,7 +18,7 @@ export declare const DESKTOP_RELAY_URL = "http://127.0.0.1:47821";
|
|
|
18
18
|
* `packages/node-repl/package.json`, and `.github/workflows/cd-cua-driver.yml`
|
|
19
19
|
* must publish that version before the setup command can be used.
|
|
20
20
|
*/
|
|
21
|
-
export declare const DESKTOP_RELAY_INSTALL_COMMAND = "npx -y @qwen-code/node-repl-mcp@0.
|
|
21
|
+
export declare const DESKTOP_RELAY_INSTALL_COMMAND = "npx -y @qwen-code/node-repl-mcp@0.27.0 desktop-relay install";
|
|
22
22
|
export type DesktopRelayRemotePhase = 'connecting' | 'registering' | 'connected' | 'stopped' | 'failed';
|
|
23
23
|
export interface DesktopRelayActive {
|
|
24
24
|
sessionId: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type McpAppMessageRequest, type McpAppMessages } from '../mcpAppHostContext';
|
|
2
2
|
import type { DaemonSessionOwnerSnapshot } from '../daemon/session/types';
|
|
3
3
|
export interface McpAppPromptSubmission {
|
|
4
4
|
signal: AbortSignal;
|
|
@@ -19,4 +19,20 @@ export declare function useMcpAppMessages(host: MessageHost): {
|
|
|
19
19
|
context: McpAppMessages | undefined;
|
|
20
20
|
review: import("react/jsx-runtime").JSX.Element | null;
|
|
21
21
|
};
|
|
22
|
+
interface GeneratedUiParameters {
|
|
23
|
+
title: string;
|
|
24
|
+
inputs: Array<{
|
|
25
|
+
id: string;
|
|
26
|
+
value: string;
|
|
27
|
+
checked: boolean;
|
|
28
|
+
}>;
|
|
29
|
+
rejectedEvents: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Reads the parameter message the built-in Generated UI App sends, so the
|
|
33
|
+
* review can show the values first. Anything else keeps the generic layout:
|
|
34
|
+
* the table folds the message text away, so only the bundled server counts,
|
|
35
|
+
* not any App that claims its resource URI.
|
|
36
|
+
*/
|
|
37
|
+
export declare function readGeneratedUiParameters(review: Pick<McpAppMessageRequest, 'requiredFeature' | 'text'>): GeneratedUiParameters | undefined;
|
|
22
38
|
export {};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -73,7 +73,7 @@ export type { WebShellTheme } from './themeContext';
|
|
|
73
73
|
export type { WebShellBrand, WebShellResolvedBrand } from './brandContext';
|
|
74
74
|
export type { CommandDisplayCategory, CommandDisplayCategoryOrder, } from './utils/commandDisplay';
|
|
75
75
|
export type { ComposerToolbarAction } from './components/ChatEditor';
|
|
76
|
-
export type { CodeBlockRenderer, MarkdownContentSource, MarkdownTableMode, MarkdownRenderContext, ToolHeaderExtraRenderer, ToolHeaderExtraRenderInfo, ToolHeaderKind, ComposerTagClickHandler, ComposerTagRenderer, AssistantTurnFooterRenderer, UserMessageContentRenderer, UserMessageContentRenderInfo, UserMessageContentParser, ComposerHeaderRenderer, ComposerFooterRenderer, ComposerToolbarStartRenderer, ComposerToolbarRightRenderer, WebShellAtItemRenderInfo, WebShellAtItemRenderer, WebShellComposerApi, WebShellBuiltinComposerTagKind, WebShellBuiltinAtProviderId, WebShellBuiltinAtProvidersConfig, WebShellComposerInput, WebShellComposerTag, WebShellComposerTagIconMap, WebShellComposerTagKind, WebShellComposerTagOptions, WebShellComposerTagPlacement, WebShellComposerToolbarRenderInfo, WebShellComposerToolbarStartRenderInfo, WebShellComposerToolbarRightRenderInfo, WebShellComposerTextOptions, WelcomeFooterRenderer, WelcomeHeaderRenderer, ChatHeaderRenderer, ChatHeaderRenderInfo, WebShellChatHeaderItem, WebShellChatHeaderOptions, WebShellRightPanelItem, WebShellRightPanelOptions, WebShellEnvironmentPanelItem, WebShellEnvironmentPanelOptions, WebShellFooterRenderInfo, FooterRenderer, LoadingPhrasesResolver, WebShellAtProviderTab, WebShellAtItem, WebShellAtProvider, WebShellBottomStatusItem, WebShellCodeBlockRenderInfo, WebShellMarkdownChartCustomization, WebShellMarkdownCustomization, WebShellFootnote, WebShellSource, WebShellSourceReference, WebShellSourceIconResolver, WebShellFootnoteIconResolver, WebShellFootnotePreviewInfo, WebShellFootnotePreviewHandle, WebShellFootnotePreviewMount, WebShellAssistantMessageInfo, WebShellAssistantTurnOutcome, WebShellAssistantTurnSettledEvent, WebShellAssistantTurnFooterRenderInfo, ArtifactImageRenderer, WebShellArtifactCustomization, WebShellIconSource, WebShellTaskInfo, WebShellUserMessagePart, WebShellAgentTask, WebShellShellTask, WebShellMonitorTask, WebShellWorkflowTask, WebShellPreparedSubmit, WebShellSubmitSnapshot, WebShellSessionArtifactsChange, WebShellSessionArtifactsChangeReason, WebShellModelInfo, WebShellSkillInfo, WebShellAssistantFeedbackInfo, WebShellAssistantFeedbackOptions, WebShellAssistantFeedbackRating, WebShellAssistantFeedbackUserMessage, AssistantFeedbackHandler, } from './customization';
|
|
76
|
+
export type { CodeBlockRenderer, MarkdownContentSource, MarkdownTableMode, MarkdownRenderContext, ToolHeaderExtraRenderer, ToolHeaderExtraRenderInfo, ToolHeaderKind, ComposerTagClickHandler, ComposerTagRenderer, AssistantTurnFooterRenderer, UserMessageContentRenderer, UserMessageContentRenderInfo, UserMessageContentParser, ComposerHeaderRenderer, ComposerFooterRenderer, ComposerToolbarStartRenderer, ComposerToolbarRightRenderer, WebShellAtItemRenderInfo, WebShellAtItemRenderer, WebShellComposerApi, WebShellBuiltinComposerTagKind, WebShellBuiltinAtProviderId, WebShellBuiltinAtProvidersConfig, WebShellComposerInput, WebShellComposerTag, WebShellComposerTagIconMap, WebShellComposerTagKind, WebShellComposerTagOptions, WebShellComposerTagPlacement, WebShellComposerToolbarRenderInfo, WebShellComposerToolbarStartRenderInfo, WebShellComposerToolbarRightRenderInfo, WebShellComposerTextOptions, WelcomeFooterRenderer, WelcomeHeaderRenderer, ChatHeaderRenderer, ChatHeaderRenderInfo, WebShellChatHeaderItem, WebShellChatHeaderOptions, WebShellRightPanelItem, WebShellRightPanelOptions, WebShellEnvironmentPanelItem, WebShellEnvironmentPanelOptions, WebShellFooterRenderInfo, FooterRenderer, LoadingPhrasesResolver, WebShellAtProviderTab, WebShellAtItem, WebShellAtProvider, WebShellWorkspaceDirectoryPicker, WebShellBottomStatusItem, WebShellCodeBlockRenderInfo, WebShellMarkdownChartCustomization, WebShellMarkdownCustomization, WebShellFootnote, WebShellSource, WebShellSourceReference, WebShellSourceIconResolver, WebShellFootnoteIconResolver, WebShellFootnotePreviewInfo, WebShellFootnotePreviewHandle, WebShellFootnotePreviewMount, WebShellAssistantMessageInfo, WebShellAssistantTurnOutcome, WebShellAssistantTurnSettledEvent, WebShellAssistantTurnFooterRenderInfo, ArtifactImageRenderer, WebShellArtifactCustomization, WebShellIconSource, WebShellTaskInfo, WebShellUserMessagePart, WebShellAgentTask, WebShellShellTask, WebShellMonitorTask, WebShellWorkflowTask, WebShellPreparedSubmit, WebShellSubmitSnapshot, WebShellSessionArtifactsChange, WebShellSessionArtifactsChangeReason, WebShellModelInfo, WebShellSkillInfo, WebShellAssistantFeedbackInfo, WebShellAssistantFeedbackOptions, WebShellAssistantFeedbackRating, WebShellAssistantFeedbackUserMessage, AssistantFeedbackHandler, } from './customization';
|
|
77
77
|
export type { WelcomeHeaderProps } from './components/WelcomeHeader';
|
|
78
78
|
export type { PaneHeaderActionsInfo, PaneHeaderActionsRenderer, } from './components/ChatPane';
|
|
79
79
|
export type { ArtifactFilter, TurnOutputKind, TurnOutputOpenRequest, } from './components/artifacts/TurnOutputs';
|
|
@@ -16,4 +16,4 @@ export interface UseLiveVoiceSetupResult {
|
|
|
16
16
|
retryInstall: () => Promise<void>;
|
|
17
17
|
launchHost: () => Promise<void>;
|
|
18
18
|
}
|
|
19
|
-
export declare function useLiveVoiceSetup(supported: boolean, active?: boolean): UseLiveVoiceSetupResult;
|
|
19
|
+
export declare function useLiveVoiceSetup(supported: boolean, active?: boolean, translate?: (key: string) => string): UseLiveVoiceSetupResult;
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* Framework-free on purpose (no React, no DOM globals beyond the injected
|
|
20
20
|
* socket and lock manager) so the whole state machine runs in a node test.
|
|
21
21
|
*/
|
|
22
|
+
import { type DaemonAvailability } from '../daemon/availability.js';
|
|
22
23
|
import { type JsonRpcRequest, type JsonRpcResponse } from './mcp-server.js';
|
|
23
24
|
/**
|
|
24
25
|
* The RPC surface the bridge drives. {@link LocalFilesMcpServer} satisfies it;
|
|
@@ -79,6 +80,7 @@ export interface LocalFilesBridgeOptions {
|
|
|
79
80
|
server: LocalFilesRpcServer;
|
|
80
81
|
openSocket: OpenSocket;
|
|
81
82
|
token?: string;
|
|
83
|
+
availability?: DaemonAvailability;
|
|
82
84
|
serverName?: string;
|
|
83
85
|
clientInfo?: {
|
|
84
86
|
name: string;
|
|
@@ -152,6 +154,9 @@ export declare class LocalFilesBridge {
|
|
|
152
154
|
private readonly serverName;
|
|
153
155
|
private readonly delay;
|
|
154
156
|
private socket;
|
|
157
|
+
private availability;
|
|
158
|
+
private resumeController;
|
|
159
|
+
private unsubscribeAvailability;
|
|
155
160
|
private state;
|
|
156
161
|
private stopped;
|
|
157
162
|
private running;
|
|
@@ -3,5 +3,7 @@
|
|
|
3
3
|
* Copyright 2026 Qwen Team
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
export declare const
|
|
6
|
+
type Message = string | ((vars?: Record<string, string | number>) => string);
|
|
7
|
+
export declare const MCP_APP_MESSAGES_EN: Record<string, Message>;
|
|
8
|
+
export declare const MCP_APP_MESSAGES_ZH: Record<string, Message>;
|
|
9
|
+
export {};
|
|
@@ -5,14 +5,27 @@ export declare const McpAppSessionContext: import("react").Context<string | unde
|
|
|
5
5
|
export interface McpAppMessageRequest {
|
|
6
6
|
serverName: string;
|
|
7
7
|
resourceUri: string;
|
|
8
|
+
/** Set only for the bundled Generated UI server, as core marks it. */
|
|
9
|
+
requiredFeature?: 'generated-ui';
|
|
8
10
|
text: string;
|
|
9
11
|
signal: AbortSignal;
|
|
10
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Result metadata naming a review that ended without the session accepting
|
|
15
|
+
* the message: `cancelled` by the user or the host, `expired` while awaiting
|
|
16
|
+
* review, or `failed` when it was refused before or at admission.
|
|
17
|
+
*/
|
|
18
|
+
export declare const MCP_APP_MESSAGE_REVIEW_META = "qwen-code/message-review";
|
|
19
|
+
export interface McpAppMessageResult {
|
|
20
|
+
isError?: boolean;
|
|
21
|
+
_meta?: {
|
|
22
|
+
[MCP_APP_MESSAGE_REVIEW_META]?: 'cancelled' | 'expired' | 'failed';
|
|
23
|
+
};
|
|
24
|
+
[key: string]: unknown;
|
|
25
|
+
}
|
|
11
26
|
export interface McpAppMessages {
|
|
12
27
|
sessionId: string;
|
|
13
|
-
requestMessage(request: McpAppMessageRequest): Promise<
|
|
14
|
-
isError?: boolean;
|
|
15
|
-
}>;
|
|
28
|
+
requestMessage(request: McpAppMessageRequest): Promise<McpAppMessageResult>;
|
|
16
29
|
}
|
|
17
30
|
export declare const McpAppMessagesContext: import("react").Context<McpAppMessages | undefined>;
|
|
18
31
|
export declare const McpAppToolsContext: import("react").Context<{
|
|
@@ -49,6 +62,15 @@ export interface McpAppGeneratedUiOwner {
|
|
|
49
62
|
}
|
|
50
63
|
export declare const McpAppGeneratedUiOwnerContext: import("react").Context<McpAppGeneratedUiOwner | undefined>;
|
|
51
64
|
export declare const McpAppVisibilityContext: import("react").Context<boolean>;
|
|
65
|
+
/**
|
|
66
|
+
* Whether core marked this App as the bundled Generated UI server's. Unlike
|
|
67
|
+
* {@link isBuiltInGeneratedUi}, the resource URI alone does not count: any
|
|
68
|
+
* server can claim it, so presentation that hides the App's origin keys on
|
|
69
|
+
* this instead.
|
|
70
|
+
*/
|
|
71
|
+
export declare function isBundledGeneratedUi(display?: {
|
|
72
|
+
requiredFeature?: 'generated-ui';
|
|
73
|
+
}): boolean;
|
|
52
74
|
export declare function isBuiltInGeneratedUi(display?: {
|
|
53
75
|
resourceUri: string;
|
|
54
76
|
requiredFeature?: 'generated-ui';
|
|
@@ -58,7 +58,9 @@ export declare class SessionCatalogStore {
|
|
|
58
58
|
private activeBackgroundRequests;
|
|
59
59
|
private queueSequence;
|
|
60
60
|
private visibilityListening;
|
|
61
|
+
private paused;
|
|
61
62
|
constructor(client: DaemonClient);
|
|
63
|
+
setPaused(paused: boolean): void;
|
|
62
64
|
getSnapshot(query: SessionCatalogQuery): SessionCatalogSnapshot;
|
|
63
65
|
/**
|
|
64
66
|
* Reads a display name the catalog already holds for a session, scheduling
|
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 {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DAEMON_APPROVAL_MODES } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
2
2
|
export type WebShellApprovalMode = Exclude<(typeof DAEMON_APPROVAL_MODES)[number], 'plan'>;
|
|
3
|
-
export declare const EXECUTION_APPROVAL_MODES: ("default" | "auto
|
|
3
|
+
export declare const EXECUTION_APPROVAL_MODES: ("default" | "auto" | "auto-edit" | "yolo")[];
|
|
4
4
|
export declare function resolveApprovalModes(value: unknown): readonly WebShellApprovalMode[];
|
|
5
5
|
export declare function nextApprovalMode(available: readonly WebShellApprovalMode[], current: string): WebShellApprovalMode | undefined;
|
|
6
6
|
export declare function parsePlanCommand(args: string, enabled: boolean): {
|