@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
@@ -202,6 +202,12 @@ export interface DaemonPromptSettledEvent {
202
202
  sessionId: string;
203
203
  promptId: string;
204
204
  outcome: DaemonPromptSettlementOutcome;
205
+ /**
206
+ * The client that submitted the prompt, from the terminal frame's
207
+ * envelope. Lets a submitter recognise its own turn when the admission
208
+ * response never reached it.
209
+ */
210
+ originatorClientId?: string;
205
211
  /** Daemon terminal reason. Present for completed and cancelled turns. */
206
212
  stopReason?: string;
207
213
  error?: {
@@ -277,9 +283,12 @@ export interface SendPromptOptions {
277
283
  * runs to completion. Lets a caller act on "the prompt reached the session"
278
284
  * without waiting for the whole turn — e.g. the scheduled-tasks "run now",
279
285
  * which records the run at admission so a long/stalled turn or a closed tab
280
- * can't lose the record.
286
+ * can't lose the record. Carries the daemon's id for the prompt, the key
287
+ * its terminal `turn_complete` / `turn_error` settles under.
281
288
  */
282
- onAdmitted?: () => void;
289
+ onAdmitted?: (admission: {
290
+ promptId: string;
291
+ }) => void;
283
292
  }
284
293
  export interface SubmitPromptOptions extends SendPromptOptions {
285
294
  sessionId?: string;
@@ -440,11 +449,18 @@ export interface DaemonSessionActions {
440
449
  generateSessionContent(prompt: string, opts?: {
441
450
  signal?: AbortSignal;
442
451
  }): AsyncGenerator<DaemonSessionGenerationEvent>;
443
- getRewindSnapshots(): Promise<{
452
+ getRewindSnapshots(opts?: {
453
+ /** Rethrow failures raw instead of recording a notice; for best-effort
454
+ * callers that fall back on their own. */
455
+ silent?: boolean;
456
+ }): Promise<{
444
457
  snapshots: DaemonRewindSnapshotInfo[];
445
458
  }>;
446
459
  rewindSession(promptId: string, opts?: {
447
460
  rewindFiles?: boolean;
461
+ /** Rethrow failures raw instead of recording a notice; for best-effort
462
+ * callers that fall back on their own. */
463
+ silent?: boolean;
448
464
  }): Promise<DaemonRewindResult>;
449
465
  btwSession(question: string, opts?: {
450
466
  signal?: AbortSignal;
@@ -10,6 +10,10 @@ export declare function useDaemonMemory(options?: DaemonResourceOptions): {
10
10
  readFile: (filePath: string, opts?: {
11
11
  maxBytes?: number;
12
12
  }) => Promise<import("@qwen-code/sdk/daemon").DaemonWorkspaceFile>;
13
+ readMemoryFile: (filePath: string) => Promise<import("@qwen-code/sdk/daemon").DaemonWorkspaceFile | {
14
+ content: string;
15
+ truncated: boolean;
16
+ }>;
13
17
  writeMemory: (req: import("@qwen-code/sdk/daemon").DaemonWriteMemoryRequest) => Promise<import("@qwen-code/sdk/daemon").DaemonWriteMemoryResult>;
14
18
  reload: () => Promise<import("@qwen-code/sdk/daemon").DaemonWorkspaceMemoryStatus | undefined>;
15
19
  data: import("@qwen-code/sdk/daemon").DaemonWorkspaceMemoryStatus | undefined;
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { ReactNode } from 'react';
7
- import type { DaemonAgentMutationResult, DaemonAuthProviderId, DaemonAuthProviderCatalog, DaemonAuthProviderInstallRequest, DaemonAuthProviderInstallResult, DaemonAuthStatusSnapshot, DaemonCapabilities, DaemonChannelMutationResult, DaemonChannelPairingApprovalResult, DaemonChannelPairingApprovalsSnapshot, DaemonChannelPairingRequestsSnapshot, DaemonChannelPairingRevocationRequest, DaemonChannelPairingRevocationResult, DaemonChannelsSnapshot, DaemonChannelStartupRequest, DaemonChannelTypeCatalog, DaemonChannelUpsertRequest, DaemonClient, DaemonCreateAgentRequest, DaemonWorkspaceGenerationEvent, DaemonGeneratedAgentContent, DaemonDeviceFlowStartResult, DaemonDeviceFlowState, ExtensionMutationResponse, ExtensionInteractionResponse, ExtensionInteractionResponseResult, ExtensionOperationStatus, ExtensionActiveOperations, ExtensionRefreshResponse, ExtensionScopeRequest, ExtensionInstallRequest, ExtensionArchiveInstallRequest, ExtensionInstallResponse, ExtensionUpdateCheckResponse, GoalControlRequest, GoalSnapshotV2, GoalStateResponse, DaemonInitWorkspaceResult, DaemonMcpRestartResult, DaemonMcpManageAction, DaemonMcpManageResult, DaemonRuntimeMcpAddRequest, DaemonRuntimeMcpAddResult, DaemonRuntimeMcpRemoveResult, DaemonUpdateAgentRequest, DaemonWorkspaceAgentDetail, DaemonWorkspaceAgentsStatus, DaemonWorkspaceAcpPreheatResult, DaemonWorkspaceEnvStatus, DaemonWorkspaceExtensionsStatus, DaemonWorkspaceFile, DaemonWorkspaceFileBytes, DaemonWorkspaceFileEditRequest, DaemonWorkspaceFileEditResult, DaemonWorkspaceFileWriteRequest, DaemonWorkspaceFileWriteResult, DaemonWorkspaceMcpStatus, DaemonWorkspaceMcpConfigStatus, DaemonMcpConfigMutationResult, DaemonMcpConfigScope, DaemonWorkspaceRuntimeStatus, DaemonWorkspaceMcpInitializeResult, DaemonWorkspaceMcpReloadResult, DaemonWorkspaceMcpToolsStatus, DaemonWorkspaceMcpResourcesStatus, DaemonWorkspaceMemoryStatus, DaemonWorkspaceCapability, DaemonWorkspaceRemovalResult, DaemonWorkspaceUpdate, DaemonWorkspacePreflightStatus, DaemonWorkspaceProvidersStatus, DaemonWorkspaceSkillsStatus, DaemonSkillToggleResult, DaemonSkillInstallRequest, DaemonSkillMutationResult, DaemonSkillScope, DaemonWorkspaceToolsStatus, DaemonBrand, DaemonWorkspaceSettingsStatus, DaemonSettingUpdateResult, DaemonModelDeleteRequest, DaemonModelDeleteResult, DaemonSessionGroup, DaemonSessionGroupCatalog, DaemonSessionGroupInput, DaemonSessionGroupUpdate, DaemonSessionListPage, DaemonSessionListPageOptions, DaemonSessionOrganizationResult, DaemonSessionOrganizationUpdate, DaemonSessionSummary, DaemonSessionExportFormat, DaemonSessionExportResult, DaemonStatusReport, DaemonStatusReportDetail, DaemonUsageDashboard, DaemonUsageRange, DaemonWriteMemoryRequest, DaemonWriteMemoryResult, DaemonRevisionRequest } from '@qwen-code/sdk/daemon';
7
+ import type { DaemonAgentMutationResult, DaemonAuthProviderId, DaemonAuthProviderCatalog, DaemonAuthProviderInstallRequest, DaemonAuthProviderInstallResult, DaemonAuthStatusSnapshot, DaemonCapabilities, DaemonChannelMutationResult, DaemonChannelPairingApprovalResult, DaemonChannelPairingApprovalsSnapshot, DaemonChannelPairingRequestsSnapshot, DaemonChannelPairingRevocationRequest, DaemonChannelPairingRevocationResult, DaemonChannelsSnapshot, DaemonChannelStartupRequest, DaemonChannelTypeCatalog, DaemonChannelUpsertRequest, DaemonClient, DaemonCreateAgentRequest, DaemonWorkspaceGenerationEvent, DaemonGeneratedAgentContent, DaemonDeviceFlowStartResult, DaemonDeviceFlowState, ExtensionMutationResponse, ExtensionInteractionResponse, ExtensionInteractionResponseResult, ExtensionOperationStatus, ExtensionActiveOperations, ExtensionRefreshResponse, ExtensionScopeRequest, ExtensionInstallRequest, ExtensionArchiveInstallRequest, ExtensionInstallResponse, ExtensionUpdateCheckResponse, GoalControlRequest, GoalSnapshotV2, GoalStateResponse, DaemonInitWorkspaceResult, DaemonMcpRestartResult, DaemonMcpManageAction, DaemonMcpManageResult, DaemonRuntimeMcpAddRequest, DaemonRuntimeMcpAddResult, DaemonRuntimeMcpRemoveResult, DaemonUpdateAgentRequest, DaemonWorkspaceAgentDetail, DaemonWorkspaceAgentsStatus, DaemonWorkspaceAcpPreheatResult, DaemonWorkspaceEnvStatus, DaemonWorkspaceExtensionsStatus, DaemonWorkspaceExtensionSummaries, DaemonExtensionEntry, DaemonWorkspaceFile, DaemonWorkspaceFileBytes, DaemonWorkspaceFileEditRequest, DaemonWorkspaceFileEditResult, DaemonWorkspaceFileWriteRequest, DaemonWorkspaceFileWriteResult, DaemonWorkspaceMcpStatus, DaemonWorkspaceMcpConfigStatus, DaemonMcpConfigMutationResult, DaemonMcpConfigScope, DaemonWorkspaceRuntimeStatus, DaemonWorkspaceMcpInitializeResult, DaemonWorkspaceMcpReloadResult, DaemonWorkspaceMcpToolsStatus, DaemonWorkspaceMcpResourcesStatus, DaemonWorkspaceMemoryStatus, DaemonWorkspaceCapability, DaemonWorkspaceRemovalResult, DaemonWorkspaceUpdate, DaemonWorkspacePreflightStatus, DaemonWorkspaceProvidersStatus, DaemonWorkspaceSkillsStatus, DaemonSkillToggleResult, DaemonSkillInstallRequest, DaemonSkillMutationResult, DaemonSkillScope, DaemonWorkspaceToolsStatus, DaemonBrand, DaemonWorkspaceSettingsStatus, DaemonSettingUpdateResult, DaemonModelDeleteRequest, DaemonModelDeleteResult, DaemonSessionGroup, DaemonSessionGroupCatalog, DaemonSessionGroupInput, DaemonSessionGroupUpdate, DaemonSessionListPage, DaemonSessionListPageOptions, DaemonSessionOrganizationResult, DaemonSessionOrganizationUpdate, DaemonSessionSummary, DaemonSessionExportFormat, DaemonSessionExportResult, DaemonStatusReport, DaemonStatusReportDetail, DaemonUsageDashboard, DaemonUsageRange, DaemonWriteMemoryRequest, DaemonWriteMemoryResult, DaemonRevisionRequest } from '@qwen-code/sdk/daemon';
8
8
  export interface DaemonResourceOptions {
9
9
  autoLoad?: boolean;
10
10
  enabled?: boolean;
@@ -330,6 +330,8 @@ export interface DaemonWorkspaceActions {
330
330
  installWorkspaceSkill(request: DaemonSkillInstallRequest): Promise<DaemonSkillMutationResult>;
331
331
  deleteWorkspaceSkill(skillName: string, scope: DaemonSkillScope): Promise<DaemonSkillMutationResult>;
332
332
  loadExtensionsStatus(): Promise<DaemonWorkspaceExtensionsStatus>;
333
+ loadExtensionSummaries(): Promise<DaemonWorkspaceExtensionSummaries>;
334
+ loadExtensionDetails(name: string): Promise<DaemonExtensionEntry>;
333
335
  preheatAcp(timeoutMs?: number): Promise<DaemonWorkspaceAcpPreheatResult>;
334
336
  loadToolsStatus(): Promise<DaemonWorkspaceToolsStatus>;
335
337
  setWorkspaceToolEnabled(toolName: string, enabled: boolean): Promise<unknown>;
@@ -340,7 +342,9 @@ export interface DaemonWorkspaceActions {
340
342
  name: string;
341
343
  };
342
344
  }): Promise<DaemonSettingUpdateResult>;
343
- loadMemoryStatus(): Promise<DaemonWorkspaceMemoryStatus>;
345
+ loadMemoryStatus(options?: {
346
+ includeContent?: boolean;
347
+ }): Promise<DaemonWorkspaceMemoryStatus>;
344
348
  /**
345
349
  * `opts.maxBytes` is how a caller accepts partial content: without a window
346
350
  * argument the daemon refuses any file above its own read cap instead of
@@ -10,7 +10,8 @@ export type { WebShellBrowserNotificationsOptions } from './browser-turn-notific
10
10
  export { JavaManagedAgentClient, JavaManagedAgentHttpError, type JavaAgentCommandAdmission, type JavaAgentEnvironment, type JavaAgentEvent, type JavaAgentSession, type JavaAgentTranscript, type JavaAgentTurn, type JavaManagedAgentClientOptions, } from './components/managed/java-managed-agent-client';
11
11
  export { createJavaManagedAgentProvider, type JavaManagedAgentProviderOptions, } from './components/managed/java-managed-agent-provider';
12
12
  export { ManagedAgentWebShell, type ManagedAgentWebShellProps, } from './ManagedAgentWebShell';
13
- export { type ManagedAgentCommandOptions, type ManagedAgentProvider, type ManagedAgentRequestOptions, type ManagedAgentRuntimeState, type ManagedAgentSessionEvent, type ManagedAgentSessionEventType, type ManagedAgentSessionPhase, type ManagedAgentSessionSummary, type ManagedAgentSessionTranscript, type ManagedAgentTurnAdmission, } from './components/managed/managed-agent-provider';
13
+ export type { ManagedArtifact, ManagedArtifactPage, ManagedArtifactResponse, ManagedArtifactSave, ManagedToolResult, ManagedToolResultReader, ManagedToolResultResponse, } from './components/managed/managed-tool-result-types';
14
+ export { type ManagedAgentCommandOptions, type ManagedAgentPendingAction, type ManagedAgentProvider, type ManagedAgentRequestOptions, type ManagedAgentRuntimeState, type ManagedAgentSessionEvent, type ManagedAgentSessionEventType, type ManagedAgentSessionPhase, type ManagedAgentSessionSummary, type ManagedAgentSessionTranscript, type ManagedAgentTurnAdmission, } from './components/managed/managed-agent-provider';
14
15
  export interface WebShellWithProvidersProps extends WebShellProps {
15
16
  /**
16
17
  * Opt in to URL routing. Explicit initial session target props override the
@@ -4,8 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type React from 'react';
7
- export declare function LiveVoiceButton({ hideInactiveTrigger, open, onOpenChange, onSupportedChange, onRequestFocusFallback, }?: {
7
+ export declare function LiveVoiceButton({ hideInactiveTrigger, portalContainer, open, onOpenChange, onSupportedChange, onRequestFocusFallback, }?: {
8
8
  hideInactiveTrigger?: boolean;
9
+ portalContainer?: HTMLElement | null;
9
10
  open?: boolean;
10
11
  onOpenChange?: (open: boolean) => void;
11
12
  onSupportedChange?: (supported: boolean) => void;
@@ -21,6 +21,7 @@ export interface NavigationSessionProps {
21
21
  interface NavigationController {
22
22
  route: WebShellRoute;
23
23
  revision: number;
24
+ historyRevision?: number;
24
25
  openPage: (page: WebShellPage) => void;
25
26
  returnToChat: () => void;
26
27
  reconcilePage: (page: WebShellPage | undefined) => void;
@@ -53,6 +53,7 @@ declare const SETTING_KEYS: {
53
53
  readonly 'setting:scheduled-tasks': "experimental.cron";
54
54
  readonly 'setting:session-writer-lease': "experimental.sessionWriterLease";
55
55
  readonly 'setting:agent-team': "experimental.agentTeam";
56
+ readonly 'setting:agent-collaboration': "experimental.agentCollaboration";
56
57
  readonly 'setting:omni-media-delivery': "omni.enabled";
57
58
  readonly 'setting:artifacts': "experimental.artifact";
58
59
  readonly 'setting:tool-use-summaries': "experimental.emitToolUseSummaries";
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Trajectory, TrajectoryRow, TrajectoryTurn } from './types';
7
+ export type TrajectoryVisualRow = {
8
+ kind: 'turn';
9
+ key: string;
10
+ turn: TrajectoryTurn;
11
+ } | {
12
+ kind: 'row';
13
+ key: string;
14
+ row: TrajectoryRow;
15
+ };
16
+ export interface TrajectoryLayout {
17
+ rows: TrajectoryVisualRow[];
18
+ ancestors: Map<string, string[]>;
19
+ groups: Set<string>;
20
+ groupIdentities: Map<string, string>;
21
+ unresolvedParents: Set<string>;
22
+ }
23
+ export declare function buildTrajectoryLayout(trajectory: Trajectory): TrajectoryLayout;
24
+ /** Range context is computed before collapse, so hiding never changes a hit. */
25
+ export declare function trajectoryRowsInRange(layout: TrajectoryLayout, inRange: ReadonlySet<string> | undefined): TrajectoryVisualRow[];
26
+ export declare function visibleTrajectoryRows(layout: TrajectoryLayout, rangeRows: TrajectoryVisualRow[], collapsed: ReadonlySet<string>): TrajectoryVisualRow[];
27
+ export declare function visibleTrajectoryAncestor(layout: TrajectoryLayout, key: string, visible: ReadonlySet<string>): string | undefined;
@@ -81,11 +81,12 @@ export interface TrajectoryRequestRow extends TrajectoryRowBase {
81
81
  model?: string;
82
82
  /** Folded from the round's assistant block; absent when none carried it. */
83
83
  usage?: DaemonTurnUsage;
84
+ recordId?: string;
84
85
  responseId?: string;
85
86
  promptId?: string;
86
87
  /** Set when a subagent issued the request. */
87
88
  subagentId?: string;
88
- /** Main-session tool call that spawned the subagent, when resolvable. */
89
+ /** Tool call that spawned the subagent, when resolvable. */
89
90
  parentToolCallId?: string;
90
91
  }
91
92
  export interface TrajectoryMessageRow extends TrajectoryRowBase {
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { TimelineModel } from './buildTimeline';
7
+ export interface TimelineViewport {
8
+ start: number;
9
+ end: number;
10
+ }
11
+ export interface TimelineViewportController {
12
+ viewport: TimelineViewport | undefined;
13
+ currentView: () => {
14
+ start: number;
15
+ length: number;
16
+ };
17
+ applyViewport: (next: TimelineViewport | undefined) => void;
18
+ }
19
+ export declare function useTimelineViewport(model: TimelineModel | undefined): TimelineViewportController;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { DaemonTranscriptBlock } from '@qwen-code/sdk/daemon';
7
+ /**
8
+ * Whether everything a cancelled turn left behind its prompt can go with it.
9
+ * Thoughts count as nothing: cancelling mid-reasoning is exactly when taking
10
+ * the prompt back matters, and the TUI's restore-on-cancel treats them the
11
+ * same way. An answer, a tool call, shell output, a permission request or a
12
+ * later user message all keep the turn.
13
+ *
14
+ * Only meaningful once the daemon has settled the turn: until its terminal
15
+ * event arrives, "nothing received yet" is not "nothing produced".
16
+ */
17
+ export declare function cancelledTurnProducedNothing(blocksAfterPrompt: readonly DaemonTranscriptBlock[]): boolean;
@@ -37,6 +37,11 @@ export declare function parseUserMessageContentSafely(content: string, parser: U
37
37
  export declare function getComposerTagSerialized(tag: WebShellComposerTag): string;
38
38
  export declare function getComposerTagIconUrl(kind: WebShellComposerTagKind | undefined, customIconUrls?: WebShellComposerTagIconMap): string | undefined;
39
39
  export declare function isBuiltinComposerTagIconUrl(iconUrl: string | undefined): boolean;
40
- export declare function createInputAnnotationsFromComposerTags(content: string, tags: readonly WebShellComposerTag[]): DaemonInputAnnotation[];
40
+ export interface ComposerTagKnownPlacement {
41
+ start: number;
42
+ end: number;
43
+ tag: WebShellComposerTag;
44
+ }
45
+ export declare function createInputAnnotationsFromComposerTags(content: string, tags: readonly WebShellComposerTag[], knownPlacements?: readonly ComposerTagKnownPlacement[]): DaemonInputAnnotation[];
41
46
  export declare function splitComposerTagContentByAnnotations(content: string, inputAnnotations?: readonly DaemonInputAnnotation[]): ComposerTagContentSegment[];
42
47
  export declare function getComposerTagViewModel(tag: WebShellComposerTag, composerTagIcons?: WebShellComposerTagIconMap): ComposerTagViewModel;
@@ -13,3 +13,9 @@ export declare function extractBareModelId(modelId: string): string;
13
13
  * If the input has no colon, returns it unchanged.
14
14
  */
15
15
  export declare function decodeVisionModelForPicker(storedValue: string): string;
16
+ export declare function resolveFastModelForPicker(storedValue: string, models: readonly {
17
+ id: string;
18
+ baseModelId?: string;
19
+ authType?: string;
20
+ baseUrl?: string;
21
+ }[]): string;
@@ -3,7 +3,7 @@
3
3
  * Copyright 2026 Qwen Team
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const WEB_SHELL_PAGES: readonly ["plugins", "channels", "scheduled-tasks", "goals", "settings"];
6
+ export declare const WEB_SHELL_PAGES: readonly ["plugins", "channels", "live", "scheduled-tasks", "goals", "settings"];
7
7
  export type WebShellPage = (typeof WEB_SHELL_PAGES)[number];
8
8
  export interface SessionUrlTarget {
9
9
  sessionId?: string;
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { DaemonCapabilities, DaemonSessionSummary, DaemonWorkspaceCapability } from '@qwen-code/sdk/daemon';
7
+ export declare function isAgentCollaborationEnabledForWorkspace(capabilities: DaemonCapabilities | undefined, cwd: string | undefined): boolean;
7
8
  /**
8
9
  * Last path segment of an absolute workspace cwd, for a compact per-workspace
9
10
  * label (e.g. `/home/me/projects/api` → `api`). Falls back to the full path when
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qwen-code/web-shell",
3
- "version": "0.24.7",
3
+ "version": "0.25.1-preview.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/QwenLM/qwen-code.git",