@qwen-code/web-shell 0.26.0 → 0.26.1-nightly.20261026.34769f9d41

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 +90 -34
  2. package/dist/{PierreFilePreview-BKwQRLBv.js → PierreFilePreview-8MULkJoK.js} +1 -1
  3. package/dist/{SpreadsheetPreview-gWWUaRgJ.js → SpreadsheetPreview-DtnbWz0L.js} +2 -2
  4. package/dist/{WorkspaceFileBrowser-BLwOb5Br.js → WorkspaceFileBrowser-BrN8Jn6M.js} +2 -2
  5. package/dist/{agents-route-Pu5E-8GT.js → agents-route-B4kWo58n.js} +2 -2
  6. package/dist/daemon-react-sdk.js +1 -1
  7. package/dist/{index-BSBUK1JZ.js → index-pcCPQvgP.js} +63801 -57971
  8. package/dist/index.js +3 -3
  9. package/dist/sw.js +1 -1
  10. package/dist/transcript.js +9320 -9154
  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 +10 -3
  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/MessageItem.d.ts +1 -0
  18. package/dist/types/components/SessionPrBadge.d.ts +5 -3
  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/artifacts/ArtifactPanel.d.ts +4 -1
  22. package/dist/types/components/artifacts/SideTaskPanel.d.ts +4 -1
  23. package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +32 -1
  24. package/dist/types/components/dialogs/ScheduledTasksDialog.d.ts +5 -1
  25. package/dist/types/components/dialogs/scheduledTasksSchedule.d.ts +1 -0
  26. package/dist/types/components/extensions/ExtensionsManagerPage.d.ts +7 -1
  27. package/dist/types/components/managed/ManagedArchivedSessions.d.ts +17 -0
  28. package/dist/types/components/managed/ManagedChildSessionView.d.ts +8 -0
  29. package/dist/types/components/managed/ManagedExtensionsManagerPage.d.ts +8 -0
  30. package/dist/types/components/managed/ManagedMcpManagerPage.d.ts +8 -0
  31. package/dist/types/components/managed/ManagedPermissionRulesDialog.d.ts +9 -0
  32. package/dist/types/components/managed/ManagedRecoveryPanel.d.ts +9 -0
  33. package/dist/types/components/managed/ManagedSessionActions.d.ts +20 -0
  34. package/dist/types/components/managed/ManagedSessionNavigationRow.d.ts +9 -0
  35. package/dist/types/components/managed/ManagedSessionsPage.d.ts +4 -3
  36. package/dist/types/components/managed/ManagedTaskPanel.d.ts +3 -1
  37. package/dist/types/components/managed/ManagedUserMessageQueue.d.ts +5 -0
  38. package/dist/types/components/managed/ManagedWorkspaceNavigation.d.ts +3 -1
  39. package/dist/types/components/managed/WorkspaceBindingCreator.d.ts +3 -2
  40. package/dist/types/components/managed/generated/managed-agent-api.d.ts +1935 -499
  41. package/dist/types/components/managed/java-managed-agent-client.d.ts +131 -4
  42. package/dist/types/components/managed/java-managed-agent-event-projector.d.ts +1 -2
  43. package/dist/types/components/managed/java-managed-agent-provider.d.ts +2 -6
  44. package/dist/types/components/managed/managed-agent-provider.d.ts +115 -21
  45. package/dist/types/components/managed/managed-extension-messages.d.ts +36 -0
  46. package/dist/types/components/managed/managed-extension-types.d.ts +10 -0
  47. package/dist/types/components/managed/managed-lifecycle-messages.d.ts +80 -0
  48. package/dist/types/components/managed/managed-lifecycle-messages.transcript-stub.d.ts +2 -0
  49. package/dist/types/components/managed/managed-mcp-command-storage.d.ts +16 -0
  50. package/dist/types/components/managed/managed-mcp-management-types.d.ts +8 -0
  51. package/dist/types/components/managed/managed-mcp-messages.d.ts +4 -0
  52. package/dist/types/components/managed/managed-mcp-messages.transcript-stub.d.ts +2 -0
  53. package/dist/types/components/managed/managed-recovery-handoff.d.ts +17 -0
  54. package/dist/types/components/managed/managed-recovery-messages.d.ts +31 -0
  55. package/dist/types/components/managed/managed-session-export.d.ts +21 -0
  56. package/dist/types/components/managed/use-managed-actions.d.ts +2 -1
  57. package/dist/types/components/managed/use-managed-approval-change.d.ts +3 -1
  58. package/dist/types/components/managed/use-managed-context-compression.d.ts +23 -0
  59. package/dist/types/components/managed/use-managed-file-references.d.ts +7 -0
  60. package/dist/types/components/managed/use-managed-file-upload.d.ts +23 -0
  61. package/dist/types/components/managed/use-managed-mcp-management.d.ts +25 -0
  62. package/dist/types/components/managed/use-managed-mcp.d.ts +1 -1
  63. package/dist/types/components/managed/use-managed-recovery.d.ts +14 -0
  64. package/dist/types/components/managed/use-managed-session-lifecycle.d.ts +26 -0
  65. package/dist/types/components/managed/use-managed-session-rename.d.ts +2 -2
  66. package/dist/types/components/managed/use-managed-tasks.d.ts +3 -0
  67. package/dist/types/components/managed/use-managed-turn-cancel.d.ts +9 -0
  68. package/dist/types/components/managed/use-managed-user-messages.d.ts +13 -0
  69. package/dist/types/components/mcp/McpDetails.d.ts +30 -0
  70. package/dist/types/components/messages/AssistantMessage.d.ts +1 -0
  71. package/dist/types/components/messages/SettingsMessage.d.ts +19 -1
  72. package/dist/types/components/plugins/PluginManagerPage.d.ts +5 -1
  73. package/dist/types/components/sidebar/RecentSessions.d.ts +23 -0
  74. package/dist/types/components/sidebar/SessionDetailsTooltip.d.ts +2 -1
  75. package/dist/types/components/sidebar/StandaloneRecents.d.ts +1 -1
  76. package/dist/types/components/sidebar/WebShellSidebar.d.ts +10 -3
  77. package/dist/types/components/sidebar/WorkspaceMenu.d.ts +3 -0
  78. package/dist/types/components/sidebar/workspaceOrder.d.ts +12 -0
  79. package/dist/types/components/ui/badge.d.ts +1 -1
  80. package/dist/types/components/ui/button.d.ts +1 -1
  81. package/dist/types/components/ui/tooltip.d.ts +3 -1
  82. package/dist/types/components/workspaces/WorkspaceDirectoriesSection.d.ts +11 -0
  83. package/dist/types/customization.d.ts +1 -0
  84. package/dist/types/daemon/index.d.ts +1 -1
  85. package/dist/types/daemon/workspace/index.d.ts +1 -1
  86. package/dist/types/daemon/workspace/types.d.ts +37 -1
  87. package/dist/types/daemon-react-sdk.d.ts +2 -0
  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/settings.d.ts +6 -1
  95. package/dist/types/unavailableModels.d.ts +24 -0
  96. package/dist/types/utils/composerModels.d.ts +18 -0
  97. package/dist/types/utils/indexeddb.d.ts +17 -0
  98. package/dist/types/utils/selectionClipboard.d.ts +1 -0
  99. package/dist/types/utils/selectionClipboard.transcript-stub.d.ts +1 -0
  100. package/dist/types/utils/todos.d.ts +8 -0
  101. package/dist/types/utils/turnDuration.d.ts +1 -0
  102. package/dist/{useDaemonMidTurnInjected-BoG_wM2a.js → useDaemonMidTurnInjected-DY7azBbC.js} +3185 -2729
  103. package/package.json +1 -1
  104. package/dist/types/components/managed/ManagedSessionCwdControl.d.ts +0 -9
  105. package/dist/types/components/managed/use-managed-cwd-change.d.ts +0 -21
