@qwen-code/web-shell 0.26.0 → 0.26.1-nightly.20261026.34769f9d41

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 (105) hide show
  1. package/README.md +90 -34
  2. package/dist/{PierreFilePreview-BKwQRLBv.js → PierreFilePreview-8MULkJoK.js} +1 -1
  3. package/dist/{SpreadsheetPreview-gWWUaRgJ.js → SpreadsheetPreview-DtnbWz0L.js} +2 -2
  4. package/dist/{WorkspaceFileBrowser-BLwOb5Br.js → WorkspaceFileBrowser-BrN8Jn6M.js} +2 -2
  5. package/dist/{agents-route-Pu5E-8GT.js → agents-route-B4kWo58n.js} +2 -2
  6. package/dist/daemon-react-sdk.js +1 -1
  7. package/dist/{index-BSBUK1JZ.js → index-pcCPQvgP.js} +63801 -57971
  8. package/dist/index.js +3 -3
  9. package/dist/sw.js +1 -1
  10. package/dist/transcript.js +9320 -9154
  11. package/dist/types/App.d.ts +7 -1
  12. package/dist/types/ManagedStandaloneApp.d.ts +9 -0
  13. package/dist/types/components/ChatEditor.d.ts +10 -3
  14. package/dist/types/components/ChatPane.d.ts +4 -1
  15. package/dist/types/components/ContextCompressionFeedback.d.ts +2 -2
  16. package/dist/types/components/ContextUsagePopover.d.ts +2 -2
  17. package/dist/types/components/MessageItem.d.ts +1 -0
  18. package/dist/types/components/SessionPrBadge.d.ts +5 -3
  19. package/dist/types/components/SplitView.d.ts +4 -1
  20. package/dist/types/components/UnavailableModelTooltip.d.ts +12 -0
  21. package/dist/types/components/artifacts/ArtifactPanel.d.ts +4 -1
  22. package/dist/types/components/artifacts/SideTaskPanel.d.ts +4 -1
  23. package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +32 -1
  24. package/dist/types/components/dialogs/ScheduledTasksDialog.d.ts +5 -1
  25. package/dist/types/components/dialogs/scheduledTasksSchedule.d.ts +1 -0
  26. package/dist/types/components/extensions/ExtensionsManagerPage.d.ts +7 -1
  27. package/dist/types/components/managed/ManagedArchivedSessions.d.ts +17 -0
  28. package/dist/types/components/managed/ManagedChildSessionView.d.ts +8 -0
  29. package/dist/types/components/managed/ManagedExtensionsManagerPage.d.ts +8 -0
  30. package/dist/types/components/managed/ManagedMcpManagerPage.d.ts +8 -0
  31. package/dist/types/components/managed/ManagedPermissionRulesDialog.d.ts +9 -0
  32. package/dist/types/components/managed/ManagedRecoveryPanel.d.ts +9 -0
  33. package/dist/types/components/managed/ManagedSessionActions.d.ts +20 -0
  34. package/dist/types/components/managed/ManagedSessionNavigationRow.d.ts +9 -0
  35. package/dist/types/components/managed/ManagedSessionsPage.d.ts +4 -3
  36. package/dist/types/components/managed/ManagedTaskPanel.d.ts +3 -1
  37. package/dist/types/components/managed/ManagedUserMessageQueue.d.ts +5 -0
  38. package/dist/types/components/managed/ManagedWorkspaceNavigation.d.ts +3 -1
  39. package/dist/types/components/managed/WorkspaceBindingCreator.d.ts +3 -2
  40. package/dist/types/components/managed/generated/managed-agent-api.d.ts +1935 -499
  41. package/dist/types/components/managed/java-managed-agent-client.d.ts +131 -4
  42. package/dist/types/components/managed/java-managed-agent-event-projector.d.ts +1 -2
  43. package/dist/types/components/managed/java-managed-agent-provider.d.ts +2 -6
  44. package/dist/types/components/managed/managed-agent-provider.d.ts +115 -21
  45. package/dist/types/components/managed/managed-extension-messages.d.ts +36 -0
  46. package/dist/types/components/managed/managed-extension-types.d.ts +10 -0
  47. package/dist/types/components/managed/managed-lifecycle-messages.d.ts +80 -0
  48. package/dist/types/components/managed/managed-lifecycle-messages.transcript-stub.d.ts +2 -0
  49. package/dist/types/components/managed/managed-mcp-command-storage.d.ts +16 -0
  50. package/dist/types/components/managed/managed-mcp-management-types.d.ts +8 -0
  51. package/dist/types/components/managed/managed-mcp-messages.d.ts +4 -0
  52. package/dist/types/components/managed/managed-mcp-messages.transcript-stub.d.ts +2 -0
  53. package/dist/types/components/managed/managed-recovery-handoff.d.ts +17 -0
  54. package/dist/types/components/managed/managed-recovery-messages.d.ts +31 -0
  55. package/dist/types/components/managed/managed-session-export.d.ts +21 -0
  56. package/dist/types/components/managed/use-managed-actions.d.ts +2 -1
  57. package/dist/types/components/managed/use-managed-approval-change.d.ts +3 -1
  58. package/dist/types/components/managed/use-managed-context-compression.d.ts +23 -0
  59. package/dist/types/components/managed/use-managed-file-references.d.ts +7 -0
  60. package/dist/types/components/managed/use-managed-file-upload.d.ts +23 -0
  61. package/dist/types/components/managed/use-managed-mcp-management.d.ts +25 -0
  62. package/dist/types/components/managed/use-managed-mcp.d.ts +1 -1
  63. package/dist/types/components/managed/use-managed-recovery.d.ts +14 -0
  64. package/dist/types/components/managed/use-managed-session-lifecycle.d.ts +26 -0
  65. package/dist/types/components/managed/use-managed-session-rename.d.ts +2 -2
  66. package/dist/types/components/managed/use-managed-tasks.d.ts +3 -0
  67. package/dist/types/components/managed/use-managed-turn-cancel.d.ts +9 -0
  68. package/dist/types/components/managed/use-managed-user-messages.d.ts +13 -0
  69. package/dist/types/components/mcp/McpDetails.d.ts +30 -0
  70. package/dist/types/components/messages/AssistantMessage.d.ts +1 -0
  71. package/dist/types/components/messages/SettingsMessage.d.ts +19 -1
  72. package/dist/types/components/plugins/PluginManagerPage.d.ts +5 -1
  73. package/dist/types/components/sidebar/RecentSessions.d.ts +23 -0
  74. package/dist/types/components/sidebar/SessionDetailsTooltip.d.ts +2 -1
  75. package/dist/types/components/sidebar/StandaloneRecents.d.ts +1 -1
  76. package/dist/types/components/sidebar/WebShellSidebar.d.ts +10 -3
  77. package/dist/types/components/sidebar/WorkspaceMenu.d.ts +3 -0
  78. package/dist/types/components/sidebar/workspaceOrder.d.ts +12 -0
  79. package/dist/types/components/ui/badge.d.ts +1 -1
  80. package/dist/types/components/ui/button.d.ts +1 -1
  81. package/dist/types/components/ui/tooltip.d.ts +3 -1
  82. package/dist/types/components/workspaces/WorkspaceDirectoriesSection.d.ts +11 -0
  83. package/dist/types/customization.d.ts +1 -0
  84. package/dist/types/daemon/index.d.ts +1 -1
  85. package/dist/types/daemon/workspace/index.d.ts +1 -1
  86. package/dist/types/daemon/workspace/types.d.ts +37 -1
  87. package/dist/types/daemon-react-sdk.d.ts +2 -0
  88. package/dist/types/hooks/composer-draft-attachments.d.ts +21 -0
  89. package/dist/types/hooks/composer-draft-session.d.ts +39 -0
  90. package/dist/types/hooks/useComposerCore.d.ts +1 -0
  91. package/dist/types/hooks/useContextUsageControls.d.ts +8 -3
  92. package/dist/types/index.d.ts +2 -1
  93. package/dist/types/main.d.ts +3 -1
  94. package/dist/types/settings.d.ts +6 -1
  95. package/dist/types/unavailableModels.d.ts +24 -0
  96. package/dist/types/utils/composerModels.d.ts +18 -0
  97. package/dist/types/utils/indexeddb.d.ts +17 -0
  98. package/dist/types/utils/selectionClipboard.d.ts +1 -0
  99. package/dist/types/utils/selectionClipboard.transcript-stub.d.ts +1 -0
  100. package/dist/types/utils/todos.d.ts +8 -0
  101. package/dist/types/utils/turnDuration.d.ts +1 -0
  102. package/dist/{useDaemonMidTurnInjected-BoG_wM2a.js → useDaemonMidTurnInjected-DY7azBbC.js} +3185 -2729
  103. package/package.json +1 -1
  104. package/dist/types/components/managed/ManagedSessionCwdControl.d.ts +0 -9
  105. package/dist/types/components/managed/use-managed-cwd-change.d.ts +0 -21
@@ -91,7 +91,7 @@ export interface paths {
91
91
  };
92
92
  get?: never;
93
93
  put?: never;
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. */
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. Qualified new public Shell Sessions expose agent by default under the public-child deployment switch and runtime/Harness admission; existing Sessions retain their original tool scope. Invalid approval or files-off can refuse attachment. Public Shell close and active delete require lifecycle v2 and reliable original-Worker stop support; archive and unarchive require completed close proof. Fresh Shell sending also requires foregroundShell=true; workspaceTurns alone is not sufficient Shell Turn admission. Manual rename uses the independent rename capability. */
95
95
  post: operations["webShellCreateSession"];
96
96
  delete?: never;
97
97
  options?: never;
@@ -108,6 +108,7 @@ export interface paths {
108
108
  };
109
109
  get?: never;
110
110
  put?: never;
111
+ /** @description Admits the command durably and returns its operation identity, admission stage and delivery state. Replaying the same idempotency key returns the original command operation. Existing Session and actor authorization checks apply. */
111
112
  post: operations["webShellSubmitTurn"];
112
113
  delete?: never;
113
114
  options?: never;
@@ -124,6 +125,7 @@ export interface paths {
124
125
  };
125
126
  get?: never;
126
127
  put?: never;
128
+ /** @description Admits the command durably and returns its operation identity, admission stage and delivery state. Replaying the same idempotency key returns the original command operation. Existing Session and actor authorization checks apply. */
127
129
  post: operations["webShellCancelTurn"];
128
130
  delete?: never;
129
131
  options?: never;
@@ -148,23 +150,6 @@ export interface paths {
148
150
  patch?: never;
149
151
  trace?: never;
150
152
  };
