@qwen-code/web-shell 0.25.4-preview.1 → 0.26.0-nightly.20261023.5a0be33432

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.
Files changed (105) hide show
  1. package/README.md +88 -34
  2. package/dist/{PierreFilePreview-DDGm1BwT.js → PierreFilePreview-DoUYeaAC.js} +1 -1
  3. package/dist/{SpreadsheetPreview-Bo3dF5jL.js → SpreadsheetPreview-Ozgw7gyf.js} +2 -2
  4. package/dist/{WorkspaceFileBrowser-K5x5fG6c.js → WorkspaceFileBrowser-BKeFy6PK.js} +1008 -1041
  5. package/dist/{agents-route-hV5r9VDG.js → agents-route-D8D6jBvQ.js} +2 -2
  6. package/dist/daemon-react-sdk.js +1 -1
  7. package/dist/{index-CU9u4ISL.js → index-BInj1IN7.js} +61692 -56488
  8. package/dist/index.js +3 -3
  9. package/dist/sw.js +1 -1
  10. package/dist/transcript.js +7933 -7990
  11. package/dist/types/App.d.ts +7 -1
  12. package/dist/types/ManagedStandaloneApp.d.ts +9 -0
  13. package/dist/types/components/ChatEditor.d.ts +8 -2
  14. package/dist/types/components/ChatPane.d.ts +4 -1
  15. package/dist/types/components/ContextCompressionFeedback.d.ts +2 -2
  16. package/dist/types/components/ContextUsagePopover.d.ts +2 -2
  17. package/dist/types/components/ModelRefreshControl.d.ts +3 -0
  18. package/dist/types/components/SessionPrBadge.d.ts +7 -2
  19. package/dist/types/components/SplitView.d.ts +4 -1
  20. package/dist/types/components/UnavailableModelTooltip.d.ts +12 -0
  21. package/dist/types/components/WorkspaceSelector.d.ts +3 -1
  22. package/dist/types/components/artifacts/ArtifactPanel.d.ts +4 -1
  23. package/dist/types/components/artifacts/SideTaskPanel.d.ts +4 -1
  24. package/dist/types/components/artifacts/TrajectoryDetail.d.ts +34 -0
  25. package/dist/types/components/artifacts/TrajectoryExecutions.d.ts +6 -8
  26. package/dist/types/components/artifacts/TrajectoryOverview.d.ts +2 -0
  27. package/dist/types/components/artifacts/TrajectorySummaryBar.d.ts +35 -0
  28. package/dist/types/components/artifacts/TrajectoryToolbar.d.ts +24 -0
  29. package/dist/types/components/artifacts/TurnCallsPanel.d.ts +5 -0
  30. package/dist/types/components/artifacts/tool-call-content.d.ts +34 -0
  31. package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +5 -1
  32. package/dist/types/components/dialogs/ScheduledTasksDialog.d.ts +5 -1
  33. package/dist/types/components/dialogs/SessionRenameDialog.d.ts +10 -0
  34. package/dist/types/components/dialogs/WorkspaceAddStatusDialog.d.ts +3 -1
  35. package/dist/types/components/dialogs/scheduledTasksSchedule.d.ts +1 -0
  36. package/dist/types/components/managed/ManagedArchivedSessions.d.ts +17 -0
  37. package/dist/types/components/managed/ManagedChildSessionView.d.ts +8 -0
  38. package/dist/types/components/managed/ManagedMcpManagerPage.d.ts +8 -0
  39. package/dist/types/components/managed/ManagedRecoveryPanel.d.ts +9 -0
  40. package/dist/types/components/managed/ManagedSessionActions.d.ts +19 -0
  41. package/dist/types/components/managed/ManagedSessionNavigationRow.d.ts +9 -0
  42. package/dist/types/components/managed/ManagedSessionsPage.d.ts +23 -4
  43. package/dist/types/components/managed/ManagedTaskPanel.d.ts +3 -1
  44. package/dist/types/components/managed/ManagedWorkspaceNavigation.d.ts +16 -0
  45. package/dist/types/components/managed/WorkspaceBindingCreator.d.ts +17 -2
  46. package/dist/types/components/managed/generated/managed-agent-api.d.ts +827 -78
  47. package/dist/types/components/managed/java-managed-agent-client.d.ts +73 -3
  48. package/dist/types/components/managed/java-managed-agent-event-projector.d.ts +1 -2
  49. package/dist/types/components/managed/java-managed-agent-provider.d.ts +2 -6
  50. package/dist/types/components/managed/managed-agent-provider.d.ts +95 -13
  51. package/dist/types/components/managed/managed-creation-skills.d.ts +7 -0
  52. package/dist/types/components/managed/managed-lifecycle-messages.d.ts +80 -0
  53. package/dist/types/components/managed/managed-lifecycle-messages.transcript-stub.d.ts +2 -0
  54. package/dist/types/components/managed/managed-mcp-command-storage.d.ts +16 -0
  55. package/dist/types/components/managed/managed-mcp-management-types.d.ts +8 -0
  56. package/dist/types/components/managed/managed-mcp-messages.d.ts +4 -0
  57. package/dist/types/components/managed/managed-mcp-messages.transcript-stub.d.ts +2 -0
  58. package/dist/types/components/managed/managed-recovery-handoff.d.ts +17 -0
  59. package/dist/types/components/managed/managed-recovery-messages.d.ts +31 -0
  60. package/dist/types/components/managed/managed-session-export.d.ts +21 -0
  61. package/dist/types/components/managed/use-managed-actions.d.ts +2 -1
  62. package/dist/types/components/managed/use-managed-context-compression.d.ts +23 -0
  63. package/dist/types/components/managed/use-managed-mcp-management.d.ts +25 -0
  64. package/dist/types/components/managed/use-managed-mcp.d.ts +3 -0
  65. package/dist/types/components/managed/use-managed-recovery.d.ts +14 -0
  66. package/dist/types/components/managed/use-managed-session-lifecycle.d.ts +26 -0
  67. package/dist/types/components/managed/use-managed-session-rename.d.ts +13 -0
  68. package/dist/types/components/managed/use-managed-session.d.ts +1 -0
  69. package/dist/types/components/managed/use-managed-skills.d.ts +9 -2
  70. package/dist/types/components/managed/use-managed-tasks.d.ts +3 -0
  71. package/dist/types/components/managed/use-managed-turn-cancel.d.ts +9 -0
  72. package/dist/types/components/mcp/McpDetails.d.ts +30 -0
  73. package/dist/types/components/messages/McpApp.d.ts +4 -0
  74. package/dist/types/components/plugins/PluginManagerPage.d.ts +8 -1
  75. package/dist/types/components/sidebar/SessionDetailsTooltip.d.ts +2 -1
  76. package/dist/types/components/sidebar/WebShellSidebar.d.ts +9 -1
  77. package/dist/types/components/sidebar/WorkspaceMenu.d.ts +2 -0
  78. package/dist/types/components/sidebar/WorkspaceSection.d.ts +2 -1
  79. package/dist/types/components/sidebar/workspaceOrder.d.ts +12 -0
  80. package/dist/types/components/ui/tabs.d.ts +1 -1
  81. package/dist/types/components/workspaces/WorkspaceExecutionSelect.d.ts +6 -0
  82. package/dist/types/customization.d.ts +1 -0
  83. package/dist/types/daemon/index.d.ts +1 -1
  84. package/dist/types/daemon/workspace/index.d.ts +1 -1
  85. package/dist/types/daemon/workspace/types.d.ts +25 -0
  86. package/dist/types/daemon-react-sdk.d.ts +2 -0
  87. package/dist/types/desktop-relay/desktop-relay-client.d.ts +1 -1
  88. package/dist/types/hooks/composer-draft-attachments.d.ts +21 -0
  89. package/dist/types/hooks/composer-draft-session.d.ts +39 -0
  90. package/dist/types/hooks/useComposerCore.d.ts +1 -0
  91. package/dist/types/hooks/useContextUsageControls.d.ts +8 -3
  92. package/dist/types/index.d.ts +2 -1
  93. package/dist/types/main.d.ts +3 -1
  94. package/dist/types/mcpAppHostContext.d.ts +10 -1
  95. package/dist/types/settings.d.ts +2 -0
  96. package/dist/types/trajectory/summarizeTrajectory.d.ts +5 -0
  97. package/dist/types/trajectory/trajectory-status.d.ts +51 -0
  98. package/dist/types/trajectory/useTrajectoryWindow.d.ts +2 -0
  99. package/dist/types/unavailableModels.d.ts +24 -0
  100. package/dist/types/utils/composerModels.d.ts +18 -0
  101. package/dist/types/utils/indexeddb.d.ts +17 -0
  102. package/dist/{useDaemonMidTurnInjected-CfhBFIym.js → useDaemonMidTurnInjected-BUXyeZuZ.js} +4290 -4029
  103. package/package.json +1 -1
  104. package/dist/types/components/artifacts/TrajectoryFilters.d.ts +0 -15
  105. package/dist/types/components/artifacts/TrajectoryInspector.d.ts +0 -25
