@qwen-code/web-shell 0.25.0 → 0.25.1-nightly.20261012.18f80f5666

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 (93) hide show
  1. package/README.md +6 -7
  2. package/dist/agents-route-DlEzBEU4.js +1546 -0
  3. package/dist/daemon-react-sdk.js +1 -1
  4. package/dist/{index-tVJkU24-.js → index-NuS7ToOq.js} +53556 -48611
  5. package/dist/index.js +22 -22
  6. package/dist/sw.js +1 -1
  7. package/dist/transcript.js +9991 -9580
  8. package/dist/types/adapters/messageTypes.d.ts +8 -1
  9. package/dist/types/adapters/transcriptAdapter.d.ts +2 -1
  10. package/dist/types/browser-turn-notifications.d.ts +2 -1
  11. package/dist/types/components/ChatContextHeader.d.ts +3 -1
  12. package/dist/types/components/ChatEditor.d.ts +4 -7
  13. package/dist/types/components/QueuedPromptDisplay.d.ts +4 -1
  14. package/dist/types/components/WorkspaceSelector.d.ts +9 -1
  15. package/dist/types/components/agents/AgentCreatePage.d.ts +7 -1
  16. package/dist/types/components/agents/AgentsManagerPage.d.ts +4 -5
  17. package/dist/types/components/artifacts/ArtifactPanel.d.ts +1 -8
  18. package/dist/types/components/artifacts/TrajectoryFilters.d.ts +15 -0
  19. package/dist/types/components/artifacts/TrajectoryInspector.d.ts +3 -1
  20. package/dist/types/components/artifacts/artifactUtils.d.ts +9 -0
  21. package/dist/types/components/managed/ManagedSessionCwdControl.d.ts +9 -0
  22. package/dist/types/components/managed/ManagedTaskPanel.d.ts +15 -0
  23. package/dist/types/components/managed/ManagedToolResultPanel.d.ts +6 -1
  24. package/dist/types/components/managed/generated/managed-agent-api.d.ts +273 -25
  25. package/dist/types/components/managed/java-managed-agent-client.d.ts +41 -1
  26. package/dist/types/components/managed/managed-agent-provider.d.ts +50 -1
  27. package/dist/types/components/managed/managed-request-error.d.ts +6 -0
  28. package/dist/types/components/managed/managed-task-messages.d.ts +9 -0
  29. package/dist/types/components/managed/managed-task-messages.transcript-stub.d.ts +7 -0
  30. package/dist/types/components/managed/managed-task.test-fixtures.d.ts +4 -0
  31. package/dist/types/components/managed/use-managed-actions.d.ts +6 -5
  32. package/dist/types/components/managed/use-managed-cwd-change.d.ts +21 -0
  33. package/dist/types/components/managed/use-managed-session.d.ts +15 -1
  34. package/dist/types/components/managed/use-managed-task-cancel.d.ts +12 -0
  35. package/dist/types/components/managed/use-managed-tasks.d.ts +49 -0
  36. package/dist/types/components/messages/AssistantMessage.d.ts +3 -1
  37. package/dist/types/components/messages/BrowserNotificationControl.d.ts +1 -0
  38. package/dist/types/components/messages/SelectionCopyMenu.d.ts +8 -0
  39. package/dist/types/components/messages/SelectionCopyMenu.transcript-stub.d.ts +2 -0
  40. package/dist/types/components/messages/ToolApproval.d.ts +2 -1
  41. package/dist/types/components/messages/UserMessage.d.ts +3 -1
  42. package/dist/types/components/messages/agent-message-details.d.ts +36 -0
  43. package/dist/types/components/messages/squad-tag.d.ts +16 -0
  44. package/dist/types/components/messages/toolFormatting.d.ts +3 -3
  45. package/dist/types/components/sidebar/WebShellSidebar.d.ts +8 -4
  46. package/dist/types/components/sidebar/WorkspaceSection.d.ts +9 -2
  47. package/dist/types/components/workspace-agents/ThreadsPage.d.ts +31 -55
  48. package/dist/types/components/workspace-agents/add-runtime-dialog.d.ts +34 -5
  49. package/dist/types/components/workspace-agents/agent-events.d.ts +4 -34
  50. package/dist/types/components/workspace-agents/agents-route.d.ts +19 -0
  51. package/dist/types/components/workspace-agents/agents-view-logic.d.ts +14 -163
  52. package/dist/types/components/workspace-agents/lazy-agents-route.d.ts +7 -0
  53. package/dist/types/components/workspace-agents/messages.d.ts +2 -2
  54. package/dist/types/components/workspace-agents/session-agent-live-runs.d.ts +96 -0
  55. package/dist/types/components/workspace-agents/session-agents-api.d.ts +39 -0
  56. package/dist/types/components/workspace-agents/squads-section.d.ts +28 -0
  57. package/dist/types/components/workspace-agents/threads-api.d.ts +25 -36
  58. package/dist/types/components/workspace-agents/use-session-agent-runs.d.ts +66 -0
  59. package/dist/types/components/workspace-agents/useAgentChatEntry.d.ts +74 -10
  60. package/dist/types/components/workspaces/HostLabel.d.ts +8 -0
  61. package/dist/types/components/workspaces/WorkspaceHostProjects.d.ts +18 -0
  62. package/dist/types/components/workspaces/WorkspaceLocation.d.ts +10 -0
  63. package/dist/types/config/daemon-target.d.ts +76 -0
  64. package/dist/types/config/daemon.d.ts +16 -0
  65. package/dist/types/config/host-fanout.d.ts +53 -0
  66. package/dist/types/config/remote-connections.d.ts +3 -0
  67. package/dist/types/config/workspace-hosts.d.ts +18 -0
  68. package/dist/types/constants/toolNames.d.ts +1 -0
  69. package/dist/types/daemon/session/turn-notification-context.d.ts +2 -1
  70. package/dist/types/daemon/session/types.d.ts +28 -4
  71. package/dist/types/hooks/useQueuedPrompts.d.ts +2 -0
  72. package/dist/types/trajectory/filter-messages.d.ts +9 -0
  73. package/dist/types/trajectory/filter-messages.transcript-stub.d.ts +7 -0
  74. package/dist/types/trajectory/filterTrajectory.d.ts +22 -0
  75. package/dist/types/trajectory/types.d.ts +1 -0
  76. package/dist/types/trajectory/useTrajectoryWindow.d.ts +21 -36
  77. package/dist/types/trajectory/window-messages.d.ts +9 -0
  78. package/dist/types/trajectory/window-messages.transcript-stub.d.ts +7 -0
  79. package/dist/types/utils/askUserPermission.d.ts +1 -1
  80. package/dist/types/utils/cancelledTurn.d.ts +17 -0
  81. package/dist/types/utils/selectionClipboard.d.ts +5 -0
  82. package/dist/types/utils/workspace.d.ts +10 -0
  83. package/dist/types/voice/messages.d.ts +9 -0
  84. package/dist/types/voice/messages.transcript-stub.d.ts +7 -0
  85. package/dist/types/voice/voice-error.d.ts +7 -0
  86. package/dist/{toolNames-CAeFJ9L9.js → useDaemonMidTurnInjected-snTFfPQ9.js} +4953 -4614
  87. package/package.json +4 -1
  88. package/dist/ThreadsRoute-CtecWS_K.js +0 -2358
  89. package/dist/types/components/workspace-agents/LazyThreadsRoute.d.ts +0 -7
  90. package/dist/types/components/workspace-agents/ThreadChat.d.ts +0 -35
  91. package/dist/types/components/workspace-agents/ThreadView.d.ts +0 -72
  92. package/dist/types/components/workspace-agents/ThreadsRoute.d.ts +0 -23
  93. package/dist/types/components/workspace-agents/useProjectConversations.d.ts +0 -10
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Trajectory, TrajectoryRow } from './types';
7
+ export interface TrajectoryFilter {
8
+ query: string;
9
+ type: 'all' | TrajectoryRow['kind'];
10
+ status: 'all' | 'success' | 'error' | 'cancelled' | 'running' | 'unknown';
11
+ }
12
+ export interface TrajectorySearchIndex {
13
+ rows: Array<{
14
+ key: string;
15
+ kind: TrajectoryRow['kind'];
16
+ status?: Exclude<TrajectoryFilter['status'], 'all'>;
17
+ fields: string[];
18
+ }>;
19
+ truncatedCount: number;
20
+ }
21
+ export declare function buildTrajectorySearchIndex(trajectory: Trajectory): TrajectorySearchIndex;
22
+ export declare function filterTrajectory(index: TrajectorySearchIndex, filter: TrajectoryFilter): string[];
@@ -82,6 +82,7 @@ export interface TrajectoryRequestRow extends TrajectoryRowBase {
82
82
  /** Folded from the round's assistant block; absent when none carried it. */
83
83
  usage?: DaemonTurnUsage;
84
84
  recordId?: string;
85
+ executionId?: string;
85
86
  responseId?: string;
86
87
  promptId?: string;
87
88
  /** Set when a subagent issued the request. */
@@ -59,55 +59,40 @@ export type TrajectoryWindowFailure = {
59
59
  } | {
60
60
  kind: 'unreadable';
61
61
  message: string;
62
+ } | {
63
+ kind: 'expired' | 'protocol' | 'budget';
62
64
  };
65
+ export declare const TRAJECTORY_BOOKMARK_LIMIT = 64;
66
+ export declare const TRAJECTORY_CURSOR_BUDGET: number;
63
67
  export interface TrajectoryWindow {
64
68
  trajectory: Trajectory | undefined;
65
69
  status: 'idle' | 'loading' | 'ready' | 'error';
66
- /**
67
- * The newest page could not be read. The window already on screen, if any,
68
- * is kept.
69
- */
70
70
  error?: TrajectoryWindowFailure;
71
- /**
72
- * Pages read so far by the load under way, or held by the window once it
73
- * is ready. What the placeholder counts while the walk back is running.
74
- */
75
71
  loadedPages: number;
76
- /**
77
- * The session has history older than the window: the walk stopped at the
78
- * page cap, at a page the daemon gave no cursor for, or at an older page it
79
- * could not read.
80
- */
72
+ windowPages: number;
81
73
  truncated: boolean;
82
- /**
83
- * An older page could not be read, so the window stops just after it. The
84
- * newer pages are drawn; `refresh` is the retry.
85
- */
86
74
  olderFailure?: TrajectoryWindowFailure;
87
- /** Read the window again from the newest page. Also every retry. */
75
+ navigationError?: TrajectoryWindowFailure;
76
+ mode: 'latest' | 'history';
77
+ navigationVersion: number;
78
+ canRefresh: boolean;
79
+ canOlder: boolean;
80
+ canNewer: boolean;
81
+ historyReleased: boolean;
82
+ bookmarks: number;
88
83
  refresh: () => void;
84
+ older: () => void;
85
+ newer: () => void;
86
+ retry: () => void;
89
87
  }
90
88
  /**
91
- * Hold a window of one session's transcript and fold it into a trajectory.
92
- *
93
- * The pages are this view's own: paged replay is the only path that emits
94
- * timing frames, and the chat store is fed by the live stream and by bulk
95
- * replay, neither of which carries them. Reading here also keeps the window
96
- * contiguous by construction, which is what lets the projection pair a frame
97
- * with what it measured.
98
- *
99
- * A load walks back from the newest page by cursor, up to the page cap, and
100
- * the window lands once, whole, when the walk ends. Nothing is ever put in
101
- * front of rows already drawn: a list that grew upwards under the reader would
102
- * have to move its scroll offset, its keys, its selection and its focus in
103
- * step, and no part of that is observable outside a real browser.
104
- *
105
- * `refresh` rebuilds the window from the newest page rather than splicing into
106
- * it: page boundaries are chosen per request, so a fresh page and the held
107
- * ones overlap by an unknown amount and cannot be joined without dropping or
108
- * repeating records.
89
+ * Windows are contiguous cursor walks, committed whole. Only bookmarks survive
90
+ * a switch: replaying a saved cursor stays in its snapshot, whereas a read
91
+ * without one explicitly returns to the latest snapshot.
109
92
  */
110
93
  export declare function useTrajectoryWindow(loadPage: TrajectoryPageLoader | undefined, options?: {
111
94
  pageSize?: number;
112
95
  maxPages?: number;
96
+ bookmarkLimit?: number;
97
+ cursorBudget?: number;
113
98
  }): TrajectoryWindow;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ type WindowMessage = string | ((vars?: Record<string, string | number>) => string);
7
+ export declare const TRAJECTORY_WINDOW_MESSAGES_EN: Record<string, WindowMessage>;
8
+ export declare const TRAJECTORY_WINDOW_MESSAGES_ZH: Record<string, WindowMessage>;
9
+ export {};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const TRAJECTORY_WINDOW_MESSAGES_EN: {};
7
+ export declare const TRAJECTORY_WINDOW_MESSAGES_ZH: {};
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Qwen Team
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { PermissionRequest } from '../adapters/types';
6
+ import type { PermissionRequest } from '../adapters/types.js';
7
7
  /**
8
8
  * True when a pending permission is an AskUserQuestion prompt (it carries a
9
9
  * `questions` array, and either no tool name or the AskUserQuestion tool name)
@@ -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;
@@ -0,0 +1,5 @@
1
+ export declare function getReplySelectionRange(body: HTMLElement): Range | null;
2
+ export declare function getSelectedReplyContent(body: HTMLElement, range: Range): {
3
+ text: string;
4
+ markdown: string;
5
+ } | null;
@@ -14,6 +14,16 @@ export declare function workspaceBasename(cwd: string): string;
14
14
  export declare function sshWorkspaceLabel(ssh: NonNullable<DaemonWorkspaceCapability['ssh']>): string;
15
15
  export declare function workspaceLabel(workspace: Pick<DaemonWorkspaceCapability, 'cwd' | 'displayName' | 'ssh'>): string;
16
16
  export declare function workspaceLabelForCwd(cwd: string, workspaces: readonly Pick<DaemonWorkspaceCapability, 'cwd' | 'displayName' | 'ssh'>[] | undefined): string;
17
+ /**
18
+ * Suffix the parent directory onto labels that collide inside one list.
19
+ * Two daemons — or one daemon with two checkouts — frequently register the
20
+ * same basename (`qwen-code` everywhere); the menu must tell them apart by
21
+ * the workspace's own location, not only by tooltip or host badge.
22
+ */
23
+ export declare function disambiguateWorkspaceLabels<T extends {
24
+ label: string;
25
+ cwd: string;
26
+ }>(entries: readonly T[]): T[];
17
27
  /**
18
28
  * True when the daemon advertises more than one registered workspace — i.e. the
19
29
  * multi-workspace session surfaces (per-workspace labels/tags) should show.
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ type VoiceMessage = string | ((vars?: Record<string, string | number>) => string);
7
+ export declare const VOICE_MESSAGES_EN: Record<string, VoiceMessage>;
8
+ export declare const VOICE_MESSAGES_ZH: Record<string, VoiceMessage>;
9
+ export {};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const VOICE_MESSAGES_EN: {};
7
+ export declare const VOICE_MESSAGES_ZH: {};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { getTranslator } from '../i18n';
7
+ export declare function formatVoiceError(message: string | undefined, t: ReturnType<typeof getTranslator>): string;