@qwen-code/web-shell 0.24.1-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/README.md +651 -0
  2. package/dist/daemon-react-sdk.js +53 -0
  3. package/dist/index.js +109094 -0
  4. package/dist/sw.js +9 -0
  5. package/dist/toolNames-DgCpmhML.js +17992 -0
  6. package/dist/transcript.js +31609 -0
  7. package/dist/types/App.d.ts +419 -0
  8. package/dist/types/WebShellContexts.d.ts +31 -0
  9. package/dist/types/adapters/localizedMessages.d.ts +24 -0
  10. package/dist/types/adapters/messageTypes.d.ts +194 -0
  11. package/dist/types/adapters/parallelAgentGrouping.d.ts +18 -0
  12. package/dist/types/adapters/promptTypes.d.ts +12 -0
  13. package/dist/types/adapters/toolClassification.d.ts +10 -0
  14. package/dist/types/adapters/transcriptAdapter.d.ts +3 -0
  15. package/dist/types/adapters/transcriptToMessages.d.ts +41 -0
  16. package/dist/types/adapters/types.d.ts +123 -0
  17. package/dist/types/brandContext.d.ts +44 -0
  18. package/dist/types/browser-turn-notifications.d.ts +36 -0
  19. package/dist/types/completions/slashCompletion.d.ts +35 -0
  20. package/dist/types/components/AtMentionPanel.d.ts +13 -0
  21. package/dist/types/components/BranchPickerPopover.d.ts +73 -0
  22. package/dist/types/components/ChatContextHeader.d.ts +18 -0
  23. package/dist/types/components/ChatEditor.d.ts +134 -0
  24. package/dist/types/components/ChatPane.d.ts +93 -0
  25. package/dist/types/components/ContextCompressionFeedback.d.ts +5 -0
  26. package/dist/types/components/ContextUsagePopover.d.ts +10 -0
  27. package/dist/types/components/ErrorBoundary.d.ts +40 -0
  28. package/dist/types/components/FileAttachmentContent.d.ts +4 -0
  29. package/dist/types/components/FileTypeIcon.d.ts +6 -0
  30. package/dist/types/components/GitBranchIndicator.d.ts +66 -0
  31. package/dist/types/components/GitModePopover.d.ts +23 -0
  32. package/dist/types/components/GlobalTurnNavigation.d.ts +16 -0
  33. package/dist/types/components/GoalStatusStrip.d.ts +13 -0
  34. package/dist/types/components/InsightProgress.d.ts +12 -0
  35. package/dist/types/components/InsightReady.d.ts +6 -0
  36. package/dist/types/components/LocalControlQrButton.d.ts +12 -0
  37. package/dist/types/components/LocalFilesControl.d.ts +74 -0
  38. package/dist/types/components/MessageItem.d.ts +43 -0
  39. package/dist/types/components/MessageList.d.ts +222 -0
  40. package/dist/types/components/MessageTimestamp.d.ts +32 -0
  41. package/dist/types/components/ModeIcon.d.ts +3 -0
  42. package/dist/types/components/MonitorIcon.d.ts +2 -0
  43. package/dist/types/components/PaneHeaderActions.d.ts +23 -0
  44. package/dist/types/components/PromptChevron.d.ts +7 -0
  45. package/dist/types/components/QueuedPromptDisplay.d.ts +57 -0
  46. package/dist/types/components/RootErrorFallback.d.ts +21 -0
  47. package/dist/types/components/SessionOverviewPanel.d.ts +46 -0
  48. package/dist/types/components/SessionPrBadge.d.ts +24 -0
  49. package/dist/types/components/SessionPrStateIcon.d.ts +32 -0
  50. package/dist/types/components/SessionRecoveryBanner.d.ts +3 -0
  51. package/dist/types/components/ShadowDomBoundary.d.ts +11 -0
  52. package/dist/types/components/SplitView.d.ts +69 -0
  53. package/dist/types/components/StandaloneAuth.d.ts +17 -0
  54. package/dist/types/components/StatusBar.d.ts +26 -0
  55. package/dist/types/components/StreamingStatus.d.ts +20 -0
  56. package/dist/types/components/Tips.d.ts +1 -0
  57. package/dist/types/components/ToastHost.d.ts +25 -0
  58. package/dist/types/components/TranscriptViewport.d.ts +17 -0
  59. package/dist/types/components/WebShellTranscript.d.ts +38 -0
  60. package/dist/types/components/WelcomeHeader.d.ts +8 -0
  61. package/dist/types/components/WorkspaceIndicator.d.ts +27 -0
  62. package/dist/types/components/WorkspaceSelector.d.ts +29 -0
  63. package/dist/types/components/WorkspaceSessionProvider.d.ts +19 -0
  64. package/dist/types/components/WorkspaceUnavailableState.d.ts +11 -0
  65. package/dist/types/components/agents/AgentCreatePage.d.ts +9 -0
  66. package/dist/types/components/agents/AgentsManagerPage.d.ts +8 -0
  67. package/dist/types/components/agents/agent-tool-options.d.ts +9 -0
  68. package/dist/types/components/agents/agents-manager-logic.d.ts +8 -0
  69. package/dist/types/components/artifacts/AgentWorkflow.d.ts +7 -0
  70. package/dist/types/components/artifacts/ArtifactIcon.d.ts +9 -0
  71. package/dist/types/components/artifacts/ArtifactPanel.d.ts +229 -0
  72. package/dist/types/components/artifacts/CodeReviewArtifactDetail.d.ts +63 -0
  73. package/dist/types/components/artifacts/ContextUsagePanel.d.ts +7 -0
  74. package/dist/types/components/artifacts/LineStats.d.ts +12 -0
  75. package/dist/types/components/artifacts/SideTaskPanel.d.ts +24 -0
  76. package/dist/types/components/artifacts/SubagentDetail.d.ts +14 -0
  77. package/dist/types/components/artifacts/TokenUsagePanel.d.ts +7 -0
  78. package/dist/types/components/artifacts/TurnOutputs.d.ts +121 -0
  79. package/dist/types/components/artifacts/artifactUtils.d.ts +37 -0
  80. package/dist/types/components/artifacts/turnOutputSelectors.d.ts +7 -0
  81. package/dist/types/components/artifacts/useArtifactWorkspaceTarget.d.ts +16 -0
  82. package/dist/types/components/channels/ChannelEditorDialog.d.ts +25 -0
  83. package/dist/types/components/channels/ChannelPairingRequests.d.ts +15 -0
  84. package/dist/types/components/channels/ChannelsManagerPage.d.ts +12 -0
  85. package/dist/types/components/channels/channel-editor-state.d.ts +25 -0
  86. package/dist/types/components/channels/channel-platform.d.ts +9 -0
  87. package/dist/types/components/composer/AddMenu.d.ts +20 -0
  88. package/dist/types/components/composer/prependSkillInvocation.d.ts +12 -0
  89. package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +24 -0
  90. package/dist/types/components/dialogs/ApprovalModeDialog.d.ts +7 -0
  91. package/dist/types/components/dialogs/DaemonStatusDialog.d.ts +3 -0
  92. package/dist/types/components/dialogs/DeleteSessionDialog.d.ts +8 -0
  93. package/dist/types/components/dialogs/DialogShell.d.ts +15 -0
  94. package/dist/types/components/dialogs/GitDialog.d.ts +14 -0
  95. package/dist/types/components/dialogs/GitDiffDialog.d.ts +14 -0
  96. package/dist/types/components/dialogs/GitHubPrsDialog.d.ts +9 -0
  97. package/dist/types/components/dialogs/GitLogDialog.d.ts +14 -0
  98. package/dist/types/components/dialogs/GoalEditDialog.d.ts +9 -0
  99. package/dist/types/components/dialogs/GoalsDialog.d.ts +16 -0
  100. package/dist/types/components/dialogs/HelpDialog.d.ts +6 -0
  101. package/dist/types/components/dialogs/ModelDialog.d.ts +28 -0
  102. package/dist/types/components/dialogs/ModelFallbacksDialog.d.ts +14 -0
  103. package/dist/types/components/dialogs/ReleaseSessionDialog.d.ts +8 -0
  104. package/dist/types/components/dialogs/ResumeDialog.d.ts +7 -0
  105. package/dist/types/components/dialogs/RewindDialog.d.ts +12 -0
  106. package/dist/types/components/dialogs/ScheduledTasksDialog.d.ts +30 -0
  107. package/dist/types/components/dialogs/SessionRow.d.ts +46 -0
  108. package/dist/types/components/dialogs/SvgLineChart.d.ts +35 -0
  109. package/dist/types/components/dialogs/ThemeDialog.d.ts +8 -0
  110. package/dist/types/components/dialogs/TokenHeatmap.d.ts +18 -0
  111. package/dist/types/components/dialogs/ToolsDialog.d.ts +1 -0
  112. package/dist/types/components/dialogs/UsageDashboardTab.d.ts +13 -0
  113. package/dist/types/components/dialogs/dialogStyles.d.ts +2 -0
  114. package/dist/types/components/dialogs/scheduledTasksSchedule.d.ts +62 -0
  115. package/dist/types/components/extensions/ExtensionsManagerPage.d.ts +9 -0
  116. package/dist/types/components/extensions/extensions-manager-logic.d.ts +3 -0
  117. package/dist/types/components/local-control-api.d.ts +30 -0
  118. package/dist/types/components/mcp/McpManagerPage.d.ts +12 -0
  119. package/dist/types/components/messages/AskUserQuestion.d.ts +18 -0
  120. package/dist/types/components/messages/AssistantMessage.d.ts +40 -0
  121. package/dist/types/components/messages/AuthMessage.d.ts +6 -0
  122. package/dist/types/components/messages/BtwMessage.d.ts +7 -0
  123. package/dist/types/components/messages/ContextUsageMessage.d.ts +9 -0
  124. package/dist/types/components/messages/EnhancedMarkdownTable.d.ts +31 -0
  125. package/dist/types/components/messages/FootnoteCard.d.ts +11 -0
  126. package/dist/types/components/messages/FootnotePreviewContent.d.ts +9 -0
  127. package/dist/types/components/messages/GoalApprovalContent.d.ts +5 -0
  128. package/dist/types/components/messages/GoalStatusMessage.d.ts +15 -0
  129. package/dist/types/components/messages/LinkifiedText.d.ts +8 -0
  130. package/dist/types/components/messages/LocalControlSettingsCard.d.ts +1 -0
  131. package/dist/types/components/messages/Markdown.d.ts +38 -0
  132. package/dist/types/components/messages/MarkdownChartRenderer.d.ts +65 -0
  133. package/dist/types/components/messages/McpApp.d.ts +21 -0
  134. package/dist/types/components/messages/McpStatusMessage.d.ts +22 -0
  135. package/dist/types/components/messages/MemoryMessage.d.ts +9 -0
  136. package/dist/types/components/messages/ModelManagementSection.d.ts +23 -0
  137. package/dist/types/components/messages/PlanExecutionView.d.ts +91 -0
  138. package/dist/types/components/messages/PlanMessage.d.ts +8 -0
  139. package/dist/types/components/messages/QuestionAnswerMessage.d.ts +7 -0
  140. package/dist/types/components/messages/SettingsMessage.d.ts +46 -0
  141. package/dist/types/components/messages/StatsMessage.d.ts +14 -0
  142. package/dist/types/components/messages/StatusMessage.d.ts +18 -0
  143. package/dist/types/components/messages/SystemMessage.d.ts +29 -0
  144. package/dist/types/components/messages/TasksStatusMessage.d.ts +38 -0
  145. package/dist/types/components/messages/TodoView.d.ts +17 -0
  146. package/dist/types/components/messages/ToolApproval.d.ts +28 -0
  147. package/dist/types/components/messages/ToolFilePreviewButton.d.ts +7 -0
  148. package/dist/types/components/messages/ToolGroup.d.ts +50 -0
  149. package/dist/types/components/messages/UserMessage.d.ts +46 -0
  150. package/dist/types/components/messages/UserShellMessage.d.ts +6 -0
  151. package/dist/types/components/messages/WorkflowExecutionView.d.ts +48 -0
  152. package/dist/types/components/messages/agentForest.d.ts +96 -0
  153. package/dist/types/components/messages/codeHighlighter.d.ts +25 -0
  154. package/dist/types/components/messages/rehype-footnote-cards.d.ts +22 -0
  155. package/dist/types/components/messages/toolFormatting.d.ts +63 -0
  156. package/dist/types/components/messages/tools/DiffView.d.ts +5 -0
  157. package/dist/types/components/messages/tools/ParallelAgentsGroup.d.ts +12 -0
  158. package/dist/types/components/messages/tools/SubAgentPanel.d.ts +10 -0
  159. package/dist/types/components/messages/tools/toolDisplay.d.ts +7 -0
  160. package/dist/types/components/panels/EnvironmentPanel.d.ts +45 -0
  161. package/dist/types/components/panels/SourcesSection.d.ts +25 -0
  162. package/dist/types/components/panels/TodoPanel.d.ts +11 -0
  163. package/dist/types/components/plugins/PluginManagerPage.d.ts +8 -0
  164. package/dist/types/components/plugins/manager-page.d.ts +4 -0
  165. package/dist/types/components/preview/SavedWebPreview.d.ts +5 -0
  166. package/dist/types/components/preview/WebPreviewPanel.d.ts +5 -0
  167. package/dist/types/components/preview/web-preview.d.ts +7 -0
  168. package/dist/types/components/sidebar/SessionDetailsTooltip.d.ts +17 -0
  169. package/dist/types/components/sidebar/SessionGroupSection.d.ts +19 -0
  170. package/dist/types/components/sidebar/StandaloneRecents.d.ts +33 -0
  171. package/dist/types/components/sidebar/WebShellSidebar.d.ts +139 -0
  172. package/dist/types/components/sidebar/WorkspaceDetailsTooltip.d.ts +49 -0
  173. package/dist/types/components/sidebar/WorkspaceMenu.d.ts +41 -0
  174. package/dist/types/components/sidebar/WorkspaceRenameDialog.d.ts +18 -0
  175. package/dist/types/components/sidebar/WorkspaceSection.d.ts +112 -0
  176. package/dist/types/components/sidebar/channelSessionGroups.d.ts +7 -0
  177. package/dist/types/components/sidebar/collapsedSessionSections.d.ts +25 -0
  178. package/dist/types/components/sidebar/scheduled-task-session-groups.d.ts +12 -0
  179. package/dist/types/components/sidebar/sessionDetailsCollisionBoundary.d.ts +1 -0
  180. package/dist/types/components/sidebar/sessionSearch.d.ts +28 -0
  181. package/dist/types/components/sidebar/sessionTitleScroll.d.ts +7 -0
  182. package/dist/types/components/sidebar/sidebarToggleShortcut.d.ts +18 -0
  183. package/dist/types/components/sidebar/useSessionContentSearch.d.ts +20 -0
  184. package/dist/types/components/sidebar/useWorkspaceOverview.d.ts +40 -0
  185. package/dist/types/components/sidebar/workspaceExpansion.d.ts +4 -0
  186. package/dist/types/components/sidebar/workspaceOverviewModel.d.ts +123 -0
  187. package/dist/types/components/skills/SkillInstallDialog.d.ts +8 -0
  188. package/dist/types/components/skills/SkillsManagerPage.d.ts +11 -0
  189. package/dist/types/components/skills/skills-manager-logic.d.ts +6 -0
  190. package/dist/types/components/sources/SourceList.d.ts +5 -0
  191. package/dist/types/components/sources/TurnSources.d.ts +5 -0
  192. package/dist/types/components/sources/sourceEntries.d.ts +8 -0
  193. package/dist/types/components/summaryRunId.d.ts +9 -0
  194. package/dist/types/components/terminal/TerminalPanel.d.ts +17 -0
  195. package/dist/types/components/toolbarDropdown.d.ts +39 -0
  196. package/dist/types/components/ui/alert-dialog.d.ts +19 -0
  197. package/dist/types/components/ui/alert.d.ts +10 -0
  198. package/dist/types/components/ui/badge.d.ts +9 -0
  199. package/dist/types/components/ui/breadcrumb.d.ts +11 -0
  200. package/dist/types/components/ui/button.d.ts +11 -0
  201. package/dist/types/components/ui/card.d.ts +11 -0
  202. package/dist/types/components/ui/checkbox.d.ts +4 -0
  203. package/dist/types/components/ui/data-table.d.ts +31 -0
  204. package/dist/types/components/ui/dialog.d.ts +19 -0
  205. package/dist/types/components/ui/drawer.d.ts +16 -0
  206. package/dist/types/components/ui/dropdown-menu.d.ts +29 -0
  207. package/dist/types/components/ui/empty.d.ts +11 -0
  208. package/dist/types/components/ui/field.d.ts +24 -0
  209. package/dist/types/components/ui/input.d.ts +3 -0
  210. package/dist/types/components/ui/label.d.ts +4 -0
  211. package/dist/types/components/ui/management-notice.d.ts +12 -0
  212. package/dist/types/components/ui/popover.d.ts +13 -0
  213. package/dist/types/components/ui/radio-group.d.ts +5 -0
  214. package/dist/types/components/ui/scroll-area.d.ts +5 -0
  215. package/dist/types/components/ui/select.d.ts +16 -0
  216. package/dist/types/components/ui/separator.d.ts +4 -0
  217. package/dist/types/components/ui/skeleton.d.ts +2 -0
  218. package/dist/types/components/ui/spinner.d.ts +2 -0
  219. package/dist/types/components/ui/switch.d.ts +6 -0
  220. package/dist/types/components/ui/table.d.ts +10 -0
  221. package/dist/types/components/ui/tabs.d.ts +13 -0
  222. package/dist/types/components/ui/textarea.d.ts +3 -0
  223. package/dist/types/components/ui/toggle-group.d.ts +10 -0
  224. package/dist/types/components/ui/toggle.d.ts +9 -0
  225. package/dist/types/components/ui/tooltip.d.ts +7 -0
  226. package/dist/types/components/workflow/SessionWorkflowCockpit.d.ts +17 -0
  227. package/dist/types/components/workflow/SessionWorkflowInspector.d.ts +15 -0
  228. package/dist/types/components/workflow/session-workflow-model.d.ts +32 -0
  229. package/dist/types/components/workflows/WorkflowRunsPage.d.ts +6 -0
  230. package/dist/types/components/workspaces/WorkspaceRemovalDialog.d.ts +20 -0
  231. package/dist/types/components/workspaces/WorkspacesOverviewPanel.d.ts +21 -0
  232. package/dist/types/components/workspaces/useWorkspaceRemoval.d.ts +47 -0
  233. package/dist/types/config/daemon.d.ts +41 -0
  234. package/dist/types/config/standalone.d.ts +1 -0
  235. package/dist/types/constants/loadingPhrases.d.ts +4 -0
  236. package/dist/types/constants/localCommands.d.ts +27 -0
  237. package/dist/types/constants/sessions.d.ts +43 -0
  238. package/dist/types/constants/toolNames.d.ts +9 -0
  239. package/dist/types/customization.d.ts +508 -0
  240. package/dist/types/daemon/followupSidechannel.d.ts +11 -0
  241. package/dist/types/daemon/index.d.ts +14 -0
  242. package/dist/types/daemon/midTurnInjectedSidechannel.d.ts +37 -0
  243. package/dist/types/daemon/pendingPromptVersion.d.ts +19 -0
  244. package/dist/types/daemon/session/DaemonSessionProvider.d.ts +45 -0
  245. package/dist/types/daemon/session/actions.d.ts +100 -0
  246. package/dist/types/daemon/session/clientLifecycle.d.ts +21 -0
  247. package/dist/types/daemon/session/httpErrors.d.ts +9 -0
  248. package/dist/types/daemon/session/index.d.ts +15 -0
  249. package/dist/types/daemon/session/live-journal-repair.d.ts +19 -0
  250. package/dist/types/daemon/session/mappers.d.ts +71 -0
  251. package/dist/types/daemon/session/promptContent.d.ts +11 -0
  252. package/dist/types/daemon/session/selectors.d.ts +21 -0
  253. package/dist/types/daemon/session/session-context.d.ts +16 -0
  254. package/dist/types/daemon/session/status.d.ts +12 -0
  255. package/dist/types/daemon/session/transcript-page-table.d.ts +147 -0
  256. package/dist/types/daemon/session/turn-navigation-store.d.ts +117 -0
  257. package/dist/types/daemon/session/turn-notification-context.d.ts +43 -0
  258. package/dist/types/daemon/session/types.d.ts +568 -0
  259. package/dist/types/daemon/timing.d.ts +14 -0
  260. package/dist/types/daemon/useDaemonFollowupSuggestion.d.ts +77 -0
  261. package/dist/types/daemon/useDaemonMidTurnInjected.d.ts +30 -0
  262. package/dist/types/daemon/workspace/DaemonWorkspaceProvider.d.ts +21 -0
  263. package/dist/types/daemon/workspace/actions.d.ts +14 -0
  264. package/dist/types/daemon/workspace/hooks/index.d.ts +21 -0
  265. package/dist/types/daemon/workspace/hooks/useDaemonAgents.d.ts +22 -0
  266. package/dist/types/daemon/workspace/hooks/useDaemonAuth.d.ts +24 -0
  267. package/dist/types/daemon/workspace/hooks/useDaemonChannels.d.ts +33 -0
  268. package/dist/types/daemon/workspace/hooks/useDaemonDiagnostics.d.ts +10 -0
  269. package/dist/types/daemon/workspace/hooks/useDaemonFiles.d.ts +10 -0
  270. package/dist/types/daemon/workspace/hooks/useDaemonGlob.d.ts +8 -0
  271. package/dist/types/daemon/workspace/hooks/useDaemonMcp.d.ts +31 -0
  272. package/dist/types/daemon/workspace/hooks/useDaemonMemory.d.ts +16 -0
  273. package/dist/types/daemon/workspace/hooks/useDaemonProviders.d.ts +20 -0
  274. package/dist/types/daemon/workspace/hooks/useDaemonResource.d.ts +7 -0
  275. package/dist/types/daemon/workspace/hooks/useDaemonSessions.d.ts +48 -0
  276. package/dist/types/daemon/workspace/hooks/useDaemonSettings.d.ts +20 -0
  277. package/dist/types/daemon/workspace/hooks/useDaemonSkills.d.ts +30 -0
  278. package/dist/types/daemon/workspace/hooks/useDaemonStatusReport.d.ts +18 -0
  279. package/dist/types/daemon/workspace/hooks/useDaemonTools.d.ts +16 -0
  280. package/dist/types/daemon/workspace/hooks/useDaemonUsageDashboard.d.ts +27 -0
  281. package/dist/types/daemon/workspace/hooks/useWorkspaceEventReload.d.ts +6 -0
  282. package/dist/types/daemon/workspace/index.d.ts +10 -0
  283. package/dist/types/daemon/workspace/load-ready-skills.d.ts +7 -0
  284. package/dist/types/daemon/workspace/types.d.ts +415 -0
  285. package/dist/types/daemon-react-sdk.d.ts +319 -0
  286. package/dist/types/extensions/inputHighlight.d.ts +10 -0
  287. package/dist/types/hooks/daemonSessionMappers.d.ts +2 -0
  288. package/dist/types/hooks/useAnimationFrameTranscriptBlocks.d.ts +10 -0
  289. package/dist/types/hooks/useAnimationFrameValue.d.ts +1 -0
  290. package/dist/types/hooks/useAtMentionMenu.d.ts +72 -0
  291. package/dist/types/hooks/useAtMentionSources.d.ts +113 -0
  292. package/dist/types/hooks/useBackgroundTasks.d.ts +8 -0
  293. package/dist/types/hooks/useChatNavigationVisible.d.ts +2 -0
  294. package/dist/types/hooks/useComposerCore.d.ts +226 -0
  295. package/dist/types/hooks/useContextUsageControls.d.ts +26 -0
  296. package/dist/types/hooks/useCopiedFlash.d.ts +15 -0
  297. package/dist/types/hooks/useDelayedGlobalKeyDown.d.ts +1 -0
  298. package/dist/types/hooks/useExternalLinkOpener.d.ts +11 -0
  299. package/dist/types/hooks/useFileUpload.d.ts +62 -0
  300. package/dist/types/hooks/useFilterInput.d.ts +27 -0
  301. package/dist/types/hooks/useInputHistory.d.ts +17 -0
  302. package/dist/types/hooks/useIsLargeScreen.d.ts +20 -0
  303. package/dist/types/hooks/useIsTouchComposer.d.ts +36 -0
  304. package/dist/types/hooks/useListboxKeyboard.d.ts +42 -0
  305. package/dist/types/hooks/useMessages.d.ts +20 -0
  306. package/dist/types/hooks/useModelConfigurations.d.ts +11 -0
  307. package/dist/types/hooks/useNewSessionSuggestion.d.ts +26 -0
  308. package/dist/types/hooks/useOtherWorkspaceSessions.d.ts +11 -0
  309. package/dist/types/hooks/usePrefersReducedMotion.d.ts +1 -0
  310. package/dist/types/hooks/useQueuedPrompts.d.ts +74 -0
  311. package/dist/types/hooks/useScopedSessions.d.ts +65 -0
  312. package/dist/types/hooks/useSessionArtifacts.d.ts +10 -0
  313. package/dist/types/hooks/useSessionArtifactsChange.d.ts +12 -0
  314. package/dist/types/hooks/useSessionSources.d.ts +13 -0
  315. package/dist/types/hooks/useShallowMemo.d.ts +2 -0
  316. package/dist/types/hooks/useSharedNow.d.ts +1 -0
  317. package/dist/types/hooks/useStreamingLoadingMetrics.d.ts +19 -0
  318. package/dist/types/hooks/useTranscriptViewport.d.ts +31 -0
  319. package/dist/types/i18n.d.ts +14 -0
  320. package/dist/types/index.d.ts +69 -0
  321. package/dist/types/interactionBlockContext.d.ts +3 -0
  322. package/dist/types/lib/utils.d.ts +2 -0
  323. package/dist/types/live/HotkeySetter.d.ts +16 -0
  324. package/dist/types/live/LiveVoiceButton.d.ts +7 -0
  325. package/dist/types/live/LiveVoiceSettingsCard.d.ts +9 -0
  326. package/dist/types/live/useLiveVoice.d.ts +17 -0
  327. package/dist/types/live/useLiveVoiceSetup.d.ts +19 -0
  328. package/dist/types/local-files/bridge-client.d.ts +207 -0
  329. package/dist/types/local-files/capabilities.d.ts +33 -0
  330. package/dist/types/local-files/directory-handle-store.d.ts +15 -0
  331. package/dist/types/local-files/local-directory.d.ts +130 -0
  332. package/dist/types/local-files/mcp-server.d.ts +57 -0
  333. package/dist/types/local-files/pick-directory.d.ts +49 -0
  334. package/dist/types/local-files/useLocalFilesBridge.d.ts +64 -0
  335. package/dist/types/main.d.ts +6 -0
  336. package/dist/types/mcpAppHostContext.d.ts +1 -0
  337. package/dist/types/midTurnDedup.d.ts +52 -0
  338. package/dist/types/monitorDetailsContext.d.ts +12 -0
  339. package/dist/types/notification-text.d.ts +8 -0
  340. package/dist/types/portalRoot.d.ts +2 -0
  341. package/dist/types/pwa-registration.d.ts +10 -0
  342. package/dist/types/session-catalog/session-catalog-hooks.d.ts +121 -0
  343. package/dist/types/session-catalog/session-catalog-store.d.ts +143 -0
  344. package/dist/types/session-catalog/session-live-state-poll-interval.d.ts +2 -0
  345. package/dist/types/session-catalog/workspace-session-live-state.d.ts +20 -0
  346. package/dist/types/settings.d.ts +70 -0
  347. package/dist/types/shadowDom.d.ts +17 -0
  348. package/dist/types/subagentDetailsContext.d.ts +15 -0
  349. package/dist/types/themeContext.d.ts +12 -0
  350. package/dist/types/transcript.d.ts +33 -0
  351. package/dist/types/transcriptRenderMode.d.ts +5 -0
  352. package/dist/types/utils/ansi.d.ts +9 -0
  353. package/dist/types/utils/askUserPermission.d.ts +13 -0
  354. package/dist/types/utils/base64.d.ts +1 -0
  355. package/dist/types/utils/bounded-map.d.ts +11 -0
  356. package/dist/types/utils/clipboard.d.ts +31 -0
  357. package/dist/types/utils/commandDisplay.d.ts +7 -0
  358. package/dist/types/utils/composerInputState.d.ts +19 -0
  359. package/dist/types/utils/composerModels.d.ts +28 -0
  360. package/dist/types/utils/composerTag.d.ts +42 -0
  361. package/dist/types/utils/composerTasks.d.ts +16 -0
  362. package/dist/types/utils/contextUsage.d.ts +9 -0
  363. package/dist/types/utils/copyCommand.d.ts +18 -0
  364. package/dist/types/utils/cssUrlVar.d.ts +3 -0
  365. package/dist/types/utils/dialogLabels.d.ts +1 -0
  366. package/dist/types/utils/dom.d.ts +2 -0
  367. package/dist/types/utils/errorDetail.d.ts +1 -0
  368. package/dist/types/utils/escapeIntent.d.ts +29 -0
  369. package/dist/types/utils/externalOpen.d.ts +15 -0
  370. package/dist/types/utils/formatDateTime.d.ts +7 -0
  371. package/dist/types/utils/formatRelativeTime.d.ts +4 -0
  372. package/dist/types/utils/formatRuntime.d.ts +1 -0
  373. package/dist/types/utils/formatTokenCount.d.ts +13 -0
  374. package/dist/types/utils/gitModeIntent.d.ts +22 -0
  375. package/dist/types/utils/goalCondition.d.ts +43 -0
  376. package/dist/types/utils/goalControlRequest.d.ts +20 -0
  377. package/dist/types/utils/goalGate.d.ts +39 -0
  378. package/dist/types/utils/imageIngestion.d.ts +47 -0
  379. package/dist/types/utils/largePaste.d.ts +44 -0
  380. package/dist/types/utils/linkify.d.ts +19 -0
  381. package/dist/types/utils/localCommandQueue.d.ts +47 -0
  382. package/dist/types/utils/modelDisplay.d.ts +1 -0
  383. package/dist/types/utils/modelEncoding.d.ts +15 -0
  384. package/dist/types/utils/modelSwitchMessages.d.ts +4 -0
  385. package/dist/types/utils/monitorTasks.d.ts +3 -0
  386. package/dist/types/utils/planMode.d.ts +5 -0
  387. package/dist/types/utils/promptAdmission.d.ts +1 -0
  388. package/dist/types/utils/queueDrain.d.ts +21 -0
  389. package/dist/types/utils/remote-name-skeleton.d.ts +1 -0
  390. package/dist/types/utils/sentinelMessage.d.ts +4 -0
  391. package/dist/types/utils/sessionErrors.d.ts +2 -0
  392. package/dist/types/utils/sessionPath.d.ts +19 -0
  393. package/dist/types/utils/sessionPreparation.d.ts +77 -0
  394. package/dist/types/utils/slash-command-action.d.ts +3 -0
  395. package/dist/types/utils/slashSectionPlan.d.ts +26 -0
  396. package/dist/types/utils/splitUrl.d.ts +37 -0
  397. package/dist/types/utils/standalone-session-routing.d.ts +2 -0
  398. package/dist/types/utils/systemInfo.d.ts +26 -0
  399. package/dist/types/utils/taskActivity.d.ts +18 -0
  400. package/dist/types/utils/timeAgo.d.ts +10 -0
  401. package/dist/types/utils/todos.d.ts +165 -0
  402. package/dist/types/utils/unicodeConfusables.d.ts +1 -0
  403. package/dist/types/utils/unifiedDiff.d.ts +12 -0
  404. package/dist/types/utils/workflowTasks.d.ts +3 -0
  405. package/dist/types/utils/workspace.d.ts +34 -0
  406. package/dist/types/utils/workspaceColor.d.ts +15 -0
  407. package/dist/types/voice/VoiceButton.d.ts +16 -0
  408. package/dist/types/voice/use-voice-workspace-settings.d.ts +13 -0
  409. package/dist/types/voice/useVoiceCapture.d.ts +42 -0
  410. package/dist/types/voice/voice-workspace-target.d.ts +45 -0
  411. package/dist/types/voice/voiceModels.d.ts +23 -0
  412. package/dist/types/workflowDetailsContext.d.ts +11 -0
  413. package/package.json +102 -0
@@ -0,0 +1,226 @@
1
+ import { type ReactNode, type ClipboardEventHandler, type DragEventHandler } from 'react';
2
+ import { EditorView } from '@codemirror/view';
3
+ import { Compartment } from '@codemirror/state';
4
+ import type { CommandInfo } from '../adapters/types';
5
+ import type { PromptFile, PromptImage } from '../adapters/promptTypes';
6
+ import { type UseDaemonFollowupSuggestionReturn } from '@qwen-code/web-shell/daemon-react-sdk';
7
+ import { type SkillInfo, type SlashCommandCompletionResult } from '../completions/slashCompletion';
8
+ import { type CommandDisplayCategoryOrder } from '../utils/commandDisplay';
9
+ import { type AtMentionMenuState, type AtMentionWorkspaceActions } from './useAtMentionMenu';
10
+ export { getComposerTagDisplay, getComposerTagLabel, getComposerTagValue, } from '../utils/composerTag';
11
+ import type { DaemonInputAnnotation } from '@qwen-code/sdk/daemon';
12
+ import type { ComposerTagClickHandler, ComposerTagRenderer, UserMessageContentParser, WebShellComposerApi, WebShellComposerInput, WebShellComposerTag, WebShellComposerTagIconMap, WebShellComposerTagOptions, WebShellComposerTextOptions, WebShellBuiltinAtProvidersConfig, WebShellAtProvider } from '../customization';
13
+ export declare function serializeComposerTag(tag: WebShellComposerTag): string;
14
+ export declare function buildComposerPrompt(text: string, tags: readonly WebShellComposerTag[]): string;
15
+ export interface InlineTagPlacement {
16
+ start: number;
17
+ end: number;
18
+ tag: WebShellComposerTag;
19
+ }
20
+ export declare function buildComposerPromptWithInlineTagPlacements(text: string, topTags: readonly WebShellComposerTag[], inlineTags: readonly InlineTagPlacement[]): string;
21
+ export declare function replaceInlineTagPlacements(text: string, inlineTags: readonly InlineTagPlacement[]): string;
22
+ interface InlineTagRange {
23
+ from: number;
24
+ to: number;
25
+ tag: InlineComposerTag;
26
+ }
27
+ type InlineComposerTag = WebShellComposerTag & {
28
+ iconUrl?: string;
29
+ renderContent?: ComposerTagRenderer;
30
+ tooltip?: ReactNode;
31
+ tooltipText?: string;
32
+ onClick?: ComposerTagClickHandler;
33
+ };
34
+ export declare const addInlineTagEffect: import("@codemirror/state").StateEffectType<InlineTagRange>;
35
+ export declare const removeInlineTagEffect: import("@codemirror/state").StateEffectType<{
36
+ predicate?: (tag: WebShellComposerTag) => boolean;
37
+ }>;
38
+ export declare const clearInlineTagsEffect: import("@codemirror/state").StateEffectType<void>;
39
+ export declare function getInlineComposerTags(view: EditorView): WebShellComposerTag[];
40
+ export interface EditorHandle extends WebShellComposerApi {
41
+ clearText(): void;
42
+ focus(): void;
43
+ getText(): string;
44
+ hasAttachments(): boolean;
45
+ hasInput(): boolean;
46
+ retryLast(): void;
47
+ restoreImages(images: readonly PromptImage[]): void;
48
+ restoreFiles(files: readonly PromptFile[]): void;
49
+ restoreInputAnnotations?(inputAnnotations: readonly DaemonInputAnnotation[]): void;
50
+ }
51
+ export declare const editableCompartment: Compartment;
52
+ export declare const placeholderCompartment: Compartment;
53
+ export declare const followupGhostCompartment: Compartment;
54
+ export declare function getFollowupCompletion(text: string, suggestion: string | null | undefined): string | null;
55
+ export declare function mapRestoredInputAnnotationsAfterTextChange(annotations: readonly DaemonInputAnnotation[], previousText: string, nextText: string): DaemonInputAnnotation[];
56
+ export type ComposerSubmitCommit = () => void;
57
+ export interface ComposerSubmitMetadata {
58
+ inputAnnotations?: DaemonInputAnnotation[];
59
+ }
60
+ export interface UseComposerCoreOptions {
61
+ onSubmit: (text: string, images?: PromptImage[], files?: PromptFile[], commitAccepted?: ComposerSubmitCommit, metadata?: ComposerSubmitMetadata) => boolean | void;
62
+ onInputTextChange?: (text: string) => void;
63
+ onCycleMode?: () => void;
64
+ cycleModeOnTab?: boolean;
65
+ onToggleShortcuts?: () => void;
66
+ disabled?: boolean;
67
+ /**
68
+ * Whether the composer may react to FILE drags at all (drag highlight and
69
+ * drop ingestion on the inline image/text lane). `false` leaves paste
70
+ * working but makes attachment drag-and-drop inert. Defaults to `true`.
71
+ */
72
+ fileDragEnabled?: boolean;
73
+ placeholderText?: string;
74
+ commands: CommandInfo[];
75
+ skills?: SkillInfo[];
76
+ allowEmptySlashMenu?: boolean;
77
+ slashCommandCategoryOrder?: CommandDisplayCategoryOrder;
78
+ autoSubmitSlashCommands?: boolean;
79
+ queuedMessages?: string[];
80
+ onPopQueuedMessages?: () => boolean;
81
+ onClearQueuedMessages?: () => boolean;
82
+ currentMode?: string;
83
+ onFocusFooter?: () => boolean;
84
+ dialogOpen?: boolean;
85
+ followupState?: UseDaemonFollowupSuggestionReturn['followupState'];
86
+ onAcceptFollowup?: UseDaemonFollowupSuggestionReturn['onAcceptFollowup'];
87
+ onDismissFollowup?: UseDaemonFollowupSuggestionReturn['onDismissFollowup'];
88
+ sessionId?: string;
89
+ sessionName?: string;
90
+ composerInput?: WebShellComposerInput;
91
+ composerInputVersion?: number;
92
+ builtinAtProviders?: WebShellBuiltinAtProvidersConfig;
93
+ atProviders?: readonly WebShellAtProvider[];
94
+ atWorkspaceCwd?: string;
95
+ composerScopeKey?: string;
96
+ disableLegacyHistoryFallback?: boolean;
97
+ attachmentsEnabled?: boolean;
98
+ workspaceFeaturesEnabled?: boolean;
99
+ composerTagIcons?: WebShellComposerTagIconMap;
100
+ parseUserMessageContent?: UserMessageContentParser;
101
+ renderComposerTag?: ComposerTagRenderer;
102
+ renderComposerTagTooltip?: ComposerTagRenderer;
103
+ onComposerTagClick?: ComposerTagClickHandler;
104
+ onFileTagClick?: ComposerTagClickHandler;
105
+ onImageIngestionNotice?: (tone: 'warning' | 'error', message: string) => void;
106
+ /**
107
+ * Invoked when the user selects the @ panel's "Upload file" item, with the
108
+ * directory currently being browsed and a callback that re-inserts the
109
+ * removed mention query when the picker closes without an upload. The
110
+ * composer opens a file picker and uploads into that directory. When
111
+ * absent, the upload item is hidden.
112
+ */
113
+ onFileUploadRequest?: (targetDir: string, restoreQuery?: () => void) => void;
114
+ /**
115
+ * True while a workspace file upload is pending or in flight. Gates
116
+ * submit exactly like the image lane's pending batches, so a prompt cannot
117
+ * go out before the upload's `@file` reference has been inserted.
118
+ */
119
+ workspaceUploadBusy?: boolean;
120
+ /** CodeMirror theme extension for the editor view. Each variant provides its own. */
121
+ editorTheme: Parameters<typeof EditorView.theme>[0];
122
+ }
123
+ export interface SearchState {
124
+ searchMode: boolean;
125
+ searchQuery: string;
126
+ searchMatches: string[];
127
+ searchActiveIndex: number;
128
+ searchInputRef: React.RefObject<HTMLInputElement | null>;
129
+ searchUiRef: React.RefObject<HTMLDivElement | null>;
130
+ openHistorySearch: () => void;
131
+ closeSearch: (restoreDraft: boolean, keepFocus?: boolean) => void;
132
+ submitSearchMatch: (match: string) => void;
133
+ restoreSearchMatch?: (match: string) => void;
134
+ handleSearchKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
135
+ handleSearchInput: (e: React.ChangeEvent<HTMLInputElement>) => void;
136
+ handleSearchCompositionEnd: (e: React.CompositionEvent<HTMLInputElement>) => void;
137
+ }
138
+ export interface SlashMenuState extends SlashCommandCompletionResult {
139
+ selectedIndex: number;
140
+ }
141
+ /**
142
+ * Editor backend for touch devices: instead of a CodeMirror EditorView, the
143
+ * composer renders a plain controlled `<textarea>` wired to these fields.
144
+ * Mobile virtual keyboards and IMEs interact poorly with CodeMirror's
145
+ * contenteditable (see #5958), while a native textarea gets the platform's
146
+ * full input stack for free. Null on desktop.
147
+ */
148
+ export interface MobileComposerBackend {
149
+ textareaRef: React.RefObject<HTMLTextAreaElement | null>;
150
+ value: string;
151
+ onChange: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
152
+ onBlur: () => void;
153
+ placeholder: string;
154
+ }
155
+ export interface ComposerImageTransferHandlers {
156
+ onPasteCapture: ClipboardEventHandler<HTMLDivElement>;
157
+ onDragEnterCapture: DragEventHandler<HTMLDivElement>;
158
+ onDragOverCapture: DragEventHandler<HTMLDivElement>;
159
+ onDragLeaveCapture: DragEventHandler<HTMLDivElement>;
160
+ onDropCapture: DragEventHandler<HTMLDivElement>;
161
+ }
162
+ export interface UseComposerCoreReturn {
163
+ containerRef: React.RefObject<HTMLDivElement | null>;
164
+ viewRef: React.RefObject<EditorView | null>;
165
+ workspaceActionsRef: React.RefObject<AtMentionWorkspaceActions | undefined>;
166
+ mobileComposer: MobileComposerBackend | null;
167
+ focus: () => void;
168
+ submitText: () => void;
169
+ clearText: () => void;
170
+ getText: () => string;
171
+ hasInput: () => boolean;
172
+ hasAttachments: boolean;
173
+ hasContent: boolean;
174
+ canSubmit: boolean;
175
+ pendingImageBatchCount: number;
176
+ imageDragActive: boolean;
177
+ clearImageDragState: () => void;
178
+ ingestFiles: (files: readonly File[]) => boolean;
179
+ imageTransferHandlers: ComposerImageTransferHandlers;
180
+ handle: EditorHandle;
181
+ pastedImages: PromptImage[];
182
+ removeImage: (index: number) => void;
183
+ pastedFiles: PromptFile[];
184
+ removeFile: (index: number) => void;
185
+ expandPastedText: (index: number) => void;
186
+ composerTags: WebShellComposerTag[];
187
+ removeTopTag: (id: string) => void;
188
+ addTags: (tags: readonly WebShellComposerTag[], options?: WebShellComposerTagOptions) => void;
189
+ removeInlineTags: (predicate?: (tag: WebShellComposerTag) => boolean) => void;
190
+ insertText: (text: string, options?: WebShellComposerTextOptions) => void;
191
+ setText: (text: string) => void;
192
+ submit: (input?: WebShellComposerInput) => void;
193
+ clear: (options?: {
194
+ text?: boolean;
195
+ tags?: boolean;
196
+ }) => void;
197
+ retryLast: () => void;
198
+ replaceEditorText: (text: string) => void;
199
+ shellMode: boolean;
200
+ setShellMode: React.Dispatch<React.SetStateAction<boolean>>;
201
+ toggleShellMode: () => void;
202
+ currentMode: string;
203
+ sessionName: string | undefined;
204
+ searchState: SearchState;
205
+ navigatePrevHistory: () => void;
206
+ navigateNextHistory: () => void;
207
+ showShortcutHints: boolean;
208
+ followupState: UseDaemonFollowupSuggestionReturn['followupState'];
209
+ disabled: boolean;
210
+ onAcceptFollowup: UseDaemonFollowupSuggestionReturn['onAcceptFollowup'];
211
+ onDismissFollowup: UseDaemonFollowupSuggestionReturn['onDismissFollowup'];
212
+ slashMenu: SlashMenuState | null;
213
+ openSlashMenu: () => boolean;
214
+ closeSlashMenu: () => void;
215
+ selectSlashCompletion: (index: number) => boolean;
216
+ acceptSlashCompletion: (index?: number, submit?: boolean) => boolean;
217
+ atMenu: AtMentionMenuState | null;
218
+ closeAtMenu: () => void;
219
+ selectAtCompletion: (index: number) => boolean;
220
+ acceptAtCompletion: (index?: number) => boolean;
221
+ enterAtCategory: (index?: number) => boolean;
222
+ backAtCategories: () => false | 'items' | 'categories';
223
+ updateAtSearch: (query: string) => boolean;
224
+ selectAtTab: (tabId: string) => boolean;
225
+ }
226
+ export declare function useComposerCore(options: UseComposerCoreOptions): UseComposerCoreReturn;
@@ -0,0 +1,26 @@
1
+ import type { DaemonConnectionState, DaemonSessionActions, DaemonSessionContextUsageStatus, DaemonSessionOwnerGuard, DaemonSessionOwnerSnapshot } from '@qwen-code/web-shell/daemon-react-sdk';
2
+ type CompressionResult = {
3
+ kind: 'completed';
4
+ usage: DaemonSessionContextUsageStatus;
5
+ } | {
6
+ kind: 'failed' | 'cancelled' | 'refreshFailed' | 'interrupted';
7
+ };
8
+ export interface ContextUsageControls {
9
+ sessionId: string;
10
+ canCompress: boolean;
11
+ compressing: boolean;
12
+ result?: CompressionResult;
13
+ compress(): Promise<void>;
14
+ captureOwner(): DaemonSessionOwnerSnapshot;
15
+ getContextUsage: DaemonSessionActions['getContextUsage'];
16
+ }
17
+ export type RegisterContextUsageControls = (controls: ContextUsageControls) => () => void;
18
+ export declare function useContextUsageControls({ connection, actions, ownerGuard, busy, writeBlocked, onBeforeCompress, }: {
19
+ connection: DaemonConnectionState;
20
+ actions: DaemonSessionActions;
21
+ ownerGuard: DaemonSessionOwnerGuard;
22
+ busy: boolean;
23
+ writeBlocked: boolean;
24
+ onBeforeCompress: () => void;
25
+ }): ContextUsageControls | undefined;
26
+ export {};
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * The transient "copied" feedback every copy button shows: `flash()` turns
8
+ * the flag on and schedules the reset. The pending reset is cleared on
9
+ * unmount — a leaked timer fires after a test file's environment is torn
10
+ * down and, since the unit suites fail on unhandled errors, turns an
11
+ * all-green run red (`window is not defined` out of the reset callback).
12
+ * A re-flash restarts the window instead of letting the older reset cut
13
+ * the newer feedback short.
14
+ */
15
+ export declare function useCopiedFlash(resetMs?: number): [copied: boolean, flash: () => void];
@@ -0,0 +1 @@
1
+ export declare function useDelayedGlobalKeyDown(handler: (event: KeyboardEvent) => void, deps: readonly unknown[], delayMs?: number): void;
@@ -0,0 +1,11 @@
1
+ import type { MouseEvent } from 'react';
2
+ /**
3
+ * Opens external link clicks through the shell's explicit desktop opener.
4
+ *
5
+ * The desktop webview's implicit `target="_blank"` handling can silently
6
+ * drop new-window requests, so anchored external URLs should be routed
7
+ * through this handler in the packaged shell; failures surface as error
8
+ * toasts. Plain browsers keep native anchor behavior (the handler is a
9
+ * no-op there).
10
+ */
11
+ export declare function useExternalLinkOpener(): (event: MouseEvent<HTMLAnchorElement>, url: string | undefined) => void;
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { DaemonWorkspaceFileUploadRequest, DaemonWorkspaceFileUploadResult } from '@qwen-code/sdk/daemon';
7
+ /**
8
+ * Minimal structural client for uploads. Both `DaemonClient`
9
+ * (legacy-primary) and `WorkspaceDaemonClient` (workspace-qualified) satisfy
10
+ * it; the caller resolves the correct target before constructing the hook.
11
+ */
12
+ export interface FileUploadClient {
13
+ uploadWorkspaceFile(req: DaemonWorkspaceFileUploadRequest, clientId?: string): Promise<DaemonWorkspaceFileUploadResult>;
14
+ }
15
+ export type FileUploadStatus = 'pending' | 'uploading' | 'done' | 'error';
16
+ /** Machine-readable failure codes; the render site localizes them. */
17
+ export type FileUploadErrorCode = 'tooLarge' | 'noDaemon' | 'tooManyFiles';
18
+ export interface FileUploadItem {
19
+ id: string;
20
+ file: File;
21
+ /** Requested relative path in the target workspace. */
22
+ targetPath: string;
23
+ status: FileUploadStatus;
24
+ /** 0–1. */
25
+ progress: number;
26
+ /** Set for locally classified failures; localized at the render site. */
27
+ errorCode?: FileUploadErrorCode;
28
+ /** Raw failure message (server-side errors). */
29
+ error?: string;
30
+ /** Server-confirmed final path (may be auto-numbered). */
31
+ resultPath?: string;
32
+ /** Set on a `tooManyFiles` notice row: how many files were not queued. */
33
+ skippedCount?: number;
34
+ }
35
+ export interface UseFileUploadOptions {
36
+ client: FileUploadClient | undefined;
37
+ maxBytes: number;
38
+ /**
39
+ * Identity of the target workspace AND the session composing into it.
40
+ * When it changes (or the hook unmounts), in-flight uploads are aborted
41
+ * and the queue is cleared, so an upload started for workspace A cannot
42
+ * insert a path into workspace B, and an upload started in one session
43
+ * cannot append its reference to another session's draft after a switch.
44
+ */
45
+ targetKey: string;
46
+ }
47
+ export interface UseFileUploadReturn {
48
+ uploads: FileUploadItem[];
49
+ /** True while any item is pending or in flight; gates composer submit. */
50
+ isBusy: boolean;
51
+ /**
52
+ * Queue `files` for sequential upload into `targetDir` (relative to the
53
+ * target workspace root; `'.'` for the root). `onUploaded` fires exactly
54
+ * once per successful upload with the server-confirmed final path.
55
+ * Returns how many files were actually queued (locally rejected files,
56
+ * e.g. oversized ones, become error rows without queueing).
57
+ */
58
+ uploadFiles: (files: File[], targetDir: string, onUploaded?: (path: string) => void) => number;
59
+ /** Remove a row and abort it if it is pending or in flight. */
60
+ removeUpload: (id: string) => void;
61
+ }
62
+ export declare function useFileUpload(options: UseFileUploadOptions): UseFileUploadReturn;
@@ -0,0 +1,27 @@
1
+ import { type ChangeEvent, type CompositionEvent } from 'react';
2
+ export interface FilterInputProps {
3
+ value: string;
4
+ onChange: (event: ChangeEvent<HTMLInputElement>) => void;
5
+ onCompositionStart: () => void;
6
+ onCompositionEnd: (event: CompositionEvent<HTMLInputElement>) => void;
7
+ }
8
+ export interface UseFilterInputResult {
9
+ /**
10
+ * Committed value to filter by. Only changes once a keystroke is committed,
11
+ * never while an IME composition is in flight, so filtering a list by this
12
+ * value does not refilter/relayout on every intermediate pinyin character.
13
+ */
14
+ filterValue: string;
15
+ /** Spread onto the search `<input>` (carries the raw value + IME handlers). */
16
+ inputProps: FilterInputProps;
17
+ }
18
+ /**
19
+ * Search-field state for filterable list dialogs, hardened against IME
20
+ * composition jitter: the field reflects every keystroke while the committed
21
+ * `filterValue` (used to filter) updates only on non-composition input and on
22
+ * `compositionend`.
23
+ *
24
+ * `onFilterChange` fires with the committed value whenever it changes — dialogs
25
+ * use it to reset their own selection/cursor state.
26
+ */
27
+ export declare function useFilterInput(onFilterChange?: (value: string) => void): UseFilterInputResult;
@@ -0,0 +1,17 @@
1
+ export declare function getPromptHistoryStorageKey(workspaceCwd?: string): string;
2
+ export declare function pushInputHistoryEntry(storageKey: string, text: string, fallbackStorageKey?: string): void;
3
+ export declare function useInputHistory(storageKey?: string, fallbackStorageKey?: string): {
4
+ push: (text: string) => void;
5
+ navigateUp: (currentText: string) => string | null;
6
+ navigateDown: () => string | null;
7
+ isNavigating: () => boolean;
8
+ reset: () => void;
9
+ searchReverse: (query: string) => string | null;
10
+ getReverseMatches: (query: string) => string[];
11
+ getLastEntry: (filter?: (entry: string) => boolean) => string | null;
12
+ resetSearch: () => void;
13
+ nav: {
14
+ canUp: boolean;
15
+ canDown: boolean;
16
+ };
17
+ };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * The width at or above which the app is considered a "large screen" for
8
+ * layouts such as split view.
9
+ */
10
+ export declare const LARGE_SCREEN_QUERY = "(min-width: 1024px)";
11
+ /**
12
+ * Tracks whether the viewport currently matches a large-screen media query.
13
+ *
14
+ * Mirrors the inline `matchMedia` pattern already used for the mobile drawer:
15
+ * seed synchronously from `matchMedia().matches` so the first render is correct
16
+ * (no flash), then subscribe to `change`. Degrades to `false` when `matchMedia`
17
+ * is unavailable (SSR / the jsdom test default), which keeps large-screen-only
18
+ * entry points hidden unless a test explicitly opts in.
19
+ */
20
+ export declare function useIsLargeScreen(query?: string): boolean;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Matches devices whose primary interaction is a touchscreen with no hover —
8
+ * phones and tablets. The AND of both features deliberately excludes touch
9
+ * laptops (hover-capable trackpad + touchscreen), which keep the desktop
10
+ * CodeMirror editor.
11
+ */
12
+ export declare const TOUCH_COMPOSER_QUERY = "(hover: none) and (pointer: coarse)";
13
+ /**
14
+ * Raw device detection, ignoring the URL override. Used to gate programmatic
15
+ * (non-gesture) `view.focus()` calls: on iOS, focusing an editable element
16
+ * outside a user gesture does not open the keyboard but does claim
17
+ * `document.activeElement`, after which user taps may no longer fire a fresh
18
+ * focus event — the keyboard never appears. That must stay suppressed even
19
+ * when the user forces the CodeMirror path via `?composer=codemirror`.
20
+ *
21
+ * The media query alone decides — deliberately no `navigator.maxTouchPoints`
22
+ * requirement: Playwright's stock WebKit iPhone profiles (and some TV
23
+ * browsers) match the query while reporting zero touch points, and the
24
+ * textarea is a safe fallback wherever the primary pointer is coarse and
25
+ * cannot hover.
26
+ */
27
+ export declare function isCoarsePointerDevice(): boolean;
28
+ /**
29
+ * Decides once, at mount, whether the composer should use the plain
30
+ * `<textarea>` backend instead of CodeMirror. Intentionally NOT reactive:
31
+ * swapping editor backends mid-session would drop the draft, tags, and
32
+ * pasted images, so the choice is frozen for the lifetime of the component.
33
+ * Degrades to `false` (CodeMirror) when `matchMedia` is unavailable
34
+ * (SSR / the jsdom test default).
35
+ */
36
+ export declare function useIsTouchComposer(): boolean;
@@ -0,0 +1,42 @@
1
+ export interface ListboxKeyboardOptions {
2
+ /** Number of selectable items in the list. */
3
+ itemCount: number;
4
+ /** Currently highlighted index, or -1 when no row is highlighted. */
5
+ activeIndex: number;
6
+ /** Called with the next index when the user moves the highlight. */
7
+ onActiveIndexChange: (index: number) => void;
8
+ /** Called with an index when the user confirms it (Enter). */
9
+ onConfirm: (index: number) => void;
10
+ /** Disable the listener without unmounting the host component. */
11
+ enabled?: boolean;
12
+ }
13
+ export interface ListboxKeyboardResult {
14
+ /**
15
+ * True while the user is navigating by keyboard. Dialogs use this to suppress
16
+ * the CSS `:hover` highlight so a cursor that happens to rest over a row —
17
+ * e.g. when the dialog opens under the pointer — does not fight the keyboard
18
+ * highlight. It flips back to false on a real `mousemove` (which never fires
19
+ * from a dialog merely appearing under a stationary cursor).
20
+ */
21
+ keyboardMode: boolean;
22
+ }
23
+ /**
24
+ * Keyboard navigation for listbox-style dialogs (model/theme/approval/resume/…).
25
+ *
26
+ * Selection is driven by `activeIndex` state rather than DOM focus, so it works
27
+ * whether focus sits on the dialog panel/listbox or on a search input. The
28
+ * visual highlight + `scrollIntoView` already implemented by each dialog
29
+ * reflects the active index; this hook only moves that index and confirms it.
30
+ *
31
+ * Enter confirms the active row, unless focus is on a control that owns Enter
32
+ * (see {@link focusOwnsEnter}) — so, e.g., Enter on a focused "Delete" button
33
+ * activates the button — or no row is highlighted (`activeIndex < 0`).
34
+ * Searchable dialogs rely on the latter: they open with no highlight and reset
35
+ * to none whenever the filter text changes, so a reflexive Enter in the search
36
+ * box never confirms a row the user didn't visibly pick first; the first
37
+ * ArrowDown lands on the first row. Space mirrors Enter (per the ARIA listbox
38
+ * pattern) but additionally yields to text fields, where it types a space.
39
+ * Escape is intentionally NOT handled here — {@link DialogShell} owns dialog
40
+ * dismissal.
41
+ */
42
+ export declare function useListboxKeyboard({ itemCount, activeIndex, onActiveIndexChange, onConfirm, enabled, }: ListboxKeyboardOptions): ListboxKeyboardResult;
@@ -0,0 +1,20 @@
1
+ import { type DaemonTranscriptBlock, type DaemonTranscriptBlockChangeSummary } from '@qwen-code/sdk/daemon';
2
+ import { type Translator } from '../adapters/localizedMessages';
3
+ import type { Message } from '../adapters/types';
4
+ export { transcriptBlocksToLocalizedMessages, type Translator, } from '../adapters/localizedMessages';
5
+ interface MessageProjection {
6
+ blocks: readonly DaemonTranscriptBlock[];
7
+ messages: Message[];
8
+ t: Translator;
9
+ blockChangeSummary?: DaemonTranscriptBlockChangeSummary;
10
+ }
11
+ export interface BackgroundAgentResolution {
12
+ status: string;
13
+ durationMs?: number;
14
+ }
15
+ export declare function projectStreamingTailMessages(previous: MessageProjection | undefined, blocks: readonly DaemonTranscriptBlock[], t: Translator, blockChangeSummary?: DaemonTranscriptBlockChangeSummary): Message[] | undefined;
16
+ export declare function getBackgroundAgentNotificationKey(blocks: readonly DaemonTranscriptBlock[]): string;
17
+ export declare function getPendingBackgroundAgentKey(messages: readonly Message[]): string;
18
+ export declare function reconcileBackgroundAgentResolutions(messages: Message[], resolutions: ReadonlyMap<string, BackgroundAgentResolution>): Message[];
19
+ export declare function useMessagesFromBlocks(t: Translator, blocks: readonly DaemonTranscriptBlock[], blockChangeSummary?: DaemonTranscriptBlockChangeSummary): Message[];
20
+ export declare function useMessages(t: Translator): Message[];
@@ -0,0 +1,11 @@
1
+ export declare function useModelConfigurations(enabled: boolean): {
2
+ models: import("@qwen-code/sdk/daemon").DaemonModelConfiguration[];
3
+ reload: () => Promise<{
4
+ models: import("@qwen-code/sdk/daemon").DaemonModelConfiguration[];
5
+ } | undefined>;
6
+ data: {
7
+ models: import("@qwen-code/sdk/daemon").DaemonModelConfiguration[];
8
+ } | undefined;
9
+ loading: boolean;
10
+ error: Error | undefined;
11
+ };
@@ -0,0 +1,26 @@
1
+ import type { Message } from '../adapters/types';
2
+ import type { DaemonSessionActions } from '@qwen-code/web-shell/daemon-react-sdk';
3
+ type SuggestionKind = 'btw' | 'new_session' | 'none';
4
+ export interface NewSessionSuggestionState {
5
+ suggestion: Exclude<SuggestionKind, 'none'>;
6
+ classifiedInput: string;
7
+ sourceSessionId: string;
8
+ }
9
+ export interface UseNewSessionSuggestionOptions {
10
+ enabled: boolean;
11
+ messages: Message[];
12
+ sessionId?: string;
13
+ contextUsageRatio: number;
14
+ isRunning: boolean;
15
+ dialogOpen: boolean;
16
+ hasAttachments: boolean | null;
17
+ generateContent?: DaemonSessionActions['generateSessionContent'];
18
+ }
19
+ export interface UseNewSessionSuggestionReturn {
20
+ suggestion: NewSessionSuggestionState | null;
21
+ updateInput: (inputText: string) => void;
22
+ dismiss: () => void;
23
+ suppress: () => void;
24
+ }
25
+ export declare function useNewSessionSuggestion({ enabled, messages, sessionId, contextUsageRatio, isRunning, dialogOpen, hasAttachments, generateContent, }: UseNewSessionSuggestionOptions): UseNewSessionSuggestionReturn;
26
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { DaemonSessionSummary } from '@qwen-code/sdk/daemon';
7
+ export interface OtherWorkspaceSessionsResult {
8
+ sessions: DaemonSessionSummary[];
9
+ reload: () => Promise<void>;
10
+ }
11
+ export declare function useOtherWorkspaceSessions(enabled?: boolean, pollIntervalMs?: number): OtherWorkspaceSessionsResult;
@@ -0,0 +1 @@
1
+ export declare function usePrefersReducedMotion(): boolean;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type DaemonSessionActions, type DaemonStreamingState, type DaemonWorkspaceActions } from '@qwen-code/web-shell/daemon-react-sdk';
7
+ import type { DaemonInputAnnotation, DaemonTranscriptStore } from '@qwen-code/sdk/daemon';
8
+ import type { PromptFile, PromptImage } from '../adapters/promptTypes';
9
+ import type { EditorHandle } from './useComposerCore';
10
+ import type { getTranslator } from '../i18n';
11
+ import type { QueuedPrompt } from '../components/QueuedPromptDisplay';
12
+ interface RefBox<T> {
13
+ current: T;
14
+ }
15
+ interface UseQueuedPromptsArgs {
16
+ connected: boolean;
17
+ writeBlocked?: boolean;
18
+ sessionId?: string;
19
+ workspaceCwd?: string;
20
+ clientId?: string;
21
+ /**
22
+ * Whether the daemon advertises `session_mid_turn_message_mutation`. Gates the
23
+ * mid-turn delete/edit mutations — including the keyboard path, which the view
24
+ * layer's hidden buttons can't reach — so an older daemon that mints message
25
+ * ids without the route isn't sent a DELETE it answers with a 404.
26
+ */
27
+ canMutateMidTurn: boolean;
28
+ /**
29
+ * Whether the daemon advertises `session_mid_turn_message_query`. Gates the
30
+ * daemon-owned queue lifecycle. With it, accepted messages are restored and
31
+ * reconciled by id across drain or idle promotion; without it the hook keeps
32
+ * the legacy local fallback used by older daemons.
33
+ */
34
+ canQueryMidTurn: boolean;
35
+ /**
36
+ * Whether the daemon advertises `session_attachments`. With it,
37
+ * attachments travel with a mid-turn message and are injected into the
38
+ * running turn; without it they stay queued for the next turn.
39
+ */
40
+ canInjectMidTurnMedia: boolean;
41
+ workspaceFileActions?: Pick<DaemonWorkspaceActions, 'readFileBytes' | 'stat'>;
42
+ streamingState: DaemonStreamingState;
43
+ sessionHasActivePrompt?: boolean;
44
+ /** Keep ordinary submissions local until the Goal is paused, cleared, or the
45
+ * user explicitly inserts one into the current turn. */
46
+ holdQueuedPromptsLocally?: boolean;
47
+ sessionActions: DaemonSessionActions;
48
+ store: DaemonTranscriptStore;
49
+ editorRef: RefBox<EditorHandle | null>;
50
+ reportError: (error: unknown, fallback: string) => void;
51
+ t: ReturnType<typeof getTranslator>;
52
+ }
53
+ /**
54
+ * Merge a restored prompt's text into the editor content. Restoration paths
55
+ * (failed submits, failed mid-turn inserts, queue clears) prepend the prompt
56
+ * above whatever the user is currently typing — but several of them can fire
57
+ * for the same prompt across reconnects/refreshes, and a user retrying an
58
+ * identical message produces the same text twice. Stacking those copies is
59
+ * what #7128 reports as "inputs concatenated after refresh", so restoring
60
+ * text that is already present at the top of the editor is a no-op.
61
+ */
62
+ export declare function mergeRestoredPromptText(current: string, text: string): string;
63
+ export interface UseQueuedPromptsResult {
64
+ queuedPrompts: QueuedPrompt[];
65
+ queuedTexts: string[];
66
+ enqueuePrompt: (text: string, images?: PromptImage[], files?: PromptFile[], onComplete?: () => void, inputAnnotations?: DaemonInputAnnotation[], onAdmitted?: () => void, submittedPrompt?: string) => boolean;
67
+ removeQueuedPrompt: (id: number) => void;
68
+ insertQueuedPrompt: (id: number) => Promise<void>;
69
+ editQueuedPrompt: (id: number) => Promise<void>;
70
+ editLastQueuedPrompt: () => boolean;
71
+ clearQueuedPrompts: () => boolean;
72
+ }
73
+ export declare function useQueuedPrompts({ connected, writeBlocked, sessionId, workspaceCwd, clientId, canMutateMidTurn, canQueryMidTurn, canInjectMidTurnMedia, workspaceFileActions, streamingState, sessionHasActivePrompt, holdQueuedPromptsLocally, sessionActions, store, editorRef, reportError, t, }: UseQueuedPromptsArgs): UseQueuedPromptsResult;
74
+ export {};