@qwen-code/web-shell 0.25.2 → 0.25.3-nightly.20261020.82bd240ad0

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 (387) hide show
  1. package/NOTICES.txt +1272 -0
  2. package/README.md +92 -30
  3. package/dist/{PierreFilePreview-Dk1ZVwYX.js → PierreFilePreview-DbJyUSpR.js} +3218 -5181
  4. package/dist/{SpreadsheetPreview-Cfub7Cau.js → SpreadsheetPreview-CQGPYcLQ.js} +2 -2
  5. package/dist/WorkspaceFileBrowser-CBvTlBuz.js +9102 -0
  6. package/dist/{agents-route-By3UwziU.js → agents-route-Bo9fr292.js} +2 -2
  7. package/dist/{cpp-Bb6c2fiE.js → cpp-C0xArK63.js} +12 -8
  8. package/dist/daemon-react-sdk.js +1 -1
  9. package/dist/docx-preview-BucJeYCm.js +5570 -0
  10. package/dist/{index-1CTTJPhC.js → index-DmU0i0mi.js} +57719 -52504
  11. package/dist/index.js +22 -22
  12. package/dist/ruby-vDzP41xB.js +41 -0
  13. package/dist/sw.js +1 -1
  14. package/dist/transcript.js +11249 -10493
  15. package/dist/types/App.d.ts +9 -3
  16. package/dist/types/adapters/messageTypes.d.ts +3 -0
  17. package/dist/types/adapters/transcriptToMessages.d.ts +3 -1
  18. package/dist/types/components/ChatContextHeader.d.ts +3 -1
  19. package/dist/types/components/ChatEditor.d.ts +9 -0
  20. package/dist/types/components/ChatPane.d.ts +2 -1
  21. package/dist/types/components/ContextUsagePopover.d.ts +2 -1
  22. package/dist/types/components/MessageDeletionToolbar.d.ts +4 -0
  23. package/dist/types/components/MessageItem.d.ts +2 -0
  24. package/dist/types/components/MessageList.d.ts +2 -0
  25. package/dist/types/components/MessageTimestamp.d.ts +5 -2
  26. package/dist/types/components/ModelRefreshControl.d.ts +5 -0
  27. package/dist/types/components/SplitView.d.ts +2 -1
  28. package/dist/types/components/StreamingStatus.d.ts +2 -1
  29. package/dist/types/components/artifacts/ArtifactPanel.d.ts +6 -1
  30. package/dist/types/components/artifacts/CodeReviewArtifactDetail.d.ts +5 -0
  31. package/dist/types/components/artifacts/DocxPreview.d.ts +8 -0
  32. package/dist/types/components/artifacts/TrajectoryExecutions.d.ts +15 -0
  33. package/dist/types/components/artifacts/TrajectoryInspector.d.ts +5 -1
  34. package/dist/types/components/artifacts/TrajectoryOverview.d.ts +2 -0
  35. package/dist/types/components/artifacts/TrajectorySummaryBar.d.ts +35 -0
  36. package/dist/types/components/artifacts/TrajectoryToolbar.d.ts +24 -0
  37. package/dist/types/components/artifacts/artifactUtils.d.ts +7 -0
  38. package/dist/types/components/artifacts/file-name-display.d.ts +1 -0
  39. package/dist/types/components/artifacts/files-messages.d.ts +30 -0
  40. package/dist/types/components/artifacts/token-usage-messages.d.ts +9 -0
  41. package/dist/types/components/artifacts/token-usage-messages.transcript-stub.d.ts +7 -0
  42. package/dist/types/components/artifacts/useArtifactWorkspaceTarget.d.ts +6 -2
  43. package/dist/types/components/channels/channel-platform.d.ts +1 -1
  44. package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +3 -1
  45. package/dist/types/components/dialogs/ApprovalModeDialog.d.ts +3 -1
  46. package/dist/types/components/dialogs/ModelDialog.d.ts +3 -1
  47. package/dist/types/components/managed/ManagedSessionsPage.d.ts +4 -1
  48. package/dist/types/components/managed/RemoteWorkspaceRegistration.d.ts +9 -0
  49. package/dist/types/components/managed/WorkspaceBindingCreator.d.ts +2 -1
  50. package/dist/types/components/managed/generated/managed-agent-api.d.ts +1436 -278
  51. package/dist/types/components/managed/java-managed-agent-client.d.ts +61 -0
  52. package/dist/types/components/managed/managed-agent-provider.d.ts +118 -0
  53. package/dist/types/components/managed/managed-input.d.ts +7 -0
  54. package/dist/types/components/managed/managed-pending-storage.d.ts +2 -0
  55. package/dist/types/components/managed/managed-session-messages.d.ts +1 -0
  56. package/dist/types/components/managed/managed-session-storage.d.ts +1 -1
  57. package/dist/types/components/managed/managed-workspace-messages.d.ts +7 -0
  58. package/dist/types/components/managed/managed-workspace-messages.transcript-stub.d.ts +7 -0
  59. package/dist/types/components/managed/use-managed-approval-change.d.ts +25 -0
  60. package/dist/types/components/managed/use-managed-file-references.d.ts +19 -0
  61. package/dist/types/components/managed/use-managed-mcp.d.ts +3 -0
  62. package/dist/types/components/managed/use-managed-model-change.d.ts +23 -0
  63. package/dist/types/components/managed/use-managed-skills.d.ts +12 -0
  64. package/dist/types/components/managed/use-managed-tasks.d.ts +1 -0
  65. package/dist/types/components/message-deletion-messages.d.ts +7 -0
  66. package/dist/types/components/message-deletion-messages.transcript-stub.d.ts +7 -0
  67. package/dist/types/components/messages/TasksStatusMessage.d.ts +6 -0
  68. package/dist/types/components/messages/toolFormatting.d.ts +1 -0
  69. package/dist/types/components/messages/tools/ToolDetailsContext.d.ts +13 -0
  70. package/dist/types/components/sidebar/WebShellSidebar.d.ts +4 -1
  71. package/dist/types/components/ui/alert.d.ts +1 -1
  72. package/dist/types/components/ui/drawer.d.ts +1 -1
  73. package/dist/types/constants/sessions.d.ts +1 -0
  74. package/dist/types/customization.d.ts +4 -1
  75. package/dist/types/daemon/session/actions.d.ts +10 -2
  76. package/dist/types/daemon/session/types.d.ts +9 -2
  77. package/dist/types/hooks/useApprovalModes.d.ts +2 -0
  78. package/dist/types/hooks/useAtMentionSources.d.ts +5 -0
  79. package/dist/types/hooks/useComposerCore.d.ts +2 -2
  80. package/dist/types/hooks/useInputHistory.d.ts +0 -4
  81. package/dist/types/hooks/useMessageDeletion.d.ts +33 -0
  82. package/dist/types/hooks/useModelRefresh.d.ts +6 -0
  83. package/dist/types/index.d.ts +2 -1
  84. package/dist/types/trajectory/execution-messages.d.ts +9 -0
  85. package/dist/types/trajectory/execution-messages.transcript-stub.d.ts +7 -0
  86. package/dist/types/trajectory/project-trajectory-executions.d.ts +23 -0
  87. package/dist/types/trajectory/summarizeTrajectory.d.ts +5 -0
  88. package/dist/types/trajectory/trajectory-status.d.ts +51 -0
  89. package/dist/types/trajectory/useTrajectoryWindow.d.ts +2 -0
  90. package/dist/types/transcript.d.ts +2 -2
  91. package/dist/types/utils/composerTag.d.ts +1 -0
  92. package/dist/types/utils/dom.d.ts +1 -0
  93. package/dist/types/utils/message-deletion.d.ts +20 -0
  94. package/dist/types/utils/planMode.d.ts +5 -1
  95. package/dist/types/utils/plural.d.ts +7 -0
  96. package/dist/types/voice/voice-workspace-target.d.ts +2 -0
  97. package/dist/{useDaemonMidTurnInjected-ClQx7vwI.js → useDaemonMidTurnInjected-ctHWTA_N.js} +6183 -5515
  98. package/dist/{vue-d9VL4uFG.js → vue-IHw0KG71.js} +23 -21
  99. package/package.json +9 -4
  100. package/dist/WorkspaceFileBrowser-BF1_WOlE.js +0 -11389
  101. package/dist/abap-Y8Dl9g_6.js +0 -6
  102. package/dist/actionscript-3-BaF0d0xQ.js +0 -6
  103. package/dist/ada-BF2KzuNn.js +0 -6
  104. package/dist/ahk-B-WqUgDL.js +0 -6
  105. package/dist/ahk2-SbcCPlaJ.js +0 -6
  106. package/dist/andromeeda-BbmzSJq1.js +0 -4
  107. package/dist/angular-html-rmyRipUB.js +0 -32
  108. package/dist/angular-ts-gqGZGIqw.js +0 -21
  109. package/dist/apache-BUjz-sD2.js +0 -6
  110. package/dist/apex-DvkHwMsp.js +0 -6
  111. package/dist/apl-9WGfvSCD.js +0 -16
  112. package/dist/applescript-BPx7YFFu.js +0 -6
  113. package/dist/ara-Z2fSOxSw.js +0 -6
  114. package/dist/asciidoc-BiIPQCNW.js +0 -6
  115. package/dist/asm-BTWLY5ym.js +0 -6
  116. package/dist/astro-B3VnZ88h.js +0 -18
  117. package/dist/aurora-x-BwoVEUWZ.js +0 -4
  118. package/dist/awk-Fb0P9dkn.js +0 -6
  119. package/dist/ayu-dark-DJoqd4M9.js +0 -4
  120. package/dist/ayu-light-BzXEJRJ-.js +0 -4
  121. package/dist/ayu-mirage-BJ2oZGzi.js +0 -4
  122. package/dist/ballerina-oZK-YekG.js +0 -6
  123. package/dist/bat-ydjv7YKs.js +0 -6
  124. package/dist/beancount-B97e4I_p.js +0 -6
  125. package/dist/berry-DODBq_Ff.js +0 -6
  126. package/dist/bibtex-EULQRLY5.js +0 -6
  127. package/dist/bicep-BorU73w0.js +0 -6
  128. package/dist/bird2-pg9hCHlc.js +0 -6
  129. package/dist/blade-C1Ndts_b.js +0 -20
  130. package/dist/bsl-D_YKmA0K.js +0 -8
  131. package/dist/c3-CFUossGW.js +0 -6
  132. package/dist/cadence-02UX7mW8.js +0 -6
  133. package/dist/cairo-DM6WF2e3.js +0 -8
  134. package/dist/catppuccin-frappe-DUuBHM65.js +0 -4
  135. package/dist/catppuccin-latte-BNGb0x5j.js +0 -4
  136. package/dist/catppuccin-macchiato-BxrBWMCk.js +0 -4
  137. package/dist/catppuccin-mocha-CuiVuFkm.js +0 -4
  138. package/dist/chapel-eL5CQ0M-.js +0 -8
  139. package/dist/clarity-9DleLt1s.js +0 -6
  140. package/dist/clojure-CXJfHrL3.js +0 -6
  141. package/dist/cmake-BJz8BOTU.js +0 -6
  142. package/dist/cobol-Dl6_7gJe.js +0 -10
  143. package/dist/codeowners-Bt9yU6NX.js +0 -6
  144. package/dist/codeql-DHkodjjI.js +0 -6
  145. package/dist/coffee-DGBR_nr_.js +0 -8
  146. package/dist/common-lisp-EVqT9Zhp.js +0 -6
  147. package/dist/coq-5TmQn6M5.js +0 -6
  148. package/dist/crystal-Bfb0oPlr.js +0 -18
  149. package/dist/csv-CmYOceLb.js +0 -6
  150. package/dist/cue-ZzumE7IT.js +0 -6
  151. package/dist/cypher-jpdmjtA6.js +0 -6
  152. package/dist/d-CBagWSwH.js +0 -6
  153. package/dist/dark-plus-pUHDTVV0.js +0 -4
  154. package/dist/dart-K6TBxHBr.js +0 -6
  155. package/dist/dax-CcDT-8dH.js +0 -6
  156. package/dist/desktop-B93p9R9O.js +0 -6
  157. package/dist/dotenv-To_iU2bW.js +0 -6
  158. package/dist/dracula-BtZx2Kac.js +0 -4
  159. package/dist/dracula-soft-BKa-aqBv.js +0 -4
  160. package/dist/dream-maker-PAx17jaB.js +0 -6
  161. package/dist/edge-Qug5O-Uv.js +0 -12
  162. package/dist/elixir-jJSGlzPp.js +0 -8
  163. package/dist/elm-BtNbw_Cd.js +0 -8
  164. package/dist/emacs-lisp--TAIYkU3.js +0 -6
  165. package/dist/erb-B9A6WGNp.js +0 -10
  166. package/dist/erlang-DNcDT8Hi.js +0 -8
  167. package/dist/everforest-dark-DMCBqXCK.js +0 -4
  168. package/dist/everforest-light-BbXl82Em.js +0 -4
  169. package/dist/fennel-N4WcXuKx.js +0 -6
  170. package/dist/fish-BTDEUgqH.js +0 -6
  171. package/dist/fluent-BMXUxfv1.js +0 -6
  172. package/dist/fortran-fixed-form-B67KFkXH.js +0 -8
  173. package/dist/fortran-free-form-CwqYvCLJ.js +0 -6
  174. package/dist/fsharp-CYOiIVNx.js +0 -8
  175. package/dist/gdresource-B6Cnl39M.js +0 -10
  176. package/dist/gdscript-BWeFgEe_.js +0 -6
  177. package/dist/gdshader-Bk8fF6yr.js +0 -6
  178. package/dist/genie-DzUvd7U9.js +0 -6
  179. package/dist/gherkin-DHRaV0YP.js +0 -6
  180. package/dist/git-commit-Bd32YZ0K.js +0 -8
  181. package/dist/git-rebase-ZWUFO_T4.js +0 -8
  182. package/dist/github-dark-default-BJPUVz4H.js +0 -4
  183. package/dist/github-dark-dimmed-DUshB20C.js +0 -4
  184. package/dist/github-dark-high-contrast-D3aGCnF8.js +0 -4
  185. package/dist/github-light-default-D99KPAby.js +0 -4
  186. package/dist/github-light-high-contrast-BbmZE-Mp.js +0 -4
  187. package/dist/gleam-Bv284lvN.js +0 -6
  188. package/dist/glimmer-js-B-ut3b08.js +0 -14
  189. package/dist/glimmer-ts-CDiMEfki.js +0 -14
  190. package/dist/glsl-CkUcVZNK.js +0 -8
  191. package/dist/gn-B0BSgybI.js +0 -6
  192. package/dist/gnuplot-yPG9-sE_.js +0 -6
  193. package/dist/graphql-CBu2ehBn.js +0 -14
  194. package/dist/groovy-CJQTphOW.js +0 -6
  195. package/dist/gruvbox-dark-hard-C5HOtKIh.js +0 -4
  196. package/dist/gruvbox-dark-medium-FVgwJHuz.js +0 -4
  197. package/dist/gruvbox-dark-soft-B46F314v.js +0 -4
  198. package/dist/gruvbox-light-hard-CJD38wDZ.js +0 -4
  199. package/dist/gruvbox-light-medium-BlIhMYTA.js +0 -4
  200. package/dist/gruvbox-light-soft-DoPHyLVZ.js +0 -4
  201. package/dist/hack-p63ac3SB.js +0 -10
  202. package/dist/haml-CM7CpQHU.js +0 -10
  203. package/dist/handlebars-DfCj1TEO.js +0 -14
  204. package/dist/haskell-WeIwNIP6.js +0 -6
  205. package/dist/haxe-CfMPOItY.js +0 -6
  206. package/dist/hcl-D438OF-I.js +0 -6
  207. package/dist/hjson-DYBUbqOl.js +0 -6
  208. package/dist/hlsl-Bk8TCZNL.js +0 -6
  209. package/dist/horizon-CJQ10nlf.js +0 -4
  210. package/dist/horizon-bright-2WzHy-Vo.js +0 -4
  211. package/dist/houston-BDYrDoDW.js +0 -4
  212. package/dist/html-derivative-DG8ajaXt.js +0 -8
  213. package/dist/http-DLvAkeD-.js +0 -14
  214. package/dist/hurl-CgkFN90t.js +0 -12
  215. package/dist/hxml-DV49tgRk.js +0 -8
  216. package/dist/hy-Brt5EZ7-.js +0 -6
  217. package/dist/imba-CimUv-Uh.js +0 -6
  218. package/dist/jinja-BHOV3ePe.js +0 -11
  219. package/dist/jison-DdreslRX.js +0 -8
  220. package/dist/json5-BT4Fjg39.js +0 -6
  221. package/dist/jsonl-BGuvDmy9.js +0 -6
  222. package/dist/jsonnet-Bx2cfsXg.js +0 -6
  223. package/dist/jssm-BcADi6EI.js +0 -6
  224. package/dist/julia-BxeXMQSJ.js +0 -16
  225. package/dist/just-CJ4EVsJK.js +0 -18
  226. package/dist/kanagawa-dragon-CQySOoTe.js +0 -4
  227. package/dist/kanagawa-lotus-CJRfph3t.js +0 -4
  228. package/dist/kanagawa-wave-Cu5PDRcJ.js +0 -4
  229. package/dist/kdl-BNOv9TC3.js +0 -6
  230. package/dist/kusto-BlqsQffZ.js +0 -6
  231. package/dist/laserwave-6a00oqik.js +0 -4
  232. package/dist/latex-BfhWTgWa.js +0 -8
  233. package/dist/lean-BnVxaZxY.js +0 -6
  234. package/dist/less-B1GLI2Di.js +0 -6
  235. package/dist/light-plus-CZuVqSLX.js +0 -4
  236. package/dist/liquid-D7d9j__1.js +0 -14
  237. package/dist/llvm-DMgfhPsy.js +0 -6
  238. package/dist/log-Al8wyEFV.js +0 -6
  239. package/dist/logo-DBa4JDzV.js +0 -6
  240. package/dist/luau-1oy8yWWo.js +0 -6
  241. package/dist/marko-D0HGUaN1.js +0 -14
  242. package/dist/material-theme-D6KBX41T.js +0 -4
  243. package/dist/material-theme-darker-CkRroheE.js +0 -4
  244. package/dist/material-theme-lighter-BUBw43Yz.js +0 -4
  245. package/dist/material-theme-ocean-ClGX14Ja.js +0 -4
  246. package/dist/material-theme-palenight-C1RVm8K1.js +0 -4
  247. package/dist/matlab-BOAaUVP0.js +0 -6
  248. package/dist/mdc-BI6stFvl.js +0 -12
  249. package/dist/mdx-BOhZZUJ8.js +0 -6
  250. package/dist/mermaid-xImSC5pG.js +0 -6
  251. package/dist/min-dark-C7ak0t6c.js +0 -4
  252. package/dist/min-light-CKFxVcPp.js +0 -4
  253. package/dist/mipsasm-CTx18fBl.js +0 -6
  254. package/dist/mojo-DjLViMAF.js +0 -6
  255. package/dist/monokai-B1aFr0iD.js +0 -4
  256. package/dist/moonbit-qkz9oK4f.js +0 -6
  257. package/dist/move-DoIXlL5f.js +0 -6
  258. package/dist/narrat-DmhDCBs-.js +0 -6
  259. package/dist/nextflow-BTRbEaxp.js +0 -8
  260. package/dist/nextflow-groovy-BJmbcwBu.js +0 -6
  261. package/dist/nginx-D7O4WoB1.js +0 -8
  262. package/dist/night-owl-Bm2rzalh.js +0 -4
  263. package/dist/night-owl-light-CBI5u5kw.js +0 -4
  264. package/dist/nim-DG7jk4Ht.js +0 -20
  265. package/dist/nix-fTRXMGic.js +0 -9
  266. package/dist/nord-CC5OiUXg.js +0 -4
  267. package/dist/nsis-CtKAvjMM.js +0 -6
  268. package/dist/nushell-CgtwSlO3.js +0 -6
  269. package/dist/objective-c-Itk8tzmv.js +0 -6
  270. package/dist/ocaml-eSVK32Eg.js +0 -6
  271. package/dist/odin-BItnF517.js +0 -6
  272. package/dist/one-dark-pro-C5d58L87.js +0 -4
  273. package/dist/one-light-LkMrt1Cf.js +0 -4
  274. package/dist/openscad-Sp5uZ6f2.js +0 -6
  275. package/dist/org-C5S6WgHQ.js +0 -100
  276. package/dist/pascal-xy8pJNns.js +0 -6
  277. package/dist/perl-vJzCkjjH.js +0 -16
  278. package/dist/pierre-dark-D52vmD1t.js +0 -4
  279. package/dist/pierre-dark-protanopia-deuteranopia-Coza2ydH.js +0 -4
  280. package/dist/pierre-dark-soft-D0o08Lfm.js +0 -4
  281. package/dist/pierre-dark-tritanopia-BP-A_WyN.js +0 -4
  282. package/dist/pierre-dark-vibrant-BjUzbiGn.js +0 -4
  283. package/dist/pierre-light-CzM3AfLn.js +0 -4
  284. package/dist/pierre-light-protanopia-deuteranopia-DFclCKch.js +0 -4
  285. package/dist/pierre-light-soft-m3tr_5b6.js +0 -4
  286. package/dist/pierre-light-tritanopia-Dh0MAsTp.js +0 -4
  287. package/dist/pierre-light-vibrant-BZSORskK.js +0 -4
  288. package/dist/pkl-C-zSNmaA.js +0 -6
  289. package/dist/plastic-CSTz3KZp.js +0 -4
  290. package/dist/plsql-pVbGZfOv.js +0 -6
  291. package/dist/po-BNfHvqmm.js +0 -6
  292. package/dist/poimandres-C-VADXHD.js +0 -4
  293. package/dist/polar-CAZahv3u.js +0 -6
  294. package/dist/postcss-05aHdL-n.js +0 -6
  295. package/dist/powerquery-DI9HkTvs.js +0 -6
  296. package/dist/powershell-DwQB8F1X.js +0 -6
  297. package/dist/prisma-K8HipzoA.js +0 -6
  298. package/dist/prolog-C5-yg4TO.js +0 -6
  299. package/dist/proto-C7QgialS.js +0 -6
  300. package/dist/pug-DWY5n4I0.js +0 -12
  301. package/dist/puppet-CUJHmnxV.js +0 -6
  302. package/dist/purescript-rUfGld-4.js +0 -6
  303. package/dist/qml-rTNXsquU.js +0 -8
  304. package/dist/qmldir-BInDYbpo.js +0 -6
  305. package/dist/qss-AeJTysr_.js +0 -6
  306. package/dist/r-BPg6DDVi.js +0 -6
  307. package/dist/racket-B83wSAja.js +0 -6
  308. package/dist/raku-nEQ4ZJJ7.js +0 -6
  309. package/dist/razor-DfCpierF.js +0 -10
  310. package/dist/rbs-CssrqYJT.js +0 -6
  311. package/dist/red-ZH55KNtO.js +0 -4
  312. package/dist/reg-m_s_Kiip.js +0 -6
  313. package/dist/regexp-BazyLpPg.js +0 -6
  314. package/dist/rel-BcRfyd6Q.js +0 -6
  315. package/dist/riscv-Ce8MAQLP.js +0 -6
  316. package/dist/ron-DCEEQypA.js +0 -6
  317. package/dist/rose-pine-CBkWCxr6.js +0 -4
  318. package/dist/rose-pine-dawn-B6ai6aO_.js +0 -4
  319. package/dist/rose-pine-moon-c2UTtcmd.js +0 -4
  320. package/dist/rosmsg-Cz0w1km8.js +0 -6
  321. package/dist/rst-DLMli9w9.js +0 -22
  322. package/dist/ruby-CbJ15R3t.js +0 -30
  323. package/dist/sas-CPEc4gxJ.js +0 -8
  324. package/dist/sass-DxHp5rTx.js +0 -6
  325. package/dist/scala-B_IFinKC.js +0 -6
  326. package/dist/scheme-BCRWuEm4.js +0 -6
  327. package/dist/scss-BoS_aSJ3.js +0 -8
  328. package/dist/sdbl-B7T8abf4.js +0 -6
  329. package/dist/shaderlab-Cr62-Wb4.js +0 -8
  330. package/dist/shellsession-DiDJNQdy.js +0 -8
  331. package/dist/slack-dark-i7wN4OET.js +0 -4
  332. package/dist/slack-ochin-ndHf0LoP.js +0 -4
  333. package/dist/smalltalk-4m7fIk5G.js +0 -6
  334. package/dist/smithy-BqBKlq_3.js +0 -6
  335. package/dist/snazzy-light-BlSJXAu4.js +0 -4
  336. package/dist/solarized-dark-DkqKcBES.js +0 -4
  337. package/dist/solarized-light-PzVcYh5f.js +0 -4
  338. package/dist/solidity-CA32r_X5.js +0 -6
  339. package/dist/soy-zKSLgLn7.js +0 -8
  340. package/dist/sparql-B0KWFEri.js +0 -8
  341. package/dist/splunk-CRXR8A9s.js +0 -6
  342. package/dist/ssh-config-DP-hNVbF.js +0 -6
  343. package/dist/stata-CfG8pWjZ.js +0 -8
  344. package/dist/stylus-CyKEU1Ej.js +0 -6
  345. package/dist/surrealql-C-LAJEpk.js +0 -8
  346. package/dist/svelte-DwQZuWui.js +0 -14
  347. package/dist/synthwave-84-NU3C_KFZ.js +0 -4
  348. package/dist/system-verilog-CT3NeZzU.js +0 -6
  349. package/dist/systemd-C-4qm6XH.js +0 -6
  350. package/dist/talonscript-CFF3LF_O.js +0 -6
  351. package/dist/tasl-Cg_WBUAe.js +0 -6
  352. package/dist/tcl-DN7buRTF.js +0 -6
  353. package/dist/templ-kEkd0dRE.js +0 -12
  354. package/dist/terraform-DGvcn9zM.js +0 -6
  355. package/dist/tex-CXAy09re.js +0 -8
  356. package/dist/tokyo-night-DP4TmcQl.js +0 -4
  357. package/dist/ts-tags-CheYVw2x.js +0 -41
  358. package/dist/tsv-BtvSkaG0.js +0 -6
  359. package/dist/turtle-_H59FV7D.js +0 -6
  360. package/dist/twig-CDICZk1J.js +0 -18
  361. package/dist/types/components/artifacts/TrajectoryFilters.d.ts +0 -15
  362. package/dist/typespec-ClIfKiQP.js +0 -6
  363. package/dist/typst-E3pfxOv6.js +0 -120
  364. package/dist/v-CxJbuWik.js +0 -6
  365. package/dist/vala-uxaPR7d1.js +0 -6
  366. package/dist/vb-BD2YOVbP.js +0 -6
  367. package/dist/verilog-BHj4jYdq.js +0 -6
  368. package/dist/vesper-DIoW1cuD.js +0 -4
  369. package/dist/vhdl-CUlNa8ac.js +0 -6
  370. package/dist/viml-DsfA-sWm.js +0 -6
  371. package/dist/vitesse-black-BoGvW84i.js +0 -4
  372. package/dist/vitesse-dark-Cym-eLtO.js +0 -4
  373. package/dist/vitesse-light-CcmG315c.js +0 -4
  374. package/dist/vue-html-j9xNEdu3.js +0 -8
  375. package/dist/vue-vine-Hkz8HiFl.js +0 -18
  376. package/dist/vyper-CPQuu50u.js +0 -6
  377. package/dist/wasm-BBXxrAl7.js +0 -6
  378. package/dist/wenyan-pbVjoM9_.js +0 -6
  379. package/dist/wgsl-DY4iK1q1.js +0 -6
  380. package/dist/wikitext-Z-MoUasO.js +0 -6
  381. package/dist/wit-CQMQOlTg.js +0 -6
  382. package/dist/wolfram-Dz4KXISs.js +0 -6
  383. package/dist/xsl-BmSZphgC.js +0 -8
  384. package/dist/zenscript-CxBjpf9c.js +0 -6
  385. package/dist/zig-Vm0PO9wB.js +0 -6
  386. /package/dist/{docker-CsHqm9tx.js → dockerfile-CsHqm9tx.js} +0 -0
  387. /package/dist/{make-CsMclxtr.js → makefile-CsMclxtr.js} +0 -0
