@qwen-code/web-shell 0.24.7 → 0.25.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 (79) hide show
  1. package/README.md +65 -2
  2. package/dist/ThreadsRoute-CXAiD3t_.js +2407 -0
  3. package/dist/daemon-react-sdk.js +1 -1
  4. package/dist/index-D9Bc2Hcz.js +123543 -0
  5. package/dist/index.js +69 -120254
  6. package/dist/sw.js +1 -1
  7. package/dist/{toolNames-B0O1UjKB.js → toolNames-CDhDlFnq.js} +5415 -4628
  8. package/dist/transcript.js +8980 -8737
  9. package/dist/types/App.d.ts +2 -2
  10. package/dist/types/ManagedAgentWebShell.d.ts +1 -0
  11. package/dist/types/adapters/messageTypes.d.ts +15 -0
  12. package/dist/types/adapters/transcriptAdapter.d.ts +1 -0
  13. package/dist/types/components/ChatEditor.d.ts +1 -0
  14. package/dist/types/components/DesktopRelayControl.d.ts +2 -1
  15. package/dist/types/components/LocalFilesControl.d.ts +3 -1
  16. package/dist/types/components/MessageItem.d.ts +1 -0
  17. package/dist/types/components/MessageList.d.ts +1 -0
  18. package/dist/types/components/agents/AgentCreatePage.d.ts +29 -1
  19. package/dist/types/components/agents/AgentsManagerPage.d.ts +6 -1
  20. package/dist/types/components/artifacts/ArtifactPanel.d.ts +8 -1
  21. package/dist/types/components/artifacts/TrajectoryInspector.d.ts +3 -1
  22. package/dist/types/components/artifacts/TrajectoryOverview.d.ts +3 -1
  23. package/dist/types/components/artifacts/TrajectoryWaterfallCell.d.ts +15 -0
  24. package/dist/types/components/channels/ChannelsManagerPage.d.ts +1 -1
  25. package/dist/types/components/extensions/extensions-manager-logic.d.ts +3 -3
  26. package/dist/types/components/managed/ManagedToolResultPanel.d.ts +9 -0
  27. package/dist/types/components/managed/ManagedToolResultSummary.d.ts +5 -0
  28. package/dist/types/components/managed/generated/managed-agent-api.d.ts +911 -16
  29. package/dist/types/components/managed/java-managed-agent-client.d.ts +27 -1
  30. package/dist/types/components/managed/java-managed-agent-provider.d.ts +4 -0
  31. package/dist/types/components/managed/managed-agent-provider.d.ts +43 -1
  32. package/dist/types/components/managed/managed-agent-sse.test-fixtures.d.ts +8 -0
  33. package/dist/types/components/managed/managed-approval.d.ts +10 -0
  34. package/dist/types/components/managed/managed-artifact-download.d.ts +2 -0
  35. package/dist/types/components/managed/managed-request-error.d.ts +14 -0
  36. package/dist/types/components/managed/managed-tool-result-types.d.ts +24 -0
  37. package/dist/types/components/managed/managed-tool-result.test-fixtures.d.ts +6 -0
  38. package/dist/types/components/managed/use-managed-actions.d.ts +33 -0
  39. package/dist/types/components/messages/AssistantMessage.d.ts +3 -0
  40. package/dist/types/components/messages/AuthorAvatar.d.ts +16 -0
  41. package/dist/types/components/messages/ContextUsageMessage.d.ts +5 -1
  42. package/dist/types/components/messages/StatsMessage.d.ts +6 -1
  43. package/dist/types/components/messages/ToolApproval.d.ts +9 -1
  44. package/dist/types/components/messages/ToolGroup.d.ts +2 -0
  45. package/dist/types/components/sidebar/UpdateControl.d.ts +3 -1
  46. package/dist/types/components/sidebar/WebShellSidebar.d.ts +18 -5
  47. package/dist/types/components/sidebar/WorkspaceSection.d.ts +3 -1
  48. package/dist/types/components/sidebar/sessionSearch.d.ts +2 -1
  49. package/dist/types/components/workspace-agents/LazyThreadsRoute.d.ts +7 -0
  50. package/dist/types/components/workspace-agents/ThreadChat.d.ts +35 -0
  51. package/dist/types/components/workspace-agents/ThreadView.d.ts +72 -0
  52. package/dist/types/components/workspace-agents/ThreadsPage.d.ts +146 -0
  53. package/dist/types/components/workspace-agents/ThreadsRoute.d.ts +23 -0
  54. package/dist/types/components/workspace-agents/add-runtime-dialog.d.ts +50 -0
  55. package/dist/types/components/workspace-agents/agent-events.d.ts +50 -0
  56. package/dist/types/components/workspace-agents/agents-view-logic.d.ts +180 -0
  57. package/dist/types/components/workspace-agents/messages.d.ts +16 -0
  58. package/dist/types/components/workspace-agents/messages.transcript-stub.d.ts +12 -0
  59. package/dist/types/components/workspace-agents/share-agent-dialog.d.ts +33 -0
  60. package/dist/types/components/workspace-agents/threads-api.d.ts +63 -0
  61. package/dist/types/components/workspace-agents/useAgentChatEntry.d.ts +36 -0
  62. package/dist/types/components/workspace-agents/useProjectConversations.d.ts +10 -0
  63. package/dist/types/customization.d.ts +10 -0
  64. package/dist/types/daemon/session/types.d.ts +19 -3
  65. package/dist/types/daemon/workspace/hooks/useDaemonMemory.d.ts +4 -0
  66. package/dist/types/daemon/workspace/types.d.ts +6 -2
  67. package/dist/types/index.d.ts +2 -1
  68. package/dist/types/live/LiveVoiceButton.d.ts +2 -1
  69. package/dist/types/navigation.d.ts +1 -0
  70. package/dist/types/settings.d.ts +1 -0
  71. package/dist/types/trajectory/buildTrajectoryLayout.d.ts +27 -0
  72. package/dist/types/trajectory/types.d.ts +2 -1
  73. package/dist/types/trajectory/useTimelineViewport.d.ts +19 -0
  74. package/dist/types/utils/cancelledTurn.d.ts +17 -0
  75. package/dist/types/utils/composerTag.d.ts +6 -1
  76. package/dist/types/utils/modelEncoding.d.ts +6 -0
  77. package/dist/types/utils/navigationUrl.d.ts +1 -1
  78. package/dist/types/utils/workspace.d.ts +1 -0
  79. package/package.json +1 -1
