@qwen-code/web-shell 0.25.4-preview.1 → 0.26.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 (51) hide show
  1. package/README.md +1 -1
  2. package/dist/{PierreFilePreview-DDGm1BwT.js → PierreFilePreview-BKwQRLBv.js} +1 -1
  3. package/dist/{SpreadsheetPreview-Bo3dF5jL.js → SpreadsheetPreview-gWWUaRgJ.js} +2 -2
  4. package/dist/{WorkspaceFileBrowser-K5x5fG6c.js → WorkspaceFileBrowser-BLwOb5Br.js} +1008 -1041
  5. package/dist/{agents-route-hV5r9VDG.js → agents-route-Pu5E-8GT.js} +2 -2
  6. package/dist/daemon-react-sdk.js +1 -1
  7. package/dist/{index-CU9u4ISL.js → index-BSBUK1JZ.js} +58987 -57369
  8. package/dist/index.js +3 -3
  9. package/dist/sw.js +1 -1
  10. package/dist/transcript.js +7351 -7368
  11. package/dist/types/components/ChatEditor.d.ts +3 -0
  12. package/dist/types/components/ModelRefreshControl.d.ts +3 -0
  13. package/dist/types/components/SessionPrBadge.d.ts +7 -2
  14. package/dist/types/components/WorkspaceSelector.d.ts +3 -1
  15. package/dist/types/components/artifacts/TrajectoryDetail.d.ts +34 -0
  16. package/dist/types/components/artifacts/TrajectoryExecutions.d.ts +6 -8
  17. package/dist/types/components/artifacts/TrajectoryOverview.d.ts +2 -0
  18. package/dist/types/components/artifacts/TrajectorySummaryBar.d.ts +35 -0
  19. package/dist/types/components/artifacts/TrajectoryToolbar.d.ts +24 -0
  20. package/dist/types/components/artifacts/TurnCallsPanel.d.ts +5 -0
  21. package/dist/types/components/artifacts/tool-call-content.d.ts +34 -0
  22. package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +5 -1
  23. package/dist/types/components/dialogs/SessionRenameDialog.d.ts +10 -0
  24. package/dist/types/components/dialogs/WorkspaceAddStatusDialog.d.ts +3 -1
  25. package/dist/types/components/managed/ManagedSessionsPage.d.ts +20 -3
  26. package/dist/types/components/managed/ManagedWorkspaceNavigation.d.ts +14 -0
  27. package/dist/types/components/managed/WorkspaceBindingCreator.d.ts +15 -2
  28. package/dist/types/components/managed/generated/managed-agent-api.d.ts +193 -4
  29. package/dist/types/components/managed/java-managed-agent-client.d.ts +6 -0
  30. package/dist/types/components/managed/managed-agent-provider.d.ts +20 -0
  31. package/dist/types/components/managed/managed-creation-skills.d.ts +7 -0
  32. package/dist/types/components/managed/use-managed-mcp.d.ts +3 -0
  33. package/dist/types/components/managed/use-managed-session-rename.d.ts +13 -0
  34. package/dist/types/components/managed/use-managed-session.d.ts +1 -0
  35. package/dist/types/components/managed/use-managed-skills.d.ts +9 -2
  36. package/dist/types/components/messages/McpApp.d.ts +4 -0
  37. package/dist/types/components/plugins/PluginManagerPage.d.ts +6 -1
  38. package/dist/types/components/sidebar/WebShellSidebar.d.ts +5 -1
  39. package/dist/types/components/sidebar/WorkspaceSection.d.ts +2 -1
  40. package/dist/types/components/ui/tabs.d.ts +1 -1
  41. package/dist/types/components/workspaces/WorkspaceExecutionSelect.d.ts +6 -0
  42. package/dist/types/desktop-relay/desktop-relay-client.d.ts +1 -1
  43. package/dist/types/mcpAppHostContext.d.ts +10 -1
  44. package/dist/types/settings.d.ts +1 -0
  45. package/dist/types/trajectory/summarizeTrajectory.d.ts +5 -0
  46. package/dist/types/trajectory/trajectory-status.d.ts +51 -0
  47. package/dist/types/trajectory/useTrajectoryWindow.d.ts +2 -0
  48. package/dist/{useDaemonMidTurnInjected-CfhBFIym.js → useDaemonMidTurnInjected-BoG_wM2a.js} +3937 -3891
  49. package/package.json +1 -1
  50. package/dist/types/components/artifacts/TrajectoryFilters.d.ts +0 -15
  51. package/dist/types/components/artifacts/TrajectoryInspector.d.ts +0 -25
@@ -31,6 +31,23 @@ export interface paths {
31
31
  patch?: never;
32
32
  trace?: never;
33
33
  };
34
+ "/api/agent/web-shell/v1/sessions/rename": {
35
+ parameters: {
36
+ query?: never;
37
+ header?: never;
38
+ path?: never;
39
+ cookie?: never;
40
+ };
41
+ get?: never;
42
+ put?: never;
43
+ /** @description Synchronously rename a Session through the same durable, fenced title service as public PATCH. HTTP 200 confirms persistence; an unavailable or unknown Harness outcome remains an error and is never a pending success. Workspace-bound fresh renames require current OPERATOR access and the original binding's execution facts; unbound Sessions use the existing tenant-scoped rename authorization. An active Turn does not itself block rename. Reuse the same idempotency key only for the same Session and title; completed replay returns the Session's current persisted title without another Harness rename, including the existing last-visible result after deletion. Fresh-rename capability changes do not preclude authorized replay. The result title is authoritative and can differ from the requested title when a later rename already completed. */
44
+ post: operations["webShellRenameSession"];
45
+ delete?: never;
46
+ options?: never;
47
+ head?: never;
48
+ patch?: never;
49
+ trace?: never;
50
+ };
34
51
  "/api/agent/web-shell/v1/transcript/query": {
35
52
  parameters: {
36
53
  query?: never;
@@ -74,7 +91,7 @@ export interface paths {
74
91
  };
75
92
  get?: never;
76
93
  put?: never;
77
- /** @description Maps workspaceId/cwdRelative to public Workspace selection without using environmentId or absolute cwd. Shares G0's opt-in initial file-tool Turn admission with public Session creation: the server-selected profile for the built-in qwen-code agent, and the profile selected by a stored definition's single allowlisted hosted_profile tools entry for a definition-pinned Session. Newly bound qwen-code Sessions, including empty creation, persist hosted-workspace-shell/1 with mandatory default/auto-edit approval when the Shell deployment opt-in is enabled; otherwise they persist hosted-workspace-files/1 with the configured file approval mode. The switch does not override a stored AgentDefinition's compiled profile or approval mode. Public callers cannot select the built-in profile. Any caller holding the OPERATOR role may submit later Turns and rename the Session under the same opt-in, while the Workspace registry row stays ACTIVE and still backs the binding, the actor recorded by the Workspace create command keeps OPERATOR or above, and the Session is active and undeleted and is either a qwen-code Session on the frozen execution profile or pinned to a stored definition; Workspace close follows its separate close capability and lifecycle admission; the same caller may cancel a running Turn (its delivery re-checks no grant it needs survives the cancellation), and the Session's own liveness keeps OPERATOR access even when its Workspace's background-exit observation closes some other bound Session; cancel is always allowed for its own running Turn even outside the Workspace files opt-in. A definition-pinned Session keeps its pinned revision's tool profile, model and instructions for its whole life, and a replay of the create command reuses the original pin; a WebShell Session inherits its Workspace's default Workspace selection when the request omits one. Shell Sessions additionally require the Shell opt-in and valid persisted approval for fresh Turns; disabling only Shell admission preserves original-key replay and accepted approvals and cancellation while Workspace files remain enabled and persisted approval remains valid. The public Shell tool list does not include the child agent tool. Invalid approval or files-off can refuse attachment. Public Shell close, archive, unarchive and delete stay unavailable, including protocol-0. Fresh Shell sending also requires foregroundShell=true; workspaceTurns advertises submit/rename permission and is not sufficient Shell Turn admission. */
94
+ /** @description Maps workspaceId/cwdRelative to public Workspace selection without using environmentId or absolute cwd. Shares G0's opt-in initial file-tool Turn admission with public Session creation: the server-selected profile for the built-in qwen-code agent, and the profile selected by a stored definition's single allowlisted hosted_profile tools entry for a definition-pinned Session. Newly bound qwen-code Sessions, including empty creation, persist hosted-workspace-shell/1 with mandatory default/auto-edit approval when the Shell deployment opt-in is enabled; otherwise they persist hosted-workspace-files/1 with the configured file approval mode. The switch does not override a stored AgentDefinition's compiled profile or approval mode. Public callers cannot select the built-in profile. Any caller holding the OPERATOR role may submit later Turns and rename the Session under the same opt-in, while the Workspace registry row stays ACTIVE and still backs the binding, the actor recorded by the Workspace create command keeps OPERATOR or above, and the Session is active and undeleted and is either a qwen-code Session on the frozen execution profile or pinned to a stored definition; Workspace close follows its separate close capability and lifecycle admission; the same caller may cancel a running Turn (its delivery re-checks no grant it needs survives the cancellation), and the Session's own liveness keeps OPERATOR access even when its Workspace's background-exit observation closes some other bound Session; cancel is always allowed for its own running Turn even outside the Workspace files opt-in. A definition-pinned Session keeps its pinned revision's tool profile, model and instructions for its whole life, and a replay of the create command reuses the original pin; a WebShell Session inherits its Workspace's default Workspace selection when the request omits one. Shell Sessions additionally require the Shell opt-in and valid persisted approval for fresh Turns; disabling only Shell admission preserves original-key replay and accepted approvals and cancellation while Workspace files remain enabled and persisted approval remains valid. The public Shell tool list does not include the child agent tool. Invalid approval or files-off can refuse attachment. Public Shell close, archive, unarchive and delete stay unavailable, including protocol-0. Fresh Shell sending also requires foregroundShell=true; workspaceTurns alone is not sufficient Shell Turn admission. Manual rename uses the independent rename capability. */
78
95
  post: operations["webShellCreateSession"];
79
96
  delete?: never;
80
97
  options?: never;
@@ -506,7 +523,7 @@ export interface paths {
506
523
  };
507
524
  get?: never;
508
525
  put?: never;
509
- /** @description Change the next-user-Turn policy of an idle eligible Workspace Session: built-in qwen-code or a stored AgentDefinition on exactly hosted-workspace-files/1 or hosted-workspace-shell/1,/2. Requires its recorded owner, current OPERATOR or OWNER access and Session-specific Harness feature support. Changes are revision-checked and actor/session-scoped idempotent. Definition creation policy and pins remain immutable. */
526
+ /** @description Change the execution approval policy of an eligible Workspace Session: built-in qwen-code or a stored AgentDefinition on exactly hosted-workspace-files/1 or hosted-workspace-shell/1,/2. With liveSupported, execution policy changes affect subsequent current-Turn permission checks and permit eligible pending ordinary tool approvals. Otherwise the Session must be idle. Plan changes remain idle-only. Requires its recorded owner, current OPERATOR or OWNER access and Session-specific Harness feature support. Changes are revision-checked and actor/session-scoped idempotent. Definition creation policy and pins remain immutable. */
510
527
  post: operations["changeWebShellSessionApproval"];
511
528
  delete?: never;
512
529
  options?: never;
@@ -599,6 +616,23 @@ export interface paths {
599
616
  patch?: never;
600
617
  trace?: never;
601
618
  };
619
+ "/api/agent/web-shell/v1/session-mcp/query": {
620
+ parameters: {
621
+ query?: never;
622
+ header?: never;
623
+ path?: never;
624
+ cookie?: never;
625
+ };
626
+ get?: never;
627
+ put?: never;
628
+ /** @description Read the selected Session's sanitized, committed MCP catalog. Requires a trusted actor and Workspace read access. Discovery states describe the published snapshot, not live Runtime health. Does not configure servers, discover capabilities or execute tools, resources or prompts. */
629
+ post: operations["queryWebShellSessionMcp"];
630
+ delete?: never;
631
+ options?: never;
632
+ head?: never;
633
+ patch?: never;
634
+ trace?: never;
635
+ };
602
636
  "/api/agent/web-shell/v1/session-skills/query": {
603
637
  parameters: {
604
638
  query?: never;
@@ -676,6 +710,54 @@ export interface paths {
676
710
  export type webhooks = Record<string, never>;
677
711
  export interface components {
678
712
  schemas: {
713
+ PublicMcpCatalog: {
714
+ /** @constant */
715
+ object: "agent.mcp_catalog";
716
+ /** Format: uuid */
717
+ session_id: string;
718
+ servers: components["schemas"]["PublicMcpServerCatalog"][];
719
+ };
720
+ PublicMcpServerCatalog: {
721
+ server_id: string;
722
+ server_revision: number;
723
+ /** @description The pinned catalog revision; null while no catalog has been published. */
724
+ catalog_revision: number | null;
725
+ tools: components["schemas"]["PublicMcpTool"][];
726
+ resources: components["schemas"]["PublicMcpResource"][];
727
+ prompts: components["schemas"]["PublicMcpPrompt"][];
728
+ discovery: components["schemas"]["PublicMcpDiscovery"];
729
+ };
730
+ PublicMcpTool: {
731
+ name: string;
732
+ description?: string;
733
+ input_schema: {
734
+ [key: string]: unknown;
735
+ };
736
+ };
737
+ PublicMcpResource: {
738
+ name: string;
739
+ uri: string;
740
+ description?: string;
741
+ mime_type?: string;
742
+ };
743
+ PublicMcpPrompt: {
744
+ name: string;
745
+ description?: string;
746
+ arguments?: components["schemas"]["PublicMcpPromptArgument"][];
747
+ };
748
+ PublicMcpPromptArgument: {
749
+ name: string;
750
+ description?: string;
751
+ required?: boolean;
752
+ };
753
+ PublicMcpDiscovery: {
754
+ /** @enum {string} */
755
+ tools: "complete" | "partial" | "failed" | "stale";
756
+ /** @enum {string} */
757
+ resources: "complete" | "partial" | "failed" | "stale";
758
+ /** @enum {string} */
759
+ prompts: "complete" | "partial" | "failed" | "stale";
760
+ };
679
761
  InputBlock: components["schemas"]["InputTextBlock"] | components["schemas"]["InputFileBlock"] | components["schemas"]["InputImageBlock"];
680
762
  PublicArtifact: {
681
763
  /** @constant */
@@ -743,6 +825,8 @@ export interface components {
743
825
  approvalMode?: "default" | "auto-edit" | "yolo";
744
826
  /** @description Persisted public Plan overlay, independent of execution permission. Omission on a change preserves the selected state. */
745
827
  planMode?: boolean;
828
+ /** @description Optional static Skills imported from the enabled management catalog or added explicitly to the pinned AgentDefinition catalog. The merged catalog has unique names, at most 256 entries, 512 KiB per body and 2 MiB compact JSON. Requires session-skills/2; persisted immutably and included in creation idempotency. */
829
+ skills?: components["schemas"]["SessionCreationSkill"][];
746
830
  };
747
831
  WebShellSubmitRequest: {
748
832
  /** @description Trace correlation only. */
@@ -853,7 +937,7 @@ export interface components {
853
937
  /** @default false */
854
938
  actions: boolean;
855
939
  /**
856
- * @description True when the caller may submit later Turns of this Workspace-bound Session or rename it: the deployment enables Workspace files, the caller holds the OPERATOR role on a Workspace registry row whose state is ACTIVE and still backs the Session's binding, the actor recorded by the Workspace create command keeps OPERATOR or above, and the Session is active and undeleted and is either a qwen-code Session or a Session pinned to a stored definition (both on the Workspace's frozen execution profile). Cancelling only aborts work already running, so an OPERATOR caller may cancel a running Turn even when this is false; the capability does not gate cancellation. False for every other caller and for unbound Sessions, which do not use it. Shell Sessions also require foregroundShell=true for fresh sending; workspaceTurns may remain true with Shell admission disabled and is not sufficient Shell Turn admission.
940
+ * @description True when the caller may submit later Turns of this Workspace-bound Session: the deployment enables Workspace files, the caller holds the OPERATOR role on a Workspace registry row whose state is ACTIVE and still backs the Session's binding, the actor recorded by the Workspace create command keeps OPERATOR or above, and the Session is active and undeleted and is either a qwen-code Session or a Session pinned to a stored definition (both on the Workspace's frozen execution profile). Cancelling only aborts work already running, so an OPERATOR caller may cancel a running Turn even when this is false; the capability does not gate cancellation. False for every other caller and for unbound Sessions, which do not use it. Shell Sessions also require foregroundShell=true for fresh sending; workspaceTurns may remain true with Shell admission disabled and is not sufficient Shell Turn admission. Manual rename uses the independent rename capability.
857
941
  * @default false
858
942
  */
859
943
  workspaceTurns: boolean;
@@ -887,6 +971,11 @@ export interface components {
887
971
  approvalModeChange?: boolean;
888
972
  /** @description Optional deployment capability; missing means false. */
889
973
  inputAttachments?: boolean;
974
+ /**
975
+ * @description True for a visible ACTIVE Session when the Harness supports fenced title persistence and is available. Workspace-bound Sessions additionally require Workspace files admission, current OPERATOR access and the original binding's frozen execution facts, independently of approval or fresh Turn sending support. Unbound Sessions use the existing tenant-scoped rename permission. An active Turn does not itself make this false. Missing means false. This advertises fresh rename only; authorized completed original-key replay remains available under the rename service's replay rules.
976
+ * @default false
977
+ */
978
+ rename?: boolean;
890
979
  };
891
980
  WebShellSessionPage: {
892
981
  data: components["schemas"]["WebShellSession"][];
@@ -1032,8 +1121,10 @@ export interface components {
1032
1121
  workspaceCreation?: boolean;
1033
1122
  /** @description Supports effective Session policy options and explicit Workspace-bound creation policy. Missing or false means unsupported. */
1034
1123
  approvalModeSelection?: boolean;
1035
- /** @description Supports browsing and selecting existing directories on authorized Linux storage; absent means unsupported. */
1124
+ /** @description Supports browsing and selecting existing directories on authorized Linux or macOS storage; absent means unsupported. */
1036
1125
  workspaceDirectorySelection?: boolean;
1126
+ /** @description Trusted single-user local deployment can browse and import existing host directories without a pre-registered Workspace. Missing or false means unsupported. */
1127
+ localDirectoryImport?: boolean;
1037
1128
  };
1038
1129
  /** @description Same authorized explicit default as default_workspace, including when outside this page; null if absent or not creatable. A non-null default is active and has canCreateSession=true. */
1039
1130
  defaultWorkspace: (components["schemas"]["WebShellWorkspace"] & {
@@ -1427,6 +1518,8 @@ export interface components {
1427
1518
  idempotencyKey: string;
1428
1519
  sourceWorkspaceId?: string;
1429
1520
  cwdRelative?: string;
1521
+ /** @description Absolute execution-host directory. Requires localDirectoryImport; exclusive with Workspace-relative fields. An empty path is allowed only for directory browsing and starts at the host home directory. */
1522
+ localPath?: string;
1430
1523
  };
1431
1524
  WebShellSessionOptionsRequest: {
1432
1525
  agentId: string;
@@ -1440,6 +1533,8 @@ export interface components {
1440
1533
  planModeSupported?: boolean;
1441
1534
  /** @description Optional deployment capability; missing means false. */
1442
1535
  inputAttachments?: boolean;
1536
+ /** @description Optional deployment capability; missing means false. Requires a compatible Harness and durable Session Store. */
1537
+ skillsSupported?: boolean;
1443
1538
  };
1444
1539
  /** @description Safe allowlisted observation for a Workspace-bound Session. Unknown counts are omitted, never estimated. */
1445
1540
  WebShellModelContext: {
@@ -1486,6 +1581,8 @@ export interface components {
1486
1581
  sessionId: string;
1487
1582
  };
1488
1583
  WebShellSessionApproval: {
1584
+ /** @description Execution approval can change during a Turn when true. Missing means idle-only; Plan changes remain idle-only. */
1585
+ liveSupported?: boolean;
1489
1586
  /** @enum {string} */
1490
1587
  approvalMode: "default" | "auto-edit" | "yolo";
1491
1588
  /** Format: int64 */
@@ -1575,6 +1672,9 @@ export interface components {
1575
1672
  WebShellWorkspaceDirectoryQueryRequest: {
1576
1673
  workspaceId: string;
1577
1674
  cwdRelative: string;
1675
+ } | {
1676
+ /** @description Absolute execution-host directory. Requires localDirectoryImport; exclusive with Workspace-relative fields. An empty path is allowed only for directory browsing and starts at the host home directory. */
1677
+ localPath: string;
1578
1678
  };
1579
1679
  InputTextBlock: {
1580
1680
  /** @enum {string} */
@@ -1668,6 +1768,33 @@ export interface components {
1668
1768
  truncated: boolean;
1669
1769
  outputFiles: string[];
1670
1770
  };
1771
+ WebShellRenameRequest: {
1772
+ requestId?: string;
1773
+ sessionId: string;
1774
+ idempotencyKey: string;
1775
+ /** @description The server enforces the bound in UTF-16 code units (Java String.length()), so an astral character counts as two: a title this schema's code-point maxLength accepts can still exceed the server's 256-unit bound and answer 400 invalid_title. */
1776
+ title: string;
1777
+ };
1778
+ WebShellRenameResult: {
1779
+ sessionId: string;
1780
+ /** @description Current persisted title from the confirmed mutation or completed replay. Existing legacy titles can exceed the fresh-title input bound. */
1781
+ title: string;
1782
+ replayed: boolean;
1783
+ };
1784
+ SessionCreationSkill: {
1785
+ /** @description Unique Skill name, at most 128 UTF-8 bytes. */
1786
+ name: string;
1787
+ /** @description At most 4096 UTF-8 bytes. */
1788
+ description: string;
1789
+ /** @description Static instructions, at most 524288 UTF-8 bytes. */
1790
+ body: string;
1791
+ /** @description Canonical POSIX path relative to the Session working directory; defaults to dot. */
1792
+ base_directory?: string;
1793
+ /** @description Whether the model may invoke this Skill; defaults to true. */
1794
+ model_invocable?: boolean;
1795
+ /** @description Whether the user may invoke this Skill; defaults to true. */
1796
+ user_invocable?: boolean;
1797
+ };
1671
1798
  };
1672
1799
  responses: {
1673
1800
  /** @description The authenticated actor belongs to another tenant than X-Qwen-Tenant-Id or has an invalid ID (actor_scope_mismatch, which the tenant filter answers on every /v1/agents/ and WebShell route), or the resource is readable but the actor lacks this operation or the original Action responder permission. Artifact content reads may also return artifact_content_forbidden when the actor cannot read the original bytes. */
@@ -1812,6 +1939,39 @@ export interface operations {
1812
1939
  413: components["responses"]["PayloadTooLarge"];
1813
1940
  };
1814
1941
  };
1942
+ webShellRenameSession: {
1943
+ parameters: {
1944
+ query?: never;
1945
+ header?: never;
1946
+ path?: never;
1947
+ cookie?: never;
1948
+ };
1949
+ requestBody: {
1950
+ content: {
1951
+ "application/json": components["schemas"]["WebShellRenameRequest"];
1952
+ };
1953
+ };
1954
+ responses: {
1955
+ /** @description Confirmed persisted Session title, or an authorized completed replay. */
1956
+ 200: {
1957
+ headers: {
1958
+ "X-Request-Id": components["headers"]["RequestId"];
1959
+ "X-Qwen-Idempotent-Replay": components["headers"]["IdempotentReplay"];
1960
+ [name: string]: unknown;
1961
+ };
1962
+ content: {
1963
+ "application/json": components["schemas"]["WebShellRenameResult"];
1964
+ };
1965
+ };
1966
+ 400: components["responses"]["BadRequest"];
1967
+ 401: components["responses"]["Unauthorized"];
1968
+ 403: components["responses"]["Forbidden"];
1969
+ 404: components["responses"]["NotFound"];
1970
+ 409: components["responses"]["Conflict"];
1971
+ 413: components["responses"]["PayloadTooLarge"];
1972
+ 503: components["responses"]["Unavailable"];
1973
+ };
1974
+ };
1815
1975
  webShellTranscript: {
1816
1976
  parameters: {
1817
1977
  query?: never;
@@ -2945,6 +3105,35 @@ export interface operations {
2945
3105
  409: components["responses"]["Conflict"];
2946
3106
  };
2947
3107
  };
3108
+ queryWebShellSessionMcp: {
3109
+ parameters: {
3110
+ query?: never;
3111
+ header?: never;
3112
+ path?: never;
3113
+ cookie?: never;
3114
+ };
3115
+ requestBody: {
3116
+ content: {
3117
+ "application/json": components["schemas"]["WebShellSessionRequest"];
3118
+ };
3119
+ };
3120
+ responses: {
3121
+ /** @description Session MCP catalog snapshot. */
3122
+ 200: {
3123
+ headers: {
3124
+ [name: string]: unknown;
3125
+ };
3126
+ content: {
3127
+ "application/json": components["schemas"]["PublicMcpCatalog"];
3128
+ };
3129
+ };
3130
+ 400: components["responses"]["BadRequest"];
3131
+ 401: components["responses"]["Unauthorized"];
3132
+ 403: components["responses"]["Forbidden"];
3133
+ 404: components["responses"]["NotFound"];
3134
+ 413: components["responses"]["PayloadTooLarge"];
3135
+ };
3136
+ };
2948
3137
  queryWebShellSessionSkills: {
2949
3138
  parameters: {
2950
3139
  query?: never;
@@ -45,6 +45,7 @@ export declare class JavaManagedAgentClient {
45
45
  constructor(options: JavaManagedAgentClientOptions);
46
46
  listSessions(request: Schemas['WebShellListRequest'], signal?: AbortSignal): Promise<JavaAgentSessionPage>;
47
47
  getSession(sessionId: string, signal?: AbortSignal): Promise<JavaAgentSession>;
48
+ renameSession(request: Schemas['WebShellRenameRequest'], signal?: AbortSignal): Promise<Schemas['WebShellRenameResult']>;
48
49
  listWorkspaces(request: Schemas['WebShellWorkspaceQueryRequest'], signal?: AbortSignal): Promise<JavaAgentWorkspacePage>;
49
50
  getWorkspace(workspaceId: string, signal?: AbortSignal): Promise<{
50
51
  workspaceId: string;
@@ -141,6 +142,11 @@ export declare class JavaManagedAgentClient {
141
142
  getSessionSkills(sessionId: string, signal?: AbortSignal): Promise<{
142
143
  skills: components["schemas"]["WebShellSkill"][];
143
144
  }>;
145
+ getSessionMcp(sessionId: string, signal?: AbortSignal): Promise<{
146
+ object: "agent.mcp_catalog";
147
+ session_id: string;
148
+ servers: components["schemas"]["PublicMcpServerCatalog"][];
149
+ }>;
144
150
  changeModel(request: Schemas['WebShellChangeModelRequest'], signal?: AbortSignal): Promise<{
145
151
  sessionId: string;
146
152
  modelSelection: components["schemas"]["WebShellModelSelection"];
@@ -5,17 +5,21 @@ export type ManagedAgentRuntimeState = 'unknown' | 'starting' | 'ready' | 'faile
5
5
  export type ManagedApprovalMode = 'default' | 'auto-edit' | 'yolo';
6
6
  export type ManagedInputBlock = components['schemas']['InputBlock'];
7
7
  export type ManagedSessionSkills = components['schemas']['WebShellSessionSkills'];
8
+ export type ManagedSessionMcp = components['schemas']['PublicMcpCatalog'];
8
9
  export declare function isManagedApprovalMode(value: unknown): value is ManagedApprovalMode;
10
+ export type ManagedSessionSkill = components['schemas']['SessionCreationSkill'];
9
11
  export interface ManagedSessionOptions {
10
12
  approvalMode: ManagedApprovalMode;
11
13
  availableApprovalModes: ManagedApprovalMode[];
12
14
  planModeSupported?: boolean;
13
15
  inputAttachments?: boolean;
16
+ skillsSupported?: boolean;
14
17
  }
15
18
  export interface ManagedSessionApproval extends ManagedSessionOptions {
16
19
  approvalRevision: number;
17
20
  supported: boolean;
18
21
  planMode?: boolean;
22
+ liveSupported?: boolean;
19
23
  }
20
24
  export interface ManagedApprovalChangeResult {
21
25
  sessionId: string;
@@ -75,6 +79,7 @@ export interface ManagedAgentSessionSummary {
75
79
  capabilities: {
76
80
  canSend: boolean;
77
81
  canCancel: boolean;
82
+ canRename?: boolean;
78
83
  actions?: boolean;
79
84
  tasks?: boolean;
80
85
  artifacts?: boolean;
@@ -163,6 +168,9 @@ export interface ManagedAgentProvider {
163
168
  readonly skills?: {
164
169
  list(sessionId: string, options: ManagedAgentRequestOptions): Promise<ManagedSessionSkills>;
165
170
  };
171
+ readonly mcp?: {
172
+ list(sessionId: string, options: ManagedAgentRequestOptions): Promise<ManagedSessionMcp>;
173
+ };
166
174
  /** Present when the provider can serve Hosted permission Actions. */
167
175
  readonly actions?: {
168
176
  listPending(sessionId: string, options: ManagedAgentRequestOptions): Promise<ManagedAgentPendingAction[]>;
@@ -233,6 +241,7 @@ export interface ManagedAgentProvider {
233
241
  supported: boolean;
234
242
  canCreateWorkspace?: boolean;
235
243
  canSelectDirectory?: boolean;
244
+ canImportLocalDirectory?: boolean;
236
245
  supportsApprovalModeSelection?: boolean;
237
246
  }>;
238
247
  get(workspaceId: string, options: ManagedAgentRequestOptions): Promise<ManagedAgentWorkspace>;
@@ -240,10 +249,16 @@ export interface ManagedAgentProvider {
240
249
  displayName: string;
241
250
  sourceWorkspaceId?: string;
242
251
  cwdRelative?: string;
252
+ localPath?: string;
243
253
  }, options: ManagedAgentCommandOptions): Promise<ManagedAgentWorkspace>;
244
254
  directories?(request: {
245
255
  workspaceId: string;
246
256
  cwdRelative: string;
257
+ localPath?: never;
258
+ } | {
259
+ localPath: string;
260
+ workspaceId?: never;
261
+ cwdRelative?: never;
247
262
  }, options: ManagedAgentRequestOptions): Promise<components['schemas']['WebShellWorkspaceDirectoryPage']>;
248
263
  getSessionOptions?(agentId: string, options: ManagedAgentRequestOptions): Promise<ManagedSessionOptions>;
249
264
  createEmpty(request: {
@@ -252,6 +267,7 @@ export interface ManagedAgentProvider {
252
267
  cwdRelative: string;
253
268
  approvalMode?: ManagedApprovalMode;
254
269
  planMode?: boolean;
270
+ skills?: ManagedSessionSkill[];
255
271
  }, options: ManagedAgentCommandOptions): Promise<{
256
272
  sessionId: string;
257
273
  }>;
@@ -263,6 +279,7 @@ export interface ManagedAgentProvider {
263
279
  input?: ManagedInputBlock[];
264
280
  approvalMode?: ManagedApprovalMode;
265
281
  planMode?: boolean;
282
+ skills?: ManagedSessionSkill[];
266
283
  }, options: ManagedAgentCommandOptions): Promise<{
267
284
  sessionId: string;
268
285
  }>;
@@ -276,6 +293,9 @@ export interface ManagedAgentProvider {
276
293
  nextCursor?: string;
277
294
  }>;
278
295
  getSession(sessionId: string, options: ManagedAgentRequestOptions): Promise<ManagedAgentSessionSummary>;
296
+ renameSession?(sessionId: string, displayName: string, options: ManagedAgentCommandOptions): Promise<{
297
+ displayName: string;
298
+ }>;
279
299
  getTranscript(sessionId: string, options: ManagedAgentRequestOptions & {
280
300
  before?: string;
281
301
  limit?: number;
@@ -0,0 +1,7 @@
1
+ import type { ManagedSessionSkill, ManagedSessionSkills } from './managed-agent-provider';
2
+ export interface ManagedCreationSkillsSource {
3
+ workspaceCwd: string;
4
+ list(signal: AbortSignal): Promise<ManagedSessionSkills['skills']>;
5
+ load(signal: AbortSignal): Promise<ManagedSessionSkill[]>;
6
+ }
7
+ export declare function isManagedSessionSkills(value: unknown): value is ManagedSessionSkill[];
@@ -0,0 +1,3 @@
1
+ import type { AtMentionWorkspaceActions } from '../../hooks/useAtMentionSources';
2
+ import type { ManagedAgentProvider } from './managed-agent-provider';
3
+ export declare function useManagedMcp(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined): AtMentionWorkspaceActions | undefined;
@@ -0,0 +1,13 @@
1
+ import type { ManagedAgentProvider, ManagedAgentSessionSummary } from './managed-agent-provider';
2
+ export declare function useManagedSessionRename(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, summary: ManagedAgentSessionSummary | undefined, interactive: boolean, onRenamed: (displayName: string) => void): {
3
+ supported: boolean;
4
+ editor: {
5
+ value: string;
6
+ busy: boolean;
7
+ error?: string;
8
+ } | undefined;
9
+ open(): void;
10
+ close(): void;
11
+ setValue(value: string): void;
12
+ submit(displayName: string): Promise<void>;
13
+ };
@@ -16,6 +16,7 @@ export declare function useManagedSession(provider: ManagedAgentProvider, client
16
16
  loadOlder: () => Promise<void>;
17
17
  reload: () => void;
18
18
  refreshSummary: (signal?: AbortSignal) => Promise<ManagedAgentSessionSummary | undefined>;
19
+ applyTitle: (id: string, title: string) => void;
19
20
  sessionId?: string;
20
21
  summary?: ManagedAgentSessionSummary;
21
22
  events: ManagedAgentSessionEvent[];
@@ -1,12 +1,19 @@
1
+ import type { ManagedCreationSkillsSource } from './managed-creation-skills';
1
2
  import type { ManagedAgentProvider } from './managed-agent-provider';
2
- export declare function useManagedSkills(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined): {
3
+ export declare function useManagedSkills(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, creationSkills?: ManagedCreationSkillsSource): {
3
4
  supported: boolean;
4
5
  skills: {
5
6
  name: string;
6
7
  description: string;
7
8
  }[];
9
+ commands: {
10
+ name: string;
11
+ description: string;
12
+ source: string;
13
+ displayCategory: "skill";
14
+ }[];
8
15
  loading: boolean;
9
16
  loaded: boolean;
10
17
  error: boolean;
11
- onOpenChange: import("react").Dispatch<import("react").SetStateAction<boolean>>;
18
+ onOpenChange: (next: boolean) => void;
12
19
  };
@@ -3,6 +3,7 @@ type SandboxResource = Parameters<AppBridge['sendSandboxResourceReady']>[0];
3
3
  type AppToolResult = Parameters<AppBridge['sendToolResult']>[0];
4
4
  export interface McpAppDisplay {
5
5
  type: 'mcp_app';
6
+ requiredFeature?: 'generated-ui';
6
7
  serverName: string;
7
8
  resourceUri: string;
8
9
  html: string;
@@ -15,6 +16,9 @@ export interface McpAppDisplay {
15
16
  export declare function getMcpAppDisplay(value: unknown): McpAppDisplay | undefined;
16
17
  export declare function resolveMcpAppSandboxUrl(daemonBaseUrl: string, hostUrl: string, dataMode?: boolean): string | undefined;
17
18
  export declare function applySandboxCspQuery(sandboxUrl: string, cspJson: string): string;
19
+ export declare function GeneratedUiFallback({ display }: {
20
+ display: McpAppDisplay;
21
+ }): import("react/jsx-runtime").JSX.Element;
18
22
  export declare function McpApp({ display }: {
19
23
  display: McpAppDisplay;
20
24
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,13 @@
1
1
  import { type Ref } from 'react';
2
+ type PluginTab = 'extensions' | 'mcp' | 'skills' | 'agents';
2
3
  interface PluginManagerPageProps {
3
4
  onClose: () => void;
4
5
  onUseSkill: (name: string) => void;
5
6
  initialFocusRef?: Ref<HTMLButtonElement>;
7
+ initialTab?: PluginTab;
8
+ skillsWorkspaceCwd?: string;
9
+ onSkillsWorkspaceChange?: (cwd: string) => void;
10
+ managedSkills?: boolean;
6
11
  }
7
- export declare function PluginManagerPage({ onClose, onUseSkill, initialFocusRef, }: PluginManagerPageProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function PluginManagerPage({ onClose, onUseSkill, initialFocusRef, initialTab, skillsWorkspaceCwd, onSkillsWorkspaceChange, managedSkills, }: PluginManagerPageProps): import("react/jsx-runtime").JSX.Element;
8
13
  export {};
@@ -138,6 +138,10 @@ interface WebShellSidebarProps {
138
138
  /** Replace daemon history with navigation owned by an external session provider. */
139
139
  sessionContent?: ReactNode;
140
140
  sessionHeader?: ReactNode;
141
+ managedWorkspaces?: ReactNode;
142
+ onSearchQueryChange?: (query: string) => void;
143
+ /** Selection styling only; the attached session still owns its actions. */
144
+ currentSessionActive?: boolean;
141
145
  /** Whether to show the Tasks/Channels session-source switch. Defaults to true. */
142
146
  showSessionSourceSwitch?: boolean;
143
147
  /** Show Live conversations and, in rail layout, the Live entry. Defaults to false. */
@@ -165,4 +169,4 @@ interface WebShellSidebarProps {
165
169
  onLoadStandaloneSession?: (sessionId: string) => Promise<void> | void;
166
170
  onStandaloneNotice?: (message: string) => void;
167
171
  }
168
- export declare function WebShellSidebar({ 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, onOpenHostSession, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, sessionContent, sessionHeader, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
172
+ export declare function WebShellSidebar({ 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, onOpenHostSession, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, sessionContent, sessionHeader, managedWorkspaces, onSearchQueryChange, currentSessionActive, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
@@ -10,6 +10,7 @@ export interface WorkspaceHeaderActionsContext {
10
10
  }
11
11
  interface WorkspaceSectionProps {
12
12
  workspace: DaemonWorkspaceCapability;
13
+ executionLabel?: string;
13
14
  /**
14
15
  * localStorage seed for the expansion/collapsed-group preferences,
15
16
  * defaulting to the workspace id. Multi-host renderers pass an
@@ -125,5 +126,5 @@ interface WorkspaceSectionProps {
125
126
  /** Commit entry for the same picker; the row still opens without it. */
126
127
  onOpenCommit?: (workspaceCwd: string) => void;
127
128
  }
128
- export declare function WorkspaceSection({ workspace, storageKey, 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;
129
+ export declare function WorkspaceSection({ workspace, executionLabel, storageKey, 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;
129
130
  export {};
@@ -8,6 +8,6 @@ declare const tabsListVariants: (props?: ({
8
8
  declare const TabsList: import("react").ForwardRefExoticComponent<Omit<Omit<TabsPrimitive.TabsListProps & import("react").RefAttributes<HTMLDivElement>, "ref">, "asChild"> & VariantProps<(props?: ({
9
9
  variant?: "default" | "line" | null | undefined;
10
10
  } & import("class-variance-authority/types").ClassProp) | undefined) => string> & import("react").RefAttributes<HTMLDivElement>>;
11
- declare function TabsTrigger({ className, ...props }: ComponentProps<typeof TabsPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
11
+ declare const TabsTrigger: import("react").ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
12
12
  declare function TabsContent({ className, ...props }: ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
13
13
  export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
@@ -0,0 +1,6 @@
1
+ export type WorkspaceExecutionMode = 'daemon' | 'managed';
2
+ export declare function WorkspaceExecutionSelect({ value, onValueChange, disabled, }: {
3
+ value: WorkspaceExecutionMode;
4
+ onValueChange: (value: WorkspaceExecutionMode) => void;
5
+ disabled?: boolean;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -18,7 +18,7 @@ export declare const DESKTOP_RELAY_URL = "http://127.0.0.1:47821";
18
18
  * `packages/node-repl/package.json`, and `.github/workflows/cd-cua-driver.yml`
19
19
  * must publish that version before the setup command can be used.
20
20
  */
21
- export declare const DESKTOP_RELAY_INSTALL_COMMAND = "npx -y @qwen-code/node-repl-mcp@0.1.7 desktop-relay install";
21
+ export declare const DESKTOP_RELAY_INSTALL_COMMAND = "npx -y @qwen-code/node-repl-mcp@0.26.0 desktop-relay install";
22
22
  export type DesktopRelayRemotePhase = 'connecting' | 'registering' | 'connected' | 'stopped' | 'failed';
23
23
  export interface DesktopRelayActive {
24
24
  sessionId: string;
@@ -1,4 +1,4 @@
1
- import type { DaemonMcpAppToolCall, DaemonMcpAppToolResult } from '@qwen-code/sdk/daemon';
1
+ import type { DaemonSession, DaemonMcpAppToolCall, DaemonMcpAppToolResult } from '@qwen-code/sdk/daemon';
2
2
  export declare const McpAppHostContext: import("react").Context<string | undefined>;
3
3
  export type McpAppToolCallRequest = DaemonMcpAppToolCall;
4
4
  export declare const McpAppSessionContext: import("react").Context<string | undefined>;
@@ -19,3 +19,12 @@ export declare const McpAppToolsContext: import("react").Context<{
19
19
  sessionId: string;
20
20
  callTool: (request: McpAppToolCallRequest, signal: AbortSignal) => Promise<DaemonMcpAppToolResult>;
21
21
  } | undefined>;
22
+ export interface McpAppGeneratedUi {
23
+ sessionId: string;
24
+ status: NonNullable<DaemonSession['generatedUi']>;
25
+ }
26
+ export declare const McpAppGeneratedUiContext: import("react").Context<McpAppGeneratedUi | undefined>;
27
+ export declare function useMcpAppAdmission(display?: {
28
+ resourceUri: string;
29
+ requiredFeature?: 'generated-ui';
30
+ }): boolean;
@@ -50,6 +50,7 @@ declare const SETTING_KEYS: {
50
50
  readonly 'setting:model-proposed-goals': "goals.modelProposed";
51
51
  readonly 'setting:arena-artifacts': "agents.arena.preserveArtifacts";
52
52
  readonly 'setting:session-workflow': "experimental.sessionWorkflow";
53
+ readonly 'setting:generated-ui': "experimental.generatedUi";
53
54
  readonly 'setting:scheduled-tasks': "experimental.cron";
54
55
  readonly 'setting:session-writer-lease': "experimental.sessionWriterLease";
55
56
  readonly 'setting:agent-team': "experimental.agentTeam";
@@ -16,5 +16,10 @@ export interface TrajectorySummary {
16
16
  plottedCount: number;
17
17
  missingStartCount: number;
18
18
  missingTimingCount: number;
19
+ /** Main-session requests that reported usage; absent when none did. */
20
+ tokens?: {
21
+ input: number;
22
+ output: number;
23
+ };
19
24
  }
20
25
  export declare function summarizeTrajectory(trajectory: Trajectory): TrajectorySummary;