@@ -0,0 +1,23 @@
1
+ import type { ContextCompressionControls } from '../../hooks/useContextUsageControls';
2
+ import type { ManagedAgentProvider, ManagedAgentSessionSummary } from './managed-agent-provider';
3
+ interface CompressionIntent {
4
+ sessionId: string;
5
+ expectedCompactionRevision?: number;
6
+ idempotencyKey?: string;
7
+ operationId?: string;
8
+ }
9
+ export declare function useManagedContextCompression(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, summary: ManagedAgentSessionSummary | undefined, refreshSummary: (signal?: AbortSignal) => Promise<ManagedAgentSessionSummary | undefined>, canStart: () => boolean): {
10
+ supported: boolean;
11
+ blocked: boolean;
12
+ controls: ContextCompressionControls | undefined;
13
+ usageInvalidated: boolean;
14
+ isBlocked: () => boolean;
15
+ confirm: () => Promise<void>;
16
+ key: string;
17
+ pending?: CompressionIntent;
18
+ busy: boolean;
19
+ errorCode?: string;
20
+ result?: ContextCompressionControls["result"];
21
+ invalidatedRevision?: number;
22
+ };
23
+ export {};
@@ -0,0 +1,25 @@
1
+ import type { ManagedAgentProvider } from './managed-agent-provider';
2
+ import type { ManagedMcpManagementAction, ManagedMcpServerPin } from './managed-mcp-management-types';
3
+ export declare function useManagedMcpManagement(provider: ManagedAgentProvider, clientId: string, workspaceId: string | undefined, sessionId: string | undefined): {
4
+ refresh: () => Promise<void>;
5
+ submit: (action: ManagedMcpManagementAction, serverId: string, server?: ManagedMcpServerPin) => Promise<void>;
6
+ retry: () => Promise<void>;
7
+ snapshot: {
8
+ sessionId: string;
9
+ revision: number;
10
+ supported: boolean;
11
+ availableServers: import("./generated/managed-agent-api").components["schemas"]["ManagedMcpPublishedServer"][];
12
+ servers: import("./generated/managed-agent-api").components["schemas"]["ManagedMcpManagementServer"][];
13
+ operation?: import("./generated/managed-agent-api").components["schemas"]["ManagedMcpManagementOperation"];
14
+ } | undefined;
15
+ catalog: {
16
+ object: "agent.mcp_catalog";
17
+ session_id: string;
18
+ servers: import("./generated/managed-agent-api").components["schemas"]["PublicMcpServerCatalog"][];
19
+ } | undefined;
20
+ error: string | undefined;
21
+ catalogError: string | undefined;
22
+ busy: boolean;
23
+ needsRetry: boolean;
24
+ canResume: boolean;
25
+ };
@@ -0,0 +1,3 @@
1
+ import type { AtMentionWorkspaceActions } from '../../hooks/useAtMentionSources';
2
+ import type { ManagedAgentProvider } from './managed-agent-provider';
3
+ export declare function useManagedMcp(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, catalogScope?: string): AtMentionWorkspaceActions | undefined;
@@ -0,0 +1,14 @@
1
+ import type { ManagedAgentProvider, ManagedAgentSessionSummary } from './managed-agent-provider';
2
+ export declare function useManagedRecovery(provider: ManagedAgentProvider, clientId: string, summary: ManagedAgentSessionSummary | undefined, interactive: boolean, refreshSummary: () => Promise<ManagedAgentSessionSummary | undefined>): {
3
+ value: {
4
+ state: "recovering" | "awaiting_evidence" | "cleanup_pending" | "ready" | "operator_required";
5
+ reasonCode: string;
6
+ turnId?: string;
7
+ nextTurnAllowed: boolean;
8
+ actions: import("./generated/managed-agent-api").components["schemas"]["SessionRecoveryActions"];
9
+ nextRecheckAt?: number;
10
+ } | undefined;
11
+ busy: boolean;
12
+ error: string | undefined;
13
+ recheck: () => Promise<void>;
14
+ };
@@ -0,0 +1,26 @@
1
+ import type { ManagedAgentProvider, ManagedAgentSessionSummary, ManagedLifecycleAction, ManagedLifecycleKind } from './managed-agent-provider';
2
+ interface LifecycleIntent {
3
+ sessionId: string;
4
+ workspaceId?: string;
5
+ action: ManagedLifecycleAction;
6
+ kind: ManagedLifecycleKind | 'unarchive';
7
+ idempotencyKey?: string;
8
+ archiveKey?: string;
9
+ operationId?: string;
10
+ failed?: boolean;
11
+ }
12
+ export interface ManagedLifecycleState {
13
+ action: ManagedLifecycleAction;
14
+ status: string;
15
+ busy: boolean;
16
+ canConfirm?: boolean;
17
+ kind?: LifecycleIntent['kind'];
18
+ code?: string;
19
+ }
20
+ export declare function useManagedSessionLifecycle(provider: ManagedAgentProvider, clientId: string, summaries: readonly ManagedAgentSessionSummary[], onChange: (sessionId: string, action?: ManagedLifecycleAction, workspaceId?: string) => void): {
21
+ states: Record<string, ManagedLifecycleState>;
22
+ blocked: (id?: string) => boolean;
23
+ start(session: ManagedAgentSessionSummary, action: ManagedLifecycleAction): void;
24
+ confirm(id: string): void;
25
+ };
26
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { ManagedAgentProvider, ManagedAgentSessionSummary } from './managed-agent-provider';
2
+ export declare function useManagedSessionRename(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, summary: ManagedAgentSessionSummary | undefined, interactive: boolean, onRenamed: (displayName: string) => void): {
3
+ supported: boolean;
4
+ editor: {
5
+ value: string;
6
+ busy: boolean;
7
+ error?: string;
8
+ } | undefined;
9
+ open(): void;
10
+ close(): void;
11
+ setValue(value: string): void;
12
+ submit(displayName: string): Promise<void>;
13
+ };
@@ -16,6 +16,7 @@ export declare function useManagedSession(provider: ManagedAgentProvider, client
16
16
  loadOlder: () => Promise<void>;
17
17
  reload: () => void;
18
18
  refreshSummary: (signal?: AbortSignal) => Promise<ManagedAgentSessionSummary | undefined>;
19
+ applyTitle: (id: string, title: string) => void;
19
20
  sessionId?: string;
20
21
  summary?: ManagedAgentSessionSummary;
21
22
  events: ManagedAgentSessionEvent[];
@@ -1,12 +1,19 @@
1
+ import type { ManagedCreationSkillsSource } from './managed-creation-skills';
1
2
  import type { ManagedAgentProvider } from './managed-agent-provider';
2
- export declare function useManagedSkills(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined): {
3
+ export declare function useManagedSkills(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, creationSkills?: ManagedCreationSkillsSource): {
3
4
  supported: boolean;
4
5
  skills: {
5
6
  name: string;
6
7
  description: string;
7
8
  }[];
9
+ commands: {
10
+ name: string;
11
+ description: string;
12
+ source: string;
13
+ displayCategory: "skill";
14
+ }[];
8
15
  loading: boolean;
9
16
  loaded: boolean;
10
17
  error: boolean;
11
- onOpenChange: import("react").Dispatch<import("react").SetStateAction<boolean>>;
18
+ onOpenChange: (next: boolean) => void;
12
19
  };
@@ -5,6 +5,7 @@ export declare function useManagedTasks(provider: ManagedAgentProvider, clientId
5
5
  data: import("./generated/managed-agent-api").components["schemas"]["WebShellTask"][];
6
6
  hasMore: boolean;
7
7
  nextCursor?: string | null;
8
+ activeChildCount?: number;
8
9
  };
9
10
  task: {
10
11
  taskId: string;
@@ -20,6 +21,8 @@ export declare function useManagedTasks(provider: ManagedAgentProvider, clientId
20
21
  outputCursor?: string;
21
22
  artifactRefs: string[];
22
23
  actionCapabilities: import("./generated/managed-agent-api").components["schemas"]["TaskActionCapability"][];
24
+ stopRequested?: boolean;
25
+ approvalMode?: "default" | "auto-edit" | "yolo";
23
26
  } | undefined;
24
27
  selectedId: string | undefined;
25
28
  events: {
@@ -0,0 +1,9 @@
1
+ import type { ManagedAgentProvider, ManagedAgentSessionSummary } from './managed-agent-provider';
2
+ export declare function useManagedTurnCancel(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, summary: ManagedAgentSessionSummary | undefined, interactive: boolean, refreshSummary: () => Promise<ManagedAgentSessionSummary | undefined>): {
3
+ request: () => Promise<void>;
4
+ retry: () => Promise<void>;
5
+ status: "failed" | "stopping" | "unconfirmed" | undefined;
6
+ error: string | undefined;
7
+ busy: boolean;
8
+ pending: boolean;
9
+ };
@@ -0,0 +1,30 @@
1
+ import type { ReactNode } from 'react';
2
+ export declare function McpDetailField({ label, value, }: {
3
+ label: string;
4
+ value: string;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export declare function McpToolDetail({ tool, }: {
7
+ tool: {
8
+ description?: string;
9
+ schema?: unknown;
10
+ annotations?: Record<string, unknown>;
11
+ isValid?: boolean;
12
+ invalidReason?: string;
13
+ };
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ export declare function McpResourceDetail({ resource, }: {
16
+ resource: {
17
+ uri: string;
18
+ name?: string;
19
+ title?: string;
20
+ mimeType?: string;
21
+ size?: number;
22
+ description?: string;
23
+ };
24
+ }): import("react/jsx-runtime").JSX.Element;
25
+ export declare function McpServerCard({ name, description, status, onOpen, }: {
26
+ name: string;
27
+ description?: string;
28
+ status: ReactNode;
29
+ onOpen: () => void;
30
+ }): import("react/jsx-runtime").JSX.Element;
@@ -3,6 +3,7 @@ type SandboxResource = Parameters<AppBridge['sendSandboxResourceReady']>[0];
3
3
  type AppToolResult = Parameters<AppBridge['sendToolResult']>[0];
4
4
  export interface McpAppDisplay {
5
5
  type: 'mcp_app';
6
+ requiredFeature?: 'generated-ui';
6
7
  serverName: string;
7
8
  resourceUri: string;
8
9
  html: string;
@@ -15,6 +16,9 @@ export interface McpAppDisplay {
15
16
  export declare function getMcpAppDisplay(value: unknown): McpAppDisplay | undefined;
16
17
  export declare function resolveMcpAppSandboxUrl(daemonBaseUrl: string, hostUrl: string, dataMode?: boolean): string | undefined;
17
18
  export declare function applySandboxCspQuery(sandboxUrl: string, cspJson: string): string;
19
+ export declare function GeneratedUiFallback({ display }: {
20
+ display: McpAppDisplay;
21
+ }): import("react/jsx-runtime").JSX.Element;
18
22
  export declare function McpApp({ display }: {
19
23
  display: McpAppDisplay;
20
24
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,15 @@
1
1
  import { type Ref } from 'react';
2
+ import { type ManagedMcpManagerPageProps } from '../managed/ManagedMcpManagerPage';
3
+ type PluginTab = 'extensions' | 'mcp' | 'skills' | 'agents';
2
4
  interface PluginManagerPageProps {
3
5
  onClose: () => void;
4
6
  onUseSkill: (name: string) => void;
5
7
  initialFocusRef?: Ref<HTMLButtonElement>;
8
+ initialTab?: PluginTab;
9
+ skillsWorkspaceCwd?: string;
10
+ onSkillsWorkspaceChange?: (cwd: string) => void;
11
+ managedSkills?: boolean;
12
+ managedMcp?: ManagedMcpManagerPageProps;
6
13
  }
7
- export declare function PluginManagerPage({ onClose, onUseSkill, initialFocusRef, }: PluginManagerPageProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function PluginManagerPage({ onClose, onUseSkill, initialFocusRef, initialTab, skillsWorkspaceCwd, onSkillsWorkspaceChange, managedSkills, managedMcp, }: PluginManagerPageProps): import("react/jsx-runtime").JSX.Element;
8
15
  export {};
@@ -5,6 +5,7 @@ interface SessionDetailsTooltipProps {
5
5
  label: string;
6
6
  time: string;
7
7
  completedUnread: boolean;
8
+ statusLabel?: string;
8
9
  workspaceLabel?: string;
9
10
  openOnClick?: boolean;
10
11
  ownerToken?: string;
@@ -13,5 +14,5 @@ interface SessionDetailsTooltipProps {
13
14
  side?: 'right' | 'bottom';
14
15
  children: ReactElement;
15
16
  }
16
- export declare function SessionDetailsTooltip({ session, label, time, completedUnread, workspaceLabel, openOnClick, ownerToken, open: controlledOpen, onOpenChange, side, children, }: SessionDetailsTooltipProps): import("react/jsx-runtime").JSX.Element;
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;
17
18
  export {};
@@ -1,5 +1,6 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type DaemonWorkspaceCapability } from '@qwen-code/sdk/daemon';
3
+ import type { ManagedArchivedSessionsStatus } from '../managed/ManagedArchivedSessions';
3
4
  import { type WebShellTheme } from '../../themeContext';
4
5
  import { type WorkspaceManagementTarget, type WorkspaceOverviewItem } from './workspaceOverviewModel';
5
6
  export declare const SIDEBAR_RAIL_WIDTH = 56;
@@ -138,6 +139,13 @@ interface WebShellSidebarProps {
138
139
  /** Replace daemon history with navigation owned by an external session provider. */
139
140
  sessionContent?: ReactNode;
140
141
  sessionHeader?: ReactNode;
142
+ managedWorkspaces?: ReactNode;
143
+ managedArchivedSessions?: ManagedArchivedSessionsStatus & {
144
+ content: ReactNode;
145
+ };
146
+ onSearchQueryChange?: (query: string) => void;
147
+ /** Selection styling only; the attached session still owns its actions. */
148
+ currentSessionActive?: boolean;
141
149
  /** Whether to show the Tasks/Channels session-source switch. Defaults to true. */
142
150
  showSessionSourceSwitch?: boolean;
143
151
  /** Show Live conversations and, in rail layout, the Live entry. Defaults to false. */
@@ -165,4 +173,4 @@ interface WebShellSidebarProps {
165
173
  onLoadStandaloneSession?: (sessionId: string) => Promise<void> | void;
166
174
  onStandaloneNotice?: (message: string) => void;
167
175
  }
168
- export declare function WebShellSidebar({ collapsed, layout, activePage, containerWidth, onOpenHome, onCollapsedChange, onOpenSettings, onOpenAgents, onOpenPlugins, onOpenChannels, onOpenLive, onLiveVoiceSlotChange, onOpenManagedSessions, onOpenDaemonStatus, onOpenScheduledTasks, 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, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
176
+ export declare function WebShellSidebar({ collapsed, layout, activePage, containerWidth, onOpenHome, onCollapsedChange, onOpenSettings, onOpenAgents, onOpenPlugins, onOpenChannels, onOpenLive, onLiveVoiceSlotChange, onOpenManagedSessions, onOpenDaemonStatus, onOpenScheduledTasks, 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;
@@ -19,6 +19,8 @@ export interface WorkspaceMenuActions {
19
19
  openTerminal?: () => void;
20
20
  newSession?: () => void;
21
21
  newWorktreeSession?: () => void;
22
+ moveUp?: () => void;
23
+ moveDown?: () => void;
22
24
  openManagement?: (target: WorkspaceManagementTarget) => void;
23
25
  reload?: () => void;
24
26
  remove?: () => void;
@@ -10,6 +10,7 @@ export interface WorkspaceHeaderActionsContext {
10
10
  }
11
11
  interface WorkspaceSectionProps {
12
12
  workspace: DaemonWorkspaceCapability;
13
+ executionLabel?: string;
13
14
  /**
14
15
  * localStorage seed for the expansion/collapsed-group preferences,
15
16
  * defaulting to the workspace id. Multi-host renderers pass an
@@ -125,5 +126,5 @@ interface WorkspaceSectionProps {
125
126
  /** Commit entry for the same picker; the row still opens without it. */
126
127
  onOpenCommit?: (workspaceCwd: string) => void;
127
128
  }
128
- export declare function WorkspaceSection({ workspace, storageKey, remote, renderHeader, hideHeader, client, reloadToken, untrustedLabel, readOnlyLabel, trustToOpenLabel, noSessionsLabel, loadErrorLabel, organizationEnabled, sessionCatalogRequestsEnabled, sessionGroupCatalog, sessionLiveStateEnabled, sourceType, channelGroupingEnabled, ungroupedLabel, searchQuery, expanded: controlledExpanded, autoExpandKey, forceAutoExpand, onExpandedChange, renderSessions, renderSession, pendingSession, mapSession, showSessionDetails, headerActions, overviewEnabled, overviewMenuOpen, overviewItems, gitBranchWanted, sessionStats, onRenameGroup, onDeleteGroup, renameGroupLabel, deleteGroupLabel, groupActionsDisabled, excludePinned, limitSessions, isPinnedSectionMember, onOpenPathLocally, onOpenTerminalLocally, onOpenGitDiff, onOpenCommit, }: WorkspaceSectionProps): import("react/jsx-runtime").JSX.Element;
129
+ export declare function WorkspaceSection({ workspace, executionLabel, storageKey, remote, renderHeader, hideHeader, client, reloadToken, untrustedLabel, readOnlyLabel, trustToOpenLabel, noSessionsLabel, loadErrorLabel, organizationEnabled, sessionCatalogRequestsEnabled, sessionGroupCatalog, sessionLiveStateEnabled, sourceType, channelGroupingEnabled, ungroupedLabel, searchQuery, expanded: controlledExpanded, autoExpandKey, forceAutoExpand, onExpandedChange, renderSessions, renderSession, pendingSession, mapSession, showSessionDetails, headerActions, overviewEnabled, overviewMenuOpen, overviewItems, gitBranchWanted, sessionStats, onRenameGroup, onDeleteGroup, renameGroupLabel, deleteGroupLabel, groupActionsDisabled, excludePinned, limitSessions, isPinnedSectionMember, onOpenPathLocally, onOpenTerminalLocally, onOpenGitDiff, onOpenCommit, }: WorkspaceSectionProps): import("react/jsx-runtime").JSX.Element;
129
130
  export {};
@@ -0,0 +1,12 @@
1
+ export declare function readWorkspaceOrder(scope: string): string[];
2
+ export declare function writeWorkspaceOrder(scope: string, cwds: readonly string[]): void;
3
+ /**
4
+ * Applies a stored cwd order. Known entries sort by their stored rank; entries
5
+ * the order does not mention (a workspace added since it was written) keep
6
+ * their incoming relative order after them, so a new workspace appends.
7
+ */
8
+ export declare function orderWorkspaces<T extends {
9
+ cwd: string;
10
+ }>(workspaces: readonly T[], order: readonly string[]): T[];
11
+ /** Swaps `cwd` with its neighbour; `undefined` when the move is out of range. */
12
+ export declare function moveWorkspace(orderedCwds: readonly string[], cwd: string, direction: -1 | 1): string[] | undefined;
@@ -8,6 +8,6 @@ declare const tabsListVariants: (props?: ({
8
8
  declare const TabsList: import("react").ForwardRefExoticComponent<Omit<Omit<TabsPrimitive.TabsListProps & import("react").RefAttributes<HTMLDivElement>, "ref">, "asChild"> & VariantProps<(props?: ({
9
9
  variant?: "default" | "line" | null | undefined;
10
10
  } & import("class-variance-authority/types").ClassProp) | undefined) => string> & import("react").RefAttributes<HTMLDivElement>>;
11
- declare function TabsTrigger({ className, ...props }: ComponentProps<typeof TabsPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
11
+ declare const TabsTrigger: import("react").ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
12
12
  declare function TabsContent({ className, ...props }: ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
13
13
  export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
@@ -0,0 +1,6 @@
1
+ export type WorkspaceExecutionMode = 'daemon' | 'managed';
2
+ export declare function WorkspaceExecutionSelect({ value, onValueChange, disabled, }: {
3
+ value: WorkspaceExecutionMode;
4
+ onValueChange: (value: WorkspaceExecutionMode) => void;
5
+ disabled?: boolean;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -510,6 +510,7 @@ export type FooterRenderer = ComponentType<WebShellFooterRenderInfo>;
510
510
  * resolved UI language. Return phrases to override the built-in defaults, an
511
511
  * empty array to hide the phrase entirely, or `undefined`/`null` to fall back
512
512
  * to the built-in defaults for that language.
513
+ * `ui.accessibility.enableLoadingPhrases: false` hides even custom phrases.
513
514
  */
514
515
  export type LoadingPhrasesResolver = (language: string) => readonly string[] | undefined | null;
515
516
  export interface WebShellCustomization {
@@ -6,7 +6,7 @@
6
6
  export { DaemonSessionProvider, useDaemonActions, useDaemonActiveTodoList, useDaemonConnection, useDaemonPendingPermissions, useDaemonPromptStatus, useDaemonSessionNotices, useDaemonSessionOwnerGuard, useDaemonStreamingState, useDaemonSession, useDaemonTranscriptBlocks, useDaemonTranscriptHistory, useDaemonTranscriptState, useDaemonTranscriptStore, useDaemonTurnNavigationState, useDaemonTurnNavigationStore, useDaemonWorkspaceEventSignals, extractDaemonTodosFromToolBlock, hasDaemonActiveTodos, isDaemonSubAgentToolBlock, parseDaemonTodoItemsFromEntries, selectDaemonActiveTodoList, selectDaemonLatestTodoList, selectDaemonPendingPermissions, selectDaemonSubAgentToolBlocks, selectDaemonStreamingState, selectDaemonTodoLists, selectDaemonTranscriptStreamingState, isMissingSessionHttpStatus, toDaemonPromptContent, } from './session/index.js';
7
7
  export type { DaemonCommandInfo, DaemonConnectionState, DaemonConnectionStatus, DaemonModelInfo, DaemonProductSessionContext, DaemonStandaloneConnectionState, DaemonNoticeCategory, DaemonNoticeOperation, DaemonNoticeSeverity, DaemonPromptFile, DaemonPromptImage, DaemonPromptStatus, DaemonReasoningControls, DaemonSessionActions, DaemonSessionContextValue, DaemonSessionNotice, DaemonSessionOwnerGuard, DaemonSessionOwnerSnapshot, DaemonSessionProviderProps, DaemonTranscriptHistory, DaemonPromptAdmission, DaemonProvisionalTurn, DaemonSelectedTurnState, DaemonTurnIndexPage, DaemonTurnLocation, DaemonTurnNavigationClient, DaemonTurnNavigationError, DaemonTurnNavigationSession, DaemonTurnNavigationSnapshot, DaemonTurnNavigationStore, HistoricalTranscriptPage, HistoricalTranscriptRange, TranscriptBoundary, DaemonTokenUsage, DaemonTodoItem, DaemonTodoList, DaemonTodoPriority, DaemonTodoStatus, DaemonStreamingState, DaemonWorkspaceEventSignals, PendingPromptActionOptions, SendPromptOptions, SubmitPromptOptions, SubmitPromptResult, } from './session/index.js';
8
8
  export { DaemonWorkspaceProvider, useDaemonWorkspace, useDaemonWorkspaceActions, useOptionalDaemonWorkspace, useDaemonAgents, useDaemonAuth, useDaemonChannels, useDaemonDiagnostics, useDaemonFiles, useDaemonGlob, useDaemonMcp, useDaemonMemory, useDaemonResource, useDaemonSessions, useDaemonSkills, useDaemonStatusReport, useDaemonUsageDashboard, useDaemonTools, useDaemonSettings, useDaemonProviders, } from './workspace/index.js';
9
- export type { DaemonDirectoryEntry, DaemonDirectoryListing, DaemonFileStat, DaemonGlobOptions, DaemonGlobResult, DaemonGoal, DaemonGoalList, DaemonScheduledTask, DaemonScheduledTaskRun, DaemonCreateScheduledTaskRequest, DaemonUpdateScheduledTaskRequest, DaemonResourceOptions, DaemonChannelPairingActions, DaemonChannelsResource, DaemonStatusReportOptions, DaemonUsageDashboardOptions, DaemonWorkspaceActions, DaemonWorkspaceContextValue, DaemonWorkspaceProviderProps, DaemonWorkspaceStatus, ResourceResult, ResourceState, } from './workspace/index.js';
9
+ export type { DaemonDirectoryEntry, DaemonDirectoryListing, DaemonFileStat, DaemonGlobOptions, DaemonGlobResult, DaemonGoal, DaemonGoalList, DaemonScheduledTask, DaemonScheduledTaskGateStatus, DaemonScheduledTaskRun, DaemonCreateScheduledTaskRequest, DaemonUpdateScheduledTaskRequest, DaemonResourceOptions, DaemonChannelPairingActions, DaemonChannelsResource, DaemonStatusReportOptions, DaemonUsageDashboardOptions, DaemonWorkspaceActions, DaemonWorkspaceContextValue, DaemonWorkspaceProviderProps, DaemonWorkspaceStatus, ResourceResult, ResourceState, } from './workspace/index.js';
10
10
  export { useDaemonFollowupSuggestion, type UseDaemonFollowupSuggestionReturn, } from './useDaemonFollowupSuggestion.js';
11
11
  export { useDaemonMidTurnInjected } from './useDaemonMidTurnInjected.js';
12
12
  export { getPendingPromptVersion, getPendingPromptEvents, consumePendingPromptEvents, subscribePendingPromptEvents, subscribePendingPromptVersion, } from './pendingPromptVersion.js';
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  export { DaemonWorkspaceProvider, useDaemonWorkspace, useDaemonWorkspaceActions, useOptionalDaemonWorkspace, } from './DaemonWorkspaceProvider.js';
7
- export type { DaemonDirectoryEntry, DaemonDirectoryListing, DaemonFileStat, DaemonGlobOptions, DaemonGlobResult, DaemonGoal, DaemonGoalList, DaemonScheduledTask, DaemonScheduledTaskRun, DaemonCreateScheduledTaskRequest, DaemonUpdateScheduledTaskRequest, DaemonResourceOptions, DaemonChannelPairingActions, DaemonChannelsResource, DaemonWorkspaceActions, DaemonWorkspaceContextValue, DaemonWorkspaceProviderProps, DaemonWorkspaceStatus, ResourceResult, ResourceState, } from './types.js';
7
+ export type { DaemonDirectoryEntry, DaemonDirectoryListing, DaemonFileStat, DaemonGlobOptions, DaemonGlobResult, DaemonGoal, DaemonGoalList, DaemonScheduledTask, DaemonScheduledTaskGateStatus, DaemonScheduledTaskRun, DaemonCreateScheduledTaskRequest, DaemonUpdateScheduledTaskRequest, DaemonResourceOptions, DaemonChannelPairingActions, DaemonChannelsResource, DaemonWorkspaceActions, DaemonWorkspaceContextValue, DaemonWorkspaceProviderProps, DaemonWorkspaceStatus, ResourceResult, ResourceState, } from './types.js';
8
8
  export { useDaemonAgents, useDaemonAuth, useDaemonChannels, useDaemonDiagnostics, useDaemonFiles, useDaemonGlob, useDaemonMcp, useDaemonMemory, useDaemonResource, useDaemonSessions, useDaemonSkills, useDaemonStatusReport, useDaemonUsageDashboard, useDaemonTools, useDaemonSettings, useDaemonProviders, } from './hooks/index.js';
9
9
  export type { DaemonStatusReportOptions } from './hooks/index.js';
10
10
  export type { DaemonUsageDashboardOptions } from './hooks/index.js';
@@ -137,12 +137,26 @@ export interface DaemonScheduledTaskRun {
137
137
  sessionId?: string;
138
138
  /** The daemon could not create the fresh session requested for this run. */
139
139
  sessionDispatchFailed?: boolean;
140
+ /** How the task's gate decided this fire; quiet fires are never recorded. */
141
+ gate?: 'delivered' | 'failed' | 'blocked';
140
142
  /** READ-ONLY legacy compat: a pre-removal version stamped this on a fire whose
141
143
  * precondition withheld the prompt. Never written now, but kept so the UI can
142
144
  * still mark such stored entries "skipped" instead of showing them as ordinary
143
145
  * successful runs. Absent = a real dispatched run. */
144
146
  withheld?: boolean;
145
147
  }
148
+ /** Summary of a gated task's recent gate runs, as the daemon keeps it. */
149
+ export interface DaemonScheduledTaskGateStatus {
150
+ /** Fire time (epoch ms) of the most recent gate run. */
151
+ lastAt: number;
152
+ lastOutcome: 'quiet' | 'delivered' | 'failed' | 'blocked';
153
+ /** Quiet fires since the last delivery. */
154
+ quietSinceDelivery: number;
155
+ lastDeliveredAt?: number;
156
+ /** Failed and blocked fires since the last quiet or delivered one. */
157
+ consecutiveFailures: number;
158
+ lastError?: string;
159
+ }
146
160
  export interface DaemonScheduledTask {
147
161
  id: string;
148
162
  name: string | null;
@@ -150,6 +164,12 @@ export interface DaemonScheduledTask {
150
164
  prompt: string;
151
165
  recurring: boolean;
152
166
  enabled: boolean;
167
+ /** Shell command the owning session runs at each fire outside the model;
168
+ * silence skips the fire, output wakes the session. Null for an ungated task.
169
+ * Views carry it whether or not the daemon advertises `scheduled_task_gate`;
170
+ * the capability says whether POST and PATCH accept it. */
171
+ gate?: string | null;
172
+ gateStatus?: DaemonScheduledTaskGateStatus | null;
153
173
  createdAt: number;
154
174
  lastFiredAt: number | null;
155
175
  /** Next scheduled fire (epoch ms), or null for a disabled task. A GET-time
@@ -193,6 +213,9 @@ export interface DaemonCreateScheduledTaskRequest {
193
213
  modelServiceId?: string;
194
214
  /** Named group for fresh per-run sessions. */
195
215
  groupId?: string;
216
+ /** Gate command; only to a daemon advertising `scheduled_task_gate`, and
217
+ * only on a recurring task. */
218
+ gate?: string;
196
219
  }
197
220
  /** Partial update. `name: null` (or '') clears the name. Omitted fields are
198
221
  * left unchanged. */
@@ -207,6 +230,8 @@ export interface DaemonUpdateScheduledTaskRequest {
207
230
  modelServiceId?: string | null;
208
231
  /** Null clears the selected group. */
209
232
  groupId?: string | null;
233
+ /** Null (or '') removes the gate. */
234
+ gate?: string | null;
210
235
  }
211
236
  export interface DaemonAddWorkspaceResult {
212
237
  id: string;
@@ -223,6 +223,8 @@ DaemonGoal,
223
223
  DaemonGoalList,
224
224
  /** A durable scheduled task (cron) as returned by the daemon. */
225
225
  DaemonScheduledTask,
226
+ /** Summary of a gated task's recent gate runs. */
227
+ DaemonScheduledTaskGateStatus,
226
228
  /** One recorded fire in a scheduled task's run history. */
227
229
  DaemonScheduledTaskRun,
228
230
  /** Request body for creating a scheduled task. */
@@ -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.1.7 desktop-relay install";
21
+ export declare const DESKTOP_RELAY_INSTALL_COMMAND = "npx -y @qwen-code/node-repl-mcp@0.26.0 desktop-relay install";
22
22
  export type DesktopRelayRemotePhase = 'connecting' | 'registering' | 'connected' | 'stopped' | 'failed';
23
23
  export interface DesktopRelayActive {
24
24
  sessionId: string;
@@ -0,0 +1,21 @@
1
+ import type { PromptFile, PromptImage } from '../adapters/promptTypes';
2
+ export interface ComposerDraftAttachments {
3
+ images: PromptImage[];
4
+ files: PromptFile[];
5
+ }
6
+ export interface ComposerDraftAttachmentStore {
7
+ save(key: string, attachments: ComposerDraftAttachments): Promise<boolean>;
8
+ load(key: string): Promise<ComposerDraftAttachments | undefined>;
9
+ delete(key: string): Promise<boolean>;
10
+ }
11
+ export declare function subtractDraftAttachments(attachments: ComposerDraftAttachments, overlap: ComposerDraftAttachments): ComposerDraftAttachments;
12
+ /**
13
+ * Combines what the composer already holds with what the store returned.
14
+ *
15
+ * A restore resolves after other code may have staged attachments for the same
16
+ * draft (a cancelled queued prompt, a host-driven restore). Keep both sides;
17
+ * a filename collision does not mean the payloads are the same.
18
+ * Returns `current` unchanged when the store adds nothing.
19
+ */
20
+ export declare function mergeDraftAttachments(current: ComposerDraftAttachments, stored: ComposerDraftAttachments): ComposerDraftAttachments;
21
+ export declare function createComposerDraftAttachmentStore(idb?: IDBFactory | undefined): ComposerDraftAttachmentStore | null;
@@ -0,0 +1,39 @@
1
+ import type { DaemonInputAnnotation } from '@qwen-code/sdk/daemon';
2
+ import type { WebShellComposerTag } from '../customization';
3
+ import type { InlineTagPlacement } from './useComposerCore';
4
+ import { type ComposerDraftAttachments, type ComposerDraftAttachmentStore } from './composer-draft-attachments';
5
+ export interface ComposerDraftContent {
6
+ text: string;
7
+ inlineTags: InlineTagPlacement[];
8
+ tags: WebShellComposerTag[];
9
+ inputAnnotations: DaemonInputAnnotation[];
10
+ }
11
+ type DraftChange = 'content' | 'attachments' | 'clear';
12
+ type Listener = (change: DraftChange) => void;
13
+ export declare function findComposerDraftSession(key: string | undefined): ComposerDraftSession | undefined;
14
+ export declare function getComposerDraftSession(key: string, content: ComposerDraftContent, store: ComposerDraftAttachmentStore | null): ComposerDraftSession;
15
+ export declare class ComposerDraftSession {
16
+ readonly key: string;
17
+ content: ComposerDraftContent;
18
+ private readonly store;
19
+ attachments: ComposerDraftAttachments;
20
+ loading: boolean;
21
+ loaded: Promise<void>;
22
+ private restored;
23
+ private pending;
24
+ private removed;
25
+ private discardStored;
26
+ private ingestionCounts;
27
+ get pendingBatches(): number;
28
+ get restoring(): boolean;
29
+ constructor(key: string, content: ComposerDraftContent, store: ComposerDraftAttachmentStore | null);
30
+ subscribe(listener: Listener): () => void;
31
+ setIngestionCount(listener: Listener, count: number): void;
32
+ private release;
33
+ private emit;
34
+ setContent(content: ComposerDraftContent, source?: Listener): void;
35
+ private persist;
36
+ setAttachments(attachments: ComposerDraftAttachments, clear?: boolean): void;
37
+ restoreAttachments(): void;
38
+ }
39
+ export {};
@@ -128,6 +128,7 @@ export interface UseComposerCoreOptions {
128
128
  editorTheme: Parameters<typeof EditorView.theme>[0];
129
129
  }
130
130
  export declare function getComposerDraftStorageKey(sessionId: string | undefined, workspaceCwd: string | undefined): string | undefined;
131
+ export declare function captureComposerDraftGuard(storageKey: string | undefined): () => boolean;
131
132
  export declare function clearComposerDraftIfMatches(storageKey: string | undefined, text: string): void;
132
133
  export interface SearchState {
133
134
  searchMode: boolean;
@@ -5,12 +5,17 @@ type CompressionResult = {
5
5
  } | {
6
6
  kind: 'failed' | 'cancelled' | 'refreshFailed' | 'interrupted';
7
7
  };
8
- export interface ContextUsageControls {
9
- sessionId: string;
8
+ export interface ContextCompressionControls {
10
9
  canCompress: boolean;
11
10
  compressing: boolean;
12
- result?: CompressionResult;
11
+ result?: CompressionResult | {
12
+ kind: 'compressed' | 'noop';
13
+ };
13
14
  compress(): Promise<void>;
15
+ }
16
+ export interface ContextUsageControls extends ContextCompressionControls {
17
+ sessionId: string;
18
+ result?: CompressionResult;
14
19
  captureOwner(): DaemonSessionOwnerSnapshot;
15
20
  getContextUsage: DaemonSessionActions['getContextUsage'];
16
21
  }
@@ -8,7 +8,7 @@ export type { WebShellTranscriptProps } from './components/WebShellTranscript';
8
8
  export * from './daemon-react-sdk';
9
9
  export type { WebShellApprovalMode } from './utils/planMode';
10
10
  export type { WebShellBrowserNotificationsOptions } from './browser-turn-notifications';
11
- export { JavaManagedAgentClient, JavaManagedAgentHttpError, type JavaAgentCommandAdmission, type JavaAgentEnvironment, type JavaAgentEvent, type JavaAgentSession, type JavaAgentTranscript, type JavaAgentTurn, type JavaManagedAgentClientOptions, } from './components/managed/java-managed-agent-client';
11
+ export { JavaManagedAgentClient, JavaManagedAgentHttpError, type JavaAgentCommandAdmission, type JavaAgentTurnAdmission, type JavaAgentEnvironment, type JavaAgentEvent, type JavaAgentSession, type JavaAgentTranscript, type JavaAgentTurn, type JavaManagedAgentClientOptions, } from './components/managed/java-managed-agent-client';
12
12
  export { createJavaManagedAgentProvider, type JavaManagedAgentProviderOptions, } from './components/managed/java-managed-agent-provider';
13
13
  export { ManagedAgentWebShell, type ManagedAgentWebShellProps, } from './ManagedAgentWebShell';
14
14
  export type { ManagedArtifact, ManagedArtifactPage, ManagedArtifactResponse, ManagedArtifactSave, ManagedToolResult, ManagedToolResultReader, ManagedToolResultResponse, } from './components/managed/managed-tool-result-types';
@@ -82,6 +82,7 @@ export type { DatasetCell, EchartsFullDataBlockProps, EchartsFullDataOption, Ech
82
82
  export { WEB_SHELL_SETTING_ITEM_IDS } from './settings';
83
83
  export type { WebShellSettingItemId, WebShellSettingsOptions, } from './settings';
84
84
  export type { WebShellModelManagementOptions } from './modelManagement';
85
+ export type { WebShellUnavailableModel, WebShellUnavailableModelTooltipHandle, WebShellUnavailableModelTooltipInfo, WebShellUnavailableModelTooltipMount, } from './unavailableModels';
85
86
  export type { WebShellMessageNavigationRequest, WebShellMessageNavigationResult, } from './hooks/useMessageNavigation';
86
87
  export { highlightCode } from './components/messages/codeHighlighter';
87
88
  export type { CodeHighlightRequest } from './components/messages/codeHighlighter';
@@ -1,6 +1,8 @@
1
1
  import './styles/globals.css';
2
+ import type { ManagedAgentProvider } from './components/managed/managed-agent-provider';
2
3
  import 'katex/dist/katex.min.css';
3
4
  import './styles/standalone.css';
4
- export declare function StandaloneApp({ daemonToken }: {
5
+ export declare function StandaloneApp({ daemonToken, managedAgentProvider: providedManagedAgentProvider, }: {
5
6
  daemonToken?: string;
7
+ managedAgentProvider?: ManagedAgentProvider;
6
8
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { DaemonMcpAppToolCall, DaemonMcpAppToolResult } from '@qwen-code/sdk/daemon';
1
+ import type { DaemonSession, DaemonMcpAppToolCall, DaemonMcpAppToolResult } from '@qwen-code/sdk/daemon';
2
2
  export declare const McpAppHostContext: import("react").Context<string | undefined>;
3
3
  export type McpAppToolCallRequest = DaemonMcpAppToolCall;
4
4
  export declare const McpAppSessionContext: import("react").Context<string | undefined>;
@@ -19,3 +19,12 @@ export declare const McpAppToolsContext: import("react").Context<{
19
19
  sessionId: string;
20
20
  callTool: (request: McpAppToolCallRequest, signal: AbortSignal) => Promise<DaemonMcpAppToolResult>;
21
21
  } | undefined>;
22
+ export interface McpAppGeneratedUi {
23
+ sessionId: string;
24
+ status: NonNullable<DaemonSession['generatedUi']>;
25
+ }
26
+ export declare const McpAppGeneratedUiContext: import("react").Context<McpAppGeneratedUi | undefined>;
27
+ export declare function useMcpAppAdmission(display?: {
28
+ resourceUri: string;
29
+ requiredFeature?: 'generated-ui';
30
+ }): boolean;
@@ -20,6 +20,7 @@ declare const SETTING_KEYS: {
20
20
  readonly 'setting:workflow-keyword-trigger': "ui.disableWorkflowKeywordTrigger";
21
21
  readonly 'setting:status-in-title': "ui.showStatusInTitle";
22
22
  readonly 'setting:response-speed': "ui.showResponseTokensPerSecond";
23
+ readonly 'setting:loading-phrases': "ui.accessibility.enableLoadingPhrases";
23
24
  readonly 'setting:followup-suggestions': "ui.enableFollowupSuggestions";
24
25
  readonly 'setting:tool-call-details': "ui.showToolCallDetails";
25
26
  readonly 'setting:shell-output-limit': "ui.shellOutputMaxLines";
@@ -50,6 +51,7 @@ declare const SETTING_KEYS: {
50
51
  readonly 'setting:model-proposed-goals': "goals.modelProposed";
51
52
  readonly 'setting:arena-artifacts': "agents.arena.preserveArtifacts";
52
53
  readonly 'setting:session-workflow': "experimental.sessionWorkflow";
54
+ readonly 'setting:generated-ui': "experimental.generatedUi";
53
55
  readonly 'setting:scheduled-tasks': "experimental.cron";
54
56
  readonly 'setting:session-writer-lease': "experimental.sessionWriterLease";
55
57
  readonly 'setting:agent-team': "experimental.agentTeam";