151
- "/api/agent/web-shell/v1/sessions/cwd/change": {
152
- parameters: {
153
- query?: never;
154
- header?: never;
155
- path?: never;
156
- cookie?: never;
157
- };
158
- get?: never;
159
- put?: never;
160
- /** @description W2, implemented: the camelCase twin of the public changeSessionCwd with the matched refusal order: 400 invalid_request for a missing or malformed field; 401 actor_required without a trusted actor; 400 invalid_idempotency_key for a malformed idempotencyKey — with two documented divergences: a key over 128 characters is refused during request validation with 400 invalid_request before the service's check, and a blank idempotencyKey is refused there too, while the public header answers 400 invalid_idempotency_key for both shapes; 400 invalid_cwd for a lexical violation and 400 invalid_request for an expectedContextRevision below 1; 404 session_not_found for an unknown Session id; 400 unsupported_feature for an unbound Session; 404 session_not_found for an unreadable Session; 409 idempotency_conflict when one key carries different content, and a completed change under the same key always replays instead, before the role refusal; 403 session_operation_forbidden when a readable actor's Workspace role is below OPERATOR; 409 workspace_unavailable when execution is disabled; 404 session_not_found for a deleted Session; then 409 session_state_conflict, 409 workspace_unavailable from moved Registry facts (the recorded create-command actor's grant included, and the settlement re-checks the V56-persisted initiator the same way, so demoting either actor fails the operation, exactly like the public surface), 409 context_revision_conflict and 409 session_context_busy. Poll the operation or await session.context.changed; do not treat 202 as activation. */
161
- post: operations["webShellChangeCwd"];
162
- delete?: never;
163
- options?: never;
164
- head?: never;
165
- patch?: never;
166
- trace?: never;
167
- };
168
153
  "/api/agent/web-shell/v1/operations/query": {
169
154
  parameters: {
170
155
  query?: never;
@@ -523,7 +508,7 @@ export interface paths {
523
508
  };
524
509
  get?: never;
525
510
  put?: never;
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. */
511
+ /** @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, hosted-workspace-files/3 or hosted-workspace-shell/1. 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. Classifier auto requires auto-approval/1. Optional permissionRules requires permission-rules/1 and an idle Session. Omitted rules preserve the current selection; three empty arrays clear it. Mode, Plan and rules share one approval revision and receipt. Persisted rules are also snapshotted at Turn admission; replay preserves the original policy. Empty rules are omitted from responses and Harness payloads. */
527
512
  post: operations["changeWebShellSessionApproval"];
528
513
  delete?: never;
529
514
  options?: never;
@@ -706,112 +691,486 @@ export interface paths {
706
691
  patch?: never;
707
692
  trace?: never;
708
693
  };
709
- }
710
- export type webhooks = Record<string, never>;
711
- export interface components {
712
- schemas: {
713
- PublicMcpCatalog: {
714
- /** @constant */
715
- object: "agent.mcp_catalog";
716
- /** Format: uuid */
717
- session_id: string;
718
- servers: components["schemas"]["PublicMcpServerCatalog"][];
694
+ "/api/agent/web-shell/v1/sessions/compress": {
695
+ parameters: {
696
+ query?: never;
697
+ header?: never;
698
+ path?: never;
699
+ cookie?: never;
719
700
  };
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"];
701
+ get?: never;
702
+ put?: never;
703
+ /** @description Admits idle-only context compression without creating a Turn. A trusted Workspace OPERATOR or OWNER is required. Read authorization precedes actor-scoped idempotency replay; replay precedes mutable role, capability, revision and busy checks. Expected compaction revision begins at zero. Returns 409 session_context_busy for active or queued Turns, approvals, unsettled Hooks, recovery or conflicting context operations; 409 compaction_revision_conflict for a stale revision; 409 idempotency_conflict for key reuse with different content. A 202 is durable admission; query the original operation for completion. Unknown acceptance is reconciled from native evidence without blind redelivery. A compressed outcome invalidates the prior context usage until a new main-model observation; noop and failure preserve history and revision. */
704
+ post: operations["webShellCompressContext"];
705
+ delete?: never;
706
+ options?: never;
707
+ head?: never;
708
+ patch?: never;
709
+ trace?: never;
710
+ };
711
+ "/api/agent/web-shell/v1/session-mcp/management/query": {
712
+ parameters: {
713
+ query?: never;
714
+ header?: never;
715
+ path?: never;
716
+ cookie?: never;
729
717
  };
730
- PublicMcpTool: {
731
- name: string;
732
- description?: string;
733
- input_schema: {
734
- [key: string]: unknown;
735
- };
718
+ get?: never;
719
+ put?: never;
720
+ /** @description Requires a trusted Workspace operator and the Session creator execution grants. Manage only the selected active public Session; commands retain immutable definition pins, serialize while idle, and select only deployed Runtime definitions. Status reads persisted receipts without restarting or replaying the original effect. Management reattachment never drives recovery, cleanup, or wake dispatch. After a Harness restart, continue or recover the Session through its normal execution flow first; otherwise management returns 409 hosted_mcp_session_load_required. A fresh empty Session can initialize without a Turn; command status never creates one. Unsupported management queries return supported=false. Responses never include private executable recipes or credentials. */
721
+ post: operations["queryWebShellSessionMcpManagement"];
722
+ delete?: never;
723
+ options?: never;
724
+ head?: never;
725
+ patch?: never;
726
+ trace?: never;
727
+ };
728
+ "/api/agent/web-shell/v1/session-mcp/management/submit": {
729
+ parameters: {
730
+ query?: never;
731
+ header?: never;
732
+ path?: never;
733
+ cookie?: never;
736
734
  };
737
- PublicMcpResource: {
738
- name: string;
739
- uri: string;
740
- description?: string;
741
- mime_type?: string;
735
+ get?: never;
736
+ put?: never;
737
+ /** @description Requires a trusted Workspace operator and the Session creator execution grants. Manage only the selected active public Session; commands retain immutable definition pins, serialize while idle, and select only deployed Runtime definitions. Status reads persisted receipts without restarting or replaying the original effect. Management reattachment never drives recovery, cleanup, or wake dispatch. After a Harness restart, continue or recover the Session through its normal execution flow first; otherwise management returns 409 hosted_mcp_session_load_required. A fresh empty Session can initialize without a Turn; command status never creates one. Unsupported management queries return supported=false. Responses never include private executable recipes or credentials. */
738
+ post: operations["submitWebShellSessionMcpManagement"];
739
+ delete?: never;
740
+ options?: never;
741
+ head?: never;
742
+ patch?: never;
743
+ trace?: never;
744
+ };
745
+ "/api/agent/web-shell/v1/session-mcp/management/operations/query": {
746
+ parameters: {
747
+ query?: never;
748
+ header?: never;
749
+ path?: never;
750
+ cookie?: never;
742
751
  };
743
- PublicMcpPrompt: {
744
- name: string;
745
- description?: string;
746
- arguments?: components["schemas"]["PublicMcpPromptArgument"][];
752
+ get?: never;
753
+ put?: never;
754
+ /** @description Requires a trusted Workspace operator and the Session creator execution grants. Manage only the selected active public Session; commands retain immutable definition pins, serialize while idle, and select only deployed Runtime definitions. Status reads persisted receipts without restarting or replaying the original effect. Management reattachment never drives recovery, cleanup, or wake dispatch. After a Harness restart, continue or recover the Session through its normal execution flow first; otherwise management returns 409 hosted_mcp_session_load_required. A fresh empty Session can initialize without a Turn; command status never creates one. Unsupported management queries return supported=false. Responses never include private executable recipes or credentials. */
755
+ post: operations["queryWebShellSessionMcpManagementOperation"];
756
+ delete?: never;
757
+ options?: never;
758
+ head?: never;
759
+ patch?: never;
760
+ trace?: never;
761
+ };
762
+ "/api/agent/web-shell/v1/session-recovery/query": {
763
+ parameters: {
764
+ query?: never;
765
+ header?: never;
766
+ path?: never;
767
+ cookie?: never;
747
768
  };
748
- PublicMcpPromptArgument: {
749
- name: string;
750
- description?: string;
751
- required?: boolean;
769
+ get?: never;
770
+ put?: never;
771
+ /** @description Read authorized durable recovery facts and only already attached Harness evidence without loading a Session, acquiring a Runtime, invoking tools or models, stopping work or clearing a block. Missing or unreadable native readiness evidence never proves ready. This is Session-scoped; ordinary Workspace admission and concurrent unrelated Sessions remain independent. */
772
+ post: operations["queryWebShellSessionRecovery"];
773
+ delete?: never;
774
+ options?: never;
775
+ head?: never;
776
+ patch?: never;
777
+ trace?: never;
778
+ };
779
+ "/api/agent/web-shell/v1/session-recovery/recheck": {
780
+ parameters: {
781
+ query?: never;
782
+ header?: never;
783
+ path?: never;
784
+ cookie?: never;
752
785
  };
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";
786
+ get?: never;
787
+ put?: never;
788
+ /** @description Recheck only the latest original Turn under the existing cancellation/cleanup authorization. Repeated requests coalesce and may only advance existing cancellation/reconciliation or retry settled cleanup; they never resubmit input, replay effects, reset retry budgets or change claim generations. A stale Turn returns recovery_target_changed and ineligible work returns recovery_recheck_unavailable. 202 means requested, not cancelled or ready. For a terminal Java Turn whose Harness attachment is cold or whose status cannot be read, this POST may attempt a narrow cleanup-only load. It must verify the original prompt has a durable native terminal, covered continuation checkpoint or lawful initial state, and no pending input before retrying only its existing cleanup. It never resumes models, tools, MCP or Hooks, clears a permanent journal block, or treats a historical SQL failure as native settlement. */
789
+ post: operations["recheckWebShellSessionRecovery"];
790
+ delete?: never;
791
+ options?: never;
792
+ head?: never;
793
+ patch?: never;
794
+ trace?: never;
795
+ };
796
+ "/api/agent/web-shell/v1/sessions/export/query": {
797
+ parameters: {
798
+ query?: never;
799
+ header?: never;
800
+ path?: never;
801
+ cookie?: never;
760
802
  };
761
- InputBlock: components["schemas"]["InputTextBlock"] | components["schemas"]["InputFileBlock"] | components["schemas"]["InputImageBlock"];
762
- PublicArtifact: {
763
- /** @constant */
764
- object: "agent.artifact";
765
- id: string;
766
- session_id: string;
767
- result_id: string;
768
- revision: string;
769
- /** @enum {string} */
770
- stream_role: "stdout" | "stderr";
771
- /** Format: int64 */
772
- byte_length: number;
773
- sha256: string;
774
- media_type: string;
775
- /** @enum {string} */
776
- availability: "available" | "unavailable";
777
- /**
778
- * Format: int64
779
- * @description Unix epoch milliseconds, unlike the seconds that the public Session, Turn, Event and Item resources report.
780
- */
781
- created_at: number;
803
+ get?: never;
804
+ put?: never;
805
+ /**
806
+ * Read one immutable public Session snapshot page for reading exports
807
+ * @description Requires current Session read authorization on every page. Reuses the public item snapshot cursor, whose subsequent pages retain the original snapshot version and watermark. No private journal, Runtime or storage credentials are returned. The client waits for a snapshot covering its captured Session watermark before using its first page.
808
+ */
809
+ post: operations["webShellExportSession"];
810
+ delete?: never;
811
+ options?: never;
812
+ head?: never;
813
+ patch?: never;
814
+ trace?: never;
815
+ };
816
+ "/api/agent/web-shell/v1/user-messages/query": {
817
+ parameters: {
818
+ query?: never;
819
+ header?: never;
820
+ path?: never;
821
+ cookie?: never;
782
822
  };
783
- WebShellListRequest: {
784
- cursor?: string | null;
785
- /** @default 20 */
786
- limit?: number | null;
823
+ get?: never;
824
+ put?: never;
825
+ /** Query or mutate the durable Session user message queue */
826
+ post: operations["webShellQueryUserMessages"];
827
+ delete?: never;
828
+ options?: never;
829
+ head?: never;
830
+ patch?: never;
831
+ trace?: never;
832
+ };
833
+ "/api/agent/web-shell/v1/user-messages/command": {
834
+ parameters: {
835
+ query?: never;
836
+ header?: never;
837
+ path?: never;
838
+ cookie?: never;
787
839
  };
788
- WebShellSessionRequest: {
789
- /** Format: uuid */
790
- sessionId: string;
840
+ get?: never;
841
+ put?: never;
842
+ /** Query or mutate the durable Session user message queue */
843
+ post: operations["webShellCommandUserMessages"];
844
+ delete?: never;
845
+ options?: never;
846
+ head?: never;
847
+ patch?: never;
848
+ trace?: never;
849
+ };
850
+ "/api/agent/web-shell/v1/workspace-extensions/query": {
851
+ parameters: {
852
+ query?: never;
853
+ header?: never;
854
+ path?: never;
855
+ cookie?: never;
791
856
  };
792
- WebShellTranscriptRequest: {
793
- /** Format: uuid */
794
- sessionId: string;
795
- cursor?: string | null;
796
- /** @default 100 */
797
- limit?: number | null;
857
+ get?: never;
858
+ put?: never;
859
+ /** @description Requires an authenticated actor with a read grant on the persisted Workspace. Reads durable metadata only; never creates a Runtime, loads a Harness Session, or retries an original operation. */
860
+ post: operations["queryWorkspaceExtensionPackages"];
861
+ delete?: never;
862
+ options?: never;
863
+ head?: never;
864
+ patch?: never;
865
+ trace?: never;
866
+ };
867
+ "/api/agent/web-shell/v1/workspace-extensions/packages/query": {
868
+ parameters: {
869
+ query?: never;
870
+ header?: never;
871
+ path?: never;
872
+ cookie?: never;
798
873
  };
799
- WebShellStreamRequest: {
800
- /** Format: uuid */
801
- sessionId: string;
802
- /**
803
- * Format: int64
804
- * @default 0
805
- */
806
- afterSequence?: number | null;
874
+ get?: never;
875
+ put?: never;
876
+ /** @description Requires an authenticated actor with a read grant on the persisted Workspace. Reads durable metadata only; never creates a Runtime, loads a Harness Session, or retries an original operation. */
877
+ post: operations["queryWorkspaceExtensionPackage"];
878
+ delete?: never;
879
+ options?: never;
880
+ head?: never;
881
+ patch?: never;
882
+ trace?: never;
883
+ };
884
+ "/api/agent/web-shell/v1/workspace-extensions/settings/query": {
885
+ parameters: {
886
+ query?: never;
887
+ header?: never;
888
+ path?: never;
889
+ cookie?: never;
807
890
  };
808
- WebShellCreateRequest: {
809
- /** @description Trace correlation only. */
810
- requestId?: string | null;
811
- idempotencyKey: string;
812
- agentId: string;
813
- /** @description Planned; phase one rejects non-blank values. */
814
- environmentId?: string | null;
891
+ get?: never;
892
+ put?: never;
893
+ /** @description Requires an authenticated actor with a read grant on the persisted Workspace. Reads durable metadata only; never creates a Runtime, loads a Harness Session, or retries an original operation. */
894
+ post: operations["queryWorkspaceExtensionPackageSettings"];
895
+ delete?: never;
896
+ options?: never;
897
+ head?: never;
898
+ patch?: never;
899
+ trace?: never;
900
+ };
901
+ "/api/agent/web-shell/v1/workspace-extensions/settings/submit": {
902
+ parameters: {
903
+ query?: never;
904
+ header?: never;
905
+ path?: never;
906
+ cookie?: never;
907
+ };
908
+ get?: never;
909
+ put?: never;
910
+ /** @description Requires the same Workspace operator and deployment permission as publication. Writes a complete encrypted settings revision with optimistic concurrency; old pinned revisions remain available. No values are returned. */
911
+ post: operations["submitWorkspaceExtensionPackageSettings"];
912
+ delete?: never;
913
+ options?: never;
914
+ head?: never;
915
+ patch?: never;
916
+ trace?: never;
917
+ };
918
+ "/api/agent/web-shell/v1/workspace-extensions/operations/query": {
919
+ parameters: {
920
+ query?: never;
921
+ header?: never;
922
+ path?: never;
923
+ cookie?: never;
924
+ };
925
+ get?: never;
926
+ put?: never;
927
+ /** @description Requires an authenticated actor with a read grant on the persisted Workspace. Reads durable metadata only; never creates a Runtime, loads a Harness Session, or retries an original operation. The querying actor must own the original publication or settings operation. */
928
+ post: operations["queryWorkspaceExtensionPackageOperation"];
929
+ delete?: never;
930
+ options?: never;
931
+ head?: never;
932
+ patch?: never;
933
+ trace?: never;
934
+ };
935
+ "/api/agent/web-shell/v1/workspace-extensions/publish": {
936
+ parameters: {
937
+ query?: never;
938
+ header?: never;
939
+ path?: never;
940
+ cookie?: never;
941
+ };
942
+ get?: never;
943
+ put?: never;
944
+ /** @description Requires an ACTIVE Workspace, an authenticated operator and the deployment extension allowlist. The Idempotency-Key binds an actor-scoped durable operation. Publication retains immutable tar.gz bytes under a server-assigned stable extension identity; it does not activate a Session. The manifest query is base64url JSON and is covered by the existing request signature. Archive contents and Runtime compatibility are validated by the target compiler before activation. */
945
+ post: operations["publishWebShellWorkspaceExtensionPackage"];
946
+ delete?: never;
947
+ options?: never;
948
+ head?: never;
949
+ patch?: never;
950
+ trace?: never;
951
+ };
952
+ "/api/agent/web-shell/v1/session-extensions/query": {
953
+ parameters: {
954
+ query?: never;
955
+ header?: never;
956
+ path?: never;
957
+ cookie?: never;
958
+ };
959
+ get?: never;
960
+ put?: never;
961
+ /** @description Requires a Workspace reader for status and OPERATOR for changes. Status reads durable configuration and never loads a Harness or retries an operation. Apply requires an idle Session and the original Runtime with the package execution contract; a committed unknown outcome fences new execution until the original operation is reconciled. Explicit recovery compiles previous content into a new revision. */
962
+ post: operations["webShellSessionExtensionsQuery"];
963
+ delete?: never;
964
+ options?: never;
965
+ head?: never;
966
+ patch?: never;
967
+ trace?: never;
968
+ };
969
+ "/api/agent/web-shell/v1/session-extensions/submit": {
970
+ parameters: {
971
+ query?: never;
972
+ header?: never;
973
+ path?: never;
974
+ cookie?: never;
975
+ };
976
+ get?: never;
977
+ put?: never;
978
+ /** @description Requires a Workspace reader for status and OPERATOR for changes. Status reads durable configuration and never loads a Harness or retries an operation. Apply requires an idle Session and the original Runtime with the package execution contract; a committed unknown outcome fences new execution until the original operation is reconciled. Explicit recovery compiles previous content into a new revision. */
979
+ post: operations["webShellSessionExtensionsSubmit"];
980
+ delete?: never;
981
+ options?: never;
982
+ head?: never;
983
+ patch?: never;
984
+ trace?: never;
985
+ };
986
+ "/api/agent/web-shell/v1/session-extensions/continue": {
987
+ parameters: {
988
+ query?: never;
989
+ header?: never;
990
+ path?: never;
991
+ cookie?: never;
992
+ };
993
+ get?: never;
994
+ put?: never;
995
+ /** @description Requires a Workspace reader for status and OPERATOR for changes. Status reads durable configuration and never loads a Harness or retries an operation. Apply requires an idle Session and the original Runtime with the package execution contract; a committed unknown outcome fences new execution until the original operation is reconciled. Explicit recovery compiles previous content into a new revision. */
996
+ post: operations["webShellSessionExtensionsContinue"];
997
+ delete?: never;
998
+ options?: never;
999
+ head?: never;
1000
+ patch?: never;
1001
+ trace?: never;
1002
+ };
1003
+ "/api/agent/web-shell/v1/session-extensions/recover-previous": {
1004
+ parameters: {
1005
+ query?: never;
1006
+ header?: never;
1007
+ path?: never;
1008
+ cookie?: never;
1009
+ };
1010
+ get?: never;
1011
+ put?: never;
1012
+ /** @description Requires a Workspace reader for status and OPERATOR for changes. Status reads durable configuration and never loads a Harness or retries an operation. Apply requires an idle Session and the original Runtime with the package execution contract; a committed unknown outcome fences new execution until the original operation is reconciled. Explicit recovery compiles previous content into a new revision. */
1013
+ post: operations["webShellSessionExtensionsRecoverPrevious"];
1014
+ delete?: never;
1015
+ options?: never;
1016
+ head?: never;
1017
+ patch?: never;
1018
+ trace?: never;
1019
+ };
1020
+ "/api/agent/web-shell/v1/workspaces/files/upload": {
1021
+ parameters: {
1022
+ query?: never;
1023
+ header?: never;
1024
+ path?: never;
1025
+ cookie?: never;
1026
+ };
1027
+ get?: never;
1028
+ put?: never;
1029
+ /**
1030
+ * Upload one binary file to a persisted Workspace
1031
+ * @description Requires a trusted actor with OPERATOR or OWNER access, enabled Workspace files, verified LOCAL or SSH_LOCAL storage and an updated CLI. Uploads are limited to 8 MiB, require an existing parent directory and never overwrite an occupied path. A durable physical storage hold excludes tool execution and retirement until the original upload has a definite terminal result. Repeating the same upload ID reconciles its original command without replaying mutation; changed requests conflict. CSI is unsupported and never falls back to a primary Workspace. An uncertain result returns 503 workspace_upload_pending and must be queried by the original upload ID.
1032
+ */
1033
+ post: operations["webShellWorkspaceFilesUpload"];
1034
+ delete?: never;
1035
+ options?: never;
1036
+ head?: never;
1037
+ patch?: never;
1038
+ trace?: never;
1039
+ };
1040
+ "/api/agent/web-shell/v1/workspaces/files/uploads/query": {
1041
+ parameters: {
1042
+ query?: never;
1043
+ header?: never;
1044
+ path?: never;
1045
+ cookie?: never;
1046
+ };
1047
+ get?: never;
1048
+ put?: never;
1049
+ /**
1050
+ * Reconcile the original Workspace upload
1051
+ * @description Only the admitting actor with a current Workspace operator grant can query the upload. Status checks use the frozen original storage target and never execute an upload or select a replacement Runtime. Reconciliation remains available through storage fencing; pending commands retain their durable hold. The server also reconciles pending uploads after client cancellation or restart.
1052
+ */
1053
+ post: operations["webShellWorkspaceFilesUploadQuery"];
1054
+ delete?: never;
1055
+ options?: never;
1056
+ head?: never;
1057
+ patch?: never;
1058
+ trace?: never;
1059
+ };
1060
+ }
1061
+ export type webhooks = Record<string, never>;
1062
+ export interface components {
1063
+ schemas: {
1064
+ PublicMcpCatalog: {
1065
+ /** @constant */
1066
+ object: "agent.mcp_catalog";
1067
+ /** Format: uuid */
1068
+ session_id: string;
1069
+ servers: components["schemas"]["PublicMcpServerCatalog"][];
1070
+ };
1071
+ PublicMcpServerCatalog: {
1072
+ server_id: string;
1073
+ server_revision: number;
1074
+ /** @description The pinned catalog revision; null while no catalog has been published. */
1075
+ catalog_revision: number | null;
1076
+ tools: components["schemas"]["PublicMcpTool"][];
1077
+ resources: components["schemas"]["PublicMcpResource"][];
1078
+ prompts: components["schemas"]["PublicMcpPrompt"][];
1079
+ discovery: components["schemas"]["PublicMcpDiscovery"];
1080
+ };
1081
+ PublicMcpTool: {
1082
+ name: string;
1083
+ description?: string;
1084
+ input_schema: {
1085
+ [key: string]: unknown;
1086
+ };
1087
+ };
1088
+ PublicMcpResource: {
1089
+ name: string;
1090
+ uri: string;
1091
+ description?: string;
1092
+ mime_type?: string;
1093
+ };
1094
+ PublicMcpPrompt: {
1095
+ name: string;
1096
+ description?: string;
1097
+ arguments?: components["schemas"]["PublicMcpPromptArgument"][];
1098
+ };
1099
+ PublicMcpPromptArgument: {
1100
+ name: string;
1101
+ description?: string;
1102
+ required?: boolean;
1103
+ };
1104
+ PublicMcpDiscovery: {
1105
+ /** @enum {string} */
1106
+ tools: "complete" | "partial" | "failed" | "stale";
1107
+ /** @enum {string} */
1108
+ resources: "complete" | "partial" | "failed" | "stale";
1109
+ /** @enum {string} */
1110
+ prompts: "complete" | "partial" | "failed" | "stale";
1111
+ };
1112
+ InputBlock: components["schemas"]["InputTextBlock"] | components["schemas"]["InputFileBlock"] | components["schemas"]["InputImageBlock"];
1113
+ PublicArtifact: {
1114
+ /** @constant */
1115
+ object: "agent.artifact";
1116
+ id: string;
1117
+ session_id: string;
1118
+ result_id: string;
1119
+ revision: string;
1120
+ /** @enum {string} */
1121
+ stream_role: "stdout" | "stderr";
1122
+ /** Format: int64 */
1123
+ byte_length: number;
1124
+ sha256: string;
1125
+ media_type: string;
1126
+ /** @enum {string} */
1127
+ availability: "available" | "unavailable";
1128
+ /**
1129
+ * Format: int64
1130
+ * @description Unix epoch milliseconds, unlike the seconds that the public Session, Turn, Event and Item resources report.
1131
+ */
1132
+ created_at: number;
1133
+ };
1134
+ WebShellListRequest: {
1135
+ cursor?: string | null;
1136
+ /** @default 20 */
1137
+ limit?: number | null;
1138
+ /**
1139
+ * @description Filter before pagination. Omission preserves all readable, undeleted Sessions. Cursors are bound to the normalized archive state and title query.
1140
+ * @default all
1141
+ * @enum {string}
1142
+ */
1143
+ archiveState?: "unarchived" | "archived" | "all";
1144
+ /** @description Case-insensitive literal title substring, with surrounding whitespace stripped. Empty means no title filter; %, _ and backslash are literal. Applied before pagination. Cursors are bound to the stripped query and archiveState; listing is not a snapshot across title or archive changes. */
1145
+ titleQuery?: string | null;
1146
+ };
1147
+ WebShellSessionRequest: {
1148
+ /** Format: uuid */
1149
+ sessionId: string;
1150
+ };
1151
+ WebShellTranscriptRequest: {
1152
+ /** Format: uuid */
1153
+ sessionId: string;
1154
+ cursor?: string | null;
1155
+ /** @default 100 */
1156
+ limit?: number | null;
1157
+ };
1158
+ WebShellStreamRequest: {
1159
+ /** Format: uuid */
1160
+ sessionId: string;
1161
+ /**
1162
+ * Format: int64
1163
+ * @default 0
1164
+ */
1165
+ afterSequence?: number | null;
1166
+ };
1167
+ WebShellCreateRequest: {
1168
+ /** @description Trace correlation only. */
1169
+ requestId?: string | null;
1170
+ idempotencyKey: string;
1171
+ agentId: string;
1172
+ /** @description Optional host-catalog model for a bound built-in qwen-code Session. Requires modelSelectionSupported. Persisted atomically before the first Turn and included in creation idempotency; omission preserves the default model and old digest. */
1173
+ modelId?: string;
815
1174
  /** @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. */
816
1175
  title?: string | null;
817
1176
  /** @description Text has a 4,000,000-character aggregate budget and per-block 1,000,000-character cap, counted in code points. Hosted also enforces its 64 KiB durable-record limit for text-only inputs and a 32 MiB prepared-snapshot ceiling. A complete canonical input containing file/image attachments must fit within 8 MiB and requires input-attachments/1. */
@@ -827,6 +1186,8 @@ export interface components {
827
1186
  planMode?: boolean;
828
1187
  /** @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
1188
  skills?: components["schemas"]["SessionCreationSkill"][];
1189
+ /** @description Optional immutable initial extension selection. Omission keeps the legacy configuration path; an explicit empty array starts the unified configuration format. Included in creation idempotency and applied before the first model request. Requires session-extension-packages/1 and an extension-capable original Runtime. */
1190
+ extensionPins?: components["schemas"]["ManagedExtensionPackagePin"][];
830
1191
  };
831
1192
  WebShellSubmitRequest: {
832
1193
  /** @description Trace correlation only. */
@@ -837,12 +1198,6 @@ export interface components {
837
1198
  /** @description Text has a 4,000,000-character aggregate budget and per-block 1,000,000-character cap, counted in code points. Hosted also enforces its 64 KiB durable-record limit for text-only inputs and a 32 MiB prepared-snapshot ceiling. A complete canonical input containing file/image attachments must fit within 8 MiB and requires input-attachments/1. */
838
1199
  input?: components["schemas"]["InputBlock"][];
839
1200
  metadata?: components["schemas"]["WebShellMetadata"];
840
- /**
841
- * @description D7-3. java_durable asks for the java_durable admission view: the 202 then names the command's operation (operationId, admissionStage, deliveryState), so a lost response resolves through that operation. Only a deployment whose Sessions advertise durableOperations admits it; elsewhere it answers 400 unsupported_feature before anything is read or written. Absent or harness_confirmed keeps today's response. harness_confirmed is the pinned reference design's qwen_confirmed. The request digest leaves this field out, so a retry under the same idempotencyKey replays the same command in either view.
842
- * @default harness_confirmed
843
- * @enum {string}
844
- */
845
- admissionProfile?: "harness_confirmed" | "java_durable";
846
1201
  };
847
1202
  WebShellCancelRequest: {
848
1203
  /** @description Trace correlation only. */
@@ -851,34 +1206,36 @@ export interface components {
851
1206
  /** Format: uuid */
852
1207
  sessionId: string;
853
1208
  turnId: string;
854
- /**
855
- * @description D7-3. java_durable asks for the java_durable admission view: the 202 then names the command's operation (operationId, admissionStage, deliveryState), so a lost response resolves through that operation. Only a deployment whose Sessions advertise durableOperations admits it; elsewhere it answers 400 unsupported_feature before anything is read or written. Absent or harness_confirmed keeps today's response. harness_confirmed is the pinned reference design's qwen_confirmed. The request digest leaves this field out, so a retry under the same idempotencyKey replays the same command in either view.
856
- * @default harness_confirmed
857
- * @enum {string}
858
- */
859
- admissionProfile?: "harness_confirmed" | "java_durable";
860
1209
  };
861
1210
  /** @description Arbitrary caller metadata, as a JSON object (or null). Accepted and ignored in Phase 1: nothing from it is persisted. On WebShellCreateRequest the Session title travels in that request's own `title` field; WebShellSubmitRequest has no title surface. Any keys are valid. */
862
1211
  WebShellMetadata: {
863
1212
  [key: string]: unknown;
864
1213
  } | null;
865
- /** @description accepted means Java durable delivery responsibility, not model execution. The three operation fields come together, and only on a Turn input or cancel admission that asked for admissionProfile java_durable on a deployment advertising durableOperations (D7-3): operationId names the command's original submit_input or cancel operation, readable through the operation query, and admissionStage and deliveryState are that operation's latest durable values. A fresh input reads java_durable and pending; a cancel of a Turn that already ended reads its settled values. A retry under the same key answers the same operation with replayed true. Missing fields keep the legacy harness_confirmed response semantics, also for Session creation and for a replayed command recorded before v1.58. */
1214
+ /** @description Command admission. Session creation and internal commands may omit operation fields. */
866
1215
  WebShellAdmission: {
867
1216
  /** Format: uuid */
868
1217
  sessionId: string;
869
1218
  turnId?: string | null;
870
1219
  status: string;
871
1220
  replayed: boolean;
1221
+ /** @description Durable operation identifier for turn submission or cancellation. */
872
1222
  operationId?: string;
873
- /** @enum {string} */
1223
+ /**
1224
+ * @description Persisted admission stage of the operation.
1225
+ * @enum {string}
1226
+ */
874
1227
  admissionStage?: "java_durable" | "harness_confirmed";
875
- /** @enum {string} */
1228
+ /**
1229
+ * @description Current delivery state of the operation.
1230
+ * @enum {string}
1231
+ */
876
1232
  deliveryState?: "pending" | "leased" | "confirmed" | "blocked";
877
1233
  };
878
1234
  WebShellTurn: {
879
1235
  turnId: string;
880
1236
  /** Format: uuid */
881
1237
  sessionId: string;
1238
+ /** @description recovery_blocked with hosted_harness_recovery_blocked means the Harness stopped without a safely settled Turn. The input remains active internally. Execution redispatch is parked, while bounded read-only observation of the original Harness journal may settle a later terminal result. Policy changes and lifecycle close wait for settlement; explicit cancellation remains available. */
882
1239
  status: string;
883
1240
  /** Format: int64 */
884
1241
  submittedAt: number;
@@ -908,7 +1265,7 @@ export interface components {
908
1265
  * @description Current effective approval policy; initialApprovalMode retains the immutable creation policy.
909
1266
  * @enum {string}
910
1267
  */
911
- approvalMode?: "default" | "auto-edit" | "yolo";
1268
+ approvalMode?: "default" | "auto" | "auto-edit" | "yolo";
912
1269
  modelContext?: components["schemas"]["WebShellModelContext"];
913
1270
  modelSelection?: components["schemas"]["WebShellModelSelection"];
914
1271
  /** Format: int64 */
@@ -922,18 +1279,25 @@ export interface components {
922
1279
  planMode?: boolean;
923
1280
  /** @description Optional deployment capability; missing means false. */
924
1281
  planModeSupported?: boolean;
1282
+ /**
1283
+ * Format: int64
1284
+ * @description Sequence of the most recent native context.compacted event; independent of Workspace context revision. Omitted when retained pre-upgrade evidence cannot establish the revision, and context compression is unavailable.
1285
+ * @default 0
1286
+ */
1287
+ compactionRevision?: number | null;
1288
+ /** @description Current durable context compression operation, including recovery_blocked; absent when none is active. */
1289
+ contextCompressionOperationId?: string | null;
1290
+ /** @description Current unsettled lifecycle operation, queried in batch under Session read authorization. A failed close/delete may leave the Session closing/deleting; only explicit retry starts a new operation. Settled Sessions omit this projection. */
1291
+ lifecycleOperation?: components["schemas"]["WebShellLifecycleOperation"];
1292
+ recovery?: components["schemas"]["SessionRecovery"];
925
1293
  };
926
1294
  WebShellSessionCapabilities: {
927
1295
  /**
928
- * @description True when Workspace files are enabled, the bound Session is active and undeleted, the caller holds OPERATOR or above on the Workspace and the exact ACTIVE Registry generation/storage and create-command-actor OPERATOR/OWNER grant still hold, matching cwd admission. This does not promise an idle Session and is independent of workspaceTurns execution-profile gates. Missing means false. Existing operations remain queryable under read authorization even when this capability is false.
1296
+ * @deprecated
1297
+ * @description Retired: Session directory-change submission has been removed; always false.
929
1298
  * @default false
930
1299
  */
931
1300
  cwdChange?: boolean;
932
- /**
933
- * @description D7-3. Present only on a deployment that enables the java_durable admission profile, where it is true while the Session is readable: a Turn input or cancel may then ask for admissionProfile java_durable. Omitted elsewhere, where asking for it answers 400 unsupported_feature.
934
- * @default false
935
- */
936
- durableOperations?: boolean;
937
1301
  /** @default false */
938
1302
  actions: boolean;
939
1303
  /**
@@ -944,22 +1308,22 @@ export interface components {
944
1308
  tasks: boolean;
945
1309
  artifacts: boolean;
946
1310
  /**
947
- * @description Deployment support for close independently of archive/delete. Admission also requires Session ownership and current read access for a bound Session.
1311
+ * @description Close support including current actor authority. Workspace-bound Sessions require the recorded Session owner and current read access. Source-state and idle admission remain authoritative on the server.
948
1312
  * @default false
949
1313
  */
950
1314
  sessionClose?: boolean;
951
1315
  /**
952
- * @description Optional support for this retention operation. For a Workspace-bound Session requires completed reliable-close evidence; authorization and source-state validation still apply.
1316
+ * @description Archive support including current actor authority. Workspace-bound Sessions require completed reliable-close evidence, the recorded Session owner and current read access. Source-state and idle admission remain authoritative on the server.
953
1317
  * @default false
954
1318
  */
955
1319
  sessionArchive?: boolean;
956
1320
  /**
957
- * @description Optional support for this retention operation. For a Workspace-bound Session requires completed reliable-close evidence; authorization and source-state validation still apply.
1321
+ * @description Unarchive support including current actor authority. Workspace-bound Sessions require completed reliable-close evidence, the recorded Session owner and current read access. Source-state and idle admission remain authoritative on the server.
958
1322
  * @default false
959
1323
  */
960
1324
  sessionUnarchive?: boolean;
961
1325
  /**
962
- * @description Optional support capability. ACTIVE Workspace files Sessions require L3 lifecycle protocol and reliable original Runtime stop; CLOSED/ARCHIVED Sessions use independent L2 close evidence. Current creator/read authorization and idle/source-state admission checks still apply. The aggregate session lifecycle capability is unchanged.
1326
+ * @description Delete support including current actor authority. ACTIVE Workspace Sessions require a supported reliable-close protocol; CLOSED/ARCHIVED Sessions use completed close evidence. Workspace-bound Sessions require the recorded Session owner and current read access. Source-state and idle admission remain authoritative on the server. The aggregate session lifecycle capability is unchanged.
963
1327
  * @default false
964
1328
  */
965
1329
  sessionDelete?: boolean;
@@ -967,7 +1331,7 @@ export interface components {
967
1331
  foregroundShell?: boolean;
968
1332
  /** @description The caller may request an idle Session model change using the server model catalog. Missing means unsupported; authorization and revision admission still apply. */
969
1333
  modelChange?: boolean;
970
- /** @description The caller owns this eligible Workspace Session with current OPERATOR or OWNER access. Built-in qwen-code requires approval-selection/1; stored AgentDefinitions on exactly hosted-workspace-files/1 or hosted-workspace-shell/1,/2 also require agent-definition-approval-selection/1. Idle-state admission is checked separately. Missing means false. */
1334
+ /** @description The caller owns this eligible Workspace Session with current OPERATOR or OWNER access. Built-in qwen-code requires approval-selection/1; stored AgentDefinitions on exactly hosted-workspace-files/1, hosted-workspace-files/3 or hosted-workspace-shell/1 also require agent-definition-approval-selection/1. Idle-state admission is checked separately. Missing means false. */
971
1335
  approvalModeChange?: boolean;
972
1336
  /** @description Optional deployment capability; missing means false. */
973
1337
  inputAttachments?: boolean;
@@ -976,6 +1340,16 @@ export interface components {
976
1340
  * @default false
977
1341
  */
978
1342
  rename?: boolean;
1343
+ /**
1344
+ * @description Requires a compatible Hosted Harness and an active Workspace Session. WebShell also reflects the current caller OPERATOR or OWNER grant; admission separately checks idle state.
1345
+ * @default false
1346
+ */
1347
+ contextCompression?: boolean;
1348
+ /**
1349
+ * @description Public child orchestration support for this persisted Session; launch and caller authorization are checked separately.
1350
+ * @default false
1351
+ */
1352
+ childAgents?: boolean;
979
1353
  };
980
1354
  WebShellSessionPage: {
981
1355
  data: components["schemas"]["WebShellSession"][];
@@ -1115,7 +1489,7 @@ export interface components {
1115
1489
  * @default false
1116
1490
  */
1117
1491
  workspaceContext: boolean;
1118
- /** @description Supports authorized Workspace discovery, Session creation, and saved binding read-back. This capability does not advertise execution readiness. Deployments may separately opt in to an initial Workspace Turn at creation: Read/Write/Edit under hosted-workspace-files/1, or file tools plus mandatory-approval foreground Shell under hosted-workspace-shell/1 when the Shell opt-in is enabled. The public Shell tool list does not include the child agent tool. Callers holding the OPERATOR role may submit later Turns or rename under the same opt-in while the registry row stays ACTIVE and still backs the Session's binding and the actor recorded by the Workspace create command keeps OPERATOR or above, and may cancel a running Turn (its delivery re-checks no grants). Shell fresh sending also requires foregroundShell=true. Public Shell close, archive, unarchive and delete stay unavailable, including protocol-0, while close of other profiles follows its separate capability and lifecycle admission; archive, delete and unarchive follow their separate retention capabilities after reliable Workspace close. */
1492
+ /** @description Supports authorized Workspace discovery, Session creation, and saved binding read-back. This capability does not advertise execution readiness. Deployments may separately opt in to an initial Workspace Turn at creation: Read/Write/Edit under hosted-workspace-files/1, or file tools plus mandatory-approval foreground Shell under hosted-workspace-shell/1 when the Shell opt-in is enabled. Qualified new public Shell Sessions expose agent by default under the public-child deployment switch and runtime/Harness admission; existing Sessions retain their original tool scope. Callers holding the OPERATOR role may submit later Turns or rename under the same opt-in while the registry row stays ACTIVE and still backs the Session's binding and the actor recorded by the Workspace create command keeps OPERATOR or above, and may cancel a running Turn (its delivery re-checks no grants). Shell fresh sending also requires foregroundShell=true. Public Shell close and active delete require lifecycle v2 and reliable original-Worker stop support; archive and unarchive require completed close proof, while close of other profiles follows its separate capability and lifecycle admission; archive, delete and unarchive follow their separate retention capabilities after reliable Workspace close. */
1119
1493
  workspaceBinding: boolean;
1120
1494
  /** @description Supports creating empty Workspaces under the operator-controlled root. Missing or false means unsupported; current actor and server admission checks still apply. */
1121
1495
  workspaceCreation?: boolean;
@@ -1134,15 +1508,6 @@ export interface components {
1134
1508
  canCreateSession?: true;
1135
1509
  }) | null;
1136
1510
  };
1137
- WebShellChangeCwdRequest: {
1138
- /** Format: uuid */
1139
- sessionId: string;
1140
- idempotencyKey: string;
1141
- cwdRelative: components["schemas"]["WorkspaceRelativePath"];
1142
- /** Format: int64 */
1143
- expectedContextRevision: number;
1144
- requestId?: string | null;
1145
- };
1146
1511
  WebShellOperationRequest: {
1147
1512
  /** Format: uuid */
1148
1513
  sessionId: string;
@@ -1285,13 +1650,18 @@ export interface components {
1285
1650
  policyRevision: string;
1286
1651
  answers: components["schemas"]["WebShellQuestionAnswer"][];
1287
1652
  };
1288
- WebShellOperation: components["schemas"]["WebShellCwdOperation"] | components["schemas"]["WebShellCommandOperation"];
1653
+ WebShellOperation: components["schemas"]["WebShellCwdOperation"] | components["schemas"]["WebShellCommandOperation"] | components["schemas"]["WebShellContextCompressionOperation"];
1289
1654
  WebShellActionQueryRequest: {
1290
1655
  /** Format: uuid */
1291
1656
  sessionId: string;
1292
1657
  cursor?: string;
1293
1658
  /** @default 20 */
1294
1659
  limit?: number;
1660
+ /**
1661
+ * @description Include pending permission Actions of this public root Session and its direct children; each Action retains its actual owning sessionId.
1662
+ * @default false
1663
+ */
1664
+ includeChildren?: boolean;
1295
1665
  };
1296
1666
  WebShellActionGetRequest: {
1297
1667
  /** Format: uuid */
@@ -1310,6 +1680,8 @@ export interface components {
1310
1680
  /** Format: uuid */
1311
1681
  sessionId: string;
1312
1682
  idempotencyKey: string;
1683
+ /** @description Trace-only client request identity, excluded from idempotency digests. */
1684
+ requestId?: string | null;
1313
1685
  };
1314
1686
  WebShellWorkspaceQueryRequest: {
1315
1687
  cursor?: string | null;
@@ -1374,11 +1746,20 @@ export interface components {
1374
1746
  /** @description The newest Artifacts that hold durable task output, at most 100, oldest first. Entries must not rotate out until older Artifacts can be enumerated and attributed to the task: an evicted Artifact stays readable by id through the Session artifact routes but is no longer discoverable from the task. */
1375
1747
  artifactRefs: string[];
1376
1748
  actionCapabilities: components["schemas"]["TaskActionCapability"][];
1749
+ /** @description A durable stop request has been recorded. This does not prove that the task has terminated. */
1750
+ stopRequested?: boolean;
1751
+ /**
1752
+ * @description The actual immutable approval mode of this public child Session.
1753
+ * @enum {string}
1754
+ */
1755
+ approvalMode?: "default" | "auto-edit" | "yolo";
1377
1756
  } & (unknown & unknown & unknown & unknown & unknown);
1378
1757
  WebShellTaskPage: {
1379
1758
  data: components["schemas"]["WebShellTask"][];
1380
1759
  hasMore: boolean;
1381
1760
  nextCursor?: string | null;
1761
+ /** @description The total number of nonterminal child Agent tasks in this Session, independent of pagination. */
1762
+ activeChildCount?: number;
1382
1763
  } & unknown;
1383
1764
  /** @description One task event: a logical state change, a bounded output chunk, or an Artifact reference. High-volume output goes to Artifacts or bounded chunks in this paged stream, never one Session event per raw line. The closed schema validates the server's own version; clients ignore unknown optional fields and unknown types and checkpoint their cursors. Strict response validation against an older minor version is not supported. Event identity, position, payload and accepted schema/projection versions are immutable across restart, projection rebuild and archival. */
1384
1765
  WebShellTaskEvent: {
@@ -1533,6 +1914,8 @@ export interface components {
1533
1914
  planModeSupported?: boolean;
1534
1915
  /** @description Optional deployment capability; missing means false. */
1535
1916
  inputAttachments?: boolean;
1917
+ /** @description Optional capability for modelId on Workspace creation. Missing means false. */
1918
+ modelSelectionSupported?: boolean;
1536
1919
  /** @description Optional deployment capability; missing means false. Requires a compatible Harness and durable Session Store. */
1537
1920
  skillsSupported?: boolean;
1538
1921
  };
@@ -1584,15 +1967,19 @@ export interface components {
1584
1967
  /** @description Execution approval can change during a Turn when true. Missing means idle-only; Plan changes remain idle-only. */
1585
1968
  liveSupported?: boolean;
1586
1969
  /** @enum {string} */
1587
- approvalMode: "default" | "auto-edit" | "yolo";
1970
+ approvalMode: "default" | "auto" | "auto-edit" | "yolo";
1588
1971
  /** Format: int64 */
1589
1972
  approvalRevision: number;
1590
- availableApprovalModes: ("default" | "auto-edit" | "yolo")[];
1973
+ availableApprovalModes: ("default" | "auto" | "auto-edit" | "yolo")[];
1591
1974
  supported: boolean;
1592
1975
  /** @description Persisted public Plan overlay, independent of execution permission. Omission on a change preserves the selected state. */
1593
1976
  planMode?: boolean;
1594
1977
  /** @description Optional deployment capability; missing means false. */
1595
1978
  planModeSupported?: boolean;
1979
+ /** @description Persisted rules, including when execution capability is unavailable. Omitted when empty. */
1980
+ permissionRules?: components["schemas"]["ManagedPermissionRules"];
1981
+ /** @description Owner-authorized Session rule editing is available only with Harness permission-rules/1 support. Missing means false. Rule changes require an idle Session. */
1982
+ permissionRulesSupported?: boolean;
1596
1983
  };
1597
1984
  WebShellChangeApprovalRequest: {
1598
1985
  sessionId: string;
@@ -1601,19 +1988,23 @@ export interface components {
1601
1988
  idempotencyKey: string;
1602
1989
  requestId?: string;
1603
1990
  /** @enum {string} */
1604
- approvalMode: "default" | "auto-edit" | "yolo";
1991
+ approvalMode: "default" | "auto" | "auto-edit" | "yolo";
1605
1992
  /** @description Persisted public Plan overlay, independent of execution permission. Omission on a change preserves the selected state. */
1606
1993
  planMode?: boolean;
1994
+ /** @description Omission preserves the persisted rules. Supplying three empty arrays clears them. Rule edits require an idle Session, and share the approval revision and idempotency receipt with mode changes. */
1995
+ permissionRules?: components["schemas"]["ManagedPermissionRules"];
1607
1996
  };
1608
1997
  WebShellApprovalChangeResult: {
1609
1998
  sessionId: string;
1610
1999
  /** @enum {string} */
1611
- approvalMode: "default" | "auto-edit" | "yolo";
2000
+ approvalMode: "default" | "auto" | "auto-edit" | "yolo";
1612
2001
  /** Format: int64 */
1613
2002
  approvalRevision: number;
1614
2003
  replayed: boolean;
1615
2004
  /** @description Persisted public Plan overlay, independent of execution permission. Omission on a change preserves the selected state. */
1616
2005
  planMode?: boolean;
2006
+ /** @description Committed rules; omitted when empty. Replayed requests return their original policy receipt. */
2007
+ permissionRules?: components["schemas"]["ManagedPermissionRules"];
1617
2008
  };
1618
2009
  WebShellRuntimeNode: {
1619
2010
  nodeId: string;
@@ -1728,6 +2119,8 @@ export interface components {
1728
2119
  directory: string;
1729
2120
  entries: components["schemas"]["WebShellWorkspaceFileEntry"][];
1730
2121
  truncated: boolean;
2122
+ /** @description Present only when the selected CLI supports durable Workspace uploads. */
2123
+ maxUploadBytes?: number;
1731
2124
  };
1732
2125
  WebShellWorkspaceFileSnapshot: {
1733
2126
  scopeRevision: string;
@@ -1777,7 +2170,7 @@ export interface components {
1777
2170
  };
1778
2171
  WebShellRenameResult: {
1779
2172
  sessionId: string;
1780
- /** @description Current persisted title from the confirmed mutation or completed replay. Existing legacy titles can exceed the fresh-title input bound. */
2173
+ /** @description Current persisted title from the confirmed mutation or completed replay. */
1781
2174
  title: string;
1782
2175
  replayed: boolean;
1783
2176
  };
@@ -1795,6 +2188,340 @@ export interface components {
1795
2188
  /** @description Whether the user may invoke this Skill; defaults to true. */
1796
2189
  user_invocable?: boolean;
1797
2190
  };
2191
+ WebShellContextCompressionRequest: {
2192
+ requestId?: string;
2193
+ sessionId: string;
2194
+ idempotencyKey: string;
2195
+ /** Format: int64 */
2196
+ expectedCompactionRevision: number;
2197
+ };
2198
+ WebShellContextCompressionOperation: {
2199
+ operationId: string;
2200
+ /** Format: uuid */
2201
+ sessionId: string;
2202
+ /** @constant */
2203
+ type: "context_compression";
2204
+ /** @enum {string} */
2205
+ status: "pending" | "running" | "recovery_blocked" | "completed" | "failed";
2206
+ /** Format: int64 */
2207
+ expectedCompactionRevision: number;
2208
+ /** Format: int64 */
2209
+ compactionRevision?: number | null;
2210
+ /** @enum {string|null} */
2211
+ outcome?: "compressed" | "noop" | null;
2212
+ failureCode?: string | null;
2213
+ replayed: boolean;
2214
+ };
2215
+ ManagedMcpServerPin: {
2216
+ serverId: string;
2217
+ serverRevision: number;
2218
+ definitionDigest: string;
2219
+ };
2220
+ ManagedMcpPublishedServer: {
2221
+ serverId: string;
2222
+ serverRevision: number;
2223
+ definitionDigest: string;
2224
+ /** @enum {string} */
2225
+ transport: "stdio" | "streamable-http" | "sse";
2226
+ };
2227
+ ManagedMcpManagementServer: {
2228
+ serverId: string;
2229
+ serverRevision: number;
2230
+ definitionDigest: string;
2231
+ /** @enum {string} */
2232
+ state: "enabled" | "disabled" | "removed";
2233
+ };
2234
+ ManagedMcpManagementOperation: {
2235
+ /** Format: uuid */
2236
+ operationId: string;
2237
+ /** @enum {string} */
2238
+ action: "add" | "edit" | "remove" | "enable" | "disable" | "reload" | "restart";
2239
+ serverId: string;
2240
+ revision: number;
2241
+ /** @enum {string} */
2242
+ state: "pending" | "settled" | "failed" | "recovery_required";
2243
+ error?: {
2244
+ code: string;
2245
+ };
2246
+ };
2247
+ ManagedMcpManagementSnapshot: {
2248
+ sessionId: string;
2249
+ revision: number;
2250
+ supported: boolean;
2251
+ availableServers: components["schemas"]["ManagedMcpPublishedServer"][];
2252
+ servers: components["schemas"]["ManagedMcpManagementServer"][];
2253
+ operation?: components["schemas"]["ManagedMcpManagementOperation"];
2254
+ };
2255
+ WebShellMcpManagementQuery: {
2256
+ sessionId: string;
2257
+ requestId?: string;
2258
+ };
2259
+ WebShellMcpManagementSubmit: {
2260
+ sessionId: string;
2261
+ requestId?: string;
2262
+ idempotencyKey: string;
2263
+ /** @enum {string} */
2264
+ action: "add" | "edit" | "remove" | "enable" | "disable" | "reload" | "restart";
2265
+ serverId: string;
2266
+ expectedRevision: number;
2267
+ server?: components["schemas"]["ManagedMcpServerPin"];
2268
+ };
2269
+ WebShellMcpManagementOperationQuery: {
2270
+ sessionId: string;
2271
+ /** Format: uuid */
2272
+ operationId: string;
2273
+ requestId?: string;
2274
+ };
2275
+ SessionRecoveryActions: {
2276
+ recheck: boolean;
2277
+ cancel: boolean;
2278
+ continueInNewSession: boolean;
2279
+ };
2280
+ /** @description Separate from Session lifecycle and Turn outcome. ready requires affirmative native input settlement and an admissible continuation boundary with no active Java Turn or blocking debt. Actions are authorization-scoped hints, checked again by their mutations. A new-Session action opens an editable text handoff and grants no additional Workspace permission. A cold or unreadable terminal Turn may advertise a proof-checked cleanup recheck while remaining operator_required with nextTurnAllowed=false; only affirmative native evidence after that mutation can establish readiness. */
2281
+ SessionRecovery: {
2282
+ /** @enum {string} */
2283
+ state: "recovering" | "awaiting_evidence" | "cleanup_pending" | "ready" | "operator_required";
2284
+ reasonCode: string;
2285
+ /** @description Public Turn identity; never an internal prompt, checkpoint or execution reference. */
2286
+ turnId?: string;
2287
+ nextTurnAllowed: boolean;
2288
+ actions: components["schemas"]["SessionRecoveryActions"];
2289
+ /**
2290
+ * Format: int64
2291
+ * @description Known next reconciliation time in Unix epoch milliseconds.
2292
+ */
2293
+ nextRecheckAt?: number;
2294
+ };
2295
+ WebShellRecoveryRecheckRequest: {
2296
+ sessionId: string;
2297
+ turnId: string;
2298
+ };
2299
+ WebShellLifecycleOperation: {
2300
+ operationId: string;
2301
+ /** @enum {string} */
2302
+ type: "close" | "archive" | "delete";
2303
+ /** @enum {string} */
2304
+ status: "pending" | "running" | "completed" | "failed" | "recovery_blocked";
2305
+ failureCode?: string | null;
2306
+ };
2307
+ WebShellExportPage: {
2308
+ items: components["schemas"]["WebShellItem"][];
2309
+ nextCursor?: string | null;
2310
+ hasMore: boolean;
2311
+ /** Format: int64 */
2312
+ snapshotThroughSequence: number;
2313
+ };
2314
+ WebShellExportRequest: {
2315
+ /** Format: uuid */
2316
+ sessionId: string;
2317
+ cursor?: string | null;
2318
+ /** @default 100 */
2319
+ limit?: number | null;
2320
+ };
2321
+ /** @description Durable Turn input or cancellation admission. The operation identifies the saved command and remains stable across idempotent retries. */
2322
+ WebShellTurnAdmission: {
2323
+ /** Format: uuid */
2324
+ sessionId: string;
2325
+ turnId: string;
2326
+ status: string;
2327
+ replayed: boolean;
2328
+ /** @description Durable operation identifier for turn submission or cancellation. */
2329
+ operationId: string;
2330
+ /**
2331
+ * @description Persisted admission stage of the operation.
2332
+ * @enum {string}
2333
+ */
2334
+ admissionStage: "java_durable" | "harness_confirmed";
2335
+ /**
2336
+ * @description Current delivery state of the operation.
2337
+ * @enum {string}
2338
+ */
2339
+ deliveryState: "pending" | "leased" | "confirmed" | "blocked";
2340
+ };
2341
+ /** @description Session-scoped portable permission-rules/1. Each rule must be trimmed, nonempty, free of control characters, and at most 512 UTF-8 bytes. At most 32 unique strings per list, 64 across all lists and 8192 UTF-8 bytes of compact JSON. Tool names and aliases match whole tools; MCP names may end with a wildcard. Bash/Shell/run_shell_command/monitor command globs and WebFetch/web_fetch(domain:host) are supported; file-path specifiers and arbitrary tool predicates are rejected. Deny takes precedence over ask, then allow, in every mode. Rules do not provide filesystem or process isolation. */
2342
+ ManagedPermissionRules: {
2343
+ allow: string[];
2344
+ ask: string[];
2345
+ deny: string[];
2346
+ };
2347
+ UserMessage: {
2348
+ id: string;
2349
+ sequence: number;
2350
+ revision: number;
2351
+ /** @enum {string} */
2352
+ state: "queued" | "claimed" | "recovery_blocked";
2353
+ input: {
2354
+ type: string;
2355
+ text?: string;
2356
+ resource?: {
2357
+ uri: string;
2358
+ text: string;
2359
+ mimeType: string;
2360
+ };
2361
+ }[];
2362
+ turnId?: string | null;
2363
+ };
2364
+ UserMessageSnapshot: {
2365
+ paused: boolean;
2366
+ messages: components["schemas"]["UserMessage"][];
2367
+ };
2368
+ /** @description submit queues input; edit only changes queued input. withdraw removes queued input or explicitly discards recovery_blocked input without replaying it. Unknown delivery may already have reached the original Turn: discarding does not undo it, preserves late durable receipts and keeps the queue paused until resume. In-flight claimed input remains immutable. Commands replay the actor-scoped recorded result before checking new-work availability. */
2369
+ UserMessageCommand: {
2370
+ /** @enum {string} */
2371
+ action: "submit" | "edit" | "withdraw" | "resume";
2372
+ messageId?: string;
2373
+ expectedRevision?: number;
2374
+ input?: components["schemas"]["InputBlock"][];
2375
+ };
2376
+ WebShellUserMessageQuery: {
2377
+ sessionId: string;
2378
+ };
2379
+ WebShellUserMessageCommand: {
2380
+ sessionId: string;
2381
+ idempotencyKey: string;
2382
+ command: components["schemas"]["UserMessageCommand"];
2383
+ };
2384
+ ManagedExtensionPackagePin: {
2385
+ extensionId: string;
2386
+ /** Format: int64 */
2387
+ packageRevision: number;
2388
+ packageDigest: string;
2389
+ /** Format: int64 */
2390
+ settingsRevision?: number;
2391
+ };
2392
+ ManagedExtensionPackageManifest: {
2393
+ /** @enum {integer} */
2394
+ schemaVersion: 1;
2395
+ /** @enum {integer} */
2396
+ compilerVersion: 1;
2397
+ name: string;
2398
+ version: string;
2399
+ target: {
2400
+ /** @enum {string} */
2401
+ platform: "linux" | "darwin";
2402
+ /** @enum {string} */
2403
+ arch: "x64" | "arm64" | "any";
2404
+ };
2405
+ components: ("skills" | "commands" | "agents" | "context" | "mcp" | "hooks" | "settings")[];
2406
+ /** @enum {string} */
2407
+ sourceType?: "git" | "github-release" | "npm" | "directory" | "archive" | "archive-url" | "link" | "snapshot";
2408
+ /** @description Exact source commit, resolved npm version, or imported content revision. Supplied together with sourceType. */
2409
+ sourceRevision?: string;
2410
+ };
2411
+ ManagedExtensionPackage: {
2412
+ pin: components["schemas"]["ManagedExtensionPackagePin"];
2413
+ manifest: components["schemas"]["ManagedExtensionPackageManifest"];
2414
+ /** Format: int64 */
2415
+ byteLength: number;
2416
+ };
2417
+ ManagedExtensionPackageCatalog: {
2418
+ supported: boolean;
2419
+ extensions: components["schemas"]["ManagedExtensionPackage"][];
2420
+ };
2421
+ ManagedExtensionPackageSettings: {
2422
+ /** Format: int64 */
2423
+ settingsRevision: number;
2424
+ configuredKeys: string[];
2425
+ };
2426
+ ManagedExtensionPackageOperation: {
2427
+ operationId: string;
2428
+ extensionId: string;
2429
+ /** @enum {string} */
2430
+ kind: "publish" | "settings";
2431
+ /** @enum {string} */
2432
+ state: "pending" | "settled";
2433
+ /** Format: int64 */
2434
+ revision: number;
2435
+ packageDigest: string | null;
2436
+ };
2437
+ WebShellExtensionWorkspaceQuery: {
2438
+ workspaceId: string;
2439
+ };
2440
+ WebShellExtensionQuery: {
2441
+ workspaceId: string;
2442
+ extensionId: string;
2443
+ };
2444
+ WebShellExtensionOperationQuery: {
2445
+ workspaceId: string;
2446
+ operationId: string;
2447
+ };
2448
+ WebShellExtensionPackageQuery: {
2449
+ workspaceId: string;
2450
+ pin: components["schemas"]["ManagedExtensionPackagePin"];
2451
+ };
2452
+ WebShellExtensionSettingsSubmit: {
2453
+ workspaceId: string;
2454
+ extensionId: string;
2455
+ idempotencyKey: string;
2456
+ /** Format: int64 */
2457
+ expectedRevision: number;
2458
+ /** @description Complete settings revision, bounded to 8 KiB UTF-8 JSON. Values are encrypted at rest and never returned by metadata or operation queries. */
2459
+ values: {
2460
+ [key: string]: string;
2461
+ };
2462
+ };
2463
+ ManagedExtensionApplySelection: {
2464
+ expectedConfigRevision: number;
2465
+ extensions: components["schemas"]["ManagedExtensionPackagePin"][];
2466
+ };
2467
+ ManagedExtensionApplyOperation: {
2468
+ /** Format: uuid */
2469
+ operationId: string;
2470
+ /** @enum {string} */
2471
+ state: "preparing" | "prepared" | "committed" | "active" | "recovery_required" | "failed";
2472
+ /** @enum {string} */
2473
+ mode: "apply" | "recoverPrevious";
2474
+ revision: number;
2475
+ error?: {
2476
+ code: string;
2477
+ };
2478
+ };
2479
+ ManagedExtensionManagementSnapshot: {
2480
+ sessionId: string;
2481
+ supported: boolean;
2482
+ revision: number;
2483
+ extensions: components["schemas"]["ManagedExtensionPackagePin"][];
2484
+ requestedExtensions: components["schemas"]["ManagedExtensionPackagePin"][];
2485
+ operation?: components["schemas"]["ManagedExtensionApplyOperation"];
2486
+ };
2487
+ WebShellExtensionSessionQuery: {
2488
+ sessionId: string;
2489
+ /** Format: uuid */
2490
+ operationId?: string;
2491
+ };
2492
+ WebShellExtensionSessionOperation: {
2493
+ sessionId: string;
2494
+ /** Format: uuid */
2495
+ operationId: string;
2496
+ };
2497
+ WebShellExtensionSessionSubmit: {
2498
+ sessionId: string;
2499
+ idempotencyKey: string;
2500
+ command: components["schemas"]["ManagedExtensionApplySelection"];
2501
+ };
2502
+ WebShellWorkspaceFileUploadResult: {
2503
+ scopeRevision: string;
2504
+ /** Format: uuid */
2505
+ uploadId: string;
2506
+ path: string;
2507
+ sizeBytes: number;
2508
+ sha256: string;
2509
+ };
2510
+ WebShellWorkspaceFileUploadStatus: {
2511
+ scopeRevision: string;
2512
+ /** Format: uuid */
2513
+ uploadId: string;
2514
+ path: string;
2515
+ sizeBytes: number;
2516
+ sha256: string;
2517
+ /** @enum {string} */
2518
+ state: "completed" | "failed" | "pending";
2519
+ code?: string;
2520
+ };
2521
+ WebShellWorkspaceFileUploadQueryRequest: {
2522
+ /** Format: uuid */
2523
+ uploadId: string;
2524
+ };
1798
2525
  };
1799
2526
  responses: {
1800
2527
  /** @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. */
@@ -1839,50 +2566,605 @@ export interface components {
1839
2566
  [name: string]: unknown;
1840
2567
  };
1841
2568
  content: {
1842
- "application/json": components["schemas"]["ErrorEnvelope"];
2569
+ "application/json": components["schemas"]["ErrorEnvelope"];
2570
+ };
2571
+ };
2572
+ /** @description Resource absent or outside the caller tenant scope. */
2573
+ NotFound: {
2574
+ headers: {
2575
+ [name: string]: unknown;
2576
+ };
2577
+ content: {
2578
+ "application/json": components["schemas"]["ErrorEnvelope"];
2579
+ };
2580
+ };
2581
+ /** @description Replay cursor is older than the retained replay floor. */
2582
+ CursorExpired: {
2583
+ headers: {
2584
+ [name: string]: unknown;
2585
+ };
2586
+ content: {
2587
+ "application/json": components["schemas"]["ErrorEnvelope"];
2588
+ };
2589
+ };
2590
+ /** @description Task event cursor is strictly below the task's durable retention floor, which survives an empty retained set; equality is valid. The envelope's replay_floor_sequence and snapshot_through_sequence stay absent because task cursors are opaque. */
2591
+ TaskCursorExpired: {
2592
+ headers: {
2593
+ [name: string]: unknown;
2594
+ };
2595
+ content: {
2596
+ "application/json": components["schemas"]["ErrorEnvelope"];
2597
+ };
2598
+ };
2599
+ /** @description A dependency such as the Hosted Harness is unavailable; retry later. */
2600
+ Unavailable: {
2601
+ headers: {
2602
+ [name: string]: unknown;
2603
+ };
2604
+ content: {
2605
+ "application/json": components["schemas"]["ErrorEnvelope"];
2606
+ };
2607
+ };
2608
+ };
2609
+ parameters: {
2610
+ IdempotencyKey: string;
2611
+ };
2612
+ requestBodies: never;
2613
+ headers: {
2614
+ /** @description True when an accepted command or operation was replayed for the same idempotency key and digest without repeating its mutation. Session mutation responses represent the recorded outcome on the Session as last visible — a rename or unarchive replay after delete answers with the Session's pre-delete status rather than 404, while a create replay after delete answers 404 on the public create route, which re-reads the Session before responding, and answers the recorded 202 admission carrying the tombstoned sessionId on the WebShell create route, which does not re-read it; operation responses represent the original operation at its current state. */
2615
+ IdempotentReplay: boolean;
2616
+ /** @description Trace-only correlation identifier; never an idempotency key. */
2617
+ RequestId: string;
2618
+ };
2619
+ pathItems: never;
2620
+ }
2621
+ export type $defs = Record<string, never>;
2622
+ export interface operations {
2623
+ webShellListSessions: {
2624
+ parameters: {
2625
+ query?: never;
2626
+ header?: never;
2627
+ path?: never;
2628
+ cookie?: never;
2629
+ };
2630
+ requestBody: {
2631
+ content: {
2632
+ "application/json": components["schemas"]["WebShellListRequest"];
2633
+ };
2634
+ };
2635
+ responses: {
2636
+ /** @description WebShell session page. */
2637
+ 200: {
2638
+ headers: {
2639
+ [name: string]: unknown;
2640
+ };
2641
+ content: {
2642
+ "application/json": components["schemas"]["WebShellSessionPage"];
2643
+ };
2644
+ };
2645
+ 400: components["responses"]["BadRequest"];
2646
+ 401: components["responses"]["Unauthorized"];
2647
+ 403: components["responses"]["Forbidden"];
2648
+ 413: components["responses"]["PayloadTooLarge"];
2649
+ };
2650
+ };
2651
+ webShellGetSession: {
2652
+ parameters: {
2653
+ query?: never;
2654
+ header?: never;
2655
+ path?: never;
2656
+ cookie?: never;
2657
+ };
2658
+ requestBody: {
2659
+ content: {
2660
+ "application/json": components["schemas"]["WebShellSessionRequest"];
2661
+ };
2662
+ };
2663
+ responses: {
2664
+ /** @description WebShell session. */
2665
+ 200: {
2666
+ headers: {
2667
+ [name: string]: unknown;
2668
+ };
2669
+ content: {
2670
+ "application/json": components["schemas"]["WebShellSession"];
2671
+ };
2672
+ };
2673
+ 400: components["responses"]["BadRequest"];
2674
+ 401: components["responses"]["Unauthorized"];
2675
+ 403: components["responses"]["Forbidden"];
2676
+ 404: components["responses"]["NotFound"];
2677
+ 413: components["responses"]["PayloadTooLarge"];
2678
+ };
2679
+ };
2680
+ webShellRenameSession: {
2681
+ parameters: {
2682
+ query?: never;
2683
+ header?: never;
2684
+ path?: never;
2685
+ cookie?: never;
2686
+ };
2687
+ requestBody: {
2688
+ content: {
2689
+ "application/json": components["schemas"]["WebShellRenameRequest"];
2690
+ };
2691
+ };
2692
+ responses: {
2693
+ /** @description Confirmed persisted Session title, or an authorized completed replay. */
2694
+ 200: {
2695
+ headers: {
2696
+ "X-Request-Id": components["headers"]["RequestId"];
2697
+ "X-Qwen-Idempotent-Replay": components["headers"]["IdempotentReplay"];
2698
+ [name: string]: unknown;
2699
+ };
2700
+ content: {
2701
+ "application/json": components["schemas"]["WebShellRenameResult"];
2702
+ };
2703
+ };
2704
+ 400: components["responses"]["BadRequest"];
2705
+ 401: components["responses"]["Unauthorized"];
2706
+ 403: components["responses"]["Forbidden"];
2707
+ 404: components["responses"]["NotFound"];
2708
+ 409: components["responses"]["Conflict"];
2709
+ 413: components["responses"]["PayloadTooLarge"];
2710
+ 503: components["responses"]["Unavailable"];
2711
+ };
2712
+ };
2713
+ webShellTranscript: {
2714
+ parameters: {
2715
+ query?: never;
2716
+ header?: never;
2717
+ path?: never;
2718
+ cookie?: never;
2719
+ };
2720
+ requestBody: {
2721
+ content: {
2722
+ "application/json": components["schemas"]["WebShellTranscriptRequest"];
2723
+ };
2724
+ };
2725
+ responses: {
2726
+ /** @description Event transcript page. */
2727
+ 200: {
2728
+ headers: {
2729
+ [name: string]: unknown;
2730
+ };
2731
+ content: {
2732
+ "application/json": components["schemas"]["WebShellTranscript"];
2733
+ };
2734
+ };
2735
+ 400: components["responses"]["BadRequest"];
2736
+ 401: components["responses"]["Unauthorized"];
2737
+ 403: components["responses"]["Forbidden"];
2738
+ 404: components["responses"]["NotFound"];
2739
+ 413: components["responses"]["PayloadTooLarge"];
2740
+ };
2741
+ };
2742
+ webShellStreamEvents: {
2743
+ parameters: {
2744
+ query?: never;
2745
+ header?: never;
2746
+ path?: never;
2747
+ cookie?: never;
2748
+ };
2749
+ requestBody: {
2750
+ content: {
2751
+ "application/json": components["schemas"]["WebShellStreamRequest"];
2752
+ };
2753
+ };
2754
+ responses: {
2755
+ /** @description SSE stream. */
2756
+ 200: {
2757
+ headers: {
2758
+ [name: string]: unknown;
2759
+ };
2760
+ content: {
2761
+ "text/event-stream": string;
2762
+ };
2763
+ };
2764
+ 400: components["responses"]["BadRequest"];
2765
+ 401: components["responses"]["Unauthorized"];
2766
+ 403: components["responses"]["Forbidden"];
2767
+ 404: components["responses"]["NotFound"];
2768
+ 413: components["responses"]["PayloadTooLarge"];
2769
+ };
2770
+ };
2771
+ webShellCreateSession: {
2772
+ parameters: {
2773
+ query?: never;
2774
+ header?: never;
2775
+ path?: never;
2776
+ cookie?: never;
2777
+ };
2778
+ requestBody: {
2779
+ content: {
2780
+ "application/json": components["schemas"]["WebShellCreateRequest"];
2781
+ };
2782
+ };
2783
+ responses: {
2784
+ /** @description Session admitted. */
2785
+ 202: {
2786
+ headers: {
2787
+ "X-Request-Id": components["headers"]["RequestId"];
2788
+ [name: string]: unknown;
2789
+ };
2790
+ content: {
2791
+ "application/json": components["schemas"]["WebShellAdmission"];
2792
+ };
2793
+ };
2794
+ 400: components["responses"]["BadRequest"];
2795
+ 401: components["responses"]["Unauthorized"];
2796
+ 403: components["responses"]["Forbidden"];
2797
+ 404: components["responses"]["NotFound"];
2798
+ 409: components["responses"]["Conflict"];
2799
+ 413: components["responses"]["PayloadTooLarge"];
2800
+ 503: components["responses"]["Unavailable"];
2801
+ };
2802
+ };
2803
+ webShellSubmitTurn: {
2804
+ parameters: {
2805
+ query?: never;
2806
+ header?: never;
2807
+ path?: never;
2808
+ cookie?: never;
2809
+ };
2810
+ requestBody: {
2811
+ content: {
2812
+ "application/json": components["schemas"]["WebShellSubmitRequest"];
2813
+ };
2814
+ };
2815
+ responses: {
2816
+ /** @description Turn admitted. */
2817
+ 202: {
2818
+ headers: {
2819
+ "X-Request-Id": components["headers"]["RequestId"];
2820
+ [name: string]: unknown;
2821
+ };
2822
+ content: {
2823
+ "application/json": components["schemas"]["WebShellTurnAdmission"];
2824
+ };
2825
+ };
2826
+ 400: components["responses"]["BadRequest"];
2827
+ 401: components["responses"]["Unauthorized"];
2828
+ 403: components["responses"]["Forbidden"];
2829
+ 404: components["responses"]["NotFound"];
2830
+ 409: components["responses"]["Conflict"];
2831
+ 413: components["responses"]["PayloadTooLarge"];
2832
+ };
2833
+ };
2834
+ webShellCancelTurn: {
2835
+ parameters: {
2836
+ query?: never;
2837
+ header?: never;
2838
+ path?: never;
2839
+ cookie?: never;
2840
+ };
2841
+ requestBody: {
2842
+ content: {
2843
+ "application/json": components["schemas"]["WebShellCancelRequest"];
2844
+ };
2845
+ };
2846
+ responses: {
2847
+ /** @description Cancellation durably admitted. */
2848
+ 202: {
2849
+ headers: {
2850
+ "X-Request-Id": components["headers"]["RequestId"];
2851
+ [name: string]: unknown;
2852
+ };
2853
+ content: {
2854
+ "application/json": components["schemas"]["WebShellTurnAdmission"];
2855
+ };
2856
+ };
2857
+ 400: components["responses"]["BadRequest"];
2858
+ 401: components["responses"]["Unauthorized"];
2859
+ 403: components["responses"]["Forbidden"];
2860
+ 404: components["responses"]["NotFound"];
2861
+ 409: components["responses"]["Conflict"];
2862
+ 413: components["responses"]["PayloadTooLarge"];
2863
+ };
2864
+ };
2865
+ webShellQueryWorkspaces: {
2866
+ parameters: {
2867
+ query?: never;
2868
+ header?: never;
2869
+ path?: never;
2870
+ cookie?: never;
2871
+ };
2872
+ requestBody: {
2873
+ content: {
2874
+ "application/json": components["schemas"]["WebShellWorkspaceQueryRequest"];
2875
+ };
2876
+ };
2877
+ responses: {
2878
+ /** @description Authorized durable resource view; no Runtime startup required. */
2879
+ 200: {
2880
+ headers: {
2881
+ [name: string]: unknown;
2882
+ };
2883
+ content: {
2884
+ "application/json": components["schemas"]["WebShellWorkspacePage"];
2885
+ };
2886
+ };
2887
+ 400: components["responses"]["BadRequest"];
2888
+ 401: components["responses"]["Unauthorized"];
2889
+ 403: components["responses"]["Forbidden"];
2890
+ 404: components["responses"]["NotFound"];
2891
+ 413: components["responses"]["PayloadTooLarge"];
2892
+ };
2893
+ };
2894
+ webShellQueryCwdOperation: {
2895
+ parameters: {
2896
+ query?: never;
2897
+ header?: never;
2898
+ path?: never;
2899
+ cookie?: never;
2900
+ };
2901
+ requestBody: {
2902
+ content: {
2903
+ "application/json": components["schemas"]["WebShellOperationRequest"];
2904
+ };
2905
+ };
2906
+ responses: {
2907
+ /** @description Same authorized operation semantics as the public API. */
2908
+ 200: {
2909
+ headers: {
2910
+ [name: string]: unknown;
2911
+ };
2912
+ content: {
2913
+ "application/json": components["schemas"]["WebShellOperation"];
2914
+ };
2915
+ };
2916
+ 400: components["responses"]["BadRequest"];
2917
+ 401: components["responses"]["Unauthorized"];
2918
+ 403: components["responses"]["Forbidden"];
2919
+ 404: components["responses"]["NotFound"];
2920
+ 409: components["responses"]["Conflict"];
2921
+ 413: components["responses"]["PayloadTooLarge"];
2922
+ };
2923
+ };
2924
+ queryWebShellActions: {
2925
+ parameters: {
2926
+ query?: never;
2927
+ header?: never;
2928
+ path?: never;
2929
+ cookie?: never;
2930
+ };
2931
+ requestBody: {
2932
+ content: {
2933
+ "application/json": components["schemas"]["WebShellActionQueryRequest"];
2934
+ };
2935
+ };
2936
+ responses: {
2937
+ /** @description Same authorized operation semantics as the public API. */
2938
+ 200: {
2939
+ headers: {
2940
+ [name: string]: unknown;
2941
+ };
2942
+ content: {
2943
+ "application/json": components["schemas"]["WebShellActionPage"];
2944
+ };
2945
+ };
2946
+ 400: components["responses"]["BadRequest"];
2947
+ 401: components["responses"]["Unauthorized"];
2948
+ 403: components["responses"]["Forbidden"];
2949
+ /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
2950
+ 404: components["responses"]["NotFound"];
2951
+ 409: components["responses"]["Conflict"];
2952
+ 413: components["responses"]["PayloadTooLarge"];
2953
+ };
2954
+ };
2955
+ getWebShellAction: {
2956
+ parameters: {
2957
+ query?: never;
2958
+ header?: never;
2959
+ path?: never;
2960
+ cookie?: never;
2961
+ };
2962
+ requestBody: {
2963
+ content: {
2964
+ "application/json": components["schemas"]["WebShellActionGetRequest"];
2965
+ };
2966
+ };
2967
+ responses: {
2968
+ /** @description Same authorized operation semantics as the public API. */
2969
+ 200: {
2970
+ headers: {
2971
+ [name: string]: unknown;
2972
+ };
2973
+ content: {
2974
+ "application/json": components["schemas"]["WebShellAction"];
2975
+ };
2976
+ };
2977
+ 400: components["responses"]["BadRequest"];
2978
+ 401: components["responses"]["Unauthorized"];
2979
+ 403: components["responses"]["Forbidden"];
2980
+ /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
2981
+ 404: components["responses"]["NotFound"];
2982
+ 409: components["responses"]["Conflict"];
2983
+ 413: components["responses"]["PayloadTooLarge"];
2984
+ };
2985
+ };
2986
+ respondWebShellAction: {
2987
+ parameters: {
2988
+ query?: never;
2989
+ header?: never;
2990
+ path?: never;
2991
+ cookie?: never;
2992
+ };
2993
+ requestBody: {
2994
+ content: {
2995
+ "application/json": components["schemas"]["WebShellActionRespondRequest"];
2996
+ };
2997
+ };
2998
+ responses: {
2999
+ /** @description Same authorized operation semantics as the public API. */
3000
+ 202: {
3001
+ headers: {
3002
+ [name: string]: unknown;
3003
+ };
3004
+ content: {
3005
+ "application/json": components["schemas"]["WebShellCommandOperation"];
3006
+ };
3007
+ };
3008
+ 400: components["responses"]["BadRequest"];
3009
+ 401: components["responses"]["Unauthorized"];
3010
+ /** @description Responding requires the Session's recorded owner or a Workspace OPERATOR (action_forbidden); a Shell Session's Actions may be answered only by its recorded owner. An unbound Session with no recorded creator and no recorded create command (anonymous open-mode creation, or an unbound Session created before the V40 migration that also has no Workspace creation record) answers to any caller in its tenant, matching its read ACL; a bound Session with no recorded owner answers through the create-command actor recorded for it, or through the Workspace role arm. The tenant filter's 403 actor_scope_mismatch also applies on this route. */
3011
+ 403: components["responses"]["Forbidden"];
3012
+ /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
3013
+ 404: components["responses"]["NotFound"];
3014
+ /** @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. */
3015
+ 409: components["responses"]["Conflict"];
3016
+ 413: components["responses"]["PayloadTooLarge"];
3017
+ };
3018
+ };
3019
+ closeWebShellSession: {
3020
+ parameters: {
3021
+ query?: never;
3022
+ header?: never;
3023
+ path?: never;
3024
+ cookie?: never;
3025
+ };
3026
+ requestBody: {
3027
+ content: {
3028
+ "application/json": components["schemas"]["WebShellLifecycleRequest"];
3029
+ };
3030
+ };
3031
+ responses: {
3032
+ /** @description Same authorized operation semantics as the public API. */
3033
+ 202: {
3034
+ headers: {
3035
+ [name: string]: unknown;
3036
+ };
3037
+ content: {
3038
+ "application/json": components["schemas"]["WebShellCommandOperation"];
3039
+ };
3040
+ };
3041
+ 400: components["responses"]["BadRequest"];
3042
+ 401: components["responses"]["Unauthorized"];
3043
+ 403: components["responses"]["Forbidden"];
3044
+ 404: components["responses"]["NotFound"];
3045
+ 409: components["responses"]["Conflict"];
3046
+ 413: components["responses"]["PayloadTooLarge"];
3047
+ };
3048
+ };
3049
+ archiveWebShellSession: {
3050
+ parameters: {
3051
+ query?: never;
3052
+ header?: never;
3053
+ path?: never;
3054
+ cookie?: never;
3055
+ };
3056
+ requestBody: {
3057
+ content: {
3058
+ "application/json": components["schemas"]["WebShellLifecycleRequest"];
3059
+ };
3060
+ };
3061
+ responses: {
3062
+ /** @description Same authorized operation semantics as the public API. */
3063
+ 202: {
3064
+ headers: {
3065
+ [name: string]: unknown;
3066
+ };
3067
+ content: {
3068
+ "application/json": components["schemas"]["WebShellCommandOperation"];
3069
+ };
3070
+ };
3071
+ 400: components["responses"]["BadRequest"];
3072
+ 401: components["responses"]["Unauthorized"];
3073
+ 403: components["responses"]["Forbidden"];
3074
+ 404: components["responses"]["NotFound"];
3075
+ 409: components["responses"]["Conflict"];
3076
+ 413: components["responses"]["PayloadTooLarge"];
3077
+ };
3078
+ };
3079
+ deleteWebShellSession: {
3080
+ parameters: {
3081
+ query?: never;
3082
+ header?: never;
3083
+ path?: never;
3084
+ cookie?: never;
3085
+ };
3086
+ requestBody: {
3087
+ content: {
3088
+ "application/json": components["schemas"]["WebShellLifecycleRequest"];
1843
3089
  };
1844
3090
  };
1845
- /** @description Resource absent or outside the caller tenant scope. */
1846
- NotFound: {
1847
- headers: {
1848
- [name: string]: unknown;
3091
+ responses: {
3092
+ /** @description Same authorized operation semantics as the public API. */
3093
+ 202: {
3094
+ headers: {
3095
+ [name: string]: unknown;
3096
+ };
3097
+ content: {
3098
+ "application/json": components["schemas"]["WebShellCommandOperation"];
3099
+ };
1849
3100
  };
3101
+ 400: components["responses"]["BadRequest"];
3102
+ 401: components["responses"]["Unauthorized"];
3103
+ 403: components["responses"]["Forbidden"];
3104
+ 404: components["responses"]["NotFound"];
3105
+ 409: components["responses"]["Conflict"];
3106
+ 413: components["responses"]["PayloadTooLarge"];
3107
+ };
3108
+ };
3109
+ webShellGetWorkspace: {
3110
+ parameters: {
3111
+ query?: never;
3112
+ header?: never;
3113
+ path?: never;
3114
+ cookie?: never;
3115
+ };
3116
+ requestBody: {
1850
3117
  content: {
1851
- "application/json": components["schemas"]["ErrorEnvelope"];
3118
+ "application/json": components["schemas"]["WebShellWorkspaceGetRequest"];
1852
3119
  };
1853
3120
  };
1854
- /** @description Task event cursor is strictly below the task's durable retention floor, which survives an empty retained set; equality is valid. The envelope's replay_floor_sequence and snapshot_through_sequence stay absent because task cursors are opaque. */
1855
- TaskCursorExpired: {
1856
- headers: {
1857
- [name: string]: unknown;
3121
+ responses: {
3122
+ /** @description Authorized durable resource view; no Runtime startup required. */
3123
+ 200: {
3124
+ headers: {
3125
+ [name: string]: unknown;
3126
+ };
3127
+ content: {
3128
+ "application/json": components["schemas"]["WebShellWorkspace"];
3129
+ };
1858
3130
  };
3131
+ 400: components["responses"]["BadRequest"];
3132
+ 401: components["responses"]["Unauthorized"];
3133
+ 403: components["responses"]["Forbidden"];
3134
+ 404: components["responses"]["NotFound"];
3135
+ 413: components["responses"]["PayloadTooLarge"];
3136
+ };
3137
+ };
3138
+ queryWebShellTasks: {
3139
+ parameters: {
3140
+ query?: never;
3141
+ header?: never;
3142
+ path?: never;
3143
+ cookie?: never;
3144
+ };
3145
+ requestBody: {
1859
3146
  content: {
1860
- "application/json": components["schemas"]["ErrorEnvelope"];
3147
+ "application/json": components["schemas"]["WebShellTaskQueryRequest"];
1861
3148
  };
1862
3149
  };
1863
- /** @description A dependency such as the Hosted Harness is unavailable; retry later. */
1864
- Unavailable: {
1865
- headers: {
1866
- [name: string]: unknown;
1867
- };
1868
- content: {
1869
- "application/json": components["schemas"]["ErrorEnvelope"];
3150
+ responses: {
3151
+ /** @description Same authorized task semantics as the public API. */
3152
+ 200: {
3153
+ headers: {
3154
+ [name: string]: unknown;
3155
+ };
3156
+ content: {
3157
+ "application/json": components["schemas"]["WebShellTaskPage"];
3158
+ };
1870
3159
  };
3160
+ 400: components["responses"]["BadRequest"];
3161
+ 401: components["responses"]["Unauthorized"];
3162
+ 403: components["responses"]["Forbidden"];
3163
+ 404: components["responses"]["NotFound"];
3164
+ 413: components["responses"]["PayloadTooLarge"];
1871
3165
  };
1872
3166
  };
1873
- parameters: never;
1874
- requestBodies: never;
1875
- headers: {
1876
- /** @description True when an accepted command or operation was replayed for the same idempotency key and digest without repeating its mutation. Session mutation responses represent the recorded outcome on the Session as last visible — a rename or unarchive replay after delete answers with the Session's pre-delete status rather than 404, while a create replay after delete answers 404 on the public create route, which re-reads the Session before responding, and answers the recorded 202 admission carrying the tombstoned sessionId on the WebShell create route, which does not re-read it; operation responses represent the original operation at its current state. */
1877
- IdempotentReplay: boolean;
1878
- /** @description Trace-only correlation identifier; never an idempotency key. */
1879
- RequestId: string;
1880
- };
1881
- pathItems: never;
1882
- }
1883
- export type $defs = Record<string, never>;
1884
- export interface operations {
1885
- webShellListSessions: {
3167
+ getWebShellTask: {
1886
3168
  parameters: {
1887
3169
  query?: never;
1888
3170
  header?: never;
@@ -1891,26 +3173,27 @@ export interface operations {
1891
3173
  };
1892
3174
  requestBody: {
1893
3175
  content: {
1894
- "application/json": components["schemas"]["WebShellListRequest"];
3176
+ "application/json": components["schemas"]["WebShellTaskGetRequest"];
1895
3177
  };
1896
3178
  };
1897
3179
  responses: {
1898
- /** @description WebShell session page. */
3180
+ /** @description Same authorized task semantics as the public API. */
1899
3181
  200: {
1900
3182
  headers: {
1901
3183
  [name: string]: unknown;
1902
3184
  };
1903
3185
  content: {
1904
- "application/json": components["schemas"]["WebShellSessionPage"];
3186
+ "application/json": components["schemas"]["WebShellTask"];
1905
3187
  };
1906
3188
  };
1907
3189
  400: components["responses"]["BadRequest"];
1908
3190
  401: components["responses"]["Unauthorized"];
1909
3191
  403: components["responses"]["Forbidden"];
3192
+ 404: components["responses"]["NotFound"];
1910
3193
  413: components["responses"]["PayloadTooLarge"];
1911
3194
  };
1912
3195
  };
1913
- webShellGetSession: {
3196
+ queryWebShellTaskEvents: {
1914
3197
  parameters: {
1915
3198
  query?: never;
1916
3199
  header?: never;
@@ -1919,27 +3202,28 @@ export interface operations {
1919
3202
  };
1920
3203
  requestBody: {
1921
3204
  content: {
1922
- "application/json": components["schemas"]["WebShellSessionRequest"];
3205
+ "application/json": components["schemas"]["WebShellTaskEventQueryRequest"];
1923
3206
  };
1924
3207
  };
1925
3208
  responses: {
1926
- /** @description WebShell session. */
3209
+ /** @description Same authorized task semantics as the public task events route, including the durable retention floor, committed-prefix publication, Artifact recovery order and client tolerance of unknown optional fields and event types. */
1927
3210
  200: {
1928
3211
  headers: {
1929
3212
  [name: string]: unknown;
1930
3213
  };
1931
3214
  content: {
1932
- "application/json": components["schemas"]["WebShellSession"];
3215
+ "application/json": components["schemas"]["WebShellTaskEventPage"];
1933
3216
  };
1934
3217
  };
1935
3218
  400: components["responses"]["BadRequest"];
1936
3219
  401: components["responses"]["Unauthorized"];
1937
3220
  403: components["responses"]["Forbidden"];
1938
3221
  404: components["responses"]["NotFound"];
3222
+ 409: components["responses"]["TaskCursorExpired"];
1939
3223
  413: components["responses"]["PayloadTooLarge"];
1940
3224
  };
1941
3225
  };
1942
- webShellRenameSession: {
3226
+ cancelWebShellTask: {
1943
3227
  parameters: {
1944
3228
  query?: never;
1945
3229
  header?: never;
@@ -1948,19 +3232,18 @@ export interface operations {
1948
3232
  };
1949
3233
  requestBody: {
1950
3234
  content: {
1951
- "application/json": components["schemas"]["WebShellRenameRequest"];
3235
+ "application/json": components["schemas"]["WebShellTaskCancelRequest"];
1952
3236
  };
1953
3237
  };
1954
3238
  responses: {
1955
- /** @description Confirmed persisted Session title, or an authorized completed replay. */
1956
- 200: {
3239
+ /** @description Same authorized task cancellation semantics as the public API: key validation, current access, idempotent replay, then new-request capability, Session, task and storage-migration checks (409 workspace_unavailable under a migration fence). Replay returns the same operation and latest durable state. 202 is durable admission, completed is authority acceptance, and neither proves physical stop. Admission requires no other open operation on the Session (409 session_operation_active), as on the lifecycle routes. A requestId in the body becomes the response's X-Request-Id and stays out of the request digest. */
3240
+ 202: {
1957
3241
  headers: {
1958
3242
  "X-Request-Id": components["headers"]["RequestId"];
1959
- "X-Qwen-Idempotent-Replay": components["headers"]["IdempotentReplay"];
1960
3243
  [name: string]: unknown;
1961
3244
  };
1962
3245
  content: {
1963
- "application/json": components["schemas"]["WebShellRenameResult"];
3246
+ "application/json": components["schemas"]["WebShellCommandOperation"];
1964
3247
  };
1965
3248
  };
1966
3249
  400: components["responses"]["BadRequest"];
@@ -1969,10 +3252,9 @@ export interface operations {
1969
3252
  404: components["responses"]["NotFound"];
1970
3253
  409: components["responses"]["Conflict"];
1971
3254
  413: components["responses"]["PayloadTooLarge"];
1972
- 503: components["responses"]["Unavailable"];
1973
3255
  };
1974
3256
  };
1975
- webShellTranscript: {
3257
+ getWebShellToolResult: {
1976
3258
  parameters: {
1977
3259
  query?: never;
1978
3260
  header?: never;
@@ -1981,27 +3263,61 @@ export interface operations {
1981
3263
  };
1982
3264
  requestBody: {
1983
3265
  content: {
1984
- "application/json": components["schemas"]["WebShellTranscriptRequest"];
3266
+ "application/json": components["schemas"]["WebShellToolResultRequest"];
1985
3267
  };
1986
3268
  };
1987
3269
  responses: {
1988
- /** @description Event transcript page. */
3270
+ /** @description Authorized persisted tool result resource. */
1989
3271
  200: {
1990
3272
  headers: {
3273
+ "Cache-Control"?: "private, no-store";
1991
3274
  [name: string]: unknown;
1992
3275
  };
1993
3276
  content: {
1994
- "application/json": components["schemas"]["WebShellTranscript"];
3277
+ "application/json": components["schemas"]["ToolResultResponse"];
3278
+ };
3279
+ };
3280
+ /** @description Invalid request. */
3281
+ 400: {
3282
+ headers: {
3283
+ [name: string]: unknown;
3284
+ };
3285
+ content: {
3286
+ "application/json": components["schemas"]["ErrorEnvelope"];
3287
+ };
3288
+ };
3289
+ /** @description Trusted actor required. */
3290
+ 401: {
3291
+ headers: {
3292
+ [name: string]: unknown;
3293
+ };
3294
+ content: {
3295
+ "application/json": components["schemas"]["ErrorEnvelope"];
1995
3296
  };
1996
3297
  };
1997
- 400: components["responses"]["BadRequest"];
1998
- 401: components["responses"]["Unauthorized"];
1999
3298
  403: components["responses"]["Forbidden"];
2000
- 404: components["responses"]["NotFound"];
3299
+ /** @description Unknown or unreadable resource. */
3300
+ 404: {
3301
+ headers: {
3302
+ [name: string]: unknown;
3303
+ };
3304
+ content: {
3305
+ "application/json": components["schemas"]["ErrorEnvelope"];
3306
+ };
3307
+ };
2001
3308
  413: components["responses"]["PayloadTooLarge"];
3309
+ /** @description Resource temporarily unavailable. */
3310
+ 503: {
3311
+ headers: {
3312
+ [name: string]: unknown;
3313
+ };
3314
+ content: {
3315
+ "application/json": components["schemas"]["ErrorEnvelope"];
3316
+ };
3317
+ };
2002
3318
  };
2003
3319
  };
2004
- webShellStreamEvents: {
3320
+ getWebShellArtifact: {
2005
3321
  parameters: {
2006
3322
  query?: never;
2007
3323
  header?: never;
@@ -2010,27 +3326,61 @@ export interface operations {
2010
3326
  };
2011
3327
  requestBody: {
2012
3328
  content: {
2013
- "application/json": components["schemas"]["WebShellStreamRequest"];
3329
+ "application/json": components["schemas"]["WebShellArtifactRequest"];
2014
3330
  };
2015
3331
  };
2016
3332
  responses: {
2017
- /** @description SSE stream. */
3333
+ /** @description Authorized persisted artifact metadata. */
2018
3334
  200: {
2019
3335
  headers: {
3336
+ "Cache-Control"?: "private, no-store";
2020
3337
  [name: string]: unknown;
2021
3338
  };
2022
3339
  content: {
2023
- "text/event-stream": string;
3340
+ "application/json": components["schemas"]["ArtifactResponse"];
3341
+ };
3342
+ };
3343
+ /** @description Invalid request. */
3344
+ 400: {
3345
+ headers: {
3346
+ [name: string]: unknown;
3347
+ };
3348
+ content: {
3349
+ "application/json": components["schemas"]["ErrorEnvelope"];
3350
+ };
3351
+ };
3352
+ /** @description Trusted actor required. */
3353
+ 401: {
3354
+ headers: {
3355
+ [name: string]: unknown;
3356
+ };
3357
+ content: {
3358
+ "application/json": components["schemas"]["ErrorEnvelope"];
2024
3359
  };
2025
3360
  };
2026
- 400: components["responses"]["BadRequest"];
2027
- 401: components["responses"]["Unauthorized"];
2028
3361
  403: components["responses"]["Forbidden"];
2029
- 404: components["responses"]["NotFound"];
3362
+ /** @description Unknown or unreadable resource. */
3363
+ 404: {
3364
+ headers: {
3365
+ [name: string]: unknown;
3366
+ };
3367
+ content: {
3368
+ "application/json": components["schemas"]["ErrorEnvelope"];
3369
+ };
3370
+ };
2030
3371
  413: components["responses"]["PayloadTooLarge"];
3372
+ /** @description Resource temporarily unavailable. */
3373
+ 503: {
3374
+ headers: {
3375
+ [name: string]: unknown;
3376
+ };
3377
+ content: {
3378
+ "application/json": components["schemas"]["ErrorEnvelope"];
3379
+ };
3380
+ };
2031
3381
  };
2032
3382
  };
2033
- webShellCreateSession: {
3383
+ queryWebShellArtifacts: {
2034
3384
  parameters: {
2035
3385
  query?: never;
2036
3386
  header?: never;
@@ -2039,30 +3389,61 @@ export interface operations {
2039
3389
  };
2040
3390
  requestBody: {
2041
3391
  content: {
2042
- "application/json": components["schemas"]["WebShellCreateRequest"];
3392
+ "application/json": components["schemas"]["WebShellArtifactQueryRequest"];
2043
3393
  };
2044
3394
  };
2045
3395
  responses: {
2046
- /** @description Session admitted. */
2047
- 202: {
3396
+ /** @description Authorized artifact metadata page. */
3397
+ 200: {
3398
+ headers: {
3399
+ "Cache-Control"?: "private, no-store";
3400
+ [name: string]: unknown;
3401
+ };
3402
+ content: {
3403
+ "application/json": components["schemas"]["WebShellArtifactPage"];
3404
+ };
3405
+ };
3406
+ /** @description Invalid request. */
3407
+ 400: {
3408
+ headers: {
3409
+ [name: string]: unknown;
3410
+ };
3411
+ content: {
3412
+ "application/json": components["schemas"]["ErrorEnvelope"];
3413
+ };
3414
+ };
3415
+ /** @description Trusted actor required. */
3416
+ 401: {
3417
+ headers: {
3418
+ [name: string]: unknown;
3419
+ };
3420
+ content: {
3421
+ "application/json": components["schemas"]["ErrorEnvelope"];
3422
+ };
3423
+ };
3424
+ 403: components["responses"]["Forbidden"];
3425
+ /** @description Unknown or unreadable resource. */
3426
+ 404: {
2048
3427
  headers: {
2049
- "X-Request-Id": components["headers"]["RequestId"];
2050
3428
  [name: string]: unknown;
2051
3429
  };
2052
3430
  content: {
2053
- "application/json": components["schemas"]["WebShellAdmission"];
3431
+ "application/json": components["schemas"]["ErrorEnvelope"];
2054
3432
  };
2055
3433
  };
2056
- 400: components["responses"]["BadRequest"];
2057
- 401: components["responses"]["Unauthorized"];
2058
- 403: components["responses"]["Forbidden"];
2059
- 404: components["responses"]["NotFound"];
2060
- 409: components["responses"]["Conflict"];
2061
3434
  413: components["responses"]["PayloadTooLarge"];
2062
- 503: components["responses"]["Unavailable"];
3435
+ /** @description Resource temporarily unavailable. */
3436
+ 503: {
3437
+ headers: {
3438
+ [name: string]: unknown;
3439
+ };
3440
+ content: {
3441
+ "application/json": components["schemas"]["ErrorEnvelope"];
3442
+ };
3443
+ };
2063
3444
  };
2064
3445
  };
2065
- webShellSubmitTurn: {
3446
+ unarchiveWebShellSession: {
2066
3447
  parameters: {
2067
3448
  query?: never;
2068
3449
  header?: never;
@@ -2071,18 +3452,18 @@ export interface operations {
2071
3452
  };
2072
3453
  requestBody: {
2073
3454
  content: {
2074
- "application/json": components["schemas"]["WebShellSubmitRequest"];
3455
+ "application/json": components["schemas"]["WebShellLifecycleRequest"];
2075
3456
  };
2076
3457
  };
2077
3458
  responses: {
2078
- /** @description Turn admitted. */
2079
- 202: {
3459
+ /** @description Current WebShell Session; replay does not repeat the mutation. */
3460
+ 200: {
2080
3461
  headers: {
2081
- "X-Request-Id": components["headers"]["RequestId"];
3462
+ "X-Qwen-Idempotent-Replay": components["headers"]["IdempotentReplay"];
2082
3463
  [name: string]: unknown;
2083
3464
  };
2084
3465
  content: {
2085
- "application/json": components["schemas"]["WebShellAdmission"];
3466
+ "application/json": components["schemas"]["WebShellSession"];
2086
3467
  };
2087
3468
  };
2088
3469
  400: components["responses"]["BadRequest"];
@@ -2093,7 +3474,7 @@ export interface operations {
2093
3474
  413: components["responses"]["PayloadTooLarge"];
2094
3475
  };
2095
3476
  };
2096
- webShellCancelTurn: {
3477
+ webShellCreateWorkspace: {
2097
3478
  parameters: {
2098
3479
  query?: never;
2099
3480
  header?: never;
@@ -2102,18 +3483,17 @@ export interface operations {
2102
3483
  };
2103
3484
  requestBody: {
2104
3485
  content: {
2105
- "application/json": components["schemas"]["WebShellCancelRequest"];
3486
+ "application/json": components["schemas"]["WebShellWorkspaceCreateRequest"];
2106
3487
  };
2107
3488
  };
2108
3489
  responses: {
2109
- /** @description Cancellation durably admitted. */
2110
- 202: {
3490
+ /** @description Created Workspace or authorized same-key replay. */
3491
+ 200: {
2111
3492
  headers: {
2112
- "X-Request-Id": components["headers"]["RequestId"];
2113
3493
  [name: string]: unknown;
2114
3494
  };
2115
3495
  content: {
2116
- "application/json": components["schemas"]["WebShellAdmission"];
3496
+ "application/json": components["schemas"]["WebShellWorkspace"];
2117
3497
  };
2118
3498
  };
2119
3499
  400: components["responses"]["BadRequest"];
@@ -2124,7 +3504,7 @@ export interface operations {
2124
3504
  413: components["responses"]["PayloadTooLarge"];
2125
3505
  };
2126
3506
  };
2127
- webShellQueryWorkspaces: {
3507
+ queryWebShellSessionOptions: {
2128
3508
  parameters: {
2129
3509
  query?: never;
2130
3510
  header?: never;
@@ -2133,17 +3513,17 @@ export interface operations {
2133
3513
  };
2134
3514
  requestBody: {
2135
3515
  content: {
2136
- "application/json": components["schemas"]["WebShellWorkspaceQueryRequest"];
3516
+ "application/json": components["schemas"]["WebShellSessionOptionsRequest"];
2137
3517
  };
2138
3518
  };
2139
3519
  responses: {
2140
- /** @description Authorized durable resource view; no Runtime startup required. */
3520
+ /** @description Effective default and supported policies. */
2141
3521
  200: {
2142
3522
  headers: {
2143
3523
  [name: string]: unknown;
2144
3524
  };
2145
3525
  content: {
2146
- "application/json": components["schemas"]["WebShellWorkspacePage"];
3526
+ "application/json": components["schemas"]["WebShellSessionOptions"];
2147
3527
  };
2148
3528
  };
2149
3529
  400: components["responses"]["BadRequest"];
@@ -2153,7 +3533,7 @@ export interface operations {
2153
3533
  413: components["responses"]["PayloadTooLarge"];
2154
3534
  };
2155
3535
  };
2156
- webShellChangeCwd: {
3536
+ queryWebShellSessionModels: {
2157
3537
  parameters: {
2158
3538
  query?: never;
2159
3539
  header?: never;
@@ -2162,17 +3542,17 @@ export interface operations {
2162
3542
  };
2163
3543
  requestBody: {
2164
3544
  content: {
2165
- "application/json": components["schemas"]["WebShellChangeCwdRequest"];
3545
+ "application/json": components["schemas"]["WebShellSessionModelsRequest"];
2166
3546
  };
2167
3547
  };
2168
3548
  responses: {
2169
- /** @description Durable cwd operation; acceptance does not mean the new cwd is active. */
2170
- 202: {
3549
+ /** @description Session model options. */
3550
+ 200: {
2171
3551
  headers: {
2172
3552
  [name: string]: unknown;
2173
3553
  };
2174
3554
  content: {
2175
- "application/json": components["schemas"]["WebShellCwdOperation"];
3555
+ "application/json": components["schemas"]["WebShellSessionModels"];
2176
3556
  };
2177
3557
  };
2178
3558
  400: components["responses"]["BadRequest"];
@@ -2183,7 +3563,7 @@ export interface operations {
2183
3563
  413: components["responses"]["PayloadTooLarge"];
2184
3564
  };
2185
3565
  };
2186
- webShellQueryCwdOperation: {
3566
+ changeWebShellSessionModel: {
2187
3567
  parameters: {
2188
3568
  query?: never;
2189
3569
  header?: never;
@@ -2192,17 +3572,17 @@ export interface operations {
2192
3572
  };
2193
3573
  requestBody: {
2194
3574
  content: {
2195
- "application/json": components["schemas"]["WebShellOperationRequest"];
3575
+ "application/json": components["schemas"]["WebShellChangeModelRequest"];
2196
3576
  };
2197
3577
  };
2198
3578
  responses: {
2199
- /** @description Same authorized operation semantics as the public API. */
3579
+ /** @description The admitted model selection, or the same original result on replay. */
2200
3580
  200: {
2201
3581
  headers: {
2202
3582
  [name: string]: unknown;
2203
3583
  };
2204
3584
  content: {
2205
- "application/json": components["schemas"]["WebShellOperation"];
3585
+ "application/json": components["schemas"]["WebShellModelChangeResult"];
2206
3586
  };
2207
3587
  };
2208
3588
  400: components["responses"]["BadRequest"];
@@ -2213,7 +3593,7 @@ export interface operations {
2213
3593
  413: components["responses"]["PayloadTooLarge"];
2214
3594
  };
2215
3595
  };
2216
- queryWebShellActions: {
3596
+ queryWebShellSessionApproval: {
2217
3597
  parameters: {
2218
3598
  query?: never;
2219
3599
  header?: never;
@@ -2222,29 +3602,28 @@ export interface operations {
2222
3602
  };
2223
3603
  requestBody: {
2224
3604
  content: {
2225
- "application/json": components["schemas"]["WebShellActionQueryRequest"];
3605
+ "application/json": components["schemas"]["WebShellSessionApprovalRequest"];
2226
3606
  };
2227
3607
  };
2228
3608
  responses: {
2229
- /** @description Same authorized operation semantics as the public API. */
3609
+ /** @description The current policy options. */
2230
3610
  200: {
2231
3611
  headers: {
2232
3612
  [name: string]: unknown;
2233
3613
  };
2234
3614
  content: {
2235
- "application/json": components["schemas"]["WebShellActionPage"];
3615
+ "application/json": components["schemas"]["WebShellSessionApproval"];
2236
3616
  };
2237
3617
  };
2238
3618
  400: components["responses"]["BadRequest"];
2239
3619
  401: components["responses"]["Unauthorized"];
2240
3620
  403: components["responses"]["Forbidden"];
2241
- /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
2242
3621
  404: components["responses"]["NotFound"];
2243
3622
  409: components["responses"]["Conflict"];
2244
3623
  413: components["responses"]["PayloadTooLarge"];
2245
3624
  };
2246
3625
  };
2247
- getWebShellAction: {
3626
+ changeWebShellSessionApproval: {
2248
3627
  parameters: {
2249
3628
  query?: never;
2250
3629
  header?: never;
@@ -2253,62 +3632,54 @@ export interface operations {
2253
3632
  };
2254
3633
  requestBody: {
2255
3634
  content: {
2256
- "application/json": components["schemas"]["WebShellActionGetRequest"];
3635
+ "application/json": components["schemas"]["WebShellChangeApprovalRequest"];
2257
3636
  };
2258
3637
  };
2259
3638
  responses: {
2260
- /** @description Same authorized operation semantics as the public API. */
3639
+ /** @description The committed approval selection, or its original receipt on replay. */
2261
3640
  200: {
2262
3641
  headers: {
2263
3642
  [name: string]: unknown;
2264
3643
  };
2265
3644
  content: {
2266
- "application/json": components["schemas"]["WebShellAction"];
3645
+ "application/json": components["schemas"]["WebShellApprovalChangeResult"];
2267
3646
  };
2268
3647
  };
2269
3648
  400: components["responses"]["BadRequest"];
2270
3649
  401: components["responses"]["Unauthorized"];
2271
3650
  403: components["responses"]["Forbidden"];
2272
- /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
2273
3651
  404: components["responses"]["NotFound"];
2274
3652
  409: components["responses"]["Conflict"];
2275
3653
  413: components["responses"]["PayloadTooLarge"];
2276
3654
  };
2277
3655
  };
2278
- respondWebShellAction: {
3656
+ webShellQueryRuntimeNodes: {
2279
3657
  parameters: {
2280
3658
  query?: never;
2281
3659
  header?: never;
2282
3660
  path?: never;
2283
3661
  cookie?: never;
2284
3662
  };
2285
- requestBody: {
2286
- content: {
2287
- "application/json": components["schemas"]["WebShellActionRespondRequest"];
2288
- };
2289
- };
3663
+ requestBody?: never;
2290
3664
  responses: {
2291
- /** @description Same authorized operation semantics as the public API. */
2292
- 202: {
3665
+ /** @description SSH registration capability and authorized machine display names. */
3666
+ 200: {
2293
3667
  headers: {
3668
+ "X-Request-Id": components["headers"]["RequestId"];
3669
+ "Cache-Control"?: "no-store";
2294
3670
  [name: string]: unknown;
2295
3671
  };
2296
3672
  content: {
2297
- "application/json": components["schemas"]["WebShellCommandOperation"];
3673
+ "application/json": components["schemas"]["WebShellRuntimeNodePage"];
2298
3674
  };
2299
3675
  };
2300
3676
  400: components["responses"]["BadRequest"];
2301
3677
  401: components["responses"]["Unauthorized"];
2302
- /** @description Responding requires the Session's recorded owner or a Workspace OPERATOR (action_forbidden); a Shell Session's Actions may be answered only by its recorded owner. An unbound Session with no recorded creator and no recorded create command (anonymous open-mode creation, or an unbound Session created before the V40 migration that also has no Workspace creation record) answers to any caller in its tenant, matching its read ACL; a bound Session with no recorded owner answers through the create-command actor recorded for it, or through the Workspace role arm. The tenant filter's 403 actor_scope_mismatch also applies on this route. */
2303
3678
  403: components["responses"]["Forbidden"];
2304
- /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
2305
- 404: components["responses"]["NotFound"];
2306
- /** @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. */
2307
- 409: components["responses"]["Conflict"];
2308
3679
  413: components["responses"]["PayloadTooLarge"];
2309
3680
  };
2310
3681
  };
2311
- closeWebShellSession: {
3682
+ webShellCheckWorkspaceDirectory: {
2312
3683
  parameters: {
2313
3684
  query?: never;
2314
3685
  header?: never;
@@ -2317,17 +3688,19 @@ export interface operations {
2317
3688
  };
2318
3689
  requestBody: {
2319
3690
  content: {
2320
- "application/json": components["schemas"]["WebShellLifecycleRequest"];
3691
+ "application/json": components["schemas"]["WebShellWorkspaceDirectoryRequest"];
2321
3692
  };
2322
3693
  };
2323
3694
  responses: {
2324
- /** @description Same authorized operation semantics as the public API. */
2325
- 202: {
3695
+ /** @description Validated canonical directory on the selected Linux or macOS node. */
3696
+ 200: {
2326
3697
  headers: {
3698
+ "X-Request-Id": components["headers"]["RequestId"];
3699
+ "Cache-Control"?: "no-store";
2327
3700
  [name: string]: unknown;
2328
3701
  };
2329
3702
  content: {
2330
- "application/json": components["schemas"]["WebShellCommandOperation"];
3703
+ "application/json": components["schemas"]["WebShellWorkspaceDirectory"];
2331
3704
  };
2332
3705
  };
2333
3706
  400: components["responses"]["BadRequest"];
@@ -2336,9 +3709,19 @@ export interface operations {
2336
3709
  404: components["responses"]["NotFound"];
2337
3710
  409: components["responses"]["Conflict"];
2338
3711
  413: components["responses"]["PayloadTooLarge"];
3712
+ /** @description The SSH bootstrap response is invalid. */
3713
+ 502: {
3714
+ headers: {
3715
+ [name: string]: unknown;
3716
+ };
3717
+ content: {
3718
+ "application/json": components["schemas"]["ErrorEnvelope"];
3719
+ };
3720
+ };
3721
+ 503: components["responses"]["Unavailable"];
2339
3722
  };
2340
3723
  };
2341
- archiveWebShellSession: {
3724
+ webShellGetWorkspaceOperation: {
2342
3725
  parameters: {
2343
3726
  query?: never;
2344
3727
  header?: never;
@@ -2347,28 +3730,29 @@ export interface operations {
2347
3730
  };
2348
3731
  requestBody: {
2349
3732
  content: {
2350
- "application/json": components["schemas"]["WebShellLifecycleRequest"];
3733
+ "application/json": components["schemas"]["WebShellWorkspaceOperationRequest"];
2351
3734
  };
2352
3735
  };
2353
3736
  responses: {
2354
- /** @description Same authorized operation semantics as the public API. */
2355
- 202: {
3737
+ /** @description Latest durable state of the original actor-owned registration. */
3738
+ 200: {
2356
3739
  headers: {
3740
+ "X-Request-Id": components["headers"]["RequestId"];
3741
+ "Cache-Control"?: "no-store";
2357
3742
  [name: string]: unknown;
2358
3743
  };
2359
3744
  content: {
2360
- "application/json": components["schemas"]["WebShellCommandOperation"];
3745
+ "application/json": components["schemas"]["WebShellWorkspaceCreateOperation"];
2361
3746
  };
2362
3747
  };
2363
3748
  400: components["responses"]["BadRequest"];
2364
3749
  401: components["responses"]["Unauthorized"];
2365
3750
  403: components["responses"]["Forbidden"];
2366
3751
  404: components["responses"]["NotFound"];
2367
- 409: components["responses"]["Conflict"];
2368
3752
  413: components["responses"]["PayloadTooLarge"];
2369
3753
  };
2370
3754
  };
2371
- deleteWebShellSession: {
3755
+ webShellRegisterWorkspace: {
2372
3756
  parameters: {
2373
3757
  query?: never;
2374
3758
  header?: never;
@@ -2377,17 +3761,19 @@ export interface operations {
2377
3761
  };
2378
3762
  requestBody: {
2379
3763
  content: {
2380
- "application/json": components["schemas"]["WebShellLifecycleRequest"];
3764
+ "application/json": components["schemas"]["WebShellWorkspaceRegisterRequest"];
2381
3765
  };
2382
3766
  };
2383
3767
  responses: {
2384
- /** @description Same authorized operation semantics as the public API. */
3768
+ /** @description Durable registration operation; repeated requests retain the original identity. */
2385
3769
  202: {
2386
3770
  headers: {
3771
+ "X-Request-Id": components["headers"]["RequestId"];
3772
+ "Cache-Control"?: "no-store";
2387
3773
  [name: string]: unknown;
2388
3774
  };
2389
3775
  content: {
2390
- "application/json": components["schemas"]["WebShellCommandOperation"];
3776
+ "application/json": components["schemas"]["WebShellWorkspaceCreateOperation"];
2391
3777
  };
2392
3778
  };
2393
3779
  400: components["responses"]["BadRequest"];
@@ -2398,7 +3784,7 @@ export interface operations {
2398
3784
  413: components["responses"]["PayloadTooLarge"];
2399
3785
  };
2400
3786
  };
2401
- webShellGetWorkspace: {
3787
+ queryWebShellWorkspaceDirectories: {
2402
3788
  parameters: {
2403
3789
  query?: never;
2404
3790
  header?: never;
@@ -2407,27 +3793,27 @@ export interface operations {
2407
3793
  };
2408
3794
  requestBody: {
2409
3795
  content: {
2410
- "application/json": components["schemas"]["WebShellWorkspaceGetRequest"];
3796
+ "application/json": components["schemas"]["WebShellWorkspaceDirectoryQueryRequest"];
2411
3797
  };
2412
3798
  };
2413
3799
  responses: {
2414
- /** @description Authorized durable resource view; no Runtime startup required. */
3800
+ /** @description Authorized existing directories. */
2415
3801
  200: {
2416
3802
  headers: {
2417
3803
  [name: string]: unknown;
2418
3804
  };
2419
3805
  content: {
2420
- "application/json": components["schemas"]["WebShellWorkspace"];
3806
+ "application/json": components["schemas"]["WebShellWorkspaceDirectoryPage"];
2421
3807
  };
2422
3808
  };
2423
3809
  400: components["responses"]["BadRequest"];
2424
3810
  401: components["responses"]["Unauthorized"];
2425
3811
  403: components["responses"]["Forbidden"];
2426
3812
  404: components["responses"]["NotFound"];
2427
- 413: components["responses"]["PayloadTooLarge"];
3813
+ 409: components["responses"]["Conflict"];
2428
3814
  };
2429
3815
  };
2430
- queryWebShellTasks: {
3816
+ queryWebShellSessionMcp: {
2431
3817
  parameters: {
2432
3818
  query?: never;
2433
3819
  header?: never;
@@ -2436,17 +3822,17 @@ export interface operations {
2436
3822
  };
2437
3823
  requestBody: {
2438
3824
  content: {
2439
- "application/json": components["schemas"]["WebShellTaskQueryRequest"];
3825
+ "application/json": components["schemas"]["WebShellSessionRequest"];
2440
3826
  };
2441
3827
  };
2442
3828
  responses: {
2443
- /** @description Same authorized task semantics as the public API. */
3829
+ /** @description Session MCP catalog snapshot. */
2444
3830
  200: {
2445
3831
  headers: {
2446
3832
  [name: string]: unknown;
2447
3833
  };
2448
3834
  content: {
2449
- "application/json": components["schemas"]["WebShellTaskPage"];
3835
+ "application/json": components["schemas"]["PublicMcpCatalog"];
2450
3836
  };
2451
3837
  };
2452
3838
  400: components["responses"]["BadRequest"];
@@ -2456,7 +3842,7 @@ export interface operations {
2456
3842
  413: components["responses"]["PayloadTooLarge"];
2457
3843
  };
2458
3844
  };
2459
- getWebShellTask: {
3845
+ queryWebShellSessionSkills: {
2460
3846
  parameters: {
2461
3847
  query?: never;
2462
3848
  header?: never;
@@ -2465,27 +3851,28 @@ export interface operations {
2465
3851
  };
2466
3852
  requestBody: {
2467
3853
  content: {
2468
- "application/json": components["schemas"]["WebShellTaskGetRequest"];
3854
+ "application/json": components["schemas"]["WebShellSessionRequest"];
2469
3855
  };
2470
3856
  };
2471
3857
  responses: {
2472
- /** @description Same authorized task semantics as the public API. */
3858
+ /** @description Session static Skill metadata. */
2473
3859
  200: {
2474
3860
  headers: {
2475
3861
  [name: string]: unknown;
2476
3862
  };
2477
3863
  content: {
2478
- "application/json": components["schemas"]["WebShellTask"];
3864
+ "application/json": components["schemas"]["WebShellSessionSkills"];
2479
3865
  };
2480
3866
  };
2481
3867
  400: components["responses"]["BadRequest"];
2482
3868
  401: components["responses"]["Unauthorized"];
2483
3869
  403: components["responses"]["Forbidden"];
2484
3870
  404: components["responses"]["NotFound"];
3871
+ 409: components["responses"]["Conflict"];
2485
3872
  413: components["responses"]["PayloadTooLarge"];
2486
3873
  };
2487
3874
  };
2488
- queryWebShellTaskEvents: {
3875
+ webShellWorkspaceFilesQuery: {
2489
3876
  parameters: {
2490
3877
  query?: never;
2491
3878
  header?: never;
@@ -2494,28 +3881,28 @@ export interface operations {
2494
3881
  };
2495
3882
  requestBody: {
2496
3883
  content: {
2497
- "application/json": components["schemas"]["WebShellTaskEventQueryRequest"];
3884
+ "application/json": components["schemas"]["WebShellWorkspaceFileQueryRequest"];
2498
3885
  };
2499
3886
  };
2500
3887
  responses: {
2501
- /** @description Same authorized task semantics as the public task events route, including the durable retention floor, committed-prefix publication, Artifact recovery order and client tolerance of unknown optional fields and event types. */
3888
+ /** @description Authorized Workspace file result. */
2502
3889
  200: {
2503
3890
  headers: {
2504
3891
  [name: string]: unknown;
2505
3892
  };
2506
3893
  content: {
2507
- "application/json": components["schemas"]["WebShellTaskEventPage"];
3894
+ "application/json": components["schemas"]["WebShellWorkspaceFilePage"];
2508
3895
  };
2509
3896
  };
2510
3897
  400: components["responses"]["BadRequest"];
2511
3898
  401: components["responses"]["Unauthorized"];
2512
3899
  403: components["responses"]["Forbidden"];
2513
3900
  404: components["responses"]["NotFound"];
2514
- 409: components["responses"]["TaskCursorExpired"];
2515
- 413: components["responses"]["PayloadTooLarge"];
3901
+ 409: components["responses"]["Conflict"];
3902
+ 503: components["responses"]["Unavailable"];
2516
3903
  };
2517
3904
  };
2518
- cancelWebShellTask: {
3905
+ webShellWorkspaceFilesRead: {
2519
3906
  parameters: {
2520
3907
  query?: never;
2521
3908
  header?: never;
@@ -2524,18 +3911,17 @@ export interface operations {
2524
3911
  };
2525
3912
  requestBody: {
2526
3913
  content: {
2527
- "application/json": components["schemas"]["WebShellTaskCancelRequest"];
3914
+ "application/json": components["schemas"]["WebShellWorkspaceFileReadRequest"];
2528
3915
  };
2529
3916
  };
2530
3917
  responses: {
2531
- /** @description Same authorized task cancellation semantics as the public API: key validation, current access, idempotent replay, then new-request capability, Session, task and storage-migration checks (409 workspace_unavailable under a migration fence). Replay returns the same operation and latest durable state. 202 is durable admission, completed is authority acceptance, and neither proves physical stop. Admission requires no other open operation on the Session (409 session_operation_active), as on the lifecycle routes. A requestId in the body becomes the response's X-Request-Id and stays out of the request digest. */
2532
- 202: {
3918
+ /** @description Authorized Workspace file result. */
3919
+ 200: {
2533
3920
  headers: {
2534
- "X-Request-Id": components["headers"]["RequestId"];
2535
3921
  [name: string]: unknown;
2536
3922
  };
2537
3923
  content: {
2538
- "application/json": components["schemas"]["WebShellCommandOperation"];
3924
+ "application/json": components["schemas"]["WebShellWorkspaceFileSnapshot"];
2539
3925
  };
2540
3926
  };
2541
3927
  400: components["responses"]["BadRequest"];
@@ -2543,10 +3929,10 @@ export interface operations {
2543
3929
  403: components["responses"]["Forbidden"];
2544
3930
  404: components["responses"]["NotFound"];
2545
3931
  409: components["responses"]["Conflict"];
2546
- 413: components["responses"]["PayloadTooLarge"];
3932
+ 503: components["responses"]["Unavailable"];
2547
3933
  };
2548
3934
  };
2549
- getWebShellToolResult: {
3935
+ getWebShellToolDetails: {
2550
3936
  parameters: {
2551
3937
  query?: never;
2552
3938
  header?: never;
@@ -2559,14 +3945,14 @@ export interface operations {
2559
3945
  };
2560
3946
  };
2561
3947
  responses: {
2562
- /** @description Authorized persisted tool result resource. */
3948
+ /** @description Bounded saved ReadFile/Shell input and text output, read on demand; requires a trusted actor and current Session/Workspace read access. Available to authorized readers without a feature switch. */
2563
3949
  200: {
2564
3950
  headers: {
2565
3951
  "Cache-Control"?: "private, no-store";
2566
3952
  [name: string]: unknown;
2567
3953
  };
2568
3954
  content: {
2569
- "application/json": components["schemas"]["ToolResultResponse"];
3955
+ "application/json": components["schemas"]["WebShellToolDetails"];
2570
3956
  };
2571
3957
  };
2572
3958
  /** @description Invalid request. */
@@ -2597,6 +3983,7 @@ export interface operations {
2597
3983
  "application/json": components["schemas"]["ErrorEnvelope"];
2598
3984
  };
2599
3985
  };
3986
+ 409: components["responses"]["Conflict"];
2600
3987
  413: components["responses"]["PayloadTooLarge"];
2601
3988
  /** @description Resource temporarily unavailable. */
2602
3989
  503: {
@@ -2609,7 +3996,7 @@ export interface operations {
2609
3996
  };
2610
3997
  };
2611
3998
  };
2612
- getWebShellArtifact: {
3999
+ webShellCompressContext: {
2613
4000
  parameters: {
2614
4001
  query?: never;
2615
4002
  header?: never;
@@ -2618,61 +4005,28 @@ export interface operations {
2618
4005
  };
2619
4006
  requestBody: {
2620
4007
  content: {
2621
- "application/json": components["schemas"]["WebShellArtifactRequest"];
4008
+ "application/json": components["schemas"]["WebShellContextCompressionRequest"];
2622
4009
  };
2623
4010
  };
2624
- responses: {
2625
- /** @description Authorized persisted artifact metadata. */
2626
- 200: {
2627
- headers: {
2628
- "Cache-Control"?: "private, no-store";
2629
- [name: string]: unknown;
2630
- };
2631
- content: {
2632
- "application/json": components["schemas"]["ArtifactResponse"];
2633
- };
2634
- };
2635
- /** @description Invalid request. */
2636
- 400: {
2637
- headers: {
2638
- [name: string]: unknown;
2639
- };
2640
- content: {
2641
- "application/json": components["schemas"]["ErrorEnvelope"];
2642
- };
2643
- };
2644
- /** @description Trusted actor required. */
2645
- 401: {
2646
- headers: {
2647
- [name: string]: unknown;
2648
- };
2649
- content: {
2650
- "application/json": components["schemas"]["ErrorEnvelope"];
2651
- };
2652
- };
2653
- 403: components["responses"]["Forbidden"];
2654
- /** @description Unknown or unreadable resource. */
2655
- 404: {
2656
- headers: {
2657
- [name: string]: unknown;
2658
- };
2659
- content: {
2660
- "application/json": components["schemas"]["ErrorEnvelope"];
2661
- };
2662
- };
2663
- 413: components["responses"]["PayloadTooLarge"];
2664
- /** @description Resource temporarily unavailable. */
2665
- 503: {
4011
+ responses: {
4012
+ /** @description Durable context compression operation. */
4013
+ 202: {
2666
4014
  headers: {
2667
4015
  [name: string]: unknown;
2668
4016
  };
2669
4017
  content: {
2670
- "application/json": components["schemas"]["ErrorEnvelope"];
4018
+ "application/json": components["schemas"]["WebShellContextCompressionOperation"];
2671
4019
  };
2672
4020
  };
4021
+ 400: components["responses"]["BadRequest"];
4022
+ 401: components["responses"]["Unauthorized"];
4023
+ 403: components["responses"]["Forbidden"];
4024
+ 404: components["responses"]["NotFound"];
4025
+ 409: components["responses"]["Conflict"];
4026
+ 413: components["responses"]["PayloadTooLarge"];
2673
4027
  };
2674
4028
  };
2675
- queryWebShellArtifacts: {
4029
+ queryWebShellSessionMcpManagement: {
2676
4030
  parameters: {
2677
4031
  query?: never;
2678
4032
  header?: never;
@@ -2681,22 +4035,27 @@ export interface operations {
2681
4035
  };
2682
4036
  requestBody: {
2683
4037
  content: {
2684
- "application/json": components["schemas"]["WebShellArtifactQueryRequest"];
4038
+ "application/json": components["schemas"]["WebShellMcpManagementQuery"];
2685
4039
  };
2686
4040
  };
2687
4041
  responses: {
2688
- /** @description Authorized artifact metadata page. */
4042
+ /** @description Session-local MCP settings and operation snapshot. Inventory describes published pins rather than live connection health; operation status omits inventory. */
2689
4043
  200: {
2690
4044
  headers: {
2691
- "Cache-Control"?: "private, no-store";
2692
4045
  [name: string]: unknown;
2693
4046
  };
2694
4047
  content: {
2695
- "application/json": components["schemas"]["WebShellArtifactPage"];
4048
+ "application/json": components["schemas"]["ManagedMcpManagementSnapshot"];
2696
4049
  };
2697
4050
  };
2698
- /** @description Invalid request. */
2699
- 400: {
4051
+ 400: components["responses"]["BadRequest"];
4052
+ 401: components["responses"]["Unauthorized"];
4053
+ 403: components["responses"]["Forbidden"];
4054
+ 404: components["responses"]["NotFound"];
4055
+ 409: components["responses"]["Conflict"];
4056
+ 413: components["responses"]["PayloadTooLarge"];
4057
+ /** @description The original MCP Runtime or management operation cannot be confirmed. Retry the same operation identity. */
4058
+ 503: {
2700
4059
  headers: {
2701
4060
  [name: string]: unknown;
2702
4061
  };
@@ -2704,27 +4063,37 @@ export interface operations {
2704
4063
  "application/json": components["schemas"]["ErrorEnvelope"];
2705
4064
  };
2706
4065
  };
2707
- /** @description Trusted actor required. */
2708
- 401: {
2709
- headers: {
2710
- [name: string]: unknown;
2711
- };
2712
- content: {
2713
- "application/json": components["schemas"]["ErrorEnvelope"];
2714
- };
4066
+ };
4067
+ };
4068
+ submitWebShellSessionMcpManagement: {
4069
+ parameters: {
4070
+ query?: never;
4071
+ header?: never;
4072
+ path?: never;
4073
+ cookie?: never;
4074
+ };
4075
+ requestBody: {
4076
+ content: {
4077
+ "application/json": components["schemas"]["WebShellMcpManagementSubmit"];
2715
4078
  };
2716
- 403: components["responses"]["Forbidden"];
2717
- /** @description Unknown or unreadable resource. */
2718
- 404: {
4079
+ };
4080
+ responses: {
4081
+ /** @description Session-local MCP settings and operation snapshot. Inventory describes published pins rather than live connection health; operation status omits inventory. */
4082
+ 200: {
2719
4083
  headers: {
2720
4084
  [name: string]: unknown;
2721
4085
  };
2722
4086
  content: {
2723
- "application/json": components["schemas"]["ErrorEnvelope"];
4087
+ "application/json": components["schemas"]["ManagedMcpManagementSnapshot"];
2724
4088
  };
2725
4089
  };
4090
+ 400: components["responses"]["BadRequest"];
4091
+ 401: components["responses"]["Unauthorized"];
4092
+ 403: components["responses"]["Forbidden"];
4093
+ 404: components["responses"]["NotFound"];
4094
+ 409: components["responses"]["Conflict"];
2726
4095
  413: components["responses"]["PayloadTooLarge"];
2727
- /** @description Resource temporarily unavailable. */
4096
+ /** @description The original MCP Runtime or management operation cannot be confirmed. Retry the same operation identity. */
2728
4097
  503: {
2729
4098
  headers: {
2730
4099
  [name: string]: unknown;
@@ -2735,7 +4104,7 @@ export interface operations {
2735
4104
  };
2736
4105
  };
2737
4106
  };
2738
- unarchiveWebShellSession: {
4107
+ queryWebShellSessionMcpManagementOperation: {
2739
4108
  parameters: {
2740
4109
  query?: never;
2741
4110
  header?: never;
@@ -2744,18 +4113,17 @@ export interface operations {
2744
4113
  };
2745
4114
  requestBody: {
2746
4115
  content: {
2747
- "application/json": components["schemas"]["WebShellLifecycleRequest"];
4116
+ "application/json": components["schemas"]["WebShellMcpManagementOperationQuery"];
2748
4117
  };
2749
4118
  };
2750
4119
  responses: {
2751
- /** @description Current WebShell Session; replay does not repeat the mutation. */
4120
+ /** @description Session-local MCP settings and operation snapshot. Inventory describes published pins rather than live connection health; operation status omits inventory. */
2752
4121
  200: {
2753
4122
  headers: {
2754
- "X-Qwen-Idempotent-Replay": components["headers"]["IdempotentReplay"];
2755
4123
  [name: string]: unknown;
2756
4124
  };
2757
4125
  content: {
2758
- "application/json": components["schemas"]["WebShellSession"];
4126
+ "application/json": components["schemas"]["ManagedMcpManagementSnapshot"];
2759
4127
  };
2760
4128
  };
2761
4129
  400: components["responses"]["BadRequest"];
@@ -2764,9 +4132,18 @@ export interface operations {
2764
4132
  404: components["responses"]["NotFound"];
2765
4133
  409: components["responses"]["Conflict"];
2766
4134
  413: components["responses"]["PayloadTooLarge"];
4135
+ /** @description The original MCP Runtime or management operation cannot be confirmed. Retry the same operation identity. */
4136
+ 503: {
4137
+ headers: {
4138
+ [name: string]: unknown;
4139
+ };
4140
+ content: {
4141
+ "application/json": components["schemas"]["ErrorEnvelope"];
4142
+ };
4143
+ };
2767
4144
  };
2768
4145
  };
2769
- webShellCreateWorkspace: {
4146
+ queryWebShellSessionRecovery: {
2770
4147
  parameters: {
2771
4148
  query?: never;
2772
4149
  header?: never;
@@ -2775,17 +4152,17 @@ export interface operations {
2775
4152
  };
2776
4153
  requestBody: {
2777
4154
  content: {
2778
- "application/json": components["schemas"]["WebShellWorkspaceCreateRequest"];
4155
+ "application/json": components["schemas"]["WebShellSessionRequest"];
2779
4156
  };
2780
4157
  };
2781
4158
  responses: {
2782
- /** @description Created Workspace or authorized same-key replay. */
4159
+ /** @description Current recovery evidence. */
2783
4160
  200: {
2784
4161
  headers: {
2785
4162
  [name: string]: unknown;
2786
4163
  };
2787
4164
  content: {
2788
- "application/json": components["schemas"]["WebShellWorkspace"];
4165
+ "application/json": components["schemas"]["SessionRecovery"];
2789
4166
  };
2790
4167
  };
2791
4168
  400: components["responses"]["BadRequest"];
@@ -2794,9 +4171,10 @@ export interface operations {
2794
4171
  404: components["responses"]["NotFound"];
2795
4172
  409: components["responses"]["Conflict"];
2796
4173
  413: components["responses"]["PayloadTooLarge"];
4174
+ 503: components["responses"]["Unavailable"];
2797
4175
  };
2798
4176
  };
2799
- queryWebShellSessionOptions: {
4177
+ recheckWebShellSessionRecovery: {
2800
4178
  parameters: {
2801
4179
  query?: never;
2802
4180
  header?: never;
@@ -2805,27 +4183,29 @@ export interface operations {
2805
4183
  };
2806
4184
  requestBody: {
2807
4185
  content: {
2808
- "application/json": components["schemas"]["WebShellSessionOptionsRequest"];
4186
+ "application/json": components["schemas"]["WebShellRecoveryRecheckRequest"];
2809
4187
  };
2810
4188
  };
2811
4189
  responses: {
2812
- /** @description Effective default and supported policies. */
2813
- 200: {
4190
+ /** @description Current recovery evidence; recheck admission is not settlement. */
4191
+ 202: {
2814
4192
  headers: {
2815
4193
  [name: string]: unknown;
2816
4194
  };
2817
4195
  content: {
2818
- "application/json": components["schemas"]["WebShellSessionOptions"];
4196
+ "application/json": components["schemas"]["SessionRecovery"];
2819
4197
  };
2820
4198
  };
2821
4199
  400: components["responses"]["BadRequest"];
2822
4200
  401: components["responses"]["Unauthorized"];
2823
4201
  403: components["responses"]["Forbidden"];
2824
4202
  404: components["responses"]["NotFound"];
4203
+ 409: components["responses"]["Conflict"];
2825
4204
  413: components["responses"]["PayloadTooLarge"];
4205
+ 503: components["responses"]["Unavailable"];
2826
4206
  };
2827
4207
  };
2828
- queryWebShellSessionModels: {
4208
+ webShellExportSession: {
2829
4209
  parameters: {
2830
4210
  query?: never;
2831
4211
  header?: never;
@@ -2834,28 +4214,28 @@ export interface operations {
2834
4214
  };
2835
4215
  requestBody: {
2836
4216
  content: {
2837
- "application/json": components["schemas"]["WebShellSessionModelsRequest"];
4217
+ "application/json": components["schemas"]["WebShellExportRequest"];
2838
4218
  };
2839
4219
  };
2840
4220
  responses: {
2841
- /** @description Session model options. */
4221
+ /** @description Immutable public item snapshot page. */
2842
4222
  200: {
2843
4223
  headers: {
2844
4224
  [name: string]: unknown;
2845
4225
  };
2846
4226
  content: {
2847
- "application/json": components["schemas"]["WebShellSessionModels"];
4227
+ "application/json": components["schemas"]["WebShellExportPage"];
2848
4228
  };
2849
4229
  };
2850
4230
  400: components["responses"]["BadRequest"];
2851
4231
  401: components["responses"]["Unauthorized"];
2852
4232
  403: components["responses"]["Forbidden"];
2853
4233
  404: components["responses"]["NotFound"];
2854
- 409: components["responses"]["Conflict"];
4234
+ 409: components["responses"]["CursorExpired"];
2855
4235
  413: components["responses"]["PayloadTooLarge"];
2856
4236
  };
2857
4237
  };
2858
- changeWebShellSessionModel: {
4238
+ webShellQueryUserMessages: {
2859
4239
  parameters: {
2860
4240
  query?: never;
2861
4241
  header?: never;
@@ -2864,17 +4244,17 @@ export interface operations {
2864
4244
  };
2865
4245
  requestBody: {
2866
4246
  content: {
2867
- "application/json": components["schemas"]["WebShellChangeModelRequest"];
4247
+ "application/json": components["schemas"]["WebShellUserMessageQuery"];
2868
4248
  };
2869
4249
  };
2870
4250
  responses: {
2871
- /** @description The admitted model selection, or the same original result on replay. */
4251
+ /** @description Authoritative queue snapshot */
2872
4252
  200: {
2873
4253
  headers: {
2874
4254
  [name: string]: unknown;
2875
4255
  };
2876
4256
  content: {
2877
- "application/json": components["schemas"]["WebShellModelChangeResult"];
4257
+ "application/json": components["schemas"]["UserMessageSnapshot"];
2878
4258
  };
2879
4259
  };
2880
4260
  400: components["responses"]["BadRequest"];
@@ -2883,9 +4263,10 @@ export interface operations {
2883
4263
  404: components["responses"]["NotFound"];
2884
4264
  409: components["responses"]["Conflict"];
2885
4265
  413: components["responses"]["PayloadTooLarge"];
4266
+ 503: components["responses"]["Unavailable"];
2886
4267
  };
2887
4268
  };
2888
- queryWebShellSessionApproval: {
4269
+ webShellCommandUserMessages: {
2889
4270
  parameters: {
2890
4271
  query?: never;
2891
4272
  header?: never;
@@ -2894,17 +4275,17 @@ export interface operations {
2894
4275
  };
2895
4276
  requestBody: {
2896
4277
  content: {
2897
- "application/json": components["schemas"]["WebShellSessionApprovalRequest"];
4278
+ "application/json": components["schemas"]["WebShellUserMessageCommand"];
2898
4279
  };
2899
4280
  };
2900
4281
  responses: {
2901
- /** @description The current policy options. */
4282
+ /** @description Authoritative queue snapshot */
2902
4283
  200: {
2903
4284
  headers: {
2904
4285
  [name: string]: unknown;
2905
4286
  };
2906
4287
  content: {
2907
- "application/json": components["schemas"]["WebShellSessionApproval"];
4288
+ "application/json": components["schemas"]["UserMessageSnapshot"];
2908
4289
  };
2909
4290
  };
2910
4291
  400: components["responses"]["BadRequest"];
@@ -2913,9 +4294,10 @@ export interface operations {
2913
4294
  404: components["responses"]["NotFound"];
2914
4295
  409: components["responses"]["Conflict"];
2915
4296
  413: components["responses"]["PayloadTooLarge"];
4297
+ 503: components["responses"]["Unavailable"];
2916
4298
  };
2917
4299
  };
2918
- changeWebShellSessionApproval: {
4300
+ queryWorkspaceExtensionPackages: {
2919
4301
  parameters: {
2920
4302
  query?: never;
2921
4303
  header?: never;
@@ -2924,17 +4306,17 @@ export interface operations {
2924
4306
  };
2925
4307
  requestBody: {
2926
4308
  content: {
2927
- "application/json": components["schemas"]["WebShellChangeApprovalRequest"];
4309
+ "application/json": components["schemas"]["WebShellExtensionWorkspaceQuery"];
2928
4310
  };
2929
4311
  };
2930
4312
  responses: {
2931
- /** @description The committed approval selection, or its original receipt on replay. */
4313
+ /** @description Persisted Workspace extension resource. Contains no settings values or executable recipes. */
2932
4314
  200: {
2933
4315
  headers: {
2934
4316
  [name: string]: unknown;
2935
4317
  };
2936
4318
  content: {
2937
- "application/json": components["schemas"]["WebShellApprovalChangeResult"];
4319
+ "application/json": components["schemas"]["ManagedExtensionPackageCatalog"];
2938
4320
  };
2939
4321
  };
2940
4322
  400: components["responses"]["BadRequest"];
@@ -2945,33 +4327,37 @@ export interface operations {
2945
4327
  413: components["responses"]["PayloadTooLarge"];
2946
4328
  };
2947
4329
  };
2948
- webShellQueryRuntimeNodes: {
4330
+ queryWorkspaceExtensionPackage: {
2949
4331
  parameters: {
2950
4332
  query?: never;
2951
4333
  header?: never;
2952
4334
  path?: never;
2953
4335
  cookie?: never;
2954
4336
  };
2955
- requestBody?: never;
4337
+ requestBody: {
4338
+ content: {
4339
+ "application/json": components["schemas"]["WebShellExtensionPackageQuery"];
4340
+ };
4341
+ };
2956
4342
  responses: {
2957
- /** @description SSH registration capability and authorized machine display names. */
4343
+ /** @description Persisted Workspace extension resource. Contains no settings values or executable recipes. */
2958
4344
  200: {
2959
4345
  headers: {
2960
- "X-Request-Id": components["headers"]["RequestId"];
2961
- "Cache-Control"?: "no-store";
2962
4346
  [name: string]: unknown;
2963
4347
  };
2964
4348
  content: {
2965
- "application/json": components["schemas"]["WebShellRuntimeNodePage"];
4349
+ "application/json": components["schemas"]["ManagedExtensionPackage"];
2966
4350
  };
2967
4351
  };
2968
4352
  400: components["responses"]["BadRequest"];
2969
4353
  401: components["responses"]["Unauthorized"];
2970
4354
  403: components["responses"]["Forbidden"];
4355
+ 404: components["responses"]["NotFound"];
4356
+ 409: components["responses"]["Conflict"];
2971
4357
  413: components["responses"]["PayloadTooLarge"];
2972
4358
  };
2973
4359
  };
2974
- webShellCheckWorkspaceDirectory: {
4360
+ queryWorkspaceExtensionPackageSettings: {
2975
4361
  parameters: {
2976
4362
  query?: never;
2977
4363
  header?: never;
@@ -2980,19 +4366,17 @@ export interface operations {
2980
4366
  };
2981
4367
  requestBody: {
2982
4368
  content: {
2983
- "application/json": components["schemas"]["WebShellWorkspaceDirectoryRequest"];
4369
+ "application/json": components["schemas"]["WebShellExtensionQuery"];
2984
4370
  };
2985
4371
  };
2986
4372
  responses: {
2987
- /** @description Validated canonical directory on the selected Linux or macOS node. */
4373
+ /** @description Persisted Workspace extension resource. Contains no settings values or executable recipes. */
2988
4374
  200: {
2989
4375
  headers: {
2990
- "X-Request-Id": components["headers"]["RequestId"];
2991
- "Cache-Control"?: "no-store";
2992
4376
  [name: string]: unknown;
2993
4377
  };
2994
4378
  content: {
2995
- "application/json": components["schemas"]["WebShellWorkspaceDirectory"];
4379
+ "application/json": components["schemas"]["ManagedExtensionPackageSettings"];
2996
4380
  };
2997
4381
  };
2998
4382
  400: components["responses"]["BadRequest"];
@@ -3001,19 +4385,9 @@ export interface operations {
3001
4385
  404: components["responses"]["NotFound"];
3002
4386
  409: components["responses"]["Conflict"];
3003
4387
  413: components["responses"]["PayloadTooLarge"];
3004
- /** @description The SSH bootstrap response is invalid. */
3005
- 502: {
3006
- headers: {
3007
- [name: string]: unknown;
3008
- };
3009
- content: {
3010
- "application/json": components["schemas"]["ErrorEnvelope"];
3011
- };
3012
- };
3013
- 503: components["responses"]["Unavailable"];
3014
4388
  };
3015
4389
  };
3016
- webShellGetWorkspaceOperation: {
4390
+ submitWorkspaceExtensionPackageSettings: {
3017
4391
  parameters: {
3018
4392
  query?: never;
3019
4393
  header?: never;
@@ -3022,29 +4396,28 @@ export interface operations {
3022
4396
  };
3023
4397
  requestBody: {
3024
4398
  content: {
3025
- "application/json": components["schemas"]["WebShellWorkspaceOperationRequest"];
4399
+ "application/json": components["schemas"]["WebShellExtensionSettingsSubmit"];
3026
4400
  };
3027
4401
  };
3028
4402
  responses: {
3029
- /** @description Latest durable state of the original actor-owned registration. */
4403
+ /** @description Persisted Workspace extension resource. Contains no settings values or executable recipes. */
3030
4404
  200: {
3031
4405
  headers: {
3032
- "X-Request-Id": components["headers"]["RequestId"];
3033
- "Cache-Control"?: "no-store";
3034
4406
  [name: string]: unknown;
3035
4407
  };
3036
4408
  content: {
3037
- "application/json": components["schemas"]["WebShellWorkspaceCreateOperation"];
4409
+ "application/json": components["schemas"]["ManagedExtensionPackageOperation"];
3038
4410
  };
3039
4411
  };
3040
4412
  400: components["responses"]["BadRequest"];
3041
4413
  401: components["responses"]["Unauthorized"];
3042
4414
  403: components["responses"]["Forbidden"];
3043
4415
  404: components["responses"]["NotFound"];
4416
+ 409: components["responses"]["Conflict"];
3044
4417
  413: components["responses"]["PayloadTooLarge"];
3045
4418
  };
3046
4419
  };
3047
- webShellRegisterWorkspace: {
4420
+ queryWorkspaceExtensionPackageOperation: {
3048
4421
  parameters: {
3049
4422
  query?: never;
3050
4423
  header?: never;
@@ -3053,19 +4426,17 @@ export interface operations {
3053
4426
  };
3054
4427
  requestBody: {
3055
4428
  content: {
3056
- "application/json": components["schemas"]["WebShellWorkspaceRegisterRequest"];
4429
+ "application/json": components["schemas"]["WebShellExtensionOperationQuery"];
3057
4430
  };
3058
4431
  };
3059
4432
  responses: {
3060
- /** @description Durable registration operation; repeated requests retain the original identity. */
3061
- 202: {
4433
+ /** @description Persisted Workspace extension resource. Contains no settings values or executable recipes. */
4434
+ 200: {
3062
4435
  headers: {
3063
- "X-Request-Id": components["headers"]["RequestId"];
3064
- "Cache-Control"?: "no-store";
3065
4436
  [name: string]: unknown;
3066
4437
  };
3067
4438
  content: {
3068
- "application/json": components["schemas"]["WebShellWorkspaceCreateOperation"];
4439
+ "application/json": components["schemas"]["ManagedExtensionPackageOperation"];
3069
4440
  };
3070
4441
  };
3071
4442
  400: components["responses"]["BadRequest"];
@@ -3076,26 +4447,33 @@ export interface operations {
3076
4447
  413: components["responses"]["PayloadTooLarge"];
3077
4448
  };
3078
4449
  };
3079
- queryWebShellWorkspaceDirectories: {
4450
+ publishWebShellWorkspaceExtensionPackage: {
3080
4451
  parameters: {
3081
- query?: never;
3082
- header?: never;
4452
+ query: {
4453
+ workspaceId: string;
4454
+ extensionId?: string;
4455
+ packageDigest: string;
4456
+ manifest: string;
4457
+ };
4458
+ header: {
4459
+ "Idempotency-Key": components["parameters"]["IdempotencyKey"];
4460
+ };
3083
4461
  path?: never;
3084
4462
  cookie?: never;
3085
4463
  };
3086
4464
  requestBody: {
3087
4465
  content: {
3088
- "application/json": components["schemas"]["WebShellWorkspaceDirectoryQueryRequest"];
4466
+ "application/octet-stream": string;
3089
4467
  };
3090
4468
  };
3091
4469
  responses: {
3092
- /** @description Authorized existing directories. */
4470
+ /** @description Persisted Workspace extension resource. Contains no settings values or executable recipes. */
3093
4471
  200: {
3094
4472
  headers: {
3095
4473
  [name: string]: unknown;
3096
4474
  };
3097
4475
  content: {
3098
- "application/json": components["schemas"]["WebShellWorkspaceDirectoryPage"];
4476
+ "application/json": components["schemas"]["ManagedExtensionPackageOperation"];
3099
4477
  };
3100
4478
  };
3101
4479
  400: components["responses"]["BadRequest"];
@@ -3103,9 +4481,10 @@ export interface operations {
3103
4481
  403: components["responses"]["Forbidden"];
3104
4482
  404: components["responses"]["NotFound"];
3105
4483
  409: components["responses"]["Conflict"];
4484
+ 413: components["responses"]["PayloadTooLarge"];
3106
4485
  };
3107
4486
  };
3108
- queryWebShellSessionMcp: {
4487
+ webShellSessionExtensionsQuery: {
3109
4488
  parameters: {
3110
4489
  query?: never;
3111
4490
  header?: never;
@@ -3114,27 +4493,37 @@ export interface operations {
3114
4493
  };
3115
4494
  requestBody: {
3116
4495
  content: {
3117
- "application/json": components["schemas"]["WebShellSessionRequest"];
4496
+ "application/json": components["schemas"]["WebShellExtensionSessionQuery"];
3118
4497
  };
3119
4498
  };
3120
4499
  responses: {
3121
- /** @description Session MCP catalog snapshot. */
4500
+ /** @description Persisted or reconciled Session configuration; contains no settings values or private executable recipes. */
3122
4501
  200: {
3123
4502
  headers: {
3124
4503
  [name: string]: unknown;
3125
4504
  };
3126
4505
  content: {
3127
- "application/json": components["schemas"]["PublicMcpCatalog"];
4506
+ "application/json": components["schemas"]["ManagedExtensionManagementSnapshot"];
3128
4507
  };
3129
4508
  };
3130
4509
  400: components["responses"]["BadRequest"];
3131
4510
  401: components["responses"]["Unauthorized"];
3132
4511
  403: components["responses"]["Forbidden"];
3133
4512
  404: components["responses"]["NotFound"];
4513
+ 409: components["responses"]["Conflict"];
3134
4514
  413: components["responses"]["PayloadTooLarge"];
4515
+ /** @description The original MCP Runtime or management operation cannot be confirmed. Retry the same operation identity. */
4516
+ 503: {
4517
+ headers: {
4518
+ [name: string]: unknown;
4519
+ };
4520
+ content: {
4521
+ "application/json": components["schemas"]["ErrorEnvelope"];
4522
+ };
4523
+ };
3135
4524
  };
3136
4525
  };
3137
- queryWebShellSessionSkills: {
4526
+ webShellSessionExtensionsSubmit: {
3138
4527
  parameters: {
3139
4528
  query?: never;
3140
4529
  header?: never;
@@ -3143,17 +4532,17 @@ export interface operations {
3143
4532
  };
3144
4533
  requestBody: {
3145
4534
  content: {
3146
- "application/json": components["schemas"]["WebShellSessionRequest"];
4535
+ "application/json": components["schemas"]["WebShellExtensionSessionSubmit"];
3147
4536
  };
3148
4537
  };
3149
4538
  responses: {
3150
- /** @description Session static Skill metadata. */
4539
+ /** @description Persisted or reconciled Session configuration; contains no settings values or private executable recipes. */
3151
4540
  200: {
3152
4541
  headers: {
3153
4542
  [name: string]: unknown;
3154
4543
  };
3155
4544
  content: {
3156
- "application/json": components["schemas"]["WebShellSessionSkills"];
4545
+ "application/json": components["schemas"]["ManagedExtensionManagementSnapshot"];
3157
4546
  };
3158
4547
  };
3159
4548
  400: components["responses"]["BadRequest"];
@@ -3162,9 +4551,18 @@ export interface operations {
3162
4551
  404: components["responses"]["NotFound"];
3163
4552
  409: components["responses"]["Conflict"];
3164
4553
  413: components["responses"]["PayloadTooLarge"];
4554
+ /** @description The original MCP Runtime or management operation cannot be confirmed. Retry the same operation identity. */
4555
+ 503: {
4556
+ headers: {
4557
+ [name: string]: unknown;
4558
+ };
4559
+ content: {
4560
+ "application/json": components["schemas"]["ErrorEnvelope"];
4561
+ };
4562
+ };
3165
4563
  };
3166
4564
  };
3167
- webShellWorkspaceFilesQuery: {
4565
+ webShellSessionExtensionsContinue: {
3168
4566
  parameters: {
3169
4567
  query?: never;
3170
4568
  header?: never;
@@ -3173,17 +4571,17 @@ export interface operations {
3173
4571
  };
3174
4572
  requestBody: {
3175
4573
  content: {
3176
- "application/json": components["schemas"]["WebShellWorkspaceFileQueryRequest"];
4574
+ "application/json": components["schemas"]["WebShellExtensionSessionOperation"];
3177
4575
  };
3178
4576
  };
3179
4577
  responses: {
3180
- /** @description Authorized Workspace file result. */
4578
+ /** @description Persisted or reconciled Session configuration; contains no settings values or private executable recipes. */
3181
4579
  200: {
3182
4580
  headers: {
3183
4581
  [name: string]: unknown;
3184
4582
  };
3185
4583
  content: {
3186
- "application/json": components["schemas"]["WebShellWorkspaceFilePage"];
4584
+ "application/json": components["schemas"]["ManagedExtensionManagementSnapshot"];
3187
4585
  };
3188
4586
  };
3189
4587
  400: components["responses"]["BadRequest"];
@@ -3191,10 +4589,19 @@ export interface operations {
3191
4589
  403: components["responses"]["Forbidden"];
3192
4590
  404: components["responses"]["NotFound"];
3193
4591
  409: components["responses"]["Conflict"];
3194
- 503: components["responses"]["Unavailable"];
4592
+ 413: components["responses"]["PayloadTooLarge"];
4593
+ /** @description The original MCP Runtime or management operation cannot be confirmed. Retry the same operation identity. */
4594
+ 503: {
4595
+ headers: {
4596
+ [name: string]: unknown;
4597
+ };
4598
+ content: {
4599
+ "application/json": components["schemas"]["ErrorEnvelope"];
4600
+ };
4601
+ };
3195
4602
  };
3196
4603
  };
3197
- webShellWorkspaceFilesRead: {
4604
+ webShellSessionExtensionsRecoverPrevious: {
3198
4605
  parameters: {
3199
4606
  query?: never;
3200
4607
  header?: never;
@@ -3203,17 +4610,17 @@ export interface operations {
3203
4610
  };
3204
4611
  requestBody: {
3205
4612
  content: {
3206
- "application/json": components["schemas"]["WebShellWorkspaceFileReadRequest"];
4613
+ "application/json": components["schemas"]["WebShellExtensionSessionOperation"];
3207
4614
  };
3208
4615
  };
3209
4616
  responses: {
3210
- /** @description Authorized Workspace file result. */
4617
+ /** @description Persisted or reconciled Session configuration; contains no settings values or private executable recipes. */
3211
4618
  200: {
3212
4619
  headers: {
3213
4620
  [name: string]: unknown;
3214
4621
  };
3215
4622
  content: {
3216
- "application/json": components["schemas"]["WebShellWorkspaceFileSnapshot"];
4623
+ "application/json": components["schemas"]["ManagedExtensionManagementSnapshot"];
3217
4624
  };
3218
4625
  };
3219
4626
  400: components["responses"]["BadRequest"];
@@ -3221,34 +4628,53 @@ export interface operations {
3221
4628
  403: components["responses"]["Forbidden"];
3222
4629
  404: components["responses"]["NotFound"];
3223
4630
  409: components["responses"]["Conflict"];
3224
- 503: components["responses"]["Unavailable"];
4631
+ 413: components["responses"]["PayloadTooLarge"];
4632
+ /** @description The original MCP Runtime or management operation cannot be confirmed. Retry the same operation identity. */
4633
+ 503: {
4634
+ headers: {
4635
+ [name: string]: unknown;
4636
+ };
4637
+ content: {
4638
+ "application/json": components["schemas"]["ErrorEnvelope"];
4639
+ };
4640
+ };
3225
4641
  };
3226
4642
  };
3227
- getWebShellToolDetails: {
4643
+ webShellWorkspaceFilesUpload: {
3228
4644
  parameters: {
3229
- query?: never;
4645
+ query: {
4646
+ workspaceId: string;
4647
+ cwdRelative: string;
4648
+ path: string;
4649
+ expectedScopeRevision: string;
4650
+ uploadId: string;
4651
+ };
3230
4652
  header?: never;
3231
4653
  path?: never;
3232
4654
  cookie?: never;
3233
4655
  };
3234
4656
  requestBody: {
3235
4657
  content: {
3236
- "application/json": components["schemas"]["WebShellToolResultRequest"];
4658
+ "application/octet-stream": string;
3237
4659
  };
3238
4660
  };
3239
4661
  responses: {
3240
- /** @description Bounded saved ReadFile/Shell input and text output, read on demand; requires a trusted actor and current Session/Workspace read access. Available to authorized readers without a feature switch. */
4662
+ /** @description Workspace upload result. */
3241
4663
  200: {
3242
4664
  headers: {
3243
- "Cache-Control"?: "private, no-store";
3244
4665
  [name: string]: unknown;
3245
4666
  };
3246
4667
  content: {
3247
- "application/json": components["schemas"]["WebShellToolDetails"];
4668
+ "application/json": components["schemas"]["WebShellWorkspaceFileUploadResult"];
3248
4669
  };
3249
4670
  };
3250
- /** @description Invalid request. */
3251
- 400: {
4671
+ 400: components["responses"]["BadRequest"];
4672
+ 401: components["responses"]["Unauthorized"];
4673
+ 403: components["responses"]["Forbidden"];
4674
+ 404: components["responses"]["NotFound"];
4675
+ 409: components["responses"]["Conflict"];
4676
+ /** @description The upload exceeds the 8 MiB binary limit. */
4677
+ 413: {
3252
4678
  headers: {
3253
4679
  [name: string]: unknown;
3254
4680
  };
@@ -3256,8 +4682,8 @@ export interface operations {
3256
4682
  "application/json": components["schemas"]["ErrorEnvelope"];
3257
4683
  };
3258
4684
  };
3259
- /** @description Trusted actor required. */
3260
- 401: {
4685
+ /** @description Uploads require unencoded application/octet-stream bytes. */
4686
+ 415: {
3261
4687
  headers: {
3262
4688
  [name: string]: unknown;
3263
4689
  };
@@ -3265,27 +4691,37 @@ export interface operations {
3265
4691
  "application/json": components["schemas"]["ErrorEnvelope"];
3266
4692
  };
3267
4693
  };
3268
- 403: components["responses"]["Forbidden"];
3269
- /** @description Unknown or unreadable resource. */
3270
- 404: {
3271
- headers: {
3272
- [name: string]: unknown;
3273
- };
3274
- content: {
3275
- "application/json": components["schemas"]["ErrorEnvelope"];
3276
- };
4694
+ 503: components["responses"]["Unavailable"];
4695
+ };
4696
+ };
4697
+ webShellWorkspaceFilesUploadQuery: {
4698
+ parameters: {
4699
+ query?: never;
4700
+ header?: never;
4701
+ path?: never;
4702
+ cookie?: never;
4703
+ };
4704
+ requestBody: {
4705
+ content: {
4706
+ "application/json": components["schemas"]["WebShellWorkspaceFileUploadQueryRequest"];
3277
4707
  };
3278
- 409: components["responses"]["Conflict"];
3279
- 413: components["responses"]["PayloadTooLarge"];
3280
- /** @description Resource temporarily unavailable. */
3281
- 503: {
4708
+ };
4709
+ responses: {
4710
+ /** @description Workspace upload result. */
4711
+ 200: {
3282
4712
  headers: {
3283
4713
  [name: string]: unknown;
3284
4714
  };
3285
4715
  content: {
3286
- "application/json": components["schemas"]["ErrorEnvelope"];
4716
+ "application/json": components["schemas"]["WebShellWorkspaceFileUploadStatus"];
3287
4717
  };
3288
4718
  };
4719
+ 400: components["responses"]["BadRequest"];
4720
+ 401: components["responses"]["Unauthorized"];
4721
+ 403: components["responses"]["Forbidden"];
4722
+ 404: components["responses"]["NotFound"];
4723
+ 409: components["responses"]["Conflict"];
4724
+ 503: components["responses"]["Unavailable"];
3289
4725
  };
3290
4726
  };
3291
4727
  }