@@ -1,4 +1,5 @@
1
1
  import { type WebShellModelManagementOptions } from './modelManagement';
2
+ import type { WebShellUnavailableModel, WebShellUnavailableModelTooltipMount } from './unavailableModels';
2
3
  import './styles/globals.css';
3
4
  import { type WebShellMessageNavigationRequest, type WebShellMessageNavigationResult } from './hooks/useMessageNavigation';
4
5
  import { type DaemonProductSessionContext, type DaemonStreamingState } from '@qwen-code/web-shell/daemon-react-sdk';
@@ -104,6 +105,10 @@ export interface WebShellProps {
104
105
  settings?: WebShellSettingsOptions;
105
106
  /** Model add/delete interactions across WebShell. Not a backend permission policy. */
106
107
  modelManagement?: WebShellModelManagementOptions;
108
+ /** Extra catalog models shown disabled in the composer picker. */
109
+ unavailableModels?: readonly WebShellUnavailableModel[];
110
+ /** Host-owned hint for a disabled model. DOM/Solid hosts mount into the container. */
111
+ mountUnavailableModelTooltip?: WebShellUnavailableModelTooltipMount;
107
112
  /** Host-specific label for the Ask User Question free-text choice. */
108
113
  askUserFreeTextLabel?: string;
109
114
  /** Called whenever the attached daemon session or workspace changes. */
@@ -389,6 +394,7 @@ export interface WebShellProps {
389
394
  * Override the witty phrases cycled while a prompt is streaming. Receives the
390
395
  * resolved UI language; return phrases to replace the built-in defaults, an
391
396
  * empty array to hide the phrase, or `undefined`/`null` to keep the defaults.
397
+ * `ui.accessibility.enableLoadingPhrases: false` hides even custom phrases.
392
398
  */
393
399
  loadingPhrases?: LoadingPhrasesResolver;
394
400
  /** When provided, all toast notifications are forwarded to this callback and the built-in ToastHost is hidden. */
@@ -450,4 +456,4 @@ export declare function canArchiveSideTaskSummary(session: Pick<DaemonSessionSum
450
456
  export declare function mergeSideTaskCatalog(catalog: SideTaskCatalogState, parentSessionId: string, listedItems: SideTaskListItem[], optimisticIds: ReadonlySet<string>): SideTaskCatalogState;
451
457
  export declare function getEnvironmentAgentTasks(messages: readonly Message[], sessionTasks: readonly DaemonSessionTaskWithWorkflowStatus[]): EnvironmentAgentTask[];
452
458
  export declare function mergeAgentTrace(liveAgents: readonly EnvironmentAgentTask[], trace: DaemonAgentTrace | undefined, now?: number): EnvironmentAgentTask[];
453
- export declare function App({ onRefreshModels, askUserFreeTextLabel, onSessionIdChange, onSessionInfoChange, onSessionCreated, managedAgentProvider, theme: providedTheme, onThemeChange, onThemeResolved, language: providedLanguage, onLanguageChange, onLanguageResolved, brand: providedBrand, onBrandResolved, className: externalClassName, style: externalStyle, shadowDom, onConnectionChange, onStreamingStateChange, onError, onBugReport, hiddenSlashCommands, slashCommandCategoryOrder, onSlashCommand, builtinAtProviders, atProviders, composerTagIcons, fileUploadEnabled, fileUploadDirectory, artifact, fileDropAction, renderToolHeaderExtra, renderWelcomeHeader, renderWelcomeFooter, mobileWelcomeFooterMiddle, parseUserMessageContent, renderUserMessageContent, renderComposerTag, renderComposerTagTooltip, onComposerTagClick, renderAssistantTurnFooter, assistantFeedback, getAssistantSourcesIcon, sourceReferences, renderComposerToolbarStart, renderComposerToolbarEnd, renderComposerToolbarRight, renderComposerHeader, renderComposerFooter, renderChatHeader, renderFooter, bottomStatusItems, chatMaxWidth, sidebar, settings: settingsPresentation, modelManagement, header, rightPanel, showToolCalls, environmentPanel, splitSessionIds: externalSplitSessionIds, onSplitSessionIdsChange, renderPaneHeaderActions, onRightPanelOpen, onFileReviewOpen, onWorkspaceFileOpen, onInsightReportOpen, onContextUsageOpen, messageTurnOutputs, filterArtifact, shellRef, composerToolbarActions, allowedApprovalModes: allowedApprovalModesProp, mainModelFilter, compactComposerOverlays, autoSubmitSlashCommands, additionalSlashCommands, contextUsageAlwaysVisible, userMessageEditing, onUserMessageEditRequest, cycleModeOnTab, sessionSourceType, composerToolbarAdditionalActions, composerPlaceholders, compactThinking, hostOwnsEditDiffPreview, collapseCompletedTurns, markdownTableMode, virtualScrollThreshold, conversationSearchThreshold, markdown, loadingPhrases, onAgentTasksChange, onTranscriptChange, onSessionArtifactsChange, onToast, composerRef, onComposerReady, composerInput, composerInputVersion, onSessionChange, onAssistantTurnSettled, prepareSubmit, onSubmitBefore, restartSseOnPrompt, historyPageSize, initialSelectedWorkspaceCwd, lockedWorkspaceCwd, lockedWorkspaceCapability, }?: AppProps): import("react/jsx-runtime").JSX.Element;
459
+ export declare function App({ onRefreshModels, askUserFreeTextLabel, onSessionIdChange, onSessionInfoChange, onSessionCreated, managedAgentProvider, theme: providedTheme, onThemeChange, onThemeResolved, language: providedLanguage, onLanguageChange, onLanguageResolved, brand: providedBrand, onBrandResolved, className: externalClassName, style: externalStyle, shadowDom, onConnectionChange, onStreamingStateChange, onError, onBugReport, hiddenSlashCommands, slashCommandCategoryOrder, onSlashCommand, builtinAtProviders, atProviders, composerTagIcons, fileUploadEnabled, fileUploadDirectory, artifact, fileDropAction, renderToolHeaderExtra, renderWelcomeHeader, renderWelcomeFooter, mobileWelcomeFooterMiddle, parseUserMessageContent, renderUserMessageContent, renderComposerTag, renderComposerTagTooltip, onComposerTagClick, renderAssistantTurnFooter, assistantFeedback, getAssistantSourcesIcon, sourceReferences, renderComposerToolbarStart, renderComposerToolbarEnd, renderComposerToolbarRight, renderComposerHeader, renderComposerFooter, renderChatHeader, renderFooter, bottomStatusItems, chatMaxWidth, sidebar, settings: settingsPresentation, modelManagement, unavailableModels, mountUnavailableModelTooltip, header, rightPanel, showToolCalls, environmentPanel, splitSessionIds: externalSplitSessionIds, onSplitSessionIdsChange, renderPaneHeaderActions, onRightPanelOpen, onFileReviewOpen, onWorkspaceFileOpen, onInsightReportOpen, onContextUsageOpen, messageTurnOutputs, filterArtifact, shellRef, composerToolbarActions, allowedApprovalModes: allowedApprovalModesProp, mainModelFilter, compactComposerOverlays, autoSubmitSlashCommands, additionalSlashCommands, contextUsageAlwaysVisible, userMessageEditing, onUserMessageEditRequest, cycleModeOnTab, sessionSourceType, composerToolbarAdditionalActions, composerPlaceholders, compactThinking, hostOwnsEditDiffPreview, collapseCompletedTurns, markdownTableMode, virtualScrollThreshold, conversationSearchThreshold, markdown, loadingPhrases, onAgentTasksChange, onTranscriptChange, onSessionArtifactsChange, onToast, composerRef, onComposerReady, composerInput, composerInputVersion, onSessionChange, onAssistantTurnSettled, prepareSubmit, onSubmitBefore, restartSseOnPrompt, historyPageSize, initialSelectedWorkspaceCwd, lockedWorkspaceCwd, lockedWorkspaceCapability, }?: AppProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { ManagedAgentProvider } from './components/managed/managed-agent-provider';
3
+ import type { WebShellLanguage } from './i18n';
4
+ export declare function hasManagedAppMarker(): boolean;
5
+ export declare function ManagedStandaloneApp({ daemonToken, language, children, }: {
6
+ daemonToken?: string;
7
+ language?: WebShellLanguage;
8
+ children: (provider: ManagedAgentProvider) => ReactNode;
9
+ }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
@@ -8,9 +8,11 @@ import type { DaemonSessionGroupPresetColor, DaemonWorkspaceGitStatus, Reasoning
8
8
  import type { CommandDisplayCategoryOrder } from '../utils/commandDisplay';
9
9
  import type { SkillInfo } from '../completions/slashCompletion';
10
10
  import type { DaemonReasoningControls } from '@qwen-code/web-shell/daemon-react-sdk';
11
- import { type WebShellComposerInput, type WebShellComposerTagIconMap, type WebShellAtProvider, type WebShellBuiltinAtProvidersConfig } from '../customization';
11
+ import { type WebShellComposerInput, type WebShellComposerTag, type WebShellComposerTagIconMap, type WebShellAtProvider, type WebShellBuiltinAtProvidersConfig } from '../customization';
12
12
  import { type ComposerSubmitMetadata, type EditorHandle } from '../hooks/useComposerCore';
13
- import type { ContextUsageControls } from '../hooks/useContextUsageControls';
13
+ import { type UseFileUploadOptions } from '../hooks/useFileUpload';
14
+ import type { ContextCompressionControls } from '../hooks/useContextUsageControls';
15
+ import type { WebShellUnavailableModel, WebShellUnavailableModelTooltipMount } from '../unavailableModels';
14
16
  import type { VoiceStatusRevision, VoiceWorkspaceTarget } from '../voice/voice-workspace-target';
15
17
  import { type SessionGitIntent } from './GitModePopover';
16
18
  import { type WorkspaceSelectorOption } from './WorkspaceSelector';
@@ -101,12 +103,14 @@ interface ChatEditorProps {
101
103
  /** Show the context-usage breakdown, exactly like typing /context. */
102
104
  onShowContextUsage?: () => void;
103
105
  onOpenContextUsage?: () => void;
104
- contextUsageControls?: ContextUsageControls;
106
+ contextUsageControls?: ContextCompressionControls;
105
107
  modelRefresh?: ModelRefreshState;
106
108
  availableModels?: Array<{
107
109
  id: string;
108
110
  label?: string;
109
111
  }>;
112
+ unavailableModels?: readonly WebShellUnavailableModel[];
113
+ mountUnavailableModelTooltip?: WebShellUnavailableModelTooltipMount;
110
114
  onSelectMode?: (mode: string) => void;
111
115
  onSelectModel?: (model: string) => void;
112
116
  reasoning?: DaemonReasoningControls;
@@ -133,6 +137,9 @@ interface ChatEditorProps {
133
137
  shellModeEnabled?: boolean;
134
138
  workspaceFeaturesEnabled?: boolean;
135
139
  fileReferenceActions?: AtMentionWorkspaceActions;
140
+ fileUploadTarget?: UseFileUploadOptions & {
141
+ createReference(path: string): WebShellComposerTag;
142
+ };
136
143
  persistFileReferences?: boolean;
137
144
  attachmentsEnabled?: boolean;
138
145
  onChatWidthModeChange?: (mode: '1000' | 'wide') => void;
@@ -7,6 +7,7 @@ import { type ReactNode } from 'react';
7
7
  import { type DaemonSessionActions } from '@qwen-code/web-shell/daemon-react-sdk';
8
8
  import { type DaemonSessionArtifact, type DaemonSessionMonitorTaskStatus, type DaemonSessionSummary, type DaemonWorkspaceCapability } from '@qwen-code/sdk/daemon';
9
9
  import { type WebShellModelManagementOptions } from '../modelManagement';
10
+ import type { WebShellUnavailableModel, WebShellUnavailableModelTooltipMount } from '../unavailableModels';
10
11
  import { type RegisterContextUsageControls } from '../hooks/useContextUsageControls';
11
12
  import type { WebShellSlashCommandHandler } from '../App';
12
13
  import type { TurnOutputKind, TurnOutputOpenRequest } from './artifacts/TurnOutputs';
@@ -64,6 +65,8 @@ export interface ChatPaneProps {
64
65
  /** Host slash-command callback shared with the main chat composer. */
65
66
  onSlashCommand?: WebShellSlashCommandHandler;
66
67
  modelManagement?: WebShellModelManagementOptions;
68
+ unavailableModels?: readonly WebShellUnavailableModel[];
69
+ mountUnavailableModelTooltip?: WebShellUnavailableModelTooltipMount;
67
70
  onOpenGoals?: () => void;
68
71
  onRightPanelOpen?: (request: TurnOutputOpenRequest) => void;
69
72
  onOpenMonitor?: (task: DaemonSessionMonitorTaskStatus, sessionId: string, sessionActions: DaemonSessionActions) => void;
@@ -93,4 +96,4 @@ export interface ChatPaneProps {
93
96
  * state, approvals, and composer, and the browser scopes keyboard focus to the
94
97
  * pane the user clicks into — so there is no cross-pane approval arbitration.
95
98
  */
96
- export declare function ChatPane({ title, sessionSummary, isActive, onApprovalChange, workspaceCwd, renderHeaderActions, onClose, onToggleMaximize, isMaximized, onError, onImageIngestionNotice, onSlashCommand, modelManagement, onOpenGoals, onRightPanelOpen, onOpenMonitor, onPaneArtifactsChange, registerContextUsageControls, onBeforeContextCompress, onOpenContextUsage, messageTurnOutputs, embedded, onFirstPromptAdmitted, reportCatalogTurnCompletion, hidden, voiceUserRevision, voiceWorkspaceRevisions, voiceWorkspaces, sessionWorkflowEnabled, showResponseTokensPerSecond, planControlVisible, }: ChatPaneProps): import("react/jsx-runtime").JSX.Element;
99
+ export declare function ChatPane({ title, sessionSummary, isActive, onApprovalChange, workspaceCwd, renderHeaderActions, onClose, onToggleMaximize, isMaximized, onError, onImageIngestionNotice, onSlashCommand, modelManagement, unavailableModels, mountUnavailableModelTooltip, onOpenGoals, onRightPanelOpen, onOpenMonitor, onPaneArtifactsChange, registerContextUsageControls, onBeforeContextCompress, onOpenContextUsage, messageTurnOutputs, embedded, onFirstPromptAdmitted, reportCatalogTurnCompletion, hidden, voiceUserRevision, voiceWorkspaceRevisions, voiceWorkspaces, sessionWorkflowEnabled, showResponseTokensPerSecond, planControlVisible, }: ChatPaneProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
- import type { ContextUsageControls } from '../hooks/useContextUsageControls';
1
+ import type { ContextCompressionControls } from '../hooks/useContextUsageControls';
2
2
  export declare function ContextCompressionFeedback({ controls, className, }: {
3
- controls?: Pick<ContextUsageControls, 'compressing' | 'result'>;
3
+ controls?: Pick<ContextCompressionControls, 'compressing' | 'result'>;
4
4
  className?: string;
5
5
  }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,10 +1,10 @@
1
1
  import { type ReactElement } from 'react';
2
- import type { ContextUsageControls } from '../hooks/useContextUsageControls';
2
+ import type { ContextCompressionControls } from '../hooks/useContextUsageControls';
3
3
  export declare function ContextUsagePopover({ tokenCount, contextWindow, known: observedKnown, controls, onOpenDetails, showSnapshotHint, children, }: {
4
4
  tokenCount: number;
5
5
  contextWindow: number;
6
6
  known?: boolean;
7
- controls?: Pick<ContextUsageControls, 'canCompress' | 'compressing' | 'result' | 'compress'>;
7
+ controls?: ContextCompressionControls;
8
8
  onOpenDetails?: () => void;
9
9
  showSnapshotHint: boolean;
10
10
  children: ReactElement;
@@ -35,6 +35,7 @@ interface MessageItemProps {
35
35
  onBranchSession?: (branchRecordId?: string) => void | Promise<void>;
36
36
  branchRecordId?: string;
37
37
  showAssistantActions?: boolean;
38
+ assistantFooterAlwaysVisible?: boolean;
38
39
  showAssistantBranch?: boolean;
39
40
  /** Turn id marks are keyed by; unset hides the marks for this message. */
40
41
  assistantFeedbackTurnId?: string;
@@ -14,9 +14,11 @@ interface SessionPrBadgeProps {
14
14
  tabIndex?: number;
15
15
  }
16
16
  /**
17
- * The bound PRs the badge can open. Non-http(s) bindings are filtered out as
18
- * a defense-in-depth measure on top of the daemon-side validators; callers
19
- * that lay out around the badge use this to know whether it renders.
17
+ * The bound PRs the badge can open, in the order given. Bindings whose URL
18
+ * the external opener refuses are filtered out as a defense-in-depth measure
19
+ * on top of the daemon-side validators. Callers that lay out around the badge
20
+ * use this to know whether it renders, and the session details tooltip lists
21
+ * the same set.
20
22
  */
21
23
  export declare function openableSessionPrs(prs: DaemonSessionPrInfo[]): DaemonSessionPrInfo[];
22
24
  /**
@@ -7,6 +7,7 @@ import { type DaemonSessionActions } from '@qwen-code/web-shell/daemon-react-sdk
7
7
  import type { DaemonSessionArtifact, DaemonSessionMonitorTaskStatus, DaemonWorkspaceCapability } from '@qwen-code/sdk/daemon';
8
8
  import type { WebShellSlashCommandHandler } from '../App';
9
9
  import type { WebShellModelManagementOptions } from '../modelManagement';
10
+ import type { WebShellUnavailableModel, WebShellUnavailableModelTooltipMount } from '../unavailableModels';
10
11
  import type { RegisterContextUsageControls } from '../hooks/useContextUsageControls';
11
12
  import { type PaneHeaderActionsRenderer } from './ChatPane';
12
13
  import type { TurnOutputKind, TurnOutputOpenRequest } from './artifacts/TurnOutputs';
@@ -37,6 +38,8 @@ export interface SplitViewProps {
37
38
  onImageIngestionNotice?: (tone: 'warning' | 'error', message: string) => void;
38
39
  onSlashCommand?: WebShellSlashCommandHandler;
39
40
  modelManagement?: WebShellModelManagementOptions;
41
+ unavailableModels?: readonly WebShellUnavailableModel[];
42
+ mountUnavailableModelTooltip?: WebShellUnavailableModelTooltipMount;
40
43
  onOpenGoals?: () => void;
41
44
  onRightPanelOpen?: (request: TurnOutputOpenRequest) => void;
42
45
  onOpenMonitor?: (task: DaemonSessionMonitorTaskStatus, sessionId: string, sessionActions: DaemonSessionActions) => void;
@@ -71,4 +74,4 @@ export interface SplitViewProps {
71
74
  * naturally scopes the keyboard to the pane the user clicks into, so panes never
72
75
  * fight over which session an approval or Enter belongs to.
73
76
  */
74
- export declare function SplitView({ sessionIds, showSessionDetails, onPanesChange, onAssistantTurnSettled, onPendingPanesChange, onExit, onError, onImageIngestionNotice, onSlashCommand, modelManagement, onOpenGoals, onRightPanelOpen, onOpenMonitor, onPaneArtifactsChange, registerContextUsageControls, onBeforeContextCompress, onOpenContextUsage, messageTurnOutputs, renderPaneHeaderActions, includeOtherWorkspaces, workspaceCwd, restartSseOnPrompt, historyPageSize, voiceUserRevision, voiceWorkspaceRevisions, voiceWorkspaces, sessionWorkflowEnabled, showResponseTokensPerSecond, planControlVisible, }: SplitViewProps): import("react/jsx-runtime").JSX.Element;
77
+ export declare function SplitView({ sessionIds, showSessionDetails, onPanesChange, onAssistantTurnSettled, onPendingPanesChange, onExit, onError, onImageIngestionNotice, onSlashCommand, modelManagement, unavailableModels, mountUnavailableModelTooltip, onOpenGoals, onRightPanelOpen, onOpenMonitor, onPaneArtifactsChange, registerContextUsageControls, onBeforeContextCompress, onOpenContextUsage, messageTurnOutputs, renderPaneHeaderActions, includeOtherWorkspaces, workspaceCwd, restartSseOnPrompt, historyPageSize, voiceUserRevision, voiceWorkspaceRevisions, voiceWorkspaces, sessionWorkflowEnabled, showResponseTokensPerSecond, planControlVisible, }: SplitViewProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type ReactElement } from 'react';
7
+ import type { WebShellUnavailableModel, WebShellUnavailableModelTooltipMount } from '../unavailableModels';
8
+ export declare function UnavailableModelTooltip({ model, mount, children, }: {
9
+ model: WebShellUnavailableModel;
10
+ mount?: WebShellUnavailableModelTooltipMount;
11
+ children: ReactElement;
12
+ }): import("react/jsx-runtime").JSX.Element;
@@ -5,6 +5,7 @@ import { type DaemonSessionOwnerSnapshot, type DaemonSessionActions } from '@qwe
5
5
  import { type TurnOutputFileChange, type TurnOutputOpenRequest, type TurnOutputScheduledTask } from './TurnOutputs';
6
6
  import type { EnvironmentAgentTask } from '../panels/EnvironmentPanel';
7
7
  import type { WebShellModelManagementOptions } from '../../modelManagement';
8
+ import type { WebShellUnavailableModel, WebShellUnavailableModelTooltipMount } from '../../unavailableModels';
8
9
  import type { SessionWorkflowProjection } from '../workflow/session-workflow-model';
9
10
  import type { WebPreviewState } from '../preview/web-preview';
10
11
  import type { TrajectoryPageLoader } from '../../trajectory/useTrajectoryWindow';
@@ -256,6 +257,8 @@ interface ArtifactPanelProps {
256
257
  onError?: (error: unknown, fallback: string) => void;
257
258
  sessionWorkflowEnabled?: boolean;
258
259
  modelManagement?: WebShellModelManagementOptions;
260
+ unavailableModels?: readonly WebShellUnavailableModel[];
261
+ mountUnavailableModelTooltip?: WebShellUnavailableModelTooltipMount;
259
262
  workflow?: {
260
263
  todos: readonly TodoItem[];
261
264
  tools: readonly ACPToolCall[];
@@ -277,5 +280,5 @@ interface ArtifactPanelProps {
277
280
  fullscreen?: boolean;
278
281
  onToggleFullscreen?: () => void;
279
282
  }
280
- export declare function ArtifactPanel({ contextUsageControls, artifacts, tabs, activeTabId, reviewChanges, selectedReviewPath, panelWidth, workspaceCwd, loading, restoring, error, onSelectTab, onSelectTurnCallsPrompt, onCloseTab, onOpenFilePreview, latestReviewAvailable, onOpenLatestReview, onOpenTerminal, onOpenTrajectory, trajectoryTabId, onOpenFiles, onReferenceFile, onOpenWebPreview, onWebPreviewChange, items, sideTaskAvailable, sideTasks, archivedSideTasks, sideTasksLoading, onCreateSideTask, onOpenSideTask, onArchiveSideTasks, onUnarchiveSideTasks, onSideTaskMenuOpen, onCreateSideTaskSession, onSideTaskCreated, onSideTaskTitleChange, onSideTaskInitialPromptRefused, onNestedRightPanelOpen, onNestedArtifactsChange, onOpenNestedSubagent, agentTasks, agentTraceLoading, agentTraceError, onOpenWorkflowAgent, onError, sessionWorkflowEnabled, modelManagement, workflow, onImageIngestionNotice, deferSubagentMount, onClose, variant, fullscreen, onToggleFullscreen, }: ArtifactPanelProps): import("react/jsx-runtime").JSX.Element;
283
+ export declare function ArtifactPanel({ contextUsageControls, artifacts, tabs, activeTabId, reviewChanges, selectedReviewPath, panelWidth, workspaceCwd, loading, restoring, error, onSelectTab, onSelectTurnCallsPrompt, onCloseTab, onOpenFilePreview, latestReviewAvailable, onOpenLatestReview, onOpenTerminal, onOpenTrajectory, trajectoryTabId, onOpenFiles, onReferenceFile, onOpenWebPreview, onWebPreviewChange, items, sideTaskAvailable, sideTasks, archivedSideTasks, sideTasksLoading, onCreateSideTask, onOpenSideTask, onArchiveSideTasks, onUnarchiveSideTasks, onSideTaskMenuOpen, onCreateSideTaskSession, onSideTaskCreated, onSideTaskTitleChange, onSideTaskInitialPromptRefused, onNestedRightPanelOpen, onNestedArtifactsChange, onOpenNestedSubagent, agentTasks, agentTraceLoading, agentTraceError, onOpenWorkflowAgent, onError, sessionWorkflowEnabled, modelManagement, unavailableModels, mountUnavailableModelTooltip, workflow, onImageIngestionNotice, deferSubagentMount, onClose, variant, fullscreen, onToggleFullscreen, }: ArtifactPanelProps): import("react/jsx-runtime").JSX.Element;
281
284
  export {};
@@ -1,6 +1,7 @@
1
1
  import type { TurnOutputOpenRequest } from './TurnOutputs';
2
2
  import type { DaemonSessionArtifact } from '@qwen-code/sdk/daemon';
3
3
  import { type WebShellModelManagementOptions } from '../../modelManagement';
4
+ import type { WebShellUnavailableModel, WebShellUnavailableModelTooltipMount } from '../../unavailableModels';
4
5
  interface SideTaskPanelProps {
5
6
  tabId: string;
6
7
  sessionId?: string;
@@ -20,9 +21,11 @@ interface SideTaskPanelProps {
20
21
  onError?: (error: unknown, fallback: string) => void;
21
22
  sessionWorkflowEnabled?: boolean;
22
23
  modelManagement?: WebShellModelManagementOptions;
24
+ unavailableModels?: readonly WebShellUnavailableModel[];
25
+ mountUnavailableModelTooltip?: WebShellUnavailableModelTooltipMount;
23
26
  onImageIngestionNotice?: (tone: 'warning' | 'error', message: string) => void;
24
27
  /** Policy refused the stored initial prompt; the parent drops it from the tab. */
25
28
  onInitialPromptRefused?: (tabId: string) => void;
26
29
  }
27
- export declare function SideTaskPanel({ tabId, sessionId, parentSessionId, workspaceCwd, title, shouldNameFromFirstPrompt, initialPrompt, createSession, onCreated, onTitleChange, onRightPanelOpen, onArtifactsChange, onError, sessionWorkflowEnabled, modelManagement, onImageIngestionNotice, onInitialPromptRefused, }: SideTaskPanelProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare function SideTaskPanel({ tabId, sessionId, parentSessionId, workspaceCwd, title, shouldNameFromFirstPrompt, initialPrompt, createSession, onCreated, onTitleChange, onRightPanelOpen, onArtifactsChange, onError, sessionWorkflowEnabled, modelManagement, unavailableModels, mountUnavailableModelTooltip, onImageIngestionNotice, onInitialPromptRefused, }: SideTaskPanelProps): import("react/jsx-runtime").JSX.Element;
28
31
  export {};
@@ -14,7 +14,33 @@ export interface WorkspaceLocationOption {
14
14
  label: string;
15
15
  remote: boolean;
16
16
  }
17
+ export type WorkspaceSource = 'directory' | 'git';
18
+ export interface GitWorkspaceCloneJob {
19
+ jobId: string;
20
+ status: 'running' | 'succeeded' | 'failed' | 'cancelled';
21
+ percent?: number;
22
+ message?: string;
23
+ cwd?: string;
24
+ error?: {
25
+ code: string;
26
+ message: string;
27
+ };
28
+ }
29
+ export interface GitWorkspaceCloneControls {
30
+ start(input: {
31
+ url: string;
32
+ target: string;
33
+ }): Promise<{
34
+ jobId: string;
35
+ }>;
36
+ poll(jobId: string): Promise<GitWorkspaceCloneJob>;
37
+ cancel(jobId: string): Promise<void>;
38
+ }
17
39
  interface AddWorkspaceDialogProps {
40
+ /** Overrides the default "Add Workspace" heading. */
41
+ title?: string;
42
+ /** Overrides the default submit label; the in-flight label is unchanged. */
43
+ submitLabel?: string;
18
44
  executionMode?: WorkspaceExecutionMode;
19
45
  onExecutionModeChange?: (mode: WorkspaceExecutionMode) => void;
20
46
  executionModeLocked?: boolean;
@@ -35,6 +61,11 @@ interface AddWorkspaceDialogProps {
35
61
  onSuggest?: (prefix: string) => Promise<WorkspacePathSuggestions>;
36
62
  onPick?: () => Promise<string | undefined>;
37
63
  persistenceSupported?: boolean;
64
+ /**
65
+ * Git clone controls. Presence means the connected daemon advertises
66
+ * `git_workspace_clone`; the source selector is hidden otherwise.
67
+ */
68
+ gitClone?: GitWorkspaceCloneControls;
38
69
  }
39
- export declare function AddWorkspaceDialog({ executionMode, onExecutionModeChange, executionModeLocked, browseDirectories, initialPath, pathHint, pathPlaceholder, onClose, onAdd, displayNameEnabled, locations, selectedLocation, onLocationChange, onSuggest, onPick, persistenceSupported, }: AddWorkspaceDialogProps): import("react/jsx-runtime").JSX.Element;
70
+ export declare function AddWorkspaceDialog({ title, submitLabel, executionMode, onExecutionModeChange, executionModeLocked, browseDirectories, initialPath, pathHint, pathPlaceholder, onClose, onAdd, displayNameEnabled, locations, selectedLocation, onLocationChange, onSuggest, onPick, persistenceSupported, gitClone, }: AddWorkspaceDialogProps): import("react/jsx-runtime").JSX.Element;
40
71
  export {};
@@ -24,7 +24,11 @@ interface ScheduledTasksDialogProps {
24
24
  lockedWorkspace?: DaemonWorkspaceCapability;
25
25
  currentSession?: DaemonSessionSummary;
26
26
  currentSessionSchedulingAvailable?: boolean;
27
+ /** The daemon advertises `scheduled_task_gate`: the form offers a gate
28
+ * command and the request carries it. An older daemon would drop the field
29
+ * silently, so it is never sent without the capability. */
30
+ gateAvailable?: boolean;
27
31
  onError: (error: unknown, fallback: string) => void;
28
32
  }
29
- export declare function ScheduledTasksDialog({ onRunPrompt, onCreateViaChat, onOpenSession, workspaces, lockedWorkspace, currentSession, currentSessionSchedulingAvailable, onError, }: ScheduledTasksDialogProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare function ScheduledTasksDialog({ onRunPrompt, onCreateViaChat, onOpenSession, workspaces, lockedWorkspace, currentSession, currentSessionSchedulingAvailable, gateAvailable, onError, }: ScheduledTasksDialogProps): import("react/jsx-runtime").JSX.Element;
30
34
  export {};
@@ -59,4 +59,5 @@ export declare function formatCountdown(msRemaining: number, t: TranslateFn): st
59
59
  export declare function describeLastRun(task: {
60
60
  createdAt: number;
61
61
  lastFiredAt: number | null;
62
+ gate?: string | null;
62
63
  }, t: TranslateFn): string;
@@ -1,9 +1,15 @@
1
+ import type { ManagedAgentProvider } from '../managed/managed-agent-provider';
1
2
  import { type Ref } from 'react';
2
3
  import type { EmbeddedManagerPage } from '../plugins/manager-page';
3
4
  interface ExtensionsManagerPageProps {
5
+ managed?: {
6
+ provider: ManagedAgentProvider;
7
+ workspaceId?: string;
8
+ sessionId?: string;
9
+ };
4
10
  onClose: () => void;
5
11
  initialFocusRef?: Ref<HTMLHeadingElement>;
6
12
  embedded?: EmbeddedManagerPage;
7
13
  }
8
- export declare function ExtensionsManagerPage({ onClose, initialFocusRef, embedded, }: ExtensionsManagerPageProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function ExtensionsManagerPage(props: ExtensionsManagerPageProps): import("react/jsx-runtime").JSX.Element;
9
15
  export {};
@@ -0,0 +1,17 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { ManagedAgentProvider, ManagedAgentSessionSummary } from './managed-agent-provider';
3
+ export interface ManagedArchivedSessionsStatus {
4
+ count: number;
5
+ loading: boolean;
6
+ error: boolean;
7
+ }
8
+ export declare function ManagedArchivedSessions({ provider, clientId, sessionId, active, onSelectSession, renderSessionActions, onSessionsChange, onStatusChange, }: {
9
+ provider: ManagedAgentProvider;
10
+ clientId: string;
11
+ sessionId?: string;
12
+ active: boolean;
13
+ onSelectSession: (sessionId: string, workspaceId?: string) => void;
14
+ renderSessionActions: (session: ManagedAgentSessionSummary) => ReactNode;
15
+ onSessionsChange: (sessions: ManagedAgentSessionSummary[]) => void;
16
+ onStatusChange?: (status: ManagedArchivedSessionsStatus) => void;
17
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { ManagedAgentProvider } from './managed-agent-provider';
2
+ export declare function ManagedChildSessionView({ provider, clientId, sessionId, onClose, restoreFocus, }: {
3
+ provider: ManagedAgentProvider;
4
+ clientId: string;
5
+ sessionId: string;
6
+ onClose(): void;
7
+ restoreFocus(): void;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { ManagedAgentProvider } from './managed-agent-provider';
2
+ export interface ManagedExtensionsManagerPageProps {
3
+ provider: ManagedAgentProvider;
4
+ workspaceId?: string;
5
+ sessionId?: string;
6
+ onClose: () => void;
7
+ }
8
+ export declare function ManagedExtensionsManagerPage({ provider, workspaceId, sessionId, onClose, }: ManagedExtensionsManagerPageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { ManagedAgentProvider } from './managed-agent-provider';
2
+ export interface ManagedMcpManagerPageProps {
3
+ provider: ManagedAgentProvider;
4
+ sessionId?: string;
5
+ workspaceId?: string;
6
+ onClose?: () => void;
7
+ }
8
+ export declare function ManagedMcpManagerPage(props: ManagedMcpManagerPageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import type { ManagedPermissionRules } from './managed-agent-provider';
2
+ export declare function ManagedPermissionRulesDialog({ rules, revision, disabled, busy, errorCode, onSave, }: {
3
+ rules?: ManagedPermissionRules;
4
+ revision: number;
5
+ disabled: boolean;
6
+ busy: boolean;
7
+ errorCode?: string;
8
+ onSave: (rules: ManagedPermissionRules) => Promise<boolean | undefined>;
9
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import type { ManagedSessionRecovery } from './managed-agent-provider';
2
+ export declare function ManagedRecoveryPanel({ recovery, busy, error, onRecheck, onCancel, onHandoff, }: {
3
+ recovery: ManagedSessionRecovery;
4
+ busy: boolean;
5
+ error?: string;
6
+ onRecheck: () => void;
7
+ onCancel?: () => void;
8
+ onHandoff?: () => void;
9
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,20 @@
1
+ import type { ManagedAgentSessionSummary, ManagedLifecycleAction } from './managed-agent-provider';
2
+ import type { ManagedLifecycleState } from './use-managed-session-lifecycle';
3
+ export declare function managedSessionActions(session: ManagedAgentSessionSummary): ManagedLifecycleAction[];
4
+ export declare function ManagedSessionActions({ session, sidebar, lifecycle, exporting, state, onAction, onExport, onConfirm, onRename, }: {
5
+ session: ManagedAgentSessionSummary;
6
+ sidebar?: boolean;
7
+ lifecycle: boolean;
8
+ exporting?: boolean;
9
+ state?: ManagedLifecycleState;
10
+ onAction: (session: ManagedAgentSessionSummary, action: ManagedLifecycleAction) => void;
11
+ onExport?: (sessionId: string, format: 'html' | 'md') => void;
12
+ onConfirm: (sessionId: string) => void;
13
+ onRename?: () => void;
14
+ }): import("react/jsx-runtime").JSX.Element | null;
15
+ export declare function ManagedLifecycleConfirmation({ session, action, onConfirm, onClose, }: {
16
+ session: ManagedAgentSessionSummary;
17
+ action: ManagedLifecycleAction;
18
+ onConfirm: () => void;
19
+ onClose: () => void;
20
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type ManagedAgentSessionSummary } from './managed-agent-provider';
3
+ export declare function ManagedSessionNavigationRow({ session, active, workspaceLabel, onSelect, actions, }: {
4
+ session: ManagedAgentSessionSummary;
5
+ active: boolean;
6
+ workspaceLabel?: string;
7
+ onSelect: () => void;
8
+ actions?: ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,8 @@
1
1
  import type { WorkspaceSelectorOption } from '../WorkspaceSelector';
2
2
  import type { ManagedCreationSkillsSource } from './managed-creation-skills';
3
+ import { type ManagedArchivedSessionsStatus } from './ManagedArchivedSessions';
3
4
  import type { ManagedAgentProvider, ManagedAgentWorkspace } from './managed-agent-provider';
4
- export declare function ManagedSessionsPage({ sessionId, workspaceCreationOpen, onWorkspaceCreationOpenChange, onWorkspaceCreated, onOpenLocalWorkspace, daemonWorkspaces, onSelectDaemonWorkspace, onWorkspacesChange, onSelectSession, onOpenSession, workspaceId, onSelectWorkspace, onSessionWorkspaceChange, workspaceCwd, managedAgentProvider, navigationTarget, interactive, creationSkills, onManageSkills, navigationActive, navigationSearch, }: {
5
+ export declare function ManagedSessionsPage({ sessionId, workspaceCreationOpen, onWorkspaceCreationOpenChange, onWorkspaceCreated, onOpenLocalWorkspace, daemonWorkspaces, onSelectDaemonWorkspace, onWorkspacesChange, onSelectSession, onOpenSession, workspaceId, onSelectWorkspace, onSessionWorkspaceChange, managedAgentProvider, navigationTarget, archivedNavigationTarget, onArchivedSessionsStatusChange, interactive, creationSkills, navigationActive, navigationSearch, }: {
5
6
  sessionId?: string;
6
7
  workspaceCreationOpen?: boolean;
7
8
  onWorkspaceCreationOpenChange?: (open: boolean) => void;
@@ -15,13 +16,13 @@ export declare function ManagedSessionsPage({ sessionId, workspaceCreationOpen,
15
16
  workspaceId?: string;
16
17
  onSelectWorkspace?: (workspaceId: string) => void;
17
18
  onSessionWorkspaceChange?: (workspaceId: string | null) => void;
18
- workspaceCwd?: string;
19
19
  managedAgentProvider?: ManagedAgentProvider;
20
20
  /** Null keeps home layout while its sidebar slot is temporarily unmounted. */
21
21
  navigationTarget?: HTMLElement | null;
22
+ archivedNavigationTarget?: HTMLElement | null;
23
+ onArchivedSessionsStatusChange?: (status: ManagedArchivedSessionsStatus) => void;
22
24
  interactive?: boolean;
23
25
  creationSkills?: ManagedCreationSkillsSource;
24
- onManageSkills?: () => void;
25
26
  navigationActive?: boolean;
26
27
  navigationSearch?: string;
27
28
  }): import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,7 @@ import type { ManagedToolResultReader } from './managed-tool-result-types';
2
2
  import type { useManagedTasks } from './use-managed-tasks';
3
3
  import type { ManagedTaskCancelState, useManagedTaskCancel } from './use-managed-task-cancel';
4
4
  export declare function taskCancelMessage(state: ManagedTaskCancelState): string;
5
- export declare function ManagedTaskPanel({ wide, tasks, cancel, canCancel, reader, clientId, sessionId, onClose, restoreFocus, }: {
5
+ export declare function ManagedTaskPanel({ wide, tasks, cancel, canCancel, reader, clientId, sessionId, onClose, restoreFocus, waitingSessions, onOpenChild, }: {
6
6
  wide: boolean;
7
7
  tasks: ReturnType<typeof useManagedTasks>;
8
8
  cancel: ReturnType<typeof useManagedTaskCancel>;
@@ -12,4 +12,6 @@ export declare function ManagedTaskPanel({ wide, tasks, cancel, canCancel, reade
12
12
  sessionId: string;
13
13
  onClose: () => void;
14
14
  restoreFocus: () => void;
15
+ waitingSessions?: ReadonlySet<string>;
16
+ onOpenChild?: (sessionId: string) => void;
15
17
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import type { ManagedUserMessageCommand, ManagedUserMessageSnapshot } from './use-managed-user-messages';
2
+ export declare function ManagedUserMessageQueue({ snapshot, command, }: {
3
+ snapshot: ManagedUserMessageSnapshot;
4
+ command: (command: ManagedUserMessageCommand) => Promise<void>;
5
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,5 +1,6 @@
1
+ import { type ReactNode } from 'react';
1
2
  import type { ManagedAgentProvider, ManagedAgentSessionSummary, ManagedAgentWorkspace } from './managed-agent-provider';
2
- export declare function ManagedWorkspaceNavigation({ provider, clientId, sessions, sessionId, workspaceId, active, search, revision, onSelectWorkspace, onSelectSession, onWorkspacesChange, }: {
3
+ export declare function ManagedWorkspaceNavigation({ provider, clientId, sessions, sessionId, workspaceId, active, search, revision, onSelectWorkspace, onSelectSession, onWorkspacesChange, renderSessionActions, }: {
3
4
  provider: ManagedAgentProvider;
4
5
  clientId: string;
5
6
  sessions: ManagedAgentSessionSummary[];
@@ -11,4 +12,5 @@ export declare function ManagedWorkspaceNavigation({ provider, clientId, session
11
12
  onSelectWorkspace?: (workspaceId: string) => void;
12
13
  onSelectSession: (sessionId: string, workspaceId?: string) => void;
13
14
  onWorkspacesChange?: (workspaces: ManagedAgentWorkspace[]) => void;
15
+ renderSessionActions?: (session: ManagedAgentSessionSummary) => ReactNode;
14
16
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { type ManagedCreationSkillsSource } from './managed-creation-skills';
2
2
  import type { WorkspaceSelectorOption } from '../WorkspaceSelector';
3
3
  import type { ManagedAgentProvider } from './managed-agent-provider';
4
- export declare function WorkspaceBindingCreator({ provider, workspaceCreationOpen, onWorkspaceCreationOpenChange, onOpenLocalWorkspace, daemonWorkspaces, onSelectDaemonWorkspace, creationOnly, clientId, onCreated, onAbandoned, workspaceId, onSelectWorkspace, onWorkspaceCreated, interactive, creationSkills, onManageSkills, }: {
4
+ export declare function WorkspaceBindingCreator({ provider, workspaceCreationOpen, onWorkspaceCreationOpenChange, onOpenLocalWorkspace, daemonWorkspaces, onSelectDaemonWorkspace, creationOnly, clientId, onCreated, onAbandoned, workspaceId: explicitWorkspaceId, onSelectWorkspace, onWorkspaceCreated, interactive, creationSkills, handoff, onOpenHandoffSource, }: {
5
5
  provider: ManagedAgentProvider;
6
6
  workspaceCreationOpen?: boolean;
7
7
  onWorkspaceCreationOpenChange?: (open: boolean) => void;
@@ -17,5 +17,6 @@ export declare function WorkspaceBindingCreator({ provider, workspaceCreationOpe
17
17
  onWorkspaceCreated?: (workspaceId: string) => void;
18
18
  interactive?: boolean;
19
19
  creationSkills?: ManagedCreationSkillsSource;
20
- onManageSkills?: () => void;
20
+ handoff?: import('./managed-recovery-handoff').ManagedRecoveryHandoff;
21
+ onOpenHandoffSource?: () => void;
21
22
  }): import("react/jsx-runtime").JSX.Element;