@@ -412,15 +412,336 @@ export interface paths {
412
412
  patch?: never;
413
413
  trace?: never;
414
414
  };
415
+ "/api/agent/web-shell/v1/workspaces/create": {
416
+ parameters: {
417
+ query?: never;
418
+ header?: never;
419
+ path?: never;
420
+ cookie?: never;
421
+ };
422
+ get?: never;
423
+ put?: never;
424
+ /** @description Create an empty Workspace under the operator-controlled root, or supply sourceWorkspaceId and cwdRelative together to select an existing directory under an ACTIVE ROOT Workspace owned by the actor. Existing-directory creation shares its verified storage, config and policy and persists a default working directory. The actor-scoped idempotency key pins the normalized request and source generation. Completed replay checks current access and never restores grants. */
425
+ post: operations["webShellCreateWorkspace"];
426
+ delete?: never;
427
+ options?: never;
428
+ head?: never;
429
+ patch?: never;
430
+ trace?: never;
431
+ };
432
+ "/api/agent/web-shell/v1/session-options/query": {
433
+ parameters: {
434
+ query?: never;
435
+ header?: never;
436
+ path?: never;
437
+ cookie?: never;
438
+ };
439
+ get?: never;
440
+ put?: never;
441
+ /** @description Read effective approval policy options for an Agent in the authenticated tenant. Requires an actor. Does not create a Session or change an existing policy. */
442
+ post: operations["queryWebShellSessionOptions"];
443
+ delete?: never;
444
+ options?: never;
445
+ head?: never;
446
+ patch?: never;
447
+ trace?: never;
448
+ };
449
+ "/api/agent/web-shell/v1/session-models/query": {
450
+ parameters: {
451
+ query?: never;
452
+ header?: never;
453
+ path?: never;
454
+ cookie?: never;
455
+ };
456
+ get?: never;
457
+ put?: never;
458
+ /** @description Read the allowed model catalog and current model selection of a readable Session. No credentials or provider routes are returned. */
459
+ post: operations["queryWebShellSessionModels"];
460
+ delete?: never;
461
+ options?: never;
462
+ head?: never;
463
+ patch?: never;
464
+ trace?: never;
465
+ };
466
+ "/api/agent/web-shell/v1/session-models/change": {
467
+ parameters: {
468
+ query?: never;
469
+ header?: never;
470
+ path?: never;
471
+ cookie?: never;
472
+ };
473
+ get?: never;
474
+ put?: never;
475
+ /** @description Change the model of an idle Workspace Session for later Turns. The actor-scoped idempotency key replays an earlier completed change before current admission checks; expectedRevision prevents overwriting a concurrent selection. */
476
+ post: operations["changeWebShellSessionModel"];
477
+ delete?: never;
478
+ options?: never;
479
+ head?: never;
480
+ patch?: never;
481
+ trace?: never;
482
+ };
483
+ "/api/agent/web-shell/v1/session-approval/query": {
484
+ parameters: {
485
+ query?: never;
486
+ header?: never;
487
+ path?: never;
488
+ cookie?: never;
489
+ };
490
+ get?: never;
491
+ put?: never;
492
+ /** @description Read the current policy and owner-authorized change support of a readable Workspace Session. */
493
+ post: operations["queryWebShellSessionApproval"];
494
+ delete?: never;
495
+ options?: never;
496
+ head?: never;
497
+ patch?: never;
498
+ trace?: never;
499
+ };
500
+ "/api/agent/web-shell/v1/session-approval/change": {
501
+ parameters: {
502
+ query?: never;
503
+ header?: never;
504
+ path?: never;
505
+ cookie?: never;
506
+ };
507
+ get?: never;
508
+ put?: never;
509
+ /** @description Change the next-user-Turn policy of an idle eligible Workspace Session: built-in qwen-code or a stored AgentDefinition on exactly hosted-workspace-files/1 or hosted-workspace-shell/1,/2. Requires its recorded owner, current OPERATOR or OWNER access and Session-specific Harness feature support. Changes are revision-checked and actor/session-scoped idempotent. Definition creation policy and pins remain immutable. */
510
+ post: operations["changeWebShellSessionApproval"];
511
+ delete?: never;
512
+ options?: never;
513
+ head?: never;
514
+ patch?: never;
515
+ trace?: never;
516
+ };
517
+ "/api/agent/web-shell/v1/runtime-nodes/query": {
518
+ parameters: {
519
+ query?: never;
520
+ header?: never;
521
+ path?: never;
522
+ cookie?: never;
523
+ };
524
+ get?: never;
525
+ put?: never;
526
+ /** @description Lists only administrator-configured SSH nodes authorized for the current tenant and actor. Requires a trusted actor. Registration is disabled by default and answers 200 with supported=false and an empty data array; an enabled deployment may answer supported=true with no authorized nodes. Node credentials, SSH aliases and server paths are not exposed. This read starts no worker. */
527
+ post: operations["webShellQueryRuntimeNodes"];
528
+ delete?: never;
529
+ options?: never;
530
+ head?: never;
531
+ patch?: never;
532
+ trace?: never;
533
+ };
534
+ "/api/agent/web-shell/v1/workspaces/check-directory": {
535
+ parameters: {
536
+ query?: never;
537
+ header?: never;
538
+ path?: never;
539
+ cookie?: never;
540
+ };
541
+ get?: never;
542
+ put?: never;
543
+ /** @description Checks the configured Node.js and pinned qwen-code versions, allowed directory range, existing canonical directory and access permissions over SSH. Requires an enabled deployment and an exact tenant/actor node grant; disabled registration answers 404 ssh_runtime_disabled and an unknown or unauthorized node answers 403 runtime_node_forbidden. This is a preview: registration revalidates the directory and never creates a directory, clones a repository or starts a worker. */
544
+ post: operations["webShellCheckWorkspaceDirectory"];
545
+ delete?: never;
546
+ options?: never;
547
+ head?: never;
548
+ patch?: never;
549
+ trace?: never;
550
+ };
551
+ "/api/agent/web-shell/v1/workspaces/operations/get": {
552
+ parameters: {
553
+ query?: never;
554
+ header?: never;
555
+ path?: never;
556
+ cookie?: never;
557
+ };
558
+ get?: never;
559
+ put?: never;
560
+ /** @description Reads only a Workspace registration owned by the current tenant and actor; an unknown operation or another actor's operation answers 404 operation_not_found. Queries and accepted registration settlement remain available when new registration is disabled. Pending or running operations may resume their original registration attempt. A registration refused before it reserved its directory fails. One that may have reached its node is recovery_blocked and keeps the directory reserved while Java reads the node again, never registering anything: the registration's marker completes it, and a root without the marker, or holding another directory, fails it and releases the directory. Querying never unlocks it or starts a Runtime worker. */
561
+ post: operations["webShellGetWorkspaceOperation"];
562
+ delete?: never;
563
+ options?: never;
564
+ head?: never;
565
+ patch?: never;
566
+ trace?: never;
567
+ };
568
+ "/api/agent/web-shell/v1/workspaces/register": {
569
+ parameters: {
570
+ query?: never;
571
+ header?: never;
572
+ path?: never;
573
+ cookie?: never;
574
+ };
575
+ get?: never;
576
+ put?: never;
577
+ /** @description Admits actor-scoped, idempotent registration of an existing remote directory. The request body carries idempotencyKey; a retry with the same nodeId, path and displayName returns the original operation and its latest durable state, even after new registration is disabled or node admission is revoked. Reusing the key for different content answers 409 idempotency_conflict. Fresh admission requires an enabled deployment and an authorized node (404 ssh_runtime_disabled or 403 runtime_node_forbidden). A completed operation atomically creates the Workspace and creator OWNER grant. 202 does not mean registration is complete; query the operation, then read the Workspace and its canCreateSession hint. This operation creates no Session and starts no Runtime worker. requestId is trace-only and excluded from the request digest. */
578
+ post: operations["webShellRegisterWorkspace"];
579
+ delete?: never;
580
+ options?: never;
581
+ head?: never;
582
+ patch?: never;
583
+ trace?: never;
584
+ };
585
+ "/api/agent/web-shell/v1/workspaces/directories/query": {
586
+ parameters: {
587
+ query?: never;
588
+ header?: never;
589
+ path?: never;
590
+ cookie?: never;
591
+ };
592
+ get?: never;
593
+ put?: never;
594
+ /** @description List bounded immediate real directories on the selected Workspace storage host. Requires an authenticated OWNER of the ACTIVE ROOT Workspace and verified LOCAL storage. Refuses traversal, symlinks and reserved maintenance directories; never uses the ordinary daemon filesystem. Root paths are disclosed only within this authorized scope. */
595
+ post: operations["queryWebShellWorkspaceDirectories"];
596
+ delete?: never;
597
+ options?: never;
598
+ head?: never;
599
+ patch?: never;
600
+ trace?: never;
601
+ };
602
+ "/api/agent/web-shell/v1/session-mcp/query": {
603
+ parameters: {
604
+ query?: never;
605
+ header?: never;
606
+ path?: never;
607
+ cookie?: never;
608
+ };
609
+ get?: never;
610
+ put?: never;
611
+ /** @description Read the selected Session's sanitized, committed MCP catalog. Requires a trusted actor and Workspace read access. Discovery states describe the published snapshot, not live Runtime health. Does not configure servers, discover capabilities or execute tools, resources or prompts. */
612
+ post: operations["queryWebShellSessionMcp"];
613
+ delete?: never;
614
+ options?: never;
615
+ head?: never;
616
+ patch?: never;
617
+ trace?: never;
618
+ };
619
+ "/api/agent/web-shell/v1/session-skills/query": {
620
+ parameters: {
621
+ query?: never;
622
+ header?: never;
623
+ path?: never;
624
+ cookie?: never;
625
+ };
626
+ get?: never;
627
+ put?: never;
628
+ /** @description Read only names and descriptions from the Session's pinned static Skill catalog. Requires a trusted actor and Workspace read access. Never resolves the latest AgentDefinition or discovers host Skills. */
629
+ post: operations["queryWebShellSessionSkills"];
630
+ delete?: never;
631
+ options?: never;
632
+ head?: never;
633
+ patch?: never;
634
+ trace?: never;
635
+ };
636
+ "/api/agent/web-shell/v1/workspaces/files/query": {
637
+ parameters: {
638
+ query?: never;
639
+ header?: never;
640
+ path?: never;
641
+ cookie?: never;
642
+ };
643
+ get?: never;
644
+ put?: never;
645
+ /**
646
+ * Read-only Workspace file query
647
+ * @description Browse directories or search file names within the persisted Workspace working directory. Requires a trusted actor with current OPERATOR or OWNER access to an ACTIVE Workspace, the deployment Workspace-files opt-in, and verified LOCAL or SSH_LOCAL storage. Authorization and binding are rechecked after I/O. Paths are relative to the working directory; host paths and Runtime credentials are never returned. Unsupported storage never falls back to the local daemon, and no Session, worker or model request is created.
648
+ */
649
+ post: operations["webShellWorkspaceFilesQuery"];
650
+ delete?: never;
651
+ options?: never;
652
+ head?: never;
653
+ patch?: never;
654
+ trace?: never;
655
+ };
656
+ "/api/agent/web-shell/v1/workspaces/files/read": {
657
+ parameters: {
658
+ query?: never;
659
+ header?: never;
660
+ path?: never;
661
+ cookie?: never;
662
+ };
663
+ get?: never;
664
+ put?: never;
665
+ /**
666
+ * Read-only Workspace file read
667
+ * @description Read one selection-time snapshot of a nonempty, NUL-free UTF-8 file, at most 24 KiB, using the scope revision returned by query. Requires a trusted actor with current OPERATOR or OWNER access to an ACTIVE Workspace, the deployment Workspace-files opt-in, and verified LOCAL or SSH_LOCAL storage. Authorization and binding are rechecked after I/O. Paths are relative to the working directory; host paths and Runtime credentials are never returned. Unsupported storage never falls back to the local daemon, and no Session, worker or model request is created.
668
+ */
669
+ post: operations["webShellWorkspaceFilesRead"];
670
+ delete?: never;
671
+ options?: never;
672
+ head?: never;
673
+ patch?: never;
674
+ trace?: never;
675
+ };
676
+ "/api/agent/web-shell/v1/tool-details/get": {
677
+ parameters: {
678
+ query?: never;
679
+ header?: never;
680
+ path?: never;
681
+ cookie?: never;
682
+ };
683
+ get?: never;
684
+ put?: never;
685
+ post: operations["getWebShellToolDetails"];
686
+ delete?: never;
687
+ options?: never;
688
+ head?: never;
689
+ patch?: never;
690
+ trace?: never;
691
+ };
415
692
  }