@@ -32,7 +32,7 @@ export interface WebShellSidebarOptions {
32
32
  showCompactToggle?: boolean;
33
33
  /** Whether to show the Tasks/Channels session-source switch. Defaults to true. */
34
34
  showSessionSourceSwitch?: boolean;
35
- /** Whether to show daemon-owned Live conversations. Defaults to false. */
35
+ /** Show Live conversations and, in rail layout, the Live entry. Defaults to false. */
36
36
  showLive?: boolean;
37
37
  /** Hide or replace the complete sidebar branding row. */
38
38
  branding?: false | WebShellSidebarBranding;
@@ -161,7 +161,7 @@ export interface WebShellProps {
161
161
  shadowDom?: WebShellShadowDom;
162
162
  /** Maximum chat content width in regular mode. Defaults to 1000px. */
163
163
  chatMaxWidth?: number;
164
- /** Optional workspace sidebar. Disabled by default. */
164
+ /** Workspace sidebar. Defaults to Home only; false hides it. */
165
165
  sidebar?: boolean | WebShellSidebarOptions;
166
166
  /** Persistent chat header options. */
167
167
  header?: WebShellChatHeaderOptions;
@@ -4,6 +4,7 @@ import { type WebShellBrand } from './brandContext';
4
4
  import { type JavaManagedAgentProviderOptions } from './components/managed/java-managed-agent-provider';
5
5
  import { type WebShellLanguage } from './i18n';
6
6
  import { type WebShellTheme } from './themeContext';
7
+ /** Change productScope with tenant/actor identity so saved selections and output caches are discarded. */
7
8
  export interface ManagedAgentWebShellProps extends JavaManagedAgentProviderOptions {
8
9
  sessionId?: string;
9
10
  onSessionChange?: (sessionId: string | undefined) => void;
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { DaemonBackgroundTurn, DaemonSessionArtifactInput, DaemonInputAnnotation } from '@qwen-code/sdk/daemon';
7
+ import type { components } from '../components/managed/generated/managed-agent-api.js';
7
8
  export interface AttachmentPreviewRequest {
8
9
  name: string;
9
10
  mimeType?: string;
@@ -39,9 +40,12 @@ export interface DaemonMessageToolCall {
39
40
  backgroundResultPending?: boolean;
40
41
  status: DaemonMessageToolCallStatus;
41
42
  parentToolCallId?: string;
43
+ /** The producer's own call ID when `callId` is keyed by something else. */
44
+ toolCallId?: string;
42
45
  title?: string;
43
46
  content?: readonly DaemonMessageToolCallContent[];
44
47
  rawOutput?: unknown;
48
+ toolResult?: components['schemas']['PublicToolResult'];
45
49
  locations?: DaemonMessageToolCallLocation[];
46
50
  kind?: DaemonMessageToolKind;
47
51
  startTime?: number;
@@ -59,6 +63,16 @@ export interface DaemonMessageTodoItem {
59
63
  priority?: 'high' | 'medium' | 'low';
60
64
  blockedBy?: string[];
61
65
  }
66
+ /**
67
+ * Who wrote a message when a transcript has more than one assistant voice, as
68
+ * in a conversation several workspace agents work in. Absent in an ordinary
69
+ * session, where the assistant needs no name.
70
+ */
71
+ export interface DaemonMessageAuthor {
72
+ name: string;
73
+ /** The agent's own color, when it has one. */
74
+ color?: string;
75
+ }
62
76
  /**
63
77
  * Fields shared by every history message. Kept as a base interface so a new
64
78
  * cross-cutting field is declared once rather than on each role.
@@ -84,6 +98,7 @@ export interface DaemonMessageMeta {
84
98
  timestamp?: number;
85
99
  /** Stable transcript blocks folded into this rendered message. */
86
100
  sourceBlockIds?: string[];
101
+ author?: DaemonMessageAuthor;
87
102
  }
88
103
  export interface DaemonUserMessage extends DaemonMessageMeta {
89
104
  id: string;
@@ -1,3 +1,4 @@
1
1
  import type { DaemonTranscriptBlock } from '@qwen-code/web-shell/daemon-react-sdk';
2
2
  import type { PermissionRequest } from './types';
3
3
  export declare function extractPendingPermission(blocks: readonly DaemonTranscriptBlock[]): PermissionRequest | null;
4
+ export declare function escapePreviewText(text: string): string;
@@ -75,6 +75,7 @@ interface ChatEditorProps {
75
75
  showChatWidthToggle?: boolean;
76
76
  chatWidthToggleMin?: number;
77
77
  visibleToolbarActions?: readonly ComposerToolbarAction[];
78
+ liveVoicePortalContainer?: HTMLElement | null;
78
79
  /**
79
80
  * Where the composer's context chips (workspace selector, git branch) land.
80
81
  * `toolbar` (default) keeps both in the composer toolbar. `below` moves both
@@ -40,6 +40,7 @@ export declare function DesktopRelayPanel({ status, installCommand, copied, onCo
40
40
  interface DesktopRelayControlProps {
41
41
  /** Class for the trigger, supplied by the sidebar so it matches its neighbours. */
42
42
  triggerClassName: string;
43
+ portalContainer?: HTMLElement | null;
43
44
  workspaces?: readonly DaemonWorkspaceCapability[];
44
45
  showWhenIdle?: boolean;
45
46
  }
@@ -47,5 +48,5 @@ interface DesktopRelayControlProps {
47
48
  * "Use this computer": asks the relay on the viewer's computer to lend its
48
49
  * node_repl to this session over the daemon's reverse tool channel.
49
50
  */
50
- export declare function DesktopRelayControl({ triggerClassName, workspaces, showWhenIdle, }: DesktopRelayControlProps): import("react/jsx-runtime").JSX.Element | null;
51
+ export declare function DesktopRelayControl({ triggerClassName, portalContainer, workspaces, showWhenIdle, }: DesktopRelayControlProps): import("react/jsx-runtime").JSX.Element | null;
51
52
  export {};
@@ -24,6 +24,8 @@ interface LocalFilesControlProps {
24
24
  * neighbours instead of inventing a second button style.
25
25
  */
26
26
  triggerClassName: string;
27
+ /** Keep the bridge mounted while its menu trigger is absent. */
28
+ portalContainer?: HTMLElement | null;
27
29
  /**
28
30
  * The merged workspace list (capabilities snapshot plus a locked workspace
29
31
  * registered before the snapshot). The sidebar already holds it; resolving
@@ -70,5 +72,5 @@ export declare function createLocalFilesRewarm(options: {
70
72
  selector: AcpWorkspaceSelector | undefined;
71
73
  preheat: () => Promise<unknown>;
72
74
  }): () => Promise<void>;
73
- export declare function LocalFilesControl({ triggerClassName, workspaces, }: LocalFilesControlProps): import("react/jsx-runtime").JSX.Element;
75
+ export declare function LocalFilesControl({ triggerClassName, portalContainer, workspaces, }: LocalFilesControlProps): import("react/jsx-runtime").JSX.Element | null;
74
76
  export {};
@@ -13,6 +13,7 @@ interface MessageItemProps {
13
13
  onImagePreview?: (src: string, alt?: string) => void;
14
14
  onAttachmentPreview?: (file: AttachmentPreviewRequest) => void;
15
15
  onTurnOutputOpen?: (request: TurnOutputOpenRequest) => void;
16
+ onToolResultOpen?: (itemId: string) => void;
16
17
  onInsightReportOpen?: (path: string) => void;
17
18
  workspaceCwd?: string;
18
19
  showRetryHint?: boolean;
@@ -106,6 +106,7 @@ export interface MessageListProps {
106
106
  onOpenArtifact?: (artifactId: string, previewContent?: string) => void;
107
107
  onOpenScheduledTask?: (task: TurnOutputScheduledTask) => void;
108
108
  onTurnOutputOpen?: (request: TurnOutputOpenRequest) => void;
109
+ onToolResultOpen?: (itemId: string) => void;
109
110
  onError?: (error: unknown, fallback: string) => void;
110
111
  generateContent?: SessionContentGenerator;
111
112
  }
@@ -1,9 +1,37 @@
1
1
  import { type DaemonWorkspaceAgentDetail } from '@qwen-code/web-shell/daemon-react-sdk';
2
+ import { type AgentProgramView } from '../workspace-agents/agents-view-logic';
2
3
  interface AgentCreatePageProps {
4
+ workspaceCwd?: string;
3
5
  initialScope?: 'workspace' | 'global';
4
6
  agent?: DaemonWorkspaceAgentDetail;
5
7
  onCancel: () => void;
6
8
  onCreated: (name: string) => void;
9
+ executionHosts?: readonly {
10
+ id: string;
11
+ label: string;
12
+ status: 'online' | 'offline';
13
+ provider?: string;
14
+ /** Program ids the runtime reported it can run. */
15
+ programs?: readonly string[];
16
+ workspaceCwd?: string;
17
+ }[];
18
+ /** Preselects the runtime, e.g. right after it joined. */
19
+ initialHostId?: string;
20
+ onSaveWorkspaceAgent?: (input: {
21
+ name: string;
22
+ description?: string;
23
+ instructions?: string;
24
+ agentType?: string;
25
+ model?: string;
26
+ maxConcurrentRuns: number;
27
+ execution?: {
28
+ mode: 'local';
29
+ } | {
30
+ mode: 'managed-host';
31
+ hostIds: string[];
32
+ provider?: AgentProgramView;
33
+ };
34
+ }) => Promise<void>;
7
35
  }
8
- export declare function AgentCreatePage({ initialScope, agent, onCancel, onCreated, }: AgentCreatePageProps): import("react/jsx-runtime").JSX.Element;
36
+ export declare function AgentCreatePage({ initialScope, agent, onCancel, onCreated, executionHosts, workspaceCwd, initialHostId, onSaveWorkspaceAgent, }: AgentCreatePageProps): import("react/jsx-runtime").JSX.Element;
9
37
  export {};
@@ -1,8 +1,13 @@
1
1
  import type { EmbeddedManagerPage } from '../plugins/manager-page';
2
2
  interface AgentsManagerPageProps {
3
+ initialAgentView?: 'agents' | 'tasks' | 'runtime' | 'new-agent';
3
4
  onClose: () => void;
4
5
  embedded?: EmbeddedManagerPage;
5
6
  initialCreateScope?: 'workspace' | 'global' | null;
7
+ workspaceCwd?: string;
8
+ /** Opens an agent's own session in the shell's session view. */
9
+ onOpenAgentSession?: (sessionId: string) => void;
10
+ onOpenThreadChat?: (threadId: string, workspaceCwd: string) => void;
6
11
  }
7
- export declare function AgentsManagerPage({ onClose, embedded, initialCreateScope, }: AgentsManagerPageProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function AgentsManagerPage({ initialAgentView, onClose, embedded, initialCreateScope, workspaceCwd, onOpenAgentSession, onOpenThreadChat, }: AgentsManagerPageProps): import("react/jsx-runtime").JSX.Element;
8
13
  export {};
@@ -171,6 +171,12 @@ export type ArtifactPanelTab = (WebPreviewState & {
171
171
  kind: 'workflow';
172
172
  title: string;
173
173
  sessionId?: string;
174
+ } | {
175
+ id: string;
176
+ kind: 'agent_activity';
177
+ title: string;
178
+ threadId: string;
179
+ workspaceCwd: string;
174
180
  } | {
175
181
  id: 'turn_calls';
176
182
  kind: 'turn_calls';
@@ -239,6 +245,7 @@ interface ArtifactPanelProps {
239
245
  agentTraceLoading?: boolean;
240
246
  agentTraceError?: string;
241
247
  onOpenWorkflowAgent?: (task: EnvironmentAgentTask) => void;
248
+ onOpenCollaborationSession?: (sessionId: string, workspaceCwd: string) => void;
242
249
  onError?: (error: unknown, fallback: string) => void;
243
250
  sessionWorkflowEnabled?: boolean;
244
251
  modelManagement?: WebShellModelManagementOptions;
@@ -263,5 +270,5 @@ interface ArtifactPanelProps {
263
270
  fullscreen?: boolean;
264
271
  onToggleFullscreen?: () => void;
265
272
  }
266
- export declare function ArtifactPanel({ contextUsageControls, artifacts, tabs, activeTabId, reviewChanges, selectedReviewPath, panelWidth, workspaceCwd, loading, restoring, error, onSelectTab, onSelectTurnCallsPrompt, onCloseTab, onOpenFilePreview, latestReviewAvailable, onOpenLatestReview, onOpenTerminal, onOpenTrajectory, trajectoryTabId, onOpenWebPreview, onWebPreviewChange, items, sideTaskAvailable, sideTasks, sideTasksLoading, onCreateSideTask, onOpenSideTask, 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;
273
+ export declare function ArtifactPanel({ contextUsageControls, artifacts, tabs, activeTabId, reviewChanges, selectedReviewPath, panelWidth, workspaceCwd, loading, restoring, error, onSelectTab, onSelectTurnCallsPrompt, onCloseTab, onOpenFilePreview, latestReviewAvailable, onOpenLatestReview, onOpenTerminal, onOpenTrajectory, trajectoryTabId, onOpenWebPreview, onWebPreviewChange, items, sideTaskAvailable, sideTasks, sideTasksLoading, onCreateSideTask, onOpenSideTask, onCreateSideTaskSession, onSideTaskCreated, onSideTaskTitleChange, onSideTaskInitialPromptRefused, onNestedRightPanelOpen, onNestedArtifactsChange, onOpenNestedSubagent, agentTasks, agentTraceLoading, agentTraceError, onOpenWorkflowAgent, onOpenCollaborationSession, onError, sessionWorkflowEnabled, modelManagement, workflow, onImageIngestionNotice, deferSubagentMount, onClose, variant, fullscreen, onToggleFullscreen, }: ArtifactPanelProps): import("react/jsx-runtime").JSX.Element;
267
274
  export {};
@@ -4,12 +4,14 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { TrajectoryRow } from '../../trajectory/types';
7
- export declare function TrajectoryInspector({ row, title, stale, turnSelected, hiddenByRange, onClearRange, onClose, }: {
7
+ export declare function TrajectoryInspector({ row, title, stale, turnSelected, hiddenByRange, hiddenByCollapse, onReveal, onClearRange, onClose, }: {
8
8
  row?: TrajectoryRow;
9
9
  title?: string;
10
10
  stale?: boolean;
11
11
  turnSelected?: boolean;
12
12
  hiddenByRange: boolean;
13
+ hiddenByCollapse: boolean;
14
+ onReveal: () => void;
13
15
  onClearRange: () => void;
14
16
  onClose: () => void;
15
17
  }): import("react/jsx-runtime").JSX.Element;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import type { TimelineMode, TimelineModel, TimelineSpan } from '../../trajectory/buildTimeline';
7
7
  import { type TimelineRange } from '../../trajectory/timelineRange';
8
+ import type { TimelineViewportController } from '../../trajectory/useTimelineViewport';
8
9
  /**
9
10
  * The strip's height, which never changes. It sits above the table as a flex
10
11
  * sibling of the scrolled rows, so any change in its height would move every
@@ -20,6 +21,7 @@ export declare const OVERVIEW_HEIGHT = 64;
20
21
  export declare const DRAG_THRESHOLD_PX = 4;
21
22
  export interface TrajectoryOverviewProps {
22
23
  model: TimelineModel | undefined;
24
+ viewportControl: TimelineViewportController;
23
25
  /** Shown inside the box when there is no model to draw. */
24
26
  notice?: string;
25
27
  selectedKey?: string;
@@ -68,4 +70,4 @@ export declare function formatWindowTime(ms: number, windowMs: number): string;
68
70
  * milliseconds.
69
71
  */
70
72
  export declare function formatClockTime(epochMs: number, windowMs: number, language: string): string;
71
- export declare function TrajectoryOverview({ model, notice, selectedKey, onSelect, describe, range, onRangeChange, onModeChange, }: TrajectoryOverviewProps): import("react/jsx-runtime").JSX.Element;
73
+ export declare function TrajectoryOverview({ model, viewportControl, notice, selectedKey, onSelect, describe, range, onRangeChange, onModeChange, }: TrajectoryOverviewProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { TimelineSpan } from '../../trajectory/buildTimeline';
7
+ import type { TimelineRange } from '../../trajectory/timelineRange';
8
+ import type { TimelineViewport } from '../../trajectory/useTimelineViewport';
9
+ export declare function TrajectoryWaterfallCell({ span, total, viewport, range, title, }: {
10
+ span?: TimelineSpan;
11
+ total: number;
12
+ viewport?: TimelineViewport;
13
+ range?: TimelineRange;
14
+ title?: string;
15
+ }): import("react/jsx-runtime").JSX.Element;
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { type Ref } from 'react';
7
7
  interface ChannelsManagerPageProps {
8
- onClose: () => void;
8
+ onClose?: () => void;
9
9
  initialFocusRef?: Ref<HTMLHeadingElement>;
10
10
  }
11
11
  export declare function ChannelsManagerPage({ onClose, initialFocusRef, }: ChannelsManagerPageProps): import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,3 @@
1
- import type { DaemonExtensionEntry } from '@qwen-code/sdk/daemon';
2
- export declare function preserveSelectedExtensionName(name: string | null, extensions: readonly DaemonExtensionEntry[]): string | null;
3
- export declare function filterExtensions(extensions: readonly DaemonExtensionEntry[], query: string): DaemonExtensionEntry[];
1
+ import type { DaemonExtensionSummary } from '@qwen-code/sdk/daemon';
2
+ export declare function preserveSelectedExtensionName(name: string | null, extensions: readonly DaemonExtensionSummary[]): string | null;
3
+ export declare function filterExtensions<T extends DaemonExtensionSummary>(extensions: readonly T[], query: string): T[];
@@ -0,0 +1,9 @@
1
+ import type { ManagedToolResultReader } from './managed-tool-result-types';
2
+ export declare const MANAGED_OUTPUT_PAGE_BYTES: number;
3
+ export declare function ManagedToolResultPanel({ reader, sessionId, clientId, itemId, onClose, }: {
4
+ reader: ManagedToolResultReader;
5
+ sessionId: string;
6
+ clientId: string;
7
+ itemId?: string;
8
+ onClose: () => void;
9
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import type { ManagedToolResult } from './managed-tool-result-types';
2
+ export declare function ManagedToolResultSummary({ result, onOpen, }: {
3
+ result: ManagedToolResult;
4
+ onOpen?: (itemId: string) => void;
5
+ }): import("react/jsx-runtime").JSX.Element;