@qwen-code/web-shell 0.24.7-nightly.20261004.9915c7ff8f → 0.25.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.
- package/README.md +45 -2
- package/dist/{ThreadsRoute-DIZyi2qi.js → ThreadsRoute-CtecWS_K.js} +2 -2
- package/dist/daemon-react-sdk.js +1 -1
- package/dist/{index-B623DgwE.js → index-tVJkU24-.js} +47784 -47319
- package/dist/index.js +3 -3
- package/dist/sw.js +1 -1
- package/dist/{toolNames-BofSebCU.js → toolNames-CAeFJ9L9.js} +119 -93
- package/dist/transcript.js +142 -128
- package/dist/types/App.d.ts +2 -2
- package/dist/types/components/ChatEditor.d.ts +1 -0
- package/dist/types/components/DesktopRelayControl.d.ts +2 -1
- package/dist/types/components/LocalFilesControl.d.ts +3 -1
- package/dist/types/components/channels/ChannelsManagerPage.d.ts +1 -1
- package/dist/types/components/managed/generated/managed-agent-api.d.ts +55 -8
- package/dist/types/components/sidebar/UpdateControl.d.ts +3 -1
- package/dist/types/components/sidebar/WebShellSidebar.d.ts +15 -5
- package/dist/types/components/sidebar/WorkspaceSection.d.ts +2 -1
- package/dist/types/live/LiveVoiceButton.d.ts +2 -1
- package/dist/types/navigation.d.ts +1 -0
- package/dist/types/utils/navigationUrl.d.ts +1 -1
- package/package.json +1 -1
package/dist/types/App.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
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
|
-
/**
|
|
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;
|
|
@@ -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 {};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { type Ref } from 'react';
|
|
7
7
|
interface ChannelsManagerPageProps {
|
|
8
|
-
onClose
|
|
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;
|
|
@@ -156,7 +156,7 @@ export interface paths {
|
|
|
156
156
|
};
|
|
157
157
|
get?: never;
|
|
158
158
|
put?: never;
|
|
159
|
-
/** @description D6 serves Hosted permission Actions. Question Actions and vote_recorded remain planned. Reads follow Session authorization; only the Session creator may respond. Responses are durable operations, reconciled against the original journal decision. */
|
|
159
|
+
/** @description D6 serves Hosted permission Actions. Question Actions and vote_recorded remain planned. Reads follow Session authorization; only the Session creator may respond (a Session with no recorded creator and no recorded create command answers to any caller in its tenant). Responses are durable operations, reconciled against the original journal decision. */
|
|
160
160
|
post: operations["queryWebShellActions"];
|
|
161
161
|
delete?: never;
|
|
162
162
|
options?: never;
|
|
@@ -173,7 +173,7 @@ export interface paths {
|
|
|
173
173
|
};
|
|
174
174
|
get?: never;
|
|
175
175
|
put?: never;
|
|
176
|
-
/** @description D6 serves Hosted permission Actions. Question Actions and vote_recorded remain planned. Reads follow Session authorization; only the Session creator may respond. Responses are durable operations, reconciled against the original journal decision. */
|
|
176
|
+
/** @description D6 serves Hosted permission Actions. Question Actions and vote_recorded remain planned. Reads follow Session authorization; only the Session creator may respond (a Session with no recorded creator and no recorded create command answers to any caller in its tenant). Responses are durable operations, reconciled against the original journal decision. */
|
|
177
177
|
post: operations["getWebShellAction"];
|
|
178
178
|
delete?: never;
|
|
179
179
|
options?: never;
|
|
@@ -190,7 +190,7 @@ export interface paths {
|
|
|
190
190
|
};
|
|
191
191
|
get?: never;
|
|
192
192
|
put?: never;
|
|
193
|
-
/** @description D6 serves Hosted permission Actions. Question Actions and vote_recorded remain planned. Reads follow Session authorization; only the Session creator may respond. Responses are durable operations, reconciled against the original journal decision. */
|
|
193
|
+
/** @description D6 serves Hosted permission Actions. Question Actions and vote_recorded remain planned. Reads follow Session authorization; only the Session creator may respond (a Session with no recorded creator and no recorded create command answers to any caller in its tenant). Responses are durable operations, reconciled against the original journal decision. */
|
|
194
194
|
post: operations["respondWebShellAction"];
|
|
195
195
|
delete?: never;
|
|
196
196
|
options?: never;
|
|
@@ -821,7 +821,7 @@ export interface components {
|
|
|
821
821
|
/** @enum {string} */
|
|
822
822
|
TaskKind: "child_agent" | "workflow" | "background_shell" | "monitor" | "automation_run";
|
|
823
823
|
/**
|
|
824
|
-
* @description Logical run state. completed, failed and cancelled are terminal and
|
|
824
|
+
* @description Logical run state. completed is terminal and is set when the run's own line ends settled, with or without a physical execution; failed and cancelled are terminal too, and they also cover a run that ended before its execution started (cancelled before dispatch, or failed with no provable start), when no physical execution ever settled. degraded means that the task still runs with reduced guarantees, such as a Monitor that lost its observation source. recovery_blocked means that recovery cannot prove the physical outcome: it is not settled, is never reported as success and is never re-run automatically.
|
|
825
825
|
* @enum {string}
|
|
826
826
|
*/
|
|
827
827
|
TaskState: "pending" | "running" | "waiting" | "completed" | "failed" | "cancelled" | "degraded" | "recovery_blocked";
|
|
@@ -959,7 +959,7 @@ export interface components {
|
|
|
959
959
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
960
960
|
};
|
|
961
961
|
};
|
|
962
|
-
/** @description A trusted actor is required for this request but none was supplied. */
|
|
962
|
+
/** @description A trusted actor is required for this request but none was supplied (actor_required). In signed authentication mode (qwenSignature) every covered public and WebShell route additionally answers 401 authentication_required when the signature, timestamp or actor headers are missing, and 401 invalid_signature when the signature is wrong or stale. */
|
|
963
963
|
Unauthorized: {
|
|
964
964
|
headers: {
|
|
965
965
|
[name: string]: unknown;
|
|
@@ -968,6 +968,15 @@ export interface components {
|
|
|
968
968
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
969
969
|
};
|
|
970
970
|
};
|
|
971
|
+
/** @description In signed authentication mode (qwenSignature) a request body beyond the configured signed-body limit (qwen.managed-agent.auth.max-signed-body-bytes, default 10 MiB) answers 413 payload_too_large before the signature is compared. */
|
|
972
|
+
PayloadTooLarge: {
|
|
973
|
+
headers: {
|
|
974
|
+
[name: string]: unknown;
|
|
975
|
+
};
|
|
976
|
+
content: {
|
|
977
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
978
|
+
};
|
|
979
|
+
};
|
|
971
980
|
/** @description Invalid request. */
|
|
972
981
|
BadRequest: {
|
|
973
982
|
headers: {
|
|
@@ -1040,7 +1049,9 @@ export interface operations {
|
|
|
1040
1049
|
};
|
|
1041
1050
|
};
|
|
1042
1051
|
400: components["responses"]["BadRequest"];
|
|
1052
|
+
401: components["responses"]["Unauthorized"];
|
|
1043
1053
|
403: components["responses"]["Forbidden"];
|
|
1054
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1044
1055
|
};
|
|
1045
1056
|
};
|
|
1046
1057
|
webShellGetSession: {
|
|
@@ -1066,8 +1077,10 @@ export interface operations {
|
|
|
1066
1077
|
};
|
|
1067
1078
|
};
|
|
1068
1079
|
400: components["responses"]["BadRequest"];
|
|
1080
|
+
401: components["responses"]["Unauthorized"];
|
|
1069
1081
|
403: components["responses"]["Forbidden"];
|
|
1070
1082
|
404: components["responses"]["NotFound"];
|
|
1083
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1071
1084
|
};
|
|
1072
1085
|
};
|
|
1073
1086
|
webShellTranscript: {
|
|
@@ -1093,8 +1106,10 @@ export interface operations {
|
|
|
1093
1106
|
};
|
|
1094
1107
|
};
|
|
1095
1108
|
400: components["responses"]["BadRequest"];
|
|
1109
|
+
401: components["responses"]["Unauthorized"];
|
|
1096
1110
|
403: components["responses"]["Forbidden"];
|
|
1097
1111
|
404: components["responses"]["NotFound"];
|
|
1112
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1098
1113
|
};
|
|
1099
1114
|
};
|
|
1100
1115
|
webShellStreamEvents: {
|
|
@@ -1120,8 +1135,10 @@ export interface operations {
|
|
|
1120
1135
|
};
|
|
1121
1136
|
};
|
|
1122
1137
|
400: components["responses"]["BadRequest"];
|
|
1138
|
+
401: components["responses"]["Unauthorized"];
|
|
1123
1139
|
403: components["responses"]["Forbidden"];
|
|
1124
1140
|
404: components["responses"]["NotFound"];
|
|
1141
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1125
1142
|
};
|
|
1126
1143
|
};
|
|
1127
1144
|
webShellCreateSession: {
|
|
@@ -1152,6 +1169,7 @@ export interface operations {
|
|
|
1152
1169
|
403: components["responses"]["Forbidden"];
|
|
1153
1170
|
404: components["responses"]["NotFound"];
|
|
1154
1171
|
409: components["responses"]["Conflict"];
|
|
1172
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1155
1173
|
503: components["responses"]["Unavailable"];
|
|
1156
1174
|
};
|
|
1157
1175
|
};
|
|
@@ -1179,9 +1197,11 @@ export interface operations {
|
|
|
1179
1197
|
};
|
|
1180
1198
|
};
|
|
1181
1199
|
400: components["responses"]["BadRequest"];
|
|
1200
|
+
401: components["responses"]["Unauthorized"];
|
|
1182
1201
|
403: components["responses"]["Forbidden"];
|
|
1183
1202
|
404: components["responses"]["NotFound"];
|
|
1184
1203
|
409: components["responses"]["Conflict"];
|
|
1204
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1185
1205
|
};
|
|
1186
1206
|
};
|
|
1187
1207
|
webShellCancelTurn: {
|
|
@@ -1208,9 +1228,11 @@ export interface operations {
|
|
|
1208
1228
|
};
|
|
1209
1229
|
};
|
|
1210
1230
|
400: components["responses"]["BadRequest"];
|
|
1231
|
+
401: components["responses"]["Unauthorized"];
|
|
1211
1232
|
403: components["responses"]["Forbidden"];
|
|
1212
1233
|
404: components["responses"]["NotFound"];
|
|
1213
1234
|
409: components["responses"]["Conflict"];
|
|
1235
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1214
1236
|
};
|
|
1215
1237
|
};
|
|
1216
1238
|
webShellQueryWorkspaces: {
|
|
@@ -1236,8 +1258,10 @@ export interface operations {
|
|
|
1236
1258
|
};
|
|
1237
1259
|
};
|
|
1238
1260
|
400: components["responses"]["BadRequest"];
|
|
1261
|
+
401: components["responses"]["Unauthorized"];
|
|
1239
1262
|
403: components["responses"]["Forbidden"];
|
|
1240
1263
|
404: components["responses"]["NotFound"];
|
|
1264
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1241
1265
|
};
|
|
1242
1266
|
};
|
|
1243
1267
|
webShellQueryCwdOperation: {
|
|
@@ -1263,9 +1287,11 @@ export interface operations {
|
|
|
1263
1287
|
};
|
|
1264
1288
|
};
|
|
1265
1289
|
400: components["responses"]["BadRequest"];
|
|
1290
|
+
401: components["responses"]["Unauthorized"];
|
|
1266
1291
|
403: components["responses"]["Forbidden"];
|
|
1267
1292
|
404: components["responses"]["NotFound"];
|
|
1268
1293
|
409: components["responses"]["Conflict"];
|
|
1294
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1269
1295
|
};
|
|
1270
1296
|
};
|
|
1271
1297
|
queryWebShellActions: {
|
|
@@ -1291,11 +1317,12 @@ export interface operations {
|
|
|
1291
1317
|
};
|
|
1292
1318
|
};
|
|
1293
1319
|
400: components["responses"]["BadRequest"];
|
|
1294
|
-
|
|
1320
|
+
401: components["responses"]["Unauthorized"];
|
|
1295
1321
|
403: components["responses"]["Forbidden"];
|
|
1296
1322
|
/** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
|
|
1297
1323
|
404: components["responses"]["NotFound"];
|
|
1298
1324
|
409: components["responses"]["Conflict"];
|
|
1325
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1299
1326
|
};
|
|
1300
1327
|
};
|
|
1301
1328
|
getWebShellAction: {
|
|
@@ -1321,11 +1348,12 @@ export interface operations {
|
|
|
1321
1348
|
};
|
|
1322
1349
|
};
|
|
1323
1350
|
400: components["responses"]["BadRequest"];
|
|
1324
|
-
|
|
1351
|
+
401: components["responses"]["Unauthorized"];
|
|
1325
1352
|
403: components["responses"]["Forbidden"];
|
|
1326
1353
|
/** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
|
|
1327
1354
|
404: components["responses"]["NotFound"];
|
|
1328
1355
|
409: components["responses"]["Conflict"];
|
|
1356
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1329
1357
|
};
|
|
1330
1358
|
};
|
|
1331
1359
|
respondWebShellAction: {
|
|
@@ -1351,12 +1379,14 @@ export interface operations {
|
|
|
1351
1379
|
};
|
|
1352
1380
|
};
|
|
1353
1381
|
400: components["responses"]["BadRequest"];
|
|
1354
|
-
|
|
1382
|
+
401: components["responses"]["Unauthorized"];
|
|
1383
|
+
/** @description Responding requires the Session creator (action_forbidden). A Session with no recorded creator and no recorded create command (anonymous open-mode creation, or a Session created before the V40 migration that also has no Workspace creation record) answers to any caller in its tenant, matching its read ACL. The tenant filter's 403 actor_scope_mismatch also applies on this route. */
|
|
1355
1384
|
403: components["responses"]["Forbidden"];
|
|
1356
1385
|
/** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
|
|
1357
1386
|
404: components["responses"]["NotFound"];
|
|
1358
1387
|
/** @description Idempotency conflict, a non-active Session (session_inactive), or an ended Action (action_expired, action_cancelled, action_already_resolved). An existing matching response replays before the Session-state check. */
|
|
1359
1388
|
409: components["responses"]["Conflict"];
|
|
1389
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1360
1390
|
};
|
|
1361
1391
|
};
|
|
1362
1392
|
closeWebShellSession: {
|
|
@@ -1382,9 +1412,11 @@ export interface operations {
|
|
|
1382
1412
|
};
|
|
1383
1413
|
};
|
|
1384
1414
|
400: components["responses"]["BadRequest"];
|
|
1415
|
+
401: components["responses"]["Unauthorized"];
|
|
1385
1416
|
403: components["responses"]["Forbidden"];
|
|
1386
1417
|
404: components["responses"]["NotFound"];
|
|
1387
1418
|
409: components["responses"]["Conflict"];
|
|
1419
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1388
1420
|
};
|
|
1389
1421
|
};
|
|
1390
1422
|
archiveWebShellSession: {
|
|
@@ -1410,9 +1442,11 @@ export interface operations {
|
|
|
1410
1442
|
};
|
|
1411
1443
|
};
|
|
1412
1444
|
400: components["responses"]["BadRequest"];
|
|
1445
|
+
401: components["responses"]["Unauthorized"];
|
|
1413
1446
|
403: components["responses"]["Forbidden"];
|
|
1414
1447
|
404: components["responses"]["NotFound"];
|
|
1415
1448
|
409: components["responses"]["Conflict"];
|
|
1449
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1416
1450
|
};
|
|
1417
1451
|
};
|
|
1418
1452
|
deleteWebShellSession: {
|
|
@@ -1438,9 +1472,11 @@ export interface operations {
|
|
|
1438
1472
|
};
|
|
1439
1473
|
};
|
|
1440
1474
|
400: components["responses"]["BadRequest"];
|
|
1475
|
+
401: components["responses"]["Unauthorized"];
|
|
1441
1476
|
403: components["responses"]["Forbidden"];
|
|
1442
1477
|
404: components["responses"]["NotFound"];
|
|
1443
1478
|
409: components["responses"]["Conflict"];
|
|
1479
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1444
1480
|
};
|
|
1445
1481
|
};
|
|
1446
1482
|
webShellGetWorkspace: {
|
|
@@ -1466,8 +1502,10 @@ export interface operations {
|
|
|
1466
1502
|
};
|
|
1467
1503
|
};
|
|
1468
1504
|
400: components["responses"]["BadRequest"];
|
|
1505
|
+
401: components["responses"]["Unauthorized"];
|
|
1469
1506
|
403: components["responses"]["Forbidden"];
|
|
1470
1507
|
404: components["responses"]["NotFound"];
|
|
1508
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1471
1509
|
};
|
|
1472
1510
|
};
|
|
1473
1511
|
queryWebShellTasks: {
|
|
@@ -1493,8 +1531,10 @@ export interface operations {
|
|
|
1493
1531
|
};
|
|
1494
1532
|
};
|
|
1495
1533
|
400: components["responses"]["BadRequest"];
|
|
1534
|
+
401: components["responses"]["Unauthorized"];
|
|
1496
1535
|
403: components["responses"]["Forbidden"];
|
|
1497
1536
|
404: components["responses"]["NotFound"];
|
|
1537
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1498
1538
|
};
|
|
1499
1539
|
};
|
|
1500
1540
|
getWebShellTask: {
|
|
@@ -1520,8 +1560,10 @@ export interface operations {
|
|
|
1520
1560
|
};
|
|
1521
1561
|
};
|
|
1522
1562
|
400: components["responses"]["BadRequest"];
|
|
1563
|
+
401: components["responses"]["Unauthorized"];
|
|
1523
1564
|
403: components["responses"]["Forbidden"];
|
|
1524
1565
|
404: components["responses"]["NotFound"];
|
|
1566
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1525
1567
|
};
|
|
1526
1568
|
};
|
|
1527
1569
|
getWebShellToolResult: {
|
|
@@ -1575,6 +1617,7 @@ export interface operations {
|
|
|
1575
1617
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
1576
1618
|
};
|
|
1577
1619
|
};
|
|
1620
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1578
1621
|
/** @description Resource temporarily unavailable. */
|
|
1579
1622
|
503: {
|
|
1580
1623
|
headers: {
|
|
@@ -1637,6 +1680,7 @@ export interface operations {
|
|
|
1637
1680
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
1638
1681
|
};
|
|
1639
1682
|
};
|
|
1683
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1640
1684
|
/** @description Resource temporarily unavailable. */
|
|
1641
1685
|
503: {
|
|
1642
1686
|
headers: {
|
|
@@ -1699,6 +1743,7 @@ export interface operations {
|
|
|
1699
1743
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
1700
1744
|
};
|
|
1701
1745
|
};
|
|
1746
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1702
1747
|
/** @description Resource temporarily unavailable. */
|
|
1703
1748
|
503: {
|
|
1704
1749
|
headers: {
|
|
@@ -1734,9 +1779,11 @@ export interface operations {
|
|
|
1734
1779
|
};
|
|
1735
1780
|
};
|
|
1736
1781
|
400: components["responses"]["BadRequest"];
|
|
1782
|
+
401: components["responses"]["Unauthorized"];
|
|
1737
1783
|
403: components["responses"]["Forbidden"];
|
|
1738
1784
|
404: components["responses"]["NotFound"];
|
|
1739
1785
|
409: components["responses"]["Conflict"];
|
|
1786
|
+
413: components["responses"]["PayloadTooLarge"];
|
|
1740
1787
|
};
|
|
1741
1788
|
};
|
|
1742
1789
|
}
|
|
@@ -5,6 +5,8 @@ interface UpdateControlProps {
|
|
|
5
5
|
currentVersion: string;
|
|
6
6
|
onError: (error: unknown, fallback: string) => void;
|
|
7
7
|
onRestarted?: (url: string) => void;
|
|
8
|
+
/** Keep background update/restart polling alive when the menu closes. */
|
|
9
|
+
portalContainer?: HTMLElement | null;
|
|
8
10
|
}
|
|
9
|
-
export declare function UpdateControl({ client, collapsed, currentVersion, onError, onRestarted, }: UpdateControlProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export declare function UpdateControl({ client, collapsed, currentVersion, onError, onRestarted, portalContainer, }: UpdateControlProps): import("react/jsx-runtime").JSX.Element | null;
|
|
10
12
|
export {};
|
|
@@ -2,11 +2,12 @@ import { type ReactNode } from 'react';
|
|
|
2
2
|
import { type DaemonWorkspaceCapability } from '@qwen-code/sdk/daemon';
|
|
3
3
|
import { type WebShellTheme } from '../../themeContext';
|
|
4
4
|
import { type WorkspaceManagementTarget, type WorkspaceOverviewItem } from './workspaceOverviewModel';
|
|
5
|
+
export declare const SIDEBAR_RAIL_WIDTH = 56;
|
|
5
6
|
export type WebShellSidebarFooterItem = 'settings' | 'update' | 'version' | 'theme' | 'sessionsOverview' | 'workspacesOverview' | 'splitView' | 'daemonStatus' | 'localFiles' | 'desktopRelay' | 'collapse';
|
|
6
7
|
export interface WebShellSidebarBranding {
|
|
7
8
|
/** Replace the complete top branding row. */
|
|
8
9
|
render?: () => ReactNode;
|
|
9
|
-
/** Hide the branding row in the compact drawer. Defaults to
|
|
10
|
+
/** Hide the branding row in the compact drawer. Defaults to false. */
|
|
10
11
|
hideWhenCompact?: boolean;
|
|
11
12
|
}
|
|
12
13
|
export interface WebShellSidebarLockedWorkspace {
|
|
@@ -15,9 +16,9 @@ export interface WebShellSidebarLockedWorkspace {
|
|
|
15
16
|
expanded: boolean;
|
|
16
17
|
}) => ReactNode;
|
|
17
18
|
}
|
|
18
|
-
export type WebShellSidebarPrimaryNavItem = 'newTask' | 'agents' | 'plugins' | 'channels' | 'scheduledTasks' | 'workflows' | 'goals' | 'managed';
|
|
19
|
+
export type WebShellSidebarPrimaryNavItem = 'newTask' | 'agents' | 'plugins' | 'channels' | 'live' | 'scheduledTasks' | 'workflows' | 'goals' | 'managed';
|
|
19
20
|
export interface WebShellSidebarPrimaryNavOptions {
|
|
20
|
-
/** Built-in primary nav entries to show.
|
|
21
|
+
/** Built-in primary nav entries to show. Embedded hosts default to New task only. */
|
|
21
22
|
items?: readonly WebShellSidebarPrimaryNavItem[];
|
|
22
23
|
/** Additional custom content rendered after the built-in nav buttons. */
|
|
23
24
|
render?: () => ReactNode;
|
|
@@ -28,6 +29,9 @@ export interface WebShellSidebarFooterOptions {
|
|
|
28
29
|
/** Additional custom content rendered before the built-in footer items (left side). */
|
|
29
30
|
render?: () => ReactNode;
|
|
30
31
|
}
|
|
32
|
+
export declare const DEFAULT_FOOTER_ITEMS: readonly WebShellSidebarFooterItem[];
|
|
33
|
+
export declare const DESKTOP_DEFAULT_FOOTER_ITEMS: readonly WebShellSidebarFooterItem[];
|
|
34
|
+
export declare const DEFAULT_PRIMARY_NAV_ITEMS: readonly WebShellSidebarPrimaryNavItem[];
|
|
31
35
|
export type WebShellSidebarSessionActionItem = 'details' | 'rename' | 'group' | 'export' | 'delete' | 'pin' | 'archive';
|
|
32
36
|
/** Subset of action items that have working inline (hover-button) handlers. */
|
|
33
37
|
export type WebShellSidebarSessionInlineActionItem = 'pin' | 'rename' | 'export' | 'delete';
|
|
@@ -57,11 +61,17 @@ interface WebShellSidebarProps {
|
|
|
57
61
|
selectedCollaborationId?: string;
|
|
58
62
|
onOpenCollaboration?: (id: string, cwd: string) => void;
|
|
59
63
|
collapsed: boolean;
|
|
64
|
+
layout?: 'single' | 'rail';
|
|
65
|
+
activePage?: string;
|
|
66
|
+
containerWidth?: number;
|
|
67
|
+
onOpenHome?: () => void;
|
|
60
68
|
onCollapsedChange: (collapsed: boolean) => void;
|
|
61
69
|
onOpenSettings: () => void;
|
|
62
70
|
onOpenAgents?: (view?: 'agents' | 'tasks' | 'runtime') => void;
|
|
63
71
|
onOpenPlugins: () => void;
|
|
64
72
|
onOpenChannels: () => void;
|
|
73
|
+
onOpenLive?: () => void;
|
|
74
|
+
onLiveVoiceSlotChange?: (element: HTMLDivElement | null) => void;
|
|
65
75
|
onOpenManagedSessions?: () => void;
|
|
66
76
|
onOpenDaemonStatus: () => void;
|
|
67
77
|
onOpenScheduledTasks: () => void;
|
|
@@ -123,7 +133,7 @@ interface WebShellSidebarProps {
|
|
|
123
133
|
primaryNav?: WebShellSidebarPrimaryNavOptions;
|
|
124
134
|
/** Whether to show the Tasks/Channels session-source switch. Defaults to true. */
|
|
125
135
|
showSessionSourceSwitch?: boolean;
|
|
126
|
-
/**
|
|
136
|
+
/** Show Live conversations and, in rail layout, the Live entry. Defaults to false. */
|
|
127
137
|
showLive?: boolean;
|
|
128
138
|
/** Whether to hide the "Projects" header row (with search and add workspace). Defaults to false (shown). */
|
|
129
139
|
hideProjectHeader?: boolean;
|
|
@@ -148,4 +158,4 @@ interface WebShellSidebarProps {
|
|
|
148
158
|
onLoadStandaloneSession?: (sessionId: string) => Promise<void> | void;
|
|
149
159
|
onStandaloneNotice?: (message: string) => void;
|
|
150
160
|
}
|
|
151
|
-
export declare function WebShellSidebar({ selectedCollaborationId, onOpenCollaboration, collapsed, onCollapsedChange, onOpenSettings, onOpenAgents, onOpenPlugins, onOpenChannels, onOpenManagedSessions, onOpenDaemonStatus, onOpenScheduledTasks, onOpenWorkflows, onOpenGoals, onOpenSessions, canOpenSessionsOverview, onOpenWorkspacesOverview, onOpenSplitView, canOpenSplitView, onNewSession, onNewStandaloneSession, onLoadSession, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
161
|
+
export declare function WebShellSidebar({ selectedCollaborationId, onOpenCollaboration, collapsed, layout, activePage, containerWidth, onOpenHome, onCollapsedChange, onOpenSettings, onOpenAgents, onOpenPlugins, onOpenChannels, onOpenLive, onLiveVoiceSlotChange, onOpenManagedSessions, onOpenDaemonStatus, onOpenScheduledTasks, onOpenWorkflows, onOpenGoals, onOpenSessions, canOpenSessionsOverview, onOpenWorkspacesOverview, onOpenSplitView, canOpenSplitView, onNewSession, onNewStandaloneSession, onLoadSession, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -13,6 +13,7 @@ interface WorkspaceSectionProps {
|
|
|
13
13
|
workspace: DaemonWorkspaceCapability;
|
|
14
14
|
remote?: boolean;
|
|
15
15
|
renderHeader?: (expanded: boolean) => ReactNode;
|
|
16
|
+
hideHeader?: boolean;
|
|
16
17
|
client: DaemonClient;
|
|
17
18
|
reloadToken: number;
|
|
18
19
|
untrustedLabel: string;
|
|
@@ -117,5 +118,5 @@ interface WorkspaceSectionProps {
|
|
|
117
118
|
/** Commit entry for the same picker; the row still opens without it. */
|
|
118
119
|
onOpenCommit?: (workspaceCwd: string) => void;
|
|
119
120
|
}
|
|
120
|
-
export declare function WorkspaceSection({ additionalSessions, workspace, remote, renderHeader, client, reloadToken, untrustedLabel, readOnlyLabel, trustToOpenLabel, noSessionsLabel, loadErrorLabel, organizationEnabled, sessionCatalogRequestsEnabled, sessionGroupCatalog, sessionLiveStateEnabled, sourceType, channelGroupingEnabled, ungroupedLabel, searchQuery, expanded: controlledExpanded, autoExpandKey, forceAutoExpand, onExpandedChange, renderSessions, renderSession, pendingSession, mapSession, showSessionDetails, headerActions, overviewEnabled, overviewMenuOpen, overviewItems, gitBranchWanted, sessionStats, onRenameGroup, onDeleteGroup, renameGroupLabel, deleteGroupLabel, groupActionsDisabled, excludePinned, limitSessions, isPinnedSectionMember, onOpenPathLocally, onOpenTerminalLocally, onOpenGitDiff, onOpenCommit, }: WorkspaceSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
121
|
+
export declare function WorkspaceSection({ additionalSessions, workspace, remote, renderHeader, hideHeader, client, reloadToken, untrustedLabel, readOnlyLabel, trustToOpenLabel, noSessionsLabel, loadErrorLabel, organizationEnabled, sessionCatalogRequestsEnabled, sessionGroupCatalog, sessionLiveStateEnabled, sourceType, channelGroupingEnabled, ungroupedLabel, searchQuery, expanded: controlledExpanded, autoExpandKey, forceAutoExpand, onExpandedChange, renderSessions, renderSession, pendingSession, mapSession, showSessionDetails, headerActions, overviewEnabled, overviewMenuOpen, overviewItems, gitBranchWanted, sessionStats, onRenameGroup, onDeleteGroup, renameGroupLabel, deleteGroupLabel, groupActionsDisabled, excludePinned, limitSessions, isPinnedSectionMember, onOpenPathLocally, onOpenTerminalLocally, onOpenGitDiff, onOpenCommit, }: WorkspaceSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
121
122
|
export {};
|
|
@@ -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;
|
|
@@ -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;
|