416
693
  export type webhooks = Record<string, never>;
417
694
  export interface components {
418
695
  schemas: {
419
- InputBlock: {
696
+ PublicMcpCatalog: {
697
+ /** @constant */
698
+ object: "agent.mcp_catalog";
699
+ /** Format: uuid */
700
+ session_id: string;
701
+ servers: components["schemas"]["PublicMcpServerCatalog"][];
702
+ };
703
+ PublicMcpServerCatalog: {
704
+ server_id: string;
705
+ server_revision: number;
706
+ /** @description The pinned catalog revision; null while no catalog has been published. */
707
+ catalog_revision: number | null;
708
+ tools: components["schemas"]["PublicMcpTool"][];
709
+ resources: components["schemas"]["PublicMcpResource"][];
710
+ prompts: components["schemas"]["PublicMcpPrompt"][];
711
+ discovery: components["schemas"]["PublicMcpDiscovery"];
712
+ };
713
+ PublicMcpTool: {
714
+ name: string;
715
+ description?: string;
716
+ input_schema: {
717
+ [key: string]: unknown;
718
+ };
719
+ };
720
+ PublicMcpResource: {
721
+ name: string;
722
+ uri: string;
723
+ description?: string;
724
+ mime_type?: string;
725
+ };
726
+ PublicMcpPrompt: {
727
+ name: string;
728
+ description?: string;
729
+ arguments?: components["schemas"]["PublicMcpPromptArgument"][];
730
+ };
731
+ PublicMcpPromptArgument: {
732
+ name: string;
733
+ description?: string;
734
+ required?: boolean;
735
+ };
736
+ PublicMcpDiscovery: {
420
737
  /** @enum {string} */
421
- type: "input_text";
422
- text: string;
738
+ tools: "complete" | "partial" | "failed" | "stale";
739
+ /** @enum {string} */
740
+ resources: "complete" | "partial" | "failed" | "stale";
741
+ /** @enum {string} */
742
+ prompts: "complete" | "partial" | "failed" | "stale";
423
743
  };
744
+ InputBlock: components["schemas"]["InputTextBlock"] | components["schemas"]["InputFileBlock"] | components["schemas"]["InputImageBlock"];
424
745
  PublicArtifact: {
425
746
  /** @constant */
426
747
  object: "agent.artifact";
@@ -476,10 +797,17 @@ export interface components {
476
797
  environmentId?: string | null;
477
798
  /** @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. */
478
799
  title?: string | null;
479
- /** @description Each block adds to a 4,000,000-character aggregate admission budget per command (per-block 1,000,000-character cap applies). Admission ceiling only: a command whose serialized prompt or durable Session-store record exceeds the Hosted Harness's 64 KiB durable-record limit is accepted and then fails the Turn with hosted_harness_rejected. */
800
+ /** @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. */
480
801
  input?: components["schemas"]["InputBlock"][];
481
802
  metadata?: components["schemas"]["WebShellMetadata"];
482
803
  workspace?: components["schemas"]["WebShellWorkspaceSelection"];
804
+ /**
805
+ * @description Optional initial execution policy for Workspace creation, validated against the resolved Agent and profile. Omission preserves its default and idempotency digest. Independent of planMode.
806
+ * @enum {string}
807
+ */
808
+ approvalMode?: "default" | "auto-edit" | "yolo";
809
+ /** @description Persisted public Plan overlay, independent of execution permission. Omission on a change preserves the selected state. */
810
+ planMode?: boolean;
483
811
  };
484
812
  WebShellSubmitRequest: {
485
813
  /** @description Trace correlation only. */
@@ -487,9 +815,15 @@ export interface components {
487
815
  idempotencyKey: string;
488
816
  /** Format: uuid */
489
817
  sessionId: string;
490
- /** @description Each block adds to a 4,000,000-character aggregate admission budget per command (per-block 1,000,000-character cap applies). Admission ceiling only: a command whose serialized prompt or durable Session-store record exceeds the Hosted Harness's 64 KiB durable-record limit is accepted and then fails the Turn with hosted_harness_rejected. */
818
+ /** @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. */
491
819
  input?: components["schemas"]["InputBlock"][];
492
820
  metadata?: components["schemas"]["WebShellMetadata"];
821
+ /**
822
+ * @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.
823
+ * @default harness_confirmed
824
+ * @enum {string}
825
+ */
826
+ admissionProfile?: "harness_confirmed" | "java_durable";
493
827
  };
494
828
  WebShellCancelRequest: {
495
829
  /** @description Trace correlation only. */
@@ -498,18 +832,29 @@ export interface components {
498
832
  /** Format: uuid */
499
833
  sessionId: string;
500
834
  turnId: string;
835
+ /**
836
+ * @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.
837
+ * @default harness_confirmed
838
+ * @enum {string}
839
+ */
840
+ admissionProfile?: "harness_confirmed" | "java_durable";
501
841
  };
502
842
  /** @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. */
503
843
  WebShellMetadata: {
504
844
  [key: string]: unknown;
505
845
  } | null;
506
- /** @description With durable_operations enabled, all three target fields are returned. accepted means Java durable delivery responsibility, not model execution. Missing fields retain the deployed legacy response semantics. */
846
+ /** @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. */
507
847
  WebShellAdmission: {
508
848
  /** Format: uuid */
509
849
  sessionId: string;
510
850
  turnId?: string | null;
511
851
  status: string;
512
852
  replayed: boolean;
853
+ operationId?: string;
854
+ /** @enum {string} */
855
+ admissionStage?: "java_durable" | "harness_confirmed";
856
+ /** @enum {string} */
857
+ deliveryState?: "pending" | "leased" | "confirmed" | "blocked";
513
858
  };
514
859
  WebShellTurn: {
515
860
  turnId: string;
@@ -540,13 +885,36 @@ export interface components {
540
885
  lastSequence: number;
541
886
  workspace?: components["schemas"]["WebShellWorkspaceContext"];
542
887
  capabilities: components["schemas"]["WebShellSessionCapabilities"];
543
- };
888
+ /**
889
+ * @description Current effective approval policy; initialApprovalMode retains the immutable creation policy.
890
+ * @enum {string}
891
+ */
892
+ approvalMode?: "default" | "auto-edit" | "yolo";
893
+ modelContext?: components["schemas"]["WebShellModelContext"];
894
+ modelSelection?: components["schemas"]["WebShellModelSelection"];
895
+ /** Format: int64 */
896
+ approvalRevision?: number;
897
+ /**
898
+ * @description Immutable creation-time policy, used to confirm creation replay.
899
+ * @enum {string}
900
+ */
901
+ initialApprovalMode?: "default" | "auto-edit" | "yolo";
902
+ /** @description Persisted public Plan overlay, independent of execution permission. Omission on a change preserves the selected state. */
903
+ planMode?: boolean;
904
+ /** @description Optional deployment capability; missing means false. */
905
+ planModeSupported?: boolean;
906
+ };
544
907
  WebShellSessionCapabilities: {
545
908
  /**
546
909
  * @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.
547
910
  * @default false
548
911
  */
549
912
  cwdChange?: boolean;
913
+ /**
914
+ * @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.
915
+ * @default false
916
+ */
917
+ durableOperations?: boolean;
550
918
  /** @default false */
551
919
  actions: boolean;
552
920
  /**
@@ -576,8 +944,14 @@ export interface components {
576
944
  * @default false
577
945
  */
578
946
  sessionDelete?: boolean;
579
- /** @description Present only for persisted Shell Sessions, with no schema default; files and unbound Sessions omit it. True when Workspace files, Shell deployment admission and persisted default/auto-edit approval are valid. False prevents fresh sending. Disabling only the Shell flag preserves accepted cancellation and approval while Workspace files remain enabled and persisted approval remains valid; files-off or invalid approval can refuse attachment. This capability does not override authorization or recovery refusals. */
947
+ /** @description Present only for persisted Shell Sessions, with no schema default; files and unbound Sessions omit it. True when Workspace files, Shell deployment admission and a valid persisted approval mode are valid. False prevents fresh sending. Disabling only the Shell flag preserves accepted cancellation and approval while Workspace files remain enabled and persisted approval remains valid; files-off or invalid approval can refuse attachment. This capability does not override authorization or recovery refusals. */
580
948
  foregroundShell?: boolean;
949
+ /** @description The caller may request an idle Session model change using the server model catalog. Missing means unsupported; authorization and revision admission still apply. */
950
+ modelChange?: boolean;
951
+ /** @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. */
952
+ approvalModeChange?: boolean;
953
+ /** @description Optional deployment capability; missing means false. */
954
+ inputAttachments?: boolean;
581
955
  };
582
956
  WebShellSessionPage: {
583
957
  data: components["schemas"]["WebShellSession"][];
@@ -702,6 +1076,10 @@ export interface components {
702
1076
  canCreateSession: boolean;
703
1077
  /** @enum {string} */
704
1078
  state: "active" | "draining" | "removed";
1079
+ /** @description Persisted default working directory for new WebShell Sessions; absent means dot. */
1080
+ defaultCwdRelative?: string;
1081
+ /** @description Current actor owns this active root Workspace; directory discovery rechecks authorization and native storage. */
1082
+ canSelectDirectory?: boolean;
705
1083
  };
706
1084
  WebShellWorkspacePage: {
707
1085
  data: components["schemas"]["WebShellWorkspace"][];
@@ -715,6 +1093,12 @@ export interface components {
715
1093
  workspaceContext: boolean;
716
1094
  /** @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. */
717
1095
  workspaceBinding: boolean;
1096
+ /** @description Supports creating empty Workspaces under the operator-controlled root. Missing or false means unsupported; current actor and server admission checks still apply. */
1097
+ workspaceCreation?: boolean;
1098
+ /** @description Supports effective Session policy options and explicit Workspace-bound creation policy. Missing or false means unsupported. */
1099
+ approvalModeSelection?: boolean;
1100
+ /** @description Supports browsing and selecting existing directories on authorized Linux storage; absent means unsupported. */
1101
+ workspaceDirectorySelection?: boolean;
718
1102
  };
719
1103
  /** @description Same authorized explicit default as default_workspace, including when outside this page; null if absent or not creatable. A non-null default is active and has canCreateSession=true. */
720
1104
  defaultWorkspace: (components["schemas"]["WebShellWorkspace"] & {
@@ -778,7 +1162,7 @@ export interface components {
778
1162
  allowText: boolean;
779
1163
  options: components["schemas"]["WebShellActionOption"][];
780
1164
  };
781
- /** @description Receipt IDs are opaque authorized product handles, not private journal or storage refs. Input/cancel completion is command acceptance, not Turn completion or physical stop. Action completion may only record one vote. Lifecycle completion requires its cleanup facts; archive may remain java_durable because Java is its authority. Task cancel 202 is Java durable admission; completion means the authority durably recorded cancellation and returned a receipt, not that the task stopped. Task cancel failed proves non-acceptance and no further delivery, with a failure code; recovery_blocked means acceptance is unknown and needs reconciliation before re-execution. Its status is never cancelled. Physical settlement and an unknown physical outcome belong to the task, independently of operation acceptance. A completed task cancel carries admission stage harness_confirmed and delivery state confirmed with the authority's receipt; failed and recovery_blocked carry java_durable and blocked, so they are never delivered again without reconciliation. */
1165
+ /** @description Receipt IDs are opaque authorized product handles, not private journal or storage refs. Input completion means a Harness admitted its Turn, not that the Turn completed; an input whose Turn failed after a submission no Harness answered is recovery_blocked until the Session journal proves whether a Harness admitted it. For submit_input and task cancel, recovery_blocked means acceptance is unknown: the operation is never delivered again and settles only from its own durable evidence. For close and delete it is a published wait that delivery re-drives. Cancel completion means its Turn reached cancelled; a cancel fails with turn_already_settled when its Turn ended otherwise, except one that already existed when its Turn failed with managed_runtime_recovery_blocked after a Harness admitted it or a submission was attempted, which parks recovery_blocked with cancel_unconfirmed. A cancel submitted after the Turn ended still fails turn_already_settled. Action completion may only record one vote. Lifecycle completion requires its cleanup facts; archive may remain java_durable because Java is its authority. Task cancel 202 is Java durable admission; completion means the authority durably recorded cancellation and returned a receipt, not that the task stopped. Task cancel failed proves non-acceptance and no further delivery, with a failure code; recovery_blocked means acceptance is unknown and needs reconciliation before re-execution. Its status is never cancelled. Physical settlement and an unknown physical outcome belong to the task, independently of operation acceptance. A completed task cancel carries admission stage harness_confirmed and delivery state confirmed with the authority's receipt; failed and recovery_blocked carry java_durable and blocked, so they are never delivered again without reconciliation. A cancel parked as recovery_blocked/cancel_unconfirmed by unobserved-Turn recovery reconciles only from the original prompt's retained durable terminal event: cancelled completes it, completed or error fails it with turn_already_settled, and missing or unreadable evidence stays parked. A recorded stop request alone does not prove cancellation completed. */
782
1166
  WebShellCommandOperation: {
783
1167
  operationId: string;
784
1168
  /** Format: uuid */
@@ -795,7 +1179,7 @@ export interface components {
795
1179
  deliveryState: "pending" | "leased" | "confirmed" | "blocked";
796
1180
  receiptId?: string;
797
1181
  actionResolution?: components["schemas"]["WebShellActionResolution"];
798
- /** @description Reason a durable response or task cancellation failed. Action response failures come from the original committed Action, or a definitive invalid response. Task cancel failures are task_already_settled (the run ended before the stop request was recorded), task_action_unavailable and task_not_found; a recovery_blocked task cancel reports task_cancel_unconfirmed. Workspace close recovery_blocked reports original resource identity or unsettled execution; the Session remains closing. */
1182
+ /** @description Reason a durable response or task cancellation failed. Action response failures come from the original committed Action, or a definitive invalid response. Task cancel failures are task_already_settled (the run ended before the stop request was recorded), task_action_unavailable and task_not_found; a recovery_blocked task cancel reports task_cancel_unconfirmed. A lifecycle operation that exhausted its retry budget fails with the settle's failure: session_lifecycle_delivery_failed, managed_capability_mismatch or hosted_harness_protocol_error when the Hosted Harness refused to negotiate, a workspace close or lifecycle refusal (a workspace_close_* or workspace_lifecycle_* code, or runtime_admission_closed; a Runtime Broker runtime_broker_recovery_blocked refusal is reported as workspace_close_identity_unverified), or another Runtime Broker refusal code; one whose settle reached the Harness but stayed unsettled past the larger settled budget fails with session_close_completion_unsettled. A lifecycle recovery_blocked operation reports the refusal it waits on, original resource identity or unsettled execution for a Workspace close, session_close_writer_live while a Harness holds the journal writer or while that check itself fails, or hosted_harness_generation_mismatch while this replica's view of the Harness boot is stale, or hosted_lifecycle_recovery_required while the daemon settles a previous prompt, or hosted_turn_active while a turn, MCP call or hook is still draining; the Session remains closing. A submit_input failure carries its Turn's error code, and a recovery_blocked submit_input reports submit_input_unconfirmed; a cancel fails with turn_already_settled when its Turn completed or failed without being cancelled, except one that already existed when its Turn failed with managed_runtime_recovery_blocked after a Harness admitted it or a submission was attempted: it parks recovery_blocked with cancel_unconfirmed. A cancel submitted after the Turn ended still fails turn_already_settled. A cancel parked as recovery_blocked/cancel_unconfirmed by unobserved-Turn recovery reconciles only from the original prompt's retained durable terminal event: cancelled completes it, completed or error fails it with turn_already_settled, and missing or unreadable evidence stays parked. A recorded stop request alone does not prove cancellation completed. */
799
1183
  failureCode?: string;
800
1184
  replayed: boolean;
801
1185
  } & (unknown & unknown & unknown & unknown & unknown);
@@ -910,7 +1294,7 @@ export interface components {
910
1294
  workspaceId: string;
911
1295
  };
912
1296
  /** @enum {string} */
913
- TaskKind: "child_agent" | "workflow" | "background_shell" | "monitor" | "automation_run";
1297
+ TaskKind: "child_agent" | "workflow" | "background_shell" | "monitor" | "automation_run" | "channel_delivery";
914
1298
  /**
915
1299
  * @description Logical run state. completed is terminal and is set when the run's own line ends settled, with or without a physical execution; failed and cancelled are terminal too, and they also cover a run that ended before its execution started (cancelled before dispatch, or failed with no provable start), when no physical execution ever settled. degraded means that the task still runs with reduced guarantees, such as a Monitor that lost its observation source. recovery_blocked means that recovery cannot prove the physical outcome: it is not settled, is never reported as success and is never re-run automatically.
916
1300
  * @enum {string}
@@ -922,7 +1306,7 @@ export interface components {
922
1306
  */
923
1307
  TaskRuntimeState: "unbound" | "provisioning" | "ready" | "draining" | "lost";
924
1308
  /**
925
- * @description Actions the task supports now, the same for every caller. cancel: the cancel route accepts a new command for this task (since 1.40 for child_agent and 1.46 for workflow, tasks of those kinds in pending, running, waiting or degraded, in an active Session); whether a caller may use it is an authorization check (403 on the cancel route). send_input: reserved for a later capability route. read_output: the task events route returns output events for this task to any caller that can read it. read_output does not change during the task's life, and a task without it produces no output events: its output goes only to Artifacts, so the events route never filters out events that exist.
1309
+ * @description Actions the task supports now, the same for every caller. cancel: the cancel route accepts a new command for this task (since 1.40 for child_agent, 1.46 for workflow and 1.54 for background_shell and monitor, tasks of those kinds in pending, running, waiting or degraded, and since 1.57 for channel_delivery, a delivery still pending because no adapter has claimed it, each in an active Session, and since 1.65 for automation_run in pending, running, waiting or degraded in an active Session; only that occurrence is cancelled and its schedule is preserved); whether a caller may use it is an authorization check (403 on the cancel route). send_input: reserved for a later capability route. read_output: the task events route returns output events for this task to any caller that can read it. read_output does not change during the task's life, and a task without it produces no output events: its output goes only to Artifacts, so the events route never filters out events that exist.
926
1310
  * @enum {string}
927
1311
  */
928
1312
  TaskActionCapability: "cancel" | "send_input" | "read_output";
@@ -931,6 +1315,11 @@ export interface components {
931
1315
  taskId: string;
932
1316
  /** Format: uuid */
933
1317
  sessionId: string;
1318
+ /**
1319
+ * Format: uuid
1320
+ * @description The child Session that runs this task: present for a child_agent or workflow task once the run's committed record names it (the child's attach, or a terminal verdict that names a minted child), and absent for every other kind and before then. The child is a Session in the same Workspace, readable by exactly the callers that can read this task, so its Turns, items and events are the task's own output; reading them needs no other grant.
1321
+ */
1322
+ childSessionId?: string;
934
1323
  kind: components["schemas"]["TaskKind"];
935
1324
  state: components["schemas"]["TaskState"];
936
1325
  /**
@@ -959,7 +1348,7 @@ export interface components {
959
1348
  /** @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. */
960
1349
  artifactRefs: string[];
961
1350
  actionCapabilities: components["schemas"]["TaskActionCapability"][];
962
- } & (unknown & unknown & unknown & unknown);
1351
+ } & (unknown & unknown & unknown & unknown & unknown);
963
1352
  WebShellTaskPage: {
964
1353
  data: components["schemas"]["WebShellTask"][];
965
1354
  hasMore: boolean;
@@ -1087,7 +1476,7 @@ export interface components {
1087
1476
  };
1088
1477
  /** @description Optional preview for requested native read_file, write_file, edit or run_shell_command approvals. Missing or invalid input, and internal MCP inputs, omit the preview. No general secret redaction is performed; visibility follows Session read permissions. Deploy the version 2 Java reader before a Harness producer starts writing version 2 options. */
1089
1478
  WebShellActionInputPreview: {
1090
- /** @description Exact prefix of the stored payloadJson ({toolName,input}), at most 8192 UTF-8 bytes ending at a complete code point. Truncated text may not be valid JSON. */
1479
+ /** @description Exact UTF-8 prefix of payloadJson ({toolName,input}). Ordinary tools retain the 8192-byte preview. exit_plan_mode includes its complete input within the 64 KiB resource ceiling so a plan can be reviewed after refresh. Truncated ordinary previews may not be valid JSON. */
1091
1480
  text: string;
1092
1481
  /** @description True when text is shorter than the complete UTF-8 input. */
1093
1482
  truncated: boolean;
@@ -1097,6 +1486,253 @@ export interface components {
1097
1486
  */
1098
1487
  byteLength: number;
1099
1488
  };
1489
+ WebShellWorkspaceCreateRequest: {
1490
+ /** @description Trimmed display name, without control characters. The server validates the normalized name. */
1491
+ displayName: string;
1492
+ idempotencyKey: string;
1493
+ sourceWorkspaceId?: string;
1494
+ cwdRelative?: string;
1495
+ };
1496
+ WebShellSessionOptionsRequest: {
1497
+ agentId: string;
1498
+ };
1499
+ WebShellSessionOptions: {
1500
+ /** @enum {string} */
1501
+ approvalMode: "default" | "auto-edit" | "yolo";
1502
+ /** @description Execution policies available at creation. Stored definitions retain their initial policy; existing eligible Sessions may select a policy separately. Plan is an independent overlay. */
1503
+ availableApprovalModes: ("default" | "auto-edit" | "yolo")[];
1504
+ /** @description Optional deployment capability; missing means false. */
1505
+ planModeSupported?: boolean;
1506
+ /** @description Optional deployment capability; missing means false. */
1507
+ inputAttachments?: boolean;
1508
+ };
1509
+ /** @description Safe allowlisted observation for a Workspace-bound Session. Unknown counts are omitted, never estimated. */
1510
+ WebShellModelContext: {
1511
+ /** @description Actual model identity from the committed main-model usage resource. */
1512
+ modelId: string;
1513
+ /** @description Provider prompt token count for the latest successfully committed main-model request; not cumulative billing usage. */
1514
+ inputTokens?: number;
1515
+ /** @description Context capacity from the same resolved model configuration. Missing means unknown. */
1516
+ contextWindowSize?: number;
1517
+ /** @description Timestamp of the committed source observation, in Unix epoch milliseconds. */
1518
+ observedAt: number;
1519
+ };
1520
+ WebShellModelSelection: {
1521
+ modelId?: string;
1522
+ /** Format: int64 */
1523
+ revision: number;
1524
+ };
1525
+ WebShellModelOption: {
1526
+ modelId: string;
1527
+ label: string;
1528
+ };
1529
+ WebShellSessionModelsRequest: {
1530
+ sessionId: string;
1531
+ };
1532
+ WebShellSessionModels: {
1533
+ models: components["schemas"]["WebShellModelOption"][];
1534
+ modelSelection: components["schemas"]["WebShellModelSelection"];
1535
+ supported: boolean;
1536
+ };
1537
+ WebShellChangeModelRequest: {
1538
+ sessionId: string;
1539
+ modelId: string;
1540
+ /** Format: int64 */
1541
+ expectedRevision: number;
1542
+ idempotencyKey: string;
1543
+ requestId?: string;
1544
+ };
1545
+ WebShellModelChangeResult: {
1546
+ sessionId: string;
1547
+ modelSelection: components["schemas"]["WebShellModelSelection"];
1548
+ replayed: boolean;
1549
+ };
1550
+ WebShellSessionApprovalRequest: {
1551
+ sessionId: string;
1552
+ };
1553
+ WebShellSessionApproval: {
1554
+ /** @enum {string} */
1555
+ approvalMode: "default" | "auto-edit" | "yolo";
1556
+ /** Format: int64 */
1557
+ approvalRevision: number;
1558
+ availableApprovalModes: ("default" | "auto-edit" | "yolo")[];
1559
+ supported: boolean;
1560
+ /** @description Persisted public Plan overlay, independent of execution permission. Omission on a change preserves the selected state. */
1561
+ planMode?: boolean;
1562
+ /** @description Optional deployment capability; missing means false. */
1563
+ planModeSupported?: boolean;
1564
+ };
1565
+ WebShellChangeApprovalRequest: {
1566
+ sessionId: string;
1567
+ /** Format: int64 */
1568
+ expectedRevision: number;
1569
+ idempotencyKey: string;
1570
+ requestId?: string;
1571
+ /** @enum {string} */
1572
+ approvalMode: "default" | "auto-edit" | "yolo";
1573
+ /** @description Persisted public Plan overlay, independent of execution permission. Omission on a change preserves the selected state. */
1574
+ planMode?: boolean;
1575
+ };
1576
+ WebShellApprovalChangeResult: {
1577
+ sessionId: string;
1578
+ /** @enum {string} */
1579
+ approvalMode: "default" | "auto-edit" | "yolo";
1580
+ /** Format: int64 */
1581
+ approvalRevision: number;
1582
+ replayed: boolean;
1583
+ /** @description Persisted public Plan overlay, independent of execution permission. Omission on a change preserves the selected state. */
1584
+ planMode?: boolean;
1585
+ };
1586
+ WebShellRuntimeNode: {
1587
+ nodeId: string;
1588
+ displayName: string;
1589
+ };
1590
+ /** @description Disabled registration returns supported=false and no nodes. This capability controls fresh registration only; existing operation queries remain available. */
1591
+ WebShellRuntimeNodePage: {
1592
+ /** @default false */
1593
+ supported: boolean;
1594
+ data: components["schemas"]["WebShellRuntimeNode"][];
1595
+ } & unknown;
1596
+ WebShellWorkspaceDirectoryRequest: {
1597
+ nodeId: string;
1598
+ /** @description Existing absolute directory on the selected node; no directory or repository is created. */
1599
+ path: string;
1600
+ };
1601
+ WebShellWorkspaceDirectory: {
1602
+ nodeId: string;
1603
+ /** @description Canonical absolute path after remote directory validation. */
1604
+ canonicalPath: string;
1605
+ /** @enum {string} */
1606
+ platform: "linux" | "darwin";
1607
+ };
1608
+ WebShellWorkspaceOperationRequest: {
1609
+ operationId: string;
1610
+ };
1611
+ /** @description workspaceId is returned only after completed registration. recovery_blocked means the registration may have reached its node: it keeps the original ownership until Java reads the node and completes it, or fails it and releases the directory. A node that cannot be read, no longer admits the actor or holds another registration's marker leaves it for administrator review, and a new browser draft does not release it. failed releases the directory if the registration reserved it. replayed=true identifies an existing operation returned by a repeated key or a query. */
1612
+ WebShellWorkspaceCreateOperation: {
1613
+ operationId: string;
1614
+ /** @constant */
1615
+ type: "workspace_create";
1616
+ /** @enum {string} */
1617
+ status: "pending" | "running" | "completed" | "failed" | "cancelled" | "recovery_blocked";
1618
+ workspaceId?: string | null;
1619
+ failureCode?: string | null;
1620
+ replayed: boolean;
1621
+ };
1622
+ WebShellWorkspaceRegisterRequest: {
1623
+ nodeId: string;
1624
+ path: string;
1625
+ displayName: string;
1626
+ /** @description Actor-scoped registration key. Reuse this key and the same semantic fields until the operation identity is known. */
1627
+ idempotencyKey: string;
1628
+ /** @description Trace correlation only; excluded from the request digest, so a retry with another requestId still replays. A header-safe value (1 to 128 visible ASCII characters) is echoed as X-Request-Id; any other value is replaced by a server-chosen id. */
1629
+ requestId?: string | null;
1630
+ };
1631
+ WebShellWorkspaceDirectoryPage: {
1632
+ root: string;
1633
+ cwdRelative: string;
1634
+ truncated: boolean;
1635
+ directories: {
1636
+ name: string;
1637
+ cwdRelative: string;
1638
+ }[];
1639
+ };
1640
+ WebShellWorkspaceDirectoryQueryRequest: {
1641
+ workspaceId: string;
1642
+ cwdRelative: string;
1643
+ };
1644
+ InputTextBlock: {
1645
+ /** @enum {string} */
1646
+ type: "input_text" | "text";
1647
+ text: string;
1648
+ };
1649
+ /** @description Inline UTF-8 text file. No host paths, URLs, binary or NUL. Conservative text MIME/extension validation; the complete canonical input containing attachments is limited to 8 MiB. */
1650
+ InputFileBlock: {
1651
+ /** @enum {string} */
1652
+ type: "input_file";
1653
+ name: string;
1654
+ mime_type: string;
1655
+ text: string;
1656
+ };
1657
+ /** @description Canonical base64 PNG, JPEG, GIF or WebP image with a matching signature. The image/jpg alias is normalized to image/jpeg. The complete canonical input containing attachments is limited to 8 MiB. */
1658
+ InputImageBlock: {
1659
+ /** @enum {string} */
1660
+ type: "input_image";
1661
+ /** @enum {string} */
1662
+ mime_type: "image/png" | "image/jpeg" | "image/jpg" | "image/gif" | "image/webp";
1663
+ data: string;
1664
+ };
1665
+ WebShellSkill: {
1666
+ name: string;
1667
+ description: string;
1668
+ };
1669
+ WebShellSessionSkills: {
1670
+ skills: components["schemas"]["WebShellSkill"][];
1671
+ };
1672
+ WebShellWorkspaceFileQueryRequest: {
1673
+ workspaceId: string;
1674
+ cwdRelative: string;
1675
+ directory: string;
1676
+ query?: string;
1677
+ expectedScopeRevision?: string;
1678
+ };
1679
+ WebShellWorkspaceFileReadRequest: {
1680
+ workspaceId: string;
1681
+ cwdRelative: string;
1682
+ path: string;
1683
+ expectedScopeRevision: string;
1684
+ };
1685
+ WebShellWorkspaceFileEntry: {
1686
+ path: string;
1687
+ name: string;
1688
+ /** @enum {string} */
1689
+ kind: "file" | "directory";
1690
+ };
1691
+ WebShellWorkspaceFilePage: {
1692
+ scopeRevision: string;
1693
+ directory: string;
1694
+ entries: components["schemas"]["WebShellWorkspaceFileEntry"][];
1695
+ truncated: boolean;
1696
+ };
1697
+ WebShellWorkspaceFileSnapshot: {
1698
+ scopeRevision: string;
1699
+ path: string;
1700
+ name: string;
1701
+ /** @enum {string} */
1702
+ mimeType: "text/plain";
1703
+ text: string;
1704
+ byteLength: number;
1705
+ sha256: string;
1706
+ };
1707
+ WebShellToolDetails: {
1708
+ /** @description Allowlisted display arguments, or null when unavailable or larger than 4 KiB. */
1709
+ input: {
1710
+ [key: string]: unknown;
1711
+ } | null;
1712
+ /** @description Recorded text or error, bounded to 8 KiB and 200 lines; null means unavailable, an empty string means recorded empty output. */
1713
+ output: string | null;
1714
+ truncated: boolean;
1715
+ /** @description Validated saved Shell display, when available. Text fields share an 8 KiB/200-line budget; directory and output-file paths share an 8 KiB UTF-8 budget. Legacy text remains in output. */
1716
+ shellResult?: components["schemas"]["WebShellShellResult"];
1717
+ };
1718
+ WebShellShellResult: {
1719
+ /** @constant */
1720
+ type: "shell_result";
1721
+ /** @constant */
1722
+ version: 1;
1723
+ text: string;
1724
+ output: string;
1725
+ directory: string;
1726
+ exitCode: number | null;
1727
+ signal: number | null;
1728
+ pid: number | null;
1729
+ error: string | null;
1730
+ /** @enum {string} */
1731
+ outcome: "completed" | "failed" | "cancelled" | "timed_out";
1732
+ notices: string[];
1733
+ truncated: boolean;
1734
+ outputFiles: string[];
1735
+ };
1100
1736
  };
1101
1737
  responses: {
1102
1738
  /** @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. */
@@ -1153,38 +1789,521 @@ export interface components {
1153
1789
  "application/json": components["schemas"]["ErrorEnvelope"];
1154
1790
  };
1155
1791
  };
1156
- /** @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. */
1157
- TaskCursorExpired: {
1158
- headers: {
1159
- [name: string]: unknown;
1160
- };
1792
+ /** @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. */
1793
+ TaskCursorExpired: {
1794
+ headers: {
1795
+ [name: string]: unknown;
1796
+ };
1797
+ content: {
1798
+ "application/json": components["schemas"]["ErrorEnvelope"];
1799
+ };
1800
+ };
1801
+ /** @description A dependency such as the Hosted Harness is unavailable; retry later. */
1802
+ Unavailable: {
1803
+ headers: {
1804
+ [name: string]: unknown;
1805
+ };
1806
+ content: {
1807
+ "application/json": components["schemas"]["ErrorEnvelope"];
1808
+ };
1809
+ };
1810
+ };
1811
+ parameters: never;
1812
+ requestBodies: never;
1813
+ headers: {
1814
+ /** @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. */
1815
+ IdempotentReplay: boolean;
1816
+ /** @description Trace-only correlation identifier; never an idempotency key. */
1817
+ RequestId: string;
1818
+ };
1819
+ pathItems: never;
1820
+ }
1821
+ export type $defs = Record<string, never>;
1822
+ export interface operations {
1823
+ webShellListSessions: {
1824
+ parameters: {
1825
+ query?: never;
1826
+ header?: never;
1827
+ path?: never;
1828
+ cookie?: never;
1829
+ };
1830
+ requestBody: {
1831
+ content: {
1832
+ "application/json": components["schemas"]["WebShellListRequest"];
1833
+ };
1834
+ };
1835
+ responses: {
1836
+ /** @description WebShell session page. */
1837
+ 200: {
1838
+ headers: {
1839
+ [name: string]: unknown;
1840
+ };
1841
+ content: {
1842
+ "application/json": components["schemas"]["WebShellSessionPage"];
1843
+ };
1844
+ };
1845
+ 400: components["responses"]["BadRequest"];
1846
+ 401: components["responses"]["Unauthorized"];
1847
+ 403: components["responses"]["Forbidden"];
1848
+ 413: components["responses"]["PayloadTooLarge"];
1849
+ };
1850
+ };
1851
+ webShellGetSession: {
1852
+ parameters: {
1853
+ query?: never;
1854
+ header?: never;
1855
+ path?: never;
1856
+ cookie?: never;
1857
+ };
1858
+ requestBody: {
1859
+ content: {
1860
+ "application/json": components["schemas"]["WebShellSessionRequest"];
1861
+ };
1862
+ };
1863
+ responses: {
1864
+ /** @description WebShell session. */
1865
+ 200: {
1866
+ headers: {
1867
+ [name: string]: unknown;
1868
+ };
1869
+ content: {
1870
+ "application/json": components["schemas"]["WebShellSession"];
1871
+ };
1872
+ };
1873
+ 400: components["responses"]["BadRequest"];
1874
+ 401: components["responses"]["Unauthorized"];
1875
+ 403: components["responses"]["Forbidden"];
1876
+ 404: components["responses"]["NotFound"];
1877
+ 413: components["responses"]["PayloadTooLarge"];
1878
+ };
1879
+ };
1880
+ webShellTranscript: {
1881
+ parameters: {
1882
+ query?: never;
1883
+ header?: never;
1884
+ path?: never;
1885
+ cookie?: never;
1886
+ };
1887
+ requestBody: {
1888
+ content: {
1889
+ "application/json": components["schemas"]["WebShellTranscriptRequest"];
1890
+ };
1891
+ };
1892
+ responses: {
1893
+ /** @description Event transcript page. */
1894
+ 200: {
1895
+ headers: {
1896
+ [name: string]: unknown;
1897
+ };
1898
+ content: {
1899
+ "application/json": components["schemas"]["WebShellTranscript"];
1900
+ };
1901
+ };
1902
+ 400: components["responses"]["BadRequest"];
1903
+ 401: components["responses"]["Unauthorized"];
1904
+ 403: components["responses"]["Forbidden"];
1905
+ 404: components["responses"]["NotFound"];
1906
+ 413: components["responses"]["PayloadTooLarge"];
1907
+ };
1908
+ };
1909
+ webShellStreamEvents: {
1910
+ parameters: {
1911
+ query?: never;
1912
+ header?: never;
1913
+ path?: never;
1914
+ cookie?: never;
1915
+ };
1916
+ requestBody: {
1917
+ content: {
1918
+ "application/json": components["schemas"]["WebShellStreamRequest"];
1919
+ };
1920
+ };
1921
+ responses: {
1922
+ /** @description SSE stream. */
1923
+ 200: {
1924
+ headers: {
1925
+ [name: string]: unknown;
1926
+ };
1927
+ content: {
1928
+ "text/event-stream": string;
1929
+ };
1930
+ };
1931
+ 400: components["responses"]["BadRequest"];
1932
+ 401: components["responses"]["Unauthorized"];
1933
+ 403: components["responses"]["Forbidden"];
1934
+ 404: components["responses"]["NotFound"];
1935
+ 413: components["responses"]["PayloadTooLarge"];
1936
+ };
1937
+ };
1938
+ webShellCreateSession: {
1939
+ parameters: {
1940
+ query?: never;
1941
+ header?: never;
1942
+ path?: never;
1943
+ cookie?: never;
1944
+ };
1945
+ requestBody: {
1946
+ content: {
1947
+ "application/json": components["schemas"]["WebShellCreateRequest"];
1948
+ };
1949
+ };
1950
+ responses: {
1951
+ /** @description Session admitted. */
1952
+ 202: {
1953
+ headers: {
1954
+ "X-Request-Id": components["headers"]["RequestId"];
1955
+ [name: string]: unknown;
1956
+ };
1957
+ content: {
1958
+ "application/json": components["schemas"]["WebShellAdmission"];
1959
+ };
1960
+ };
1961
+ 400: components["responses"]["BadRequest"];
1962
+ 401: components["responses"]["Unauthorized"];
1963
+ 403: components["responses"]["Forbidden"];
1964
+ 404: components["responses"]["NotFound"];
1965
+ 409: components["responses"]["Conflict"];
1966
+ 413: components["responses"]["PayloadTooLarge"];
1967
+ 503: components["responses"]["Unavailable"];
1968
+ };
1969
+ };
1970
+ webShellSubmitTurn: {
1971
+ parameters: {
1972
+ query?: never;
1973
+ header?: never;
1974
+ path?: never;
1975
+ cookie?: never;
1976
+ };
1977
+ requestBody: {
1978
+ content: {
1979
+ "application/json": components["schemas"]["WebShellSubmitRequest"];
1980
+ };
1981
+ };
1982
+ responses: {
1983
+ /** @description Turn admitted. */
1984
+ 202: {
1985
+ headers: {
1986
+ "X-Request-Id": components["headers"]["RequestId"];
1987
+ [name: string]: unknown;
1988
+ };
1989
+ content: {
1990
+ "application/json": components["schemas"]["WebShellAdmission"];
1991
+ };
1992
+ };
1993
+ 400: components["responses"]["BadRequest"];
1994
+ 401: components["responses"]["Unauthorized"];
1995
+ 403: components["responses"]["Forbidden"];
1996
+ 404: components["responses"]["NotFound"];
1997
+ 409: components["responses"]["Conflict"];
1998
+ 413: components["responses"]["PayloadTooLarge"];
1999
+ };
2000
+ };
2001
+ webShellCancelTurn: {
2002
+ parameters: {
2003
+ query?: never;
2004
+ header?: never;
2005
+ path?: never;
2006
+ cookie?: never;
2007
+ };
2008
+ requestBody: {
2009
+ content: {
2010
+ "application/json": components["schemas"]["WebShellCancelRequest"];
2011
+ };
2012
+ };
2013
+ responses: {
2014
+ /** @description Cancellation durably admitted. */
2015
+ 202: {
2016
+ headers: {
2017
+ "X-Request-Id": components["headers"]["RequestId"];
2018
+ [name: string]: unknown;
2019
+ };
2020
+ content: {
2021
+ "application/json": components["schemas"]["WebShellAdmission"];
2022
+ };
2023
+ };
2024
+ 400: components["responses"]["BadRequest"];
2025
+ 401: components["responses"]["Unauthorized"];
2026
+ 403: components["responses"]["Forbidden"];
2027
+ 404: components["responses"]["NotFound"];
2028
+ 409: components["responses"]["Conflict"];
2029
+ 413: components["responses"]["PayloadTooLarge"];
2030
+ };
2031
+ };
2032
+ webShellQueryWorkspaces: {
2033
+ parameters: {
2034
+ query?: never;
2035
+ header?: never;
2036
+ path?: never;
2037
+ cookie?: never;
2038
+ };
2039
+ requestBody: {
2040
+ content: {
2041
+ "application/json": components["schemas"]["WebShellWorkspaceQueryRequest"];
2042
+ };
2043
+ };
2044
+ responses: {
2045
+ /** @description Authorized durable resource view; no Runtime startup required. */
2046
+ 200: {
2047
+ headers: {
2048
+ [name: string]: unknown;
2049
+ };
2050
+ content: {
2051
+ "application/json": components["schemas"]["WebShellWorkspacePage"];
2052
+ };
2053
+ };
2054
+ 400: components["responses"]["BadRequest"];
2055
+ 401: components["responses"]["Unauthorized"];
2056
+ 403: components["responses"]["Forbidden"];
2057
+ 404: components["responses"]["NotFound"];
2058
+ 413: components["responses"]["PayloadTooLarge"];
2059
+ };
2060
+ };
2061
+ webShellChangeCwd: {
2062
+ parameters: {
2063
+ query?: never;
2064
+ header?: never;
2065
+ path?: never;
2066
+ cookie?: never;
2067
+ };
2068
+ requestBody: {
2069
+ content: {
2070
+ "application/json": components["schemas"]["WebShellChangeCwdRequest"];
2071
+ };
2072
+ };
2073
+ responses: {
2074
+ /** @description Durable cwd operation; acceptance does not mean the new cwd is active. */
2075
+ 202: {
2076
+ headers: {
2077
+ [name: string]: unknown;
2078
+ };
2079
+ content: {
2080
+ "application/json": components["schemas"]["WebShellCwdOperation"];
2081
+ };
2082
+ };
2083
+ 400: components["responses"]["BadRequest"];
2084
+ 401: components["responses"]["Unauthorized"];
2085
+ 403: components["responses"]["Forbidden"];
2086
+ 404: components["responses"]["NotFound"];
2087
+ 409: components["responses"]["Conflict"];
2088
+ 413: components["responses"]["PayloadTooLarge"];
2089
+ };
2090
+ };
2091
+ webShellQueryCwdOperation: {
2092
+ parameters: {
2093
+ query?: never;
2094
+ header?: never;
2095
+ path?: never;
2096
+ cookie?: never;
2097
+ };
2098
+ requestBody: {
2099
+ content: {
2100
+ "application/json": components["schemas"]["WebShellOperationRequest"];
2101
+ };
2102
+ };
2103
+ responses: {
2104
+ /** @description Same authorized operation semantics as the public API. */
2105
+ 200: {
2106
+ headers: {
2107
+ [name: string]: unknown;
2108
+ };
2109
+ content: {
2110
+ "application/json": components["schemas"]["WebShellOperation"];
2111
+ };
2112
+ };
2113
+ 400: components["responses"]["BadRequest"];
2114
+ 401: components["responses"]["Unauthorized"];
2115
+ 403: components["responses"]["Forbidden"];
2116
+ 404: components["responses"]["NotFound"];
2117
+ 409: components["responses"]["Conflict"];
2118
+ 413: components["responses"]["PayloadTooLarge"];
2119
+ };
2120
+ };
2121
+ queryWebShellActions: {
2122
+ parameters: {
2123
+ query?: never;
2124
+ header?: never;
2125
+ path?: never;
2126
+ cookie?: never;
2127
+ };
2128
+ requestBody: {
2129
+ content: {
2130
+ "application/json": components["schemas"]["WebShellActionQueryRequest"];
2131
+ };
2132
+ };
2133
+ responses: {
2134
+ /** @description Same authorized operation semantics as the public API. */
2135
+ 200: {
2136
+ headers: {
2137
+ [name: string]: unknown;
2138
+ };
2139
+ content: {
2140
+ "application/json": components["schemas"]["WebShellActionPage"];
2141
+ };
2142
+ };
2143
+ 400: components["responses"]["BadRequest"];
2144
+ 401: components["responses"]["Unauthorized"];
2145
+ 403: components["responses"]["Forbidden"];
2146
+ /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
2147
+ 404: components["responses"]["NotFound"];
2148
+ 409: components["responses"]["Conflict"];
2149
+ 413: components["responses"]["PayloadTooLarge"];
2150
+ };
2151
+ };
2152
+ getWebShellAction: {
2153
+ parameters: {
2154
+ query?: never;
2155
+ header?: never;
2156
+ path?: never;
2157
+ cookie?: never;
2158
+ };
2159
+ requestBody: {
2160
+ content: {
2161
+ "application/json": components["schemas"]["WebShellActionGetRequest"];
2162
+ };
2163
+ };
2164
+ responses: {
2165
+ /** @description Same authorized operation semantics as the public API. */
2166
+ 200: {
2167
+ headers: {
2168
+ [name: string]: unknown;
2169
+ };
2170
+ content: {
2171
+ "application/json": components["schemas"]["WebShellAction"];
2172
+ };
2173
+ };
2174
+ 400: components["responses"]["BadRequest"];
2175
+ 401: components["responses"]["Unauthorized"];
2176
+ 403: components["responses"]["Forbidden"];
2177
+ /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
2178
+ 404: components["responses"]["NotFound"];
2179
+ 409: components["responses"]["Conflict"];
2180
+ 413: components["responses"]["PayloadTooLarge"];
2181
+ };
2182
+ };
2183
+ respondWebShellAction: {
2184
+ parameters: {
2185
+ query?: never;
2186
+ header?: never;
2187
+ path?: never;
2188
+ cookie?: never;
2189
+ };
2190
+ requestBody: {
2191
+ content: {
2192
+ "application/json": components["schemas"]["WebShellActionRespondRequest"];
2193
+ };
2194
+ };
2195
+ responses: {
2196
+ /** @description Same authorized operation semantics as the public API. */
2197
+ 202: {
2198
+ headers: {
2199
+ [name: string]: unknown;
2200
+ };
2201
+ content: {
2202
+ "application/json": components["schemas"]["WebShellCommandOperation"];
2203
+ };
2204
+ };
2205
+ 400: components["responses"]["BadRequest"];
2206
+ 401: components["responses"]["Unauthorized"];
2207
+ /** @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. */
2208
+ 403: components["responses"]["Forbidden"];
2209
+ /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
2210
+ 404: components["responses"]["NotFound"];
2211
+ /** @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. */
2212
+ 409: components["responses"]["Conflict"];
2213
+ 413: components["responses"]["PayloadTooLarge"];
2214
+ };
2215
+ };
2216
+ closeWebShellSession: {
2217
+ parameters: {
2218
+ query?: never;
2219
+ header?: never;
2220
+ path?: never;
2221
+ cookie?: never;
2222
+ };
2223
+ requestBody: {
2224
+ content: {
2225
+ "application/json": components["schemas"]["WebShellLifecycleRequest"];
2226
+ };
2227
+ };
2228
+ responses: {
2229
+ /** @description Same authorized operation semantics as the public API. */
2230
+ 202: {
2231
+ headers: {
2232
+ [name: string]: unknown;
2233
+ };
2234
+ content: {
2235
+ "application/json": components["schemas"]["WebShellCommandOperation"];
2236
+ };
2237
+ };
2238
+ 400: components["responses"]["BadRequest"];
2239
+ 401: components["responses"]["Unauthorized"];
2240
+ 403: components["responses"]["Forbidden"];
2241
+ 404: components["responses"]["NotFound"];
2242
+ 409: components["responses"]["Conflict"];
2243
+ 413: components["responses"]["PayloadTooLarge"];
2244
+ };
2245
+ };
2246
+ archiveWebShellSession: {
2247
+ parameters: {
2248
+ query?: never;
2249
+ header?: never;
2250
+ path?: never;
2251
+ cookie?: never;
2252
+ };
2253
+ requestBody: {
2254
+ content: {
2255
+ "application/json": components["schemas"]["WebShellLifecycleRequest"];
2256
+ };
2257
+ };
2258
+ responses: {
2259
+ /** @description Same authorized operation semantics as the public API. */
2260
+ 202: {
2261
+ headers: {
2262
+ [name: string]: unknown;
2263
+ };
2264
+ content: {
2265
+ "application/json": components["schemas"]["WebShellCommandOperation"];
2266
+ };
2267
+ };
2268
+ 400: components["responses"]["BadRequest"];
2269
+ 401: components["responses"]["Unauthorized"];
2270
+ 403: components["responses"]["Forbidden"];
2271
+ 404: components["responses"]["NotFound"];
2272
+ 409: components["responses"]["Conflict"];
2273
+ 413: components["responses"]["PayloadTooLarge"];
2274
+ };
2275
+ };
2276
+ deleteWebShellSession: {
2277
+ parameters: {
2278
+ query?: never;
2279
+ header?: never;
2280
+ path?: never;
2281
+ cookie?: never;
2282
+ };
2283
+ requestBody: {
1161
2284
  content: {
1162
- "application/json": components["schemas"]["ErrorEnvelope"];
2285
+ "application/json": components["schemas"]["WebShellLifecycleRequest"];
1163
2286
  };
1164
2287
  };
1165
- /** @description A dependency such as the Hosted Harness is unavailable; retry later. */
1166
- Unavailable: {
1167
- headers: {
1168
- [name: string]: unknown;
1169
- };
1170
- content: {
1171
- "application/json": components["schemas"]["ErrorEnvelope"];
2288
+ responses: {
2289
+ /** @description Same authorized operation semantics as the public API. */
2290
+ 202: {
2291
+ headers: {
2292
+ [name: string]: unknown;
2293
+ };
2294
+ content: {
2295
+ "application/json": components["schemas"]["WebShellCommandOperation"];
2296
+ };
1172
2297
  };
2298
+ 400: components["responses"]["BadRequest"];
2299
+ 401: components["responses"]["Unauthorized"];
2300
+ 403: components["responses"]["Forbidden"];
2301
+ 404: components["responses"]["NotFound"];
2302
+ 409: components["responses"]["Conflict"];
2303
+ 413: components["responses"]["PayloadTooLarge"];
1173
2304
  };
1174
2305
  };
1175
- parameters: never;
1176
- requestBodies: never;
1177
- headers: {
1178
- /** @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. */
1179
- IdempotentReplay: boolean;
1180
- /** @description Trace-only correlation identifier; never an idempotency key. */
1181
- RequestId: string;
1182
- };
1183
- pathItems: never;
1184
- }
1185
- export type $defs = Record<string, never>;
1186
- export interface operations {
1187
- webShellListSessions: {
2306
+ webShellGetWorkspace: {
1188
2307
  parameters: {
1189
2308
  query?: never;
1190
2309
  header?: never;
@@ -1193,26 +2312,27 @@ export interface operations {
1193
2312
  };
1194
2313
  requestBody: {
1195
2314
  content: {
1196
- "application/json": components["schemas"]["WebShellListRequest"];
2315
+ "application/json": components["schemas"]["WebShellWorkspaceGetRequest"];
1197
2316
  };
1198
2317
  };
1199
2318
  responses: {
1200
- /** @description WebShell session page. */
2319
+ /** @description Authorized durable resource view; no Runtime startup required. */
1201
2320
  200: {
1202
2321
  headers: {
1203
2322
  [name: string]: unknown;
1204
2323
  };
1205
2324
  content: {
1206
- "application/json": components["schemas"]["WebShellSessionPage"];
2325
+ "application/json": components["schemas"]["WebShellWorkspace"];
1207
2326
  };
1208
2327
  };
1209
2328
  400: components["responses"]["BadRequest"];
1210
2329
  401: components["responses"]["Unauthorized"];
1211
2330
  403: components["responses"]["Forbidden"];
2331
+ 404: components["responses"]["NotFound"];
1212
2332
  413: components["responses"]["PayloadTooLarge"];
1213
2333
  };
1214
2334
  };
1215
- webShellGetSession: {
2335
+ queryWebShellTasks: {
1216
2336
  parameters: {
1217
2337
  query?: never;
1218
2338
  header?: never;
@@ -1221,17 +2341,17 @@ export interface operations {
1221
2341
  };
1222
2342
  requestBody: {
1223
2343
  content: {
1224
- "application/json": components["schemas"]["WebShellSessionRequest"];
2344
+ "application/json": components["schemas"]["WebShellTaskQueryRequest"];
1225
2345
  };
1226
2346
  };
1227
2347
  responses: {
1228
- /** @description WebShell session. */
2348
+ /** @description Same authorized task semantics as the public API. */
1229
2349
  200: {
1230
2350
  headers: {
1231
2351
  [name: string]: unknown;
1232
2352
  };
1233
2353
  content: {
1234
- "application/json": components["schemas"]["WebShellSession"];
2354
+ "application/json": components["schemas"]["WebShellTaskPage"];
1235
2355
  };
1236
2356
  };
1237
2357
  400: components["responses"]["BadRequest"];
@@ -1241,7 +2361,7 @@ export interface operations {
1241
2361
  413: components["responses"]["PayloadTooLarge"];
1242
2362
  };
1243
2363
  };
1244
- webShellTranscript: {
2364
+ getWebShellTask: {
1245
2365
  parameters: {
1246
2366
  query?: never;
1247
2367
  header?: never;
@@ -1250,17 +2370,17 @@ export interface operations {
1250
2370
  };
1251
2371
  requestBody: {
1252
2372
  content: {
1253
- "application/json": components["schemas"]["WebShellTranscriptRequest"];
2373
+ "application/json": components["schemas"]["WebShellTaskGetRequest"];
1254
2374
  };
1255
2375
  };
1256
2376
  responses: {
1257
- /** @description Event transcript page. */
2377
+ /** @description Same authorized task semantics as the public API. */
1258
2378
  200: {
1259
2379
  headers: {
1260
2380
  [name: string]: unknown;
1261
2381
  };
1262
2382
  content: {
1263
- "application/json": components["schemas"]["WebShellTranscript"];
2383
+ "application/json": components["schemas"]["WebShellTask"];
1264
2384
  };
1265
2385
  };
1266
2386
  400: components["responses"]["BadRequest"];
@@ -1270,7 +2390,7 @@ export interface operations {
1270
2390
  413: components["responses"]["PayloadTooLarge"];
1271
2391
  };
1272
2392
  };
1273
- webShellStreamEvents: {
2393
+ queryWebShellTaskEvents: {
1274
2394
  parameters: {
1275
2395
  query?: never;
1276
2396
  header?: never;
@@ -1279,27 +2399,28 @@ export interface operations {
1279
2399
  };
1280
2400
  requestBody: {
1281
2401
  content: {
1282
- "application/json": components["schemas"]["WebShellStreamRequest"];
2402
+ "application/json": components["schemas"]["WebShellTaskEventQueryRequest"];
1283
2403
  };
1284
2404
  };
1285
2405
  responses: {
1286
- /** @description SSE stream. */
2406
+ /** @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. */
1287
2407
  200: {
1288
2408
  headers: {
1289
2409
  [name: string]: unknown;
1290
2410
  };
1291
2411
  content: {
1292
- "text/event-stream": string;
2412
+ "application/json": components["schemas"]["WebShellTaskEventPage"];
1293
2413
  };
1294
2414
  };
1295
2415
  400: components["responses"]["BadRequest"];
1296
2416
  401: components["responses"]["Unauthorized"];
1297
2417
  403: components["responses"]["Forbidden"];
1298
2418
  404: components["responses"]["NotFound"];
2419
+ 409: components["responses"]["TaskCursorExpired"];
1299
2420
  413: components["responses"]["PayloadTooLarge"];
1300
2421
  };
1301
2422
  };
1302
- webShellCreateSession: {
2423
+ cancelWebShellTask: {
1303
2424
  parameters: {
1304
2425
  query?: never;
1305
2426
  header?: never;
@@ -1308,18 +2429,18 @@ export interface operations {
1308
2429
  };
1309
2430
  requestBody: {
1310
2431
  content: {
1311
- "application/json": components["schemas"]["WebShellCreateRequest"];
2432
+ "application/json": components["schemas"]["WebShellTaskCancelRequest"];
1312
2433
  };
1313
2434
  };
1314
2435
  responses: {
1315
- /** @description Session admitted. */
2436
+ /** @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. */
1316
2437
  202: {
1317
2438
  headers: {
1318
2439
  "X-Request-Id": components["headers"]["RequestId"];
1319
2440
  [name: string]: unknown;
1320
2441
  };
1321
2442
  content: {
1322
- "application/json": components["schemas"]["WebShellAdmission"];
2443
+ "application/json": components["schemas"]["WebShellCommandOperation"];
1323
2444
  };
1324
2445
  };
1325
2446
  400: components["responses"]["BadRequest"];
@@ -1328,10 +2449,9 @@ export interface operations {
1328
2449
  404: components["responses"]["NotFound"];
1329
2450
  409: components["responses"]["Conflict"];
1330
2451
  413: components["responses"]["PayloadTooLarge"];
1331
- 503: components["responses"]["Unavailable"];
1332
2452
  };
1333
2453
  };
1334
- webShellSubmitTurn: {
2454
+ getWebShellToolResult: {
1335
2455
  parameters: {
1336
2456
  query?: never;
1337
2457
  header?: never;
@@ -1340,29 +2460,61 @@ export interface operations {
1340
2460
  };
1341
2461
  requestBody: {
1342
2462
  content: {
1343
- "application/json": components["schemas"]["WebShellSubmitRequest"];
2463
+ "application/json": components["schemas"]["WebShellToolResultRequest"];
1344
2464
  };
1345
2465
  };
1346
2466
  responses: {
1347
- /** @description Turn admitted. */
1348
- 202: {
2467
+ /** @description Authorized persisted tool result resource. */
2468
+ 200: {
1349
2469
  headers: {
1350
- "X-Request-Id": components["headers"]["RequestId"];
2470
+ "Cache-Control"?: "private, no-store";
1351
2471
  [name: string]: unknown;
1352
2472
  };
1353
2473
  content: {
1354
- "application/json": components["schemas"]["WebShellAdmission"];
2474
+ "application/json": components["schemas"]["ToolResultResponse"];
2475
+ };
2476
+ };
2477
+ /** @description Invalid request. */
2478
+ 400: {
2479
+ headers: {
2480
+ [name: string]: unknown;
2481
+ };
2482
+ content: {
2483
+ "application/json": components["schemas"]["ErrorEnvelope"];
2484
+ };
2485
+ };
2486
+ /** @description Trusted actor required. */
2487
+ 401: {
2488
+ headers: {
2489
+ [name: string]: unknown;
2490
+ };
2491
+ content: {
2492
+ "application/json": components["schemas"]["ErrorEnvelope"];
1355
2493
  };
1356
2494
  };
1357
- 400: components["responses"]["BadRequest"];
1358
- 401: components["responses"]["Unauthorized"];
1359
2495
  403: components["responses"]["Forbidden"];
1360
- 404: components["responses"]["NotFound"];
1361
- 409: components["responses"]["Conflict"];
2496
+ /** @description Unknown or unreadable resource. */
2497
+ 404: {
2498
+ headers: {
2499
+ [name: string]: unknown;
2500
+ };
2501
+ content: {
2502
+ "application/json": components["schemas"]["ErrorEnvelope"];
2503
+ };
2504
+ };
1362
2505
  413: components["responses"]["PayloadTooLarge"];
2506
+ /** @description Resource temporarily unavailable. */
2507
+ 503: {
2508
+ headers: {
2509
+ [name: string]: unknown;
2510
+ };
2511
+ content: {
2512
+ "application/json": components["schemas"]["ErrorEnvelope"];
2513
+ };
2514
+ };
1363
2515
  };
1364
2516
  };
1365
- webShellCancelTurn: {
2517
+ getWebShellArtifact: {
1366
2518
  parameters: {
1367
2519
  query?: never;
1368
2520
  header?: never;
@@ -1371,29 +2523,124 @@ export interface operations {
1371
2523
  };
1372
2524
  requestBody: {
1373
2525
  content: {
1374
- "application/json": components["schemas"]["WebShellCancelRequest"];
2526
+ "application/json": components["schemas"]["WebShellArtifactRequest"];
1375
2527
  };
1376
2528
  };
1377
2529
  responses: {
1378
- /** @description Cancellation durably admitted. */
1379
- 202: {
2530
+ /** @description Authorized persisted artifact metadata. */
2531
+ 200: {
2532
+ headers: {
2533
+ "Cache-Control"?: "private, no-store";
2534
+ [name: string]: unknown;
2535
+ };
2536
+ content: {
2537
+ "application/json": components["schemas"]["ArtifactResponse"];
2538
+ };
2539
+ };
2540
+ /** @description Invalid request. */
2541
+ 400: {
2542
+ headers: {
2543
+ [name: string]: unknown;
2544
+ };
2545
+ content: {
2546
+ "application/json": components["schemas"]["ErrorEnvelope"];
2547
+ };
2548
+ };
2549
+ /** @description Trusted actor required. */
2550
+ 401: {
2551
+ headers: {
2552
+ [name: string]: unknown;
2553
+ };
2554
+ content: {
2555
+ "application/json": components["schemas"]["ErrorEnvelope"];
2556
+ };
2557
+ };
2558
+ 403: components["responses"]["Forbidden"];
2559
+ /** @description Unknown or unreadable resource. */
2560
+ 404: {
2561
+ headers: {
2562
+ [name: string]: unknown;
2563
+ };
2564
+ content: {
2565
+ "application/json": components["schemas"]["ErrorEnvelope"];
2566
+ };
2567
+ };
2568
+ 413: components["responses"]["PayloadTooLarge"];
2569
+ /** @description Resource temporarily unavailable. */
2570
+ 503: {
2571
+ headers: {
2572
+ [name: string]: unknown;
2573
+ };
2574
+ content: {
2575
+ "application/json": components["schemas"]["ErrorEnvelope"];
2576
+ };
2577
+ };
2578
+ };
2579
+ };
2580
+ queryWebShellArtifacts: {
2581
+ parameters: {
2582
+ query?: never;
2583
+ header?: never;
2584
+ path?: never;
2585
+ cookie?: never;
2586
+ };
2587
+ requestBody: {
2588
+ content: {
2589
+ "application/json": components["schemas"]["WebShellArtifactQueryRequest"];
2590
+ };
2591
+ };
2592
+ responses: {
2593
+ /** @description Authorized artifact metadata page. */
2594
+ 200: {
2595
+ headers: {
2596
+ "Cache-Control"?: "private, no-store";
2597
+ [name: string]: unknown;
2598
+ };
2599
+ content: {
2600
+ "application/json": components["schemas"]["WebShellArtifactPage"];
2601
+ };
2602
+ };
2603
+ /** @description Invalid request. */
2604
+ 400: {
2605
+ headers: {
2606
+ [name: string]: unknown;
2607
+ };
2608
+ content: {
2609
+ "application/json": components["schemas"]["ErrorEnvelope"];
2610
+ };
2611
+ };
2612
+ /** @description Trusted actor required. */
2613
+ 401: {
2614
+ headers: {
2615
+ [name: string]: unknown;
2616
+ };
2617
+ content: {
2618
+ "application/json": components["schemas"]["ErrorEnvelope"];
2619
+ };
2620
+ };
2621
+ 403: components["responses"]["Forbidden"];
2622
+ /** @description Unknown or unreadable resource. */
2623
+ 404: {
1380
2624
  headers: {
1381
- "X-Request-Id": components["headers"]["RequestId"];
1382
2625
  [name: string]: unknown;
1383
2626
  };
1384
2627
  content: {
1385
- "application/json": components["schemas"]["WebShellAdmission"];
2628
+ "application/json": components["schemas"]["ErrorEnvelope"];
1386
2629
  };
1387
2630
  };
1388
- 400: components["responses"]["BadRequest"];
1389
- 401: components["responses"]["Unauthorized"];
1390
- 403: components["responses"]["Forbidden"];
1391
- 404: components["responses"]["NotFound"];
1392
- 409: components["responses"]["Conflict"];
1393
2631
  413: components["responses"]["PayloadTooLarge"];
2632
+ /** @description Resource temporarily unavailable. */
2633
+ 503: {
2634
+ headers: {
2635
+ [name: string]: unknown;
2636
+ };
2637
+ content: {
2638
+ "application/json": components["schemas"]["ErrorEnvelope"];
2639
+ };
2640
+ };
1394
2641
  };
1395
2642
  };
1396
- webShellQueryWorkspaces: {
2643
+ unarchiveWebShellSession: {
1397
2644
  parameters: {
1398
2645
  query?: never;
1399
2646
  header?: never;
@@ -1402,27 +2649,29 @@ export interface operations {
1402
2649
  };
1403
2650
  requestBody: {
1404
2651
  content: {
1405
- "application/json": components["schemas"]["WebShellWorkspaceQueryRequest"];
2652
+ "application/json": components["schemas"]["WebShellLifecycleRequest"];
1406
2653
  };
1407
2654
  };
1408
2655
  responses: {
1409
- /** @description Authorized durable resource view; no Runtime startup required. */
2656
+ /** @description Current WebShell Session; replay does not repeat the mutation. */
1410
2657
  200: {
1411
2658
  headers: {
2659
+ "X-Qwen-Idempotent-Replay": components["headers"]["IdempotentReplay"];
1412
2660
  [name: string]: unknown;
1413
2661
  };
1414
2662
  content: {
1415
- "application/json": components["schemas"]["WebShellWorkspacePage"];
2663
+ "application/json": components["schemas"]["WebShellSession"];
1416
2664
  };
1417
2665
  };
1418
2666
  400: components["responses"]["BadRequest"];
1419
2667
  401: components["responses"]["Unauthorized"];
1420
2668
  403: components["responses"]["Forbidden"];
1421
2669
  404: components["responses"]["NotFound"];
2670
+ 409: components["responses"]["Conflict"];
1422
2671
  413: components["responses"]["PayloadTooLarge"];
1423
2672
  };
1424
2673
  };
1425
- webShellChangeCwd: {
2674
+ webShellCreateWorkspace: {
1426
2675
  parameters: {
1427
2676
  query?: never;
1428
2677
  header?: never;
@@ -1431,17 +2680,17 @@ export interface operations {
1431
2680
  };
1432
2681
  requestBody: {
1433
2682
  content: {
1434
- "application/json": components["schemas"]["WebShellChangeCwdRequest"];
2683
+ "application/json": components["schemas"]["WebShellWorkspaceCreateRequest"];
1435
2684
  };
1436
2685
  };
1437
2686
  responses: {
1438
- /** @description Durable cwd operation; acceptance does not mean the new cwd is active. */
1439
- 202: {
2687
+ /** @description Created Workspace or authorized same-key replay. */
2688
+ 200: {
1440
2689
  headers: {
1441
2690
  [name: string]: unknown;
1442
2691
  };
1443
2692
  content: {
1444
- "application/json": components["schemas"]["WebShellCwdOperation"];
2693
+ "application/json": components["schemas"]["WebShellWorkspace"];
1445
2694
  };
1446
2695
  };
1447
2696
  400: components["responses"]["BadRequest"];
@@ -1452,7 +2701,7 @@ export interface operations {
1452
2701
  413: components["responses"]["PayloadTooLarge"];
1453
2702
  };
1454
2703
  };
1455
- webShellQueryCwdOperation: {
2704
+ queryWebShellSessionOptions: {
1456
2705
  parameters: {
1457
2706
  query?: never;
1458
2707
  header?: never;
@@ -1461,28 +2710,27 @@ export interface operations {
1461
2710
  };
1462
2711
  requestBody: {
1463
2712
  content: {
1464
- "application/json": components["schemas"]["WebShellOperationRequest"];
2713
+ "application/json": components["schemas"]["WebShellSessionOptionsRequest"];
1465
2714
  };
1466
2715
  };
1467
2716
  responses: {
1468
- /** @description Same authorized operation semantics as the public API. */
2717
+ /** @description Effective default and supported policies. */
1469
2718
  200: {
1470
2719
  headers: {
1471
2720
  [name: string]: unknown;
1472
2721
  };
1473
2722
  content: {
1474
- "application/json": components["schemas"]["WebShellOperation"];
2723
+ "application/json": components["schemas"]["WebShellSessionOptions"];
1475
2724
  };
1476
2725
  };
1477
2726
  400: components["responses"]["BadRequest"];
1478
2727
  401: components["responses"]["Unauthorized"];
1479
2728
  403: components["responses"]["Forbidden"];
1480
2729
  404: components["responses"]["NotFound"];
1481
- 409: components["responses"]["Conflict"];
1482
2730
  413: components["responses"]["PayloadTooLarge"];
1483
2731
  };
1484
2732
  };
1485
- queryWebShellActions: {
2733
+ queryWebShellSessionModels: {
1486
2734
  parameters: {
1487
2735
  query?: never;
1488
2736
  header?: never;
@@ -1491,29 +2739,28 @@ export interface operations {
1491
2739
  };
1492
2740
  requestBody: {
1493
2741
  content: {
1494
- "application/json": components["schemas"]["WebShellActionQueryRequest"];
2742
+ "application/json": components["schemas"]["WebShellSessionModelsRequest"];
1495
2743
  };
1496
2744
  };
1497
2745
  responses: {
1498
- /** @description Same authorized operation semantics as the public API. */
2746
+ /** @description Session model options. */
1499
2747
  200: {
1500
2748
  headers: {
1501
2749
  [name: string]: unknown;
1502
2750
  };
1503
2751
  content: {
1504
- "application/json": components["schemas"]["WebShellActionPage"];
2752
+ "application/json": components["schemas"]["WebShellSessionModels"];
1505
2753
  };
1506
2754
  };
1507
2755
  400: components["responses"]["BadRequest"];
1508
2756
  401: components["responses"]["Unauthorized"];
1509
2757
  403: components["responses"]["Forbidden"];
1510
- /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
1511
2758
  404: components["responses"]["NotFound"];
1512
2759
  409: components["responses"]["Conflict"];
1513
2760
  413: components["responses"]["PayloadTooLarge"];
1514
2761
  };
1515
2762
  };
1516
- getWebShellAction: {
2763
+ changeWebShellSessionModel: {
1517
2764
  parameters: {
1518
2765
  query?: never;
1519
2766
  header?: never;
@@ -1522,29 +2769,28 @@ export interface operations {
1522
2769
  };
1523
2770
  requestBody: {
1524
2771
  content: {
1525
- "application/json": components["schemas"]["WebShellActionGetRequest"];
2772
+ "application/json": components["schemas"]["WebShellChangeModelRequest"];
1526
2773
  };
1527
2774
  };
1528
2775
  responses: {
1529
- /** @description Same authorized operation semantics as the public API. */
2776
+ /** @description The admitted model selection, or the same original result on replay. */
1530
2777
  200: {
1531
2778
  headers: {
1532
2779
  [name: string]: unknown;
1533
2780
  };
1534
2781
  content: {
1535
- "application/json": components["schemas"]["WebShellAction"];
2782
+ "application/json": components["schemas"]["WebShellModelChangeResult"];
1536
2783
  };
1537
2784
  };
1538
2785
  400: components["responses"]["BadRequest"];
1539
2786
  401: components["responses"]["Unauthorized"];
1540
2787
  403: components["responses"]["Forbidden"];
1541
- /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
1542
2788
  404: components["responses"]["NotFound"];
1543
2789
  409: components["responses"]["Conflict"];
1544
2790
  413: components["responses"]["PayloadTooLarge"];
1545
2791
  };
1546
2792
  };
1547
- respondWebShellAction: {
2793
+ queryWebShellSessionApproval: {
1548
2794
  parameters: {
1549
2795
  query?: never;
1550
2796
  header?: never;
@@ -1553,31 +2799,28 @@ export interface operations {
1553
2799
  };
1554
2800
  requestBody: {
1555
2801
  content: {
1556
- "application/json": components["schemas"]["WebShellActionRespondRequest"];
2802
+ "application/json": components["schemas"]["WebShellSessionApprovalRequest"];
1557
2803
  };
1558
2804
  };
1559
2805
  responses: {
1560
- /** @description Same authorized operation semantics as the public API. */
1561
- 202: {
2806
+ /** @description The current policy options. */
2807
+ 200: {
1562
2808
  headers: {
1563
2809
  [name: string]: unknown;
1564
2810
  };
1565
2811
  content: {
1566
- "application/json": components["schemas"]["WebShellCommandOperation"];
2812
+ "application/json": components["schemas"]["WebShellSessionApproval"];
1567
2813
  };
1568
2814
  };
1569
2815
  400: components["responses"]["BadRequest"];
1570
2816
  401: components["responses"]["Unauthorized"];
1571
- /** @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. */
1572
2817
  403: components["responses"]["Forbidden"];
1573
- /** @description Unknown or unreadable Session (session_not_found), or unknown Action (action_not_found). */
1574
2818
  404: components["responses"]["NotFound"];
1575
- /** @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. */
1576
2819
  409: components["responses"]["Conflict"];
1577
2820
  413: components["responses"]["PayloadTooLarge"];
1578
2821
  };
1579
2822
  };
1580
- closeWebShellSession: {
2823
+ changeWebShellSessionApproval: {
1581
2824
  parameters: {
1582
2825
  query?: never;
1583
2826
  header?: never;
@@ -1586,17 +2829,17 @@ export interface operations {
1586
2829
  };
1587
2830
  requestBody: {
1588
2831
  content: {
1589
- "application/json": components["schemas"]["WebShellLifecycleRequest"];
2832
+ "application/json": components["schemas"]["WebShellChangeApprovalRequest"];
1590
2833
  };
1591
2834
  };
1592
2835
  responses: {
1593
- /** @description Same authorized operation semantics as the public API. */
1594
- 202: {
2836
+ /** @description The committed approval selection, or its original receipt on replay. */
2837
+ 200: {
1595
2838
  headers: {
1596
2839
  [name: string]: unknown;
1597
2840
  };
1598
2841
  content: {
1599
- "application/json": components["schemas"]["WebShellCommandOperation"];
2842
+ "application/json": components["schemas"]["WebShellApprovalChangeResult"];
1600
2843
  };
1601
2844
  };
1602
2845
  400: components["responses"]["BadRequest"];
@@ -1607,37 +2850,33 @@ export interface operations {
1607
2850
  413: components["responses"]["PayloadTooLarge"];
1608
2851
  };
1609
2852
  };
1610
- archiveWebShellSession: {
2853
+ webShellQueryRuntimeNodes: {
1611
2854
  parameters: {
1612
2855
  query?: never;
1613
2856
  header?: never;
1614
2857
  path?: never;
1615
2858
  cookie?: never;
1616
2859
  };
1617
- requestBody: {
1618
- content: {
1619
- "application/json": components["schemas"]["WebShellLifecycleRequest"];
1620
- };
1621
- };
2860
+ requestBody?: never;
1622
2861
  responses: {
1623
- /** @description Same authorized operation semantics as the public API. */
1624
- 202: {
2862
+ /** @description SSH registration capability and authorized machine display names. */
2863
+ 200: {
1625
2864
  headers: {
2865
+ "X-Request-Id": components["headers"]["RequestId"];
2866
+ "Cache-Control"?: "no-store";
1626
2867
  [name: string]: unknown;
1627
2868
  };
1628
2869
  content: {
1629
- "application/json": components["schemas"]["WebShellCommandOperation"];
2870
+ "application/json": components["schemas"]["WebShellRuntimeNodePage"];
1630
2871
  };
1631
2872
  };
1632
2873
  400: components["responses"]["BadRequest"];
1633
2874
  401: components["responses"]["Unauthorized"];
1634
2875
  403: components["responses"]["Forbidden"];
1635
- 404: components["responses"]["NotFound"];
1636
- 409: components["responses"]["Conflict"];
1637
2876
  413: components["responses"]["PayloadTooLarge"];
1638
2877
  };
1639
2878
  };
1640
- deleteWebShellSession: {
2879
+ webShellCheckWorkspaceDirectory: {
1641
2880
  parameters: {
1642
2881
  query?: never;
1643
2882
  header?: never;
@@ -1646,17 +2885,19 @@ export interface operations {
1646
2885
  };
1647
2886
  requestBody: {
1648
2887
  content: {
1649
- "application/json": components["schemas"]["WebShellLifecycleRequest"];
2888
+ "application/json": components["schemas"]["WebShellWorkspaceDirectoryRequest"];
1650
2889
  };
1651
2890
  };
1652
2891
  responses: {
1653
- /** @description Same authorized operation semantics as the public API. */
1654
- 202: {
2892
+ /** @description Validated canonical directory on the selected Linux or macOS node. */
2893
+ 200: {
1655
2894
  headers: {
2895
+ "X-Request-Id": components["headers"]["RequestId"];
2896
+ "Cache-Control"?: "no-store";
1656
2897
  [name: string]: unknown;
1657
2898
  };
1658
2899
  content: {
1659
- "application/json": components["schemas"]["WebShellCommandOperation"];
2900
+ "application/json": components["schemas"]["WebShellWorkspaceDirectory"];
1660
2901
  };
1661
2902
  };
1662
2903
  400: components["responses"]["BadRequest"];
@@ -1665,9 +2906,19 @@ export interface operations {
1665
2906
  404: components["responses"]["NotFound"];
1666
2907
  409: components["responses"]["Conflict"];
1667
2908
  413: components["responses"]["PayloadTooLarge"];
2909
+ /** @description The SSH bootstrap response is invalid. */
2910
+ 502: {
2911
+ headers: {
2912
+ [name: string]: unknown;
2913
+ };
2914
+ content: {
2915
+ "application/json": components["schemas"]["ErrorEnvelope"];
2916
+ };
2917
+ };
2918
+ 503: components["responses"]["Unavailable"];
1668
2919
  };
1669
2920
  };
1670
- webShellGetWorkspace: {
2921
+ webShellGetWorkspaceOperation: {
1671
2922
  parameters: {
1672
2923
  query?: never;
1673
2924
  header?: never;
@@ -1676,17 +2927,19 @@ export interface operations {
1676
2927
  };
1677
2928
  requestBody: {
1678
2929
  content: {
1679
- "application/json": components["schemas"]["WebShellWorkspaceGetRequest"];
2930
+ "application/json": components["schemas"]["WebShellWorkspaceOperationRequest"];
1680
2931
  };
1681
2932
  };
1682
2933
  responses: {
1683
- /** @description Authorized durable resource view; no Runtime startup required. */
2934
+ /** @description Latest durable state of the original actor-owned registration. */
1684
2935
  200: {
1685
2936
  headers: {
2937
+ "X-Request-Id": components["headers"]["RequestId"];
2938
+ "Cache-Control"?: "no-store";
1686
2939
  [name: string]: unknown;
1687
2940
  };
1688
2941
  content: {
1689
- "application/json": components["schemas"]["WebShellWorkspace"];
2942
+ "application/json": components["schemas"]["WebShellWorkspaceCreateOperation"];
1690
2943
  };
1691
2944
  };
1692
2945
  400: components["responses"]["BadRequest"];
@@ -1696,7 +2949,7 @@ export interface operations {
1696
2949
  413: components["responses"]["PayloadTooLarge"];
1697
2950
  };
1698
2951
  };
1699
- queryWebShellTasks: {
2952
+ webShellRegisterWorkspace: {
1700
2953
  parameters: {
1701
2954
  query?: never;
1702
2955
  header?: never;
@@ -1705,27 +2958,30 @@ export interface operations {
1705
2958
  };
1706
2959
  requestBody: {
1707
2960
  content: {
1708
- "application/json": components["schemas"]["WebShellTaskQueryRequest"];
2961
+ "application/json": components["schemas"]["WebShellWorkspaceRegisterRequest"];
1709
2962
  };
1710
2963
  };
1711
2964
  responses: {
1712
- /** @description Same authorized task semantics as the public API. */
1713
- 200: {
2965
+ /** @description Durable registration operation; repeated requests retain the original identity. */
2966
+ 202: {
1714
2967
  headers: {
2968
+ "X-Request-Id": components["headers"]["RequestId"];
2969
+ "Cache-Control"?: "no-store";
1715
2970
  [name: string]: unknown;
1716
2971
  };
1717
2972
  content: {
1718
- "application/json": components["schemas"]["WebShellTaskPage"];
2973
+ "application/json": components["schemas"]["WebShellWorkspaceCreateOperation"];
1719
2974
  };
1720
2975
  };
1721
2976
  400: components["responses"]["BadRequest"];
1722
2977
  401: components["responses"]["Unauthorized"];
1723
2978
  403: components["responses"]["Forbidden"];
1724
2979
  404: components["responses"]["NotFound"];
2980
+ 409: components["responses"]["Conflict"];
1725
2981
  413: components["responses"]["PayloadTooLarge"];
1726
2982
  };
1727
2983
  };
1728
- getWebShellTask: {
2984
+ queryWebShellWorkspaceDirectories: {
1729
2985
  parameters: {
1730
2986
  query?: never;
1731
2987
  header?: never;
@@ -1734,27 +2990,27 @@ export interface operations {
1734
2990
  };
1735
2991
  requestBody: {
1736
2992
  content: {
1737
- "application/json": components["schemas"]["WebShellTaskGetRequest"];
2993
+ "application/json": components["schemas"]["WebShellWorkspaceDirectoryQueryRequest"];
1738
2994
  };
1739
2995
  };
1740
2996
  responses: {
1741
- /** @description Same authorized task semantics as the public API. */
2997
+ /** @description Authorized existing directories. */
1742
2998
  200: {
1743
2999
  headers: {
1744
3000
  [name: string]: unknown;
1745
3001
  };
1746
3002
  content: {
1747
- "application/json": components["schemas"]["WebShellTask"];
3003
+ "application/json": components["schemas"]["WebShellWorkspaceDirectoryPage"];
1748
3004
  };
1749
3005
  };
1750
3006
  400: components["responses"]["BadRequest"];
1751
3007
  401: components["responses"]["Unauthorized"];
1752
3008
  403: components["responses"]["Forbidden"];
1753
3009
  404: components["responses"]["NotFound"];
1754
- 413: components["responses"]["PayloadTooLarge"];
3010
+ 409: components["responses"]["Conflict"];
1755
3011
  };
1756
3012
  };
1757
- queryWebShellTaskEvents: {
3013
+ queryWebShellSessionMcp: {
1758
3014
  parameters: {
1759
3015
  query?: never;
1760
3016
  header?: never;
@@ -1763,28 +3019,27 @@ export interface operations {
1763
3019
  };
1764
3020
  requestBody: {
1765
3021
  content: {
1766
- "application/json": components["schemas"]["WebShellTaskEventQueryRequest"];
3022
+ "application/json": components["schemas"]["WebShellSessionRequest"];
1767
3023
  };
1768
3024
  };
1769
3025
  responses: {
1770
- /** @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. */
3026
+ /** @description Session MCP catalog snapshot. */
1771
3027
  200: {
1772
3028
  headers: {
1773
3029
  [name: string]: unknown;
1774
3030
  };
1775
3031
  content: {
1776
- "application/json": components["schemas"]["WebShellTaskEventPage"];
3032
+ "application/json": components["schemas"]["PublicMcpCatalog"];
1777
3033
  };
1778
3034
  };
1779
3035
  400: components["responses"]["BadRequest"];
1780
3036
  401: components["responses"]["Unauthorized"];
1781
3037
  403: components["responses"]["Forbidden"];
1782
3038
  404: components["responses"]["NotFound"];
1783
- 409: components["responses"]["TaskCursorExpired"];
1784
3039
  413: components["responses"]["PayloadTooLarge"];
1785
3040
  };
1786
3041
  };
1787
- cancelWebShellTask: {
3042
+ queryWebShellSessionSkills: {
1788
3043
  parameters: {
1789
3044
  query?: never;
1790
3045
  header?: never;
@@ -1793,18 +3048,17 @@ export interface operations {
1793
3048
  };
1794
3049
  requestBody: {
1795
3050
  content: {
1796
- "application/json": components["schemas"]["WebShellTaskCancelRequest"];
3051
+ "application/json": components["schemas"]["WebShellSessionRequest"];
1797
3052
  };
1798
3053
  };
1799
3054
  responses: {
1800
- /** @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. */
1801
- 202: {
3055
+ /** @description Session static Skill metadata. */
3056
+ 200: {
1802
3057
  headers: {
1803
- "X-Request-Id": components["headers"]["RequestId"];
1804
3058
  [name: string]: unknown;
1805
3059
  };
1806
3060
  content: {
1807
- "application/json": components["schemas"]["WebShellCommandOperation"];
3061
+ "application/json": components["schemas"]["WebShellSessionSkills"];
1808
3062
  };
1809
3063
  };
1810
3064
  400: components["responses"]["BadRequest"];
@@ -1815,7 +3069,7 @@ export interface operations {
1815
3069
  413: components["responses"]["PayloadTooLarge"];
1816
3070
  };
1817
3071
  };
1818
- getWebShellToolResult: {
3072
+ webShellWorkspaceFilesQuery: {
1819
3073
  parameters: {
1820
3074
  query?: never;
1821
3075
  header?: never;
@@ -1824,61 +3078,28 @@ export interface operations {
1824
3078
  };
1825
3079
  requestBody: {
1826
3080
  content: {
1827
- "application/json": components["schemas"]["WebShellToolResultRequest"];
3081
+ "application/json": components["schemas"]["WebShellWorkspaceFileQueryRequest"];
1828
3082
  };
1829
3083
  };
1830
3084
  responses: {
1831
- /** @description Authorized persisted tool result resource. */
3085
+ /** @description Authorized Workspace file result. */
1832
3086
  200: {
1833
- headers: {
1834
- "Cache-Control"?: "private, no-store";
1835
- [name: string]: unknown;
1836
- };
1837
- content: {
1838
- "application/json": components["schemas"]["ToolResultResponse"];
1839
- };
1840
- };
1841
- /** @description Invalid request. */
1842
- 400: {
1843
- headers: {
1844
- [name: string]: unknown;
1845
- };
1846
- content: {
1847
- "application/json": components["schemas"]["ErrorEnvelope"];
1848
- };
1849
- };
1850
- /** @description Trusted actor required. */
1851
- 401: {
1852
3087
  headers: {
1853
3088
  [name: string]: unknown;
1854
3089
  };
1855
3090
  content: {
1856
- "application/json": components["schemas"]["ErrorEnvelope"];
3091
+ "application/json": components["schemas"]["WebShellWorkspaceFilePage"];
1857
3092
  };
1858
3093
  };
3094
+ 400: components["responses"]["BadRequest"];
3095
+ 401: components["responses"]["Unauthorized"];
1859
3096
  403: components["responses"]["Forbidden"];
1860
- /** @description Unknown or unreadable resource. */
1861
- 404: {
1862
- headers: {
1863
- [name: string]: unknown;
1864
- };
1865
- content: {
1866
- "application/json": components["schemas"]["ErrorEnvelope"];
1867
- };
1868
- };
1869
- 413: components["responses"]["PayloadTooLarge"];
1870
- /** @description Resource temporarily unavailable. */
1871
- 503: {
1872
- headers: {
1873
- [name: string]: unknown;
1874
- };
1875
- content: {
1876
- "application/json": components["schemas"]["ErrorEnvelope"];
1877
- };
1878
- };
3097
+ 404: components["responses"]["NotFound"];
3098
+ 409: components["responses"]["Conflict"];
3099
+ 503: components["responses"]["Unavailable"];
1879
3100
  };
1880
3101
  };
1881
- getWebShellArtifact: {
3102
+ webShellWorkspaceFilesRead: {
1882
3103
  parameters: {
1883
3104
  query?: never;
1884
3105
  header?: never;
@@ -1887,61 +3108,28 @@ export interface operations {
1887
3108
  };
1888
3109
  requestBody: {
1889
3110
  content: {
1890
- "application/json": components["schemas"]["WebShellArtifactRequest"];
3111
+ "application/json": components["schemas"]["WebShellWorkspaceFileReadRequest"];
1891
3112
  };
1892
3113
  };
1893
3114
  responses: {
1894
- /** @description Authorized persisted artifact metadata. */
3115
+ /** @description Authorized Workspace file result. */
1895
3116
  200: {
1896
- headers: {
1897
- "Cache-Control"?: "private, no-store";
1898
- [name: string]: unknown;
1899
- };
1900
- content: {
1901
- "application/json": components["schemas"]["ArtifactResponse"];
1902
- };
1903
- };
1904
- /** @description Invalid request. */
1905
- 400: {
1906
- headers: {
1907
- [name: string]: unknown;
1908
- };
1909
- content: {
1910
- "application/json": components["schemas"]["ErrorEnvelope"];
1911
- };
1912
- };
1913
- /** @description Trusted actor required. */
1914
- 401: {
1915
3117
  headers: {
1916
3118
  [name: string]: unknown;
1917
3119
  };
1918
3120
  content: {
1919
- "application/json": components["schemas"]["ErrorEnvelope"];
3121
+ "application/json": components["schemas"]["WebShellWorkspaceFileSnapshot"];
1920
3122
  };
1921
3123
  };
3124
+ 400: components["responses"]["BadRequest"];
3125
+ 401: components["responses"]["Unauthorized"];
1922
3126
  403: components["responses"]["Forbidden"];
1923
- /** @description Unknown or unreadable resource. */
1924
- 404: {
1925
- headers: {
1926
- [name: string]: unknown;
1927
- };
1928
- content: {
1929
- "application/json": components["schemas"]["ErrorEnvelope"];
1930
- };
1931
- };
1932
- 413: components["responses"]["PayloadTooLarge"];
1933
- /** @description Resource temporarily unavailable. */
1934
- 503: {
1935
- headers: {
1936
- [name: string]: unknown;
1937
- };
1938
- content: {
1939
- "application/json": components["schemas"]["ErrorEnvelope"];
1940
- };
1941
- };
3127
+ 404: components["responses"]["NotFound"];
3128
+ 409: components["responses"]["Conflict"];
3129
+ 503: components["responses"]["Unavailable"];
1942
3130
  };
1943
3131
  };
1944
- queryWebShellArtifacts: {
3132
+ getWebShellToolDetails: {
1945
3133
  parameters: {
1946
3134
  query?: never;
1947
3135
  header?: never;
@@ -1950,18 +3138,18 @@ export interface operations {
1950
3138
  };
1951
3139
  requestBody: {
1952
3140
  content: {
1953
- "application/json": components["schemas"]["WebShellArtifactQueryRequest"];
3141
+ "application/json": components["schemas"]["WebShellToolResultRequest"];
1954
3142
  };
1955
3143
  };
1956
3144
  responses: {
1957
- /** @description Authorized artifact metadata page. */
3145
+ /** @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. */
1958
3146
  200: {
1959
3147
  headers: {
1960
3148
  "Cache-Control"?: "private, no-store";
1961
3149
  [name: string]: unknown;
1962
3150
  };
1963
3151
  content: {
1964
- "application/json": components["schemas"]["WebShellArtifactPage"];
3152
+ "application/json": components["schemas"]["WebShellToolDetails"];
1965
3153
  };
1966
3154
  };
1967
3155
  /** @description Invalid request. */
@@ -1992,6 +3180,7 @@ export interface operations {
1992
3180
  "application/json": components["schemas"]["ErrorEnvelope"];
1993
3181
  };
1994
3182
  };
3183
+ 409: components["responses"]["Conflict"];
1995
3184
  413: components["responses"]["PayloadTooLarge"];
1996
3185
  /** @description Resource temporarily unavailable. */
1997
3186
  503: {
@@ -2004,35 +3193,4 @@ export interface operations {
2004
3193
  };
2005
3194
  };
2006
3195
  };
2007
- unarchiveWebShellSession: {
2008
- parameters: {
2009
- query?: never;
2010
- header?: never;
2011
- path?: never;
2012
- cookie?: never;
2013
- };
2014
- requestBody: {
2015
- content: {
2016
- "application/json": components["schemas"]["WebShellLifecycleRequest"];
2017
- };
2018
- };
2019
- responses: {
2020
- /** @description Current WebShell Session; replay does not repeat the mutation. */
2021
- 200: {
2022
- headers: {
2023
- "X-Qwen-Idempotent-Replay": components["headers"]["IdempotentReplay"];
2024
- [name: string]: unknown;
2025
- };
2026
- content: {
2027
- "application/json": components["schemas"]["WebShellSession"];
2028
- };
2029
- };
2030
- 400: components["responses"]["BadRequest"];
2031
- 401: components["responses"]["Unauthorized"];
2032
- 403: components["responses"]["Forbidden"];
2033
- 404: components["responses"]["NotFound"];
2034
- 409: components["responses"]["Conflict"];
2035
- 413: components["responses"]["PayloadTooLarge"];
2036
- };
2037
- };
2038
3196
  }