@qwen-code/qwen-code 0.19.2 → 0.19.3

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 (282) hide show
  1. package/bundled/extension-creator/SKILL.md +357 -0
  2. package/bundled/loop/SKILL.md +12 -7
  3. package/bundled/loop/SKILL.test.ts +32 -0
  4. package/bundled/qc-helper/SKILL.md +14 -14
  5. package/bundled/qc-helper/docs/configuration/auth.md +11 -11
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +13 -13
  7. package/bundled/qc-helper/docs/configuration/settings.md +60 -60
  8. package/bundled/qc-helper/docs/features/commands.md +108 -77
  9. package/bundled/qc-helper/docs/features/memory.md +52 -0
  10. package/bundled/qc-helper/docs/qwen-serve.md +24 -2
  11. package/bundled/qc-helper/docs/support/tos-privacy.md +16 -3
  12. package/chunks/{MaxSizedBox-7RERNLFK.js → MaxSizedBox-QNF3EIGU.js} +29 -30
  13. package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-Z52JTYST.js} +42 -40
  14. package/chunks/{acpAgent-4MCETHF2.js → acpAgent-7RZUOWOM.js} +406 -118
  15. package/chunks/{agent-K3ENVYSB.js → agent-4FG7WTHJ.js} +24 -26
  16. package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-RQ5BTX3G.js} +24 -26
  17. package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-PFITVL7Y.js} +31 -13
  18. package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-D2X7G3C3.js} +2 -2
  19. package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-UGETICJQ.js} +2 -2
  20. package/chunks/{bridge-4LV2HBH2.js → bridge-JL2PMCIW.js} +29 -32
  21. package/chunks/{ca-7WC7ELX6.js → ca-IUFWESZL.js} +1 -0
  22. package/chunks/{chunk-3UALQ56H.js → chunk-3227DZO4.js} +1 -1
  23. package/chunks/{chunk-JTYRZODB.js → chunk-3TV3HUWZ.js} +16 -7
  24. package/chunks/{chunk-NYOHZYHM.js → chunk-4LUZAKMK.js} +45 -3
  25. package/chunks/{chunk-EL5IHQON.js → chunk-4QK3O43S.js} +6 -27
  26. package/chunks/chunk-5GOVVXEV.js +73 -0
  27. package/chunks/{chunk-R36VMVEP.js → chunk-6V4NZFUS.js} +5 -5
  28. package/chunks/{chunk-XKBP7M7A.js → chunk-ADCIHOQZ.js} +138 -28
  29. package/chunks/chunk-BC3C4F3Q.js +40 -0
  30. package/chunks/{chunk-CGEGHF2C.js → chunk-BKXBARJZ.js} +1 -1
  31. package/chunks/chunk-BMFMJINR.js +45 -0
  32. package/chunks/chunk-BTLJ2MF5.js +690 -0
  33. package/chunks/{chunk-OIC6S73E.js → chunk-BUUQ5HPX.js} +1 -1
  34. package/chunks/{chunk-2BIF2NVV.js → chunk-BVSVIN45.js} +2 -2
  35. package/chunks/{chunk-JXQ23SNT.js → chunk-BW4KCQFD.js} +54 -2
  36. package/chunks/{chunk-TOEGRAVX.js → chunk-BX5YO7UW.js} +17 -5
  37. package/chunks/{chunk-5RVSM6NW.js → chunk-BXSHL2SF.js} +1 -1
  38. package/chunks/{chunk-UN3C6GOR.js → chunk-CF6BB3LT.js} +0 -107
  39. package/chunks/{chunk-Z7XXFPGP.js → chunk-CKQA6AWF.js} +1 -1
  40. package/chunks/{chunk-I2RFAW6Q.js → chunk-CNLEDYE3.js} +7 -5
  41. package/chunks/{chunk-PRYMDRBV.js → chunk-DDMOU62Q.js} +1 -1
  42. package/chunks/chunk-EDMZZFDU.js +11213 -0
  43. package/chunks/{chunk-IRJWHZWU.js → chunk-EJYJYJZ2.js} +70 -3
  44. package/chunks/{chunk-OQHQHJRK.js → chunk-F3ZYSEY6.js} +151 -4775
  45. package/chunks/chunk-FKAVULLM.js +4909 -0
  46. package/chunks/{chunk-TZM5JIAX.js → chunk-FNJ7BDPH.js} +6 -6
  47. package/chunks/{chunk-EXMX5YHG.js → chunk-FXKVLFFY.js} +1 -1
  48. package/chunks/{chunk-EX4W6ZYG.js → chunk-GGBIN5K7.js} +1 -1
  49. package/chunks/{chunk-BS64PXY3.js → chunk-GT2FGICD.js} +1 -1
  50. package/chunks/{chunk-HG6YKEBI.js → chunk-HPZTOP4I.js} +75 -23
  51. package/chunks/{chunk-OTBK43JR.js → chunk-HYCC3XM3.js} +1 -1
  52. package/chunks/{chunk-3QFE4OTE.js → chunk-HZT4UCFB.js} +4 -4
  53. package/chunks/{chunk-GYZQA2FO.js → chunk-I2LYBGNI.js} +1 -1
  54. package/chunks/{chunk-TMBPDHXD.js → chunk-I4H7PRWQ.js} +1 -1
  55. package/chunks/{chunk-2BAQ3ACS.js → chunk-J33ZR6OJ.js} +404 -4
  56. package/chunks/{chunk-4W4T77MO.js → chunk-J7FA27RO.js} +109 -6
  57. package/chunks/{chunk-S566HKUS.js → chunk-JE5FVRPC.js} +38 -7
  58. package/chunks/{chunk-CGOMICBE.js → chunk-JJXWTVSK.js} +1 -1
  59. package/chunks/{chunk-EEEZIVFJ.js → chunk-JOLIREYR.js} +1 -1
  60. package/chunks/{chunk-DBZUXSSV.js → chunk-JVHEVCAU.js} +5 -5
  61. package/chunks/chunk-K5XU6E4T.js +167 -0
  62. package/chunks/{chunk-EW6C27XX.js → chunk-KMGMKW5Q.js} +1 -1
  63. package/chunks/{chunk-D5E5TMYH.js → chunk-L7OKCI7T.js} +4 -2
  64. package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
  65. package/chunks/{chunk-CI5O6SQL.js → chunk-MNF6S5PR.js} +4 -4
  66. package/chunks/{chunk-FPACXT7T.js → chunk-N4EJFBN5.js} +421 -163
  67. package/chunks/chunk-NDOC6M5S.js +481 -0
  68. package/chunks/{chunk-HGNSRCRB.js → chunk-NL4C3H6C.js} +1 -1
  69. package/chunks/{chunk-GZCJS5WH.js → chunk-O2VBQ3Y2.js} +2 -2
  70. package/chunks/{chunk-VQRYPFCV.js → chunk-O75BHFQW.js} +10 -460
  71. package/chunks/{chunk-WGAEWQTF.js → chunk-ODLIHNOY.js} +1 -2
  72. package/chunks/{chunk-J6AW7O5D.js → chunk-PDE7CSDS.js} +2 -2
  73. package/chunks/{chunk-5R4SBCX6.js → chunk-PR32FRT6.js} +3 -3
  74. package/chunks/{chunk-LLFFKXZZ.js → chunk-QE6KJYLT.js} +56 -29
  75. package/chunks/{chunk-3RJ3ZPPR.js → chunk-QI7GOGJR.js} +7 -7
  76. package/chunks/{chunk-XU5P23GN.js → chunk-QLDPRILK.js} +3 -3
  77. package/chunks/{chunk-WA5OJGFL.js → chunk-QNKBEJO2.js} +359 -76
  78. package/chunks/{chunk-UAARVVBI.js → chunk-QWFNTRH4.js} +1 -1
  79. package/chunks/chunk-QYUE6W3T.js +123 -0
  80. package/chunks/{chunk-5JZLXFPD.js → chunk-R5OP2ATH.js} +11 -11
  81. package/chunks/{chunk-BNXANYLH.js → chunk-RD6YJJJ6.js} +81 -1
  82. package/chunks/{chunk-2TJ3YN6Q.js → chunk-RRFZXMYP.js} +380 -400
  83. package/chunks/{chunk-ZN5T4BHI.js → chunk-RYLJU2DY.js} +1 -1
  84. package/chunks/{chunk-ZD3NW5KL.js → chunk-S7AKE7HL.js} +3 -3
  85. package/chunks/{chunk-BG4BIP7F.js → chunk-SBBN4BWR.js} +4 -2
  86. package/chunks/{chunk-T2VDEFUU.js → chunk-SKQZZVAV.js} +2 -2
  87. package/chunks/{chunk-USGMPVOY.js → chunk-SLNKLLEO.js} +14 -9
  88. package/chunks/chunk-SMXULRAN.js +37 -0
  89. package/chunks/{chunk-PF523XJX.js → chunk-SMYQZVZ3.js} +1 -1
  90. package/chunks/{chunk-I5T6PIBQ.js → chunk-STUWFKGD.js} +1001 -887
  91. package/chunks/{chunk-UAARJR2G.js → chunk-T4T2FNV4.js} +2 -2
  92. package/chunks/{chunk-F6XNTYNE.js → chunk-U3KSMM7G.js} +8 -4
  93. package/chunks/chunk-UFLGERMB.js +813 -0
  94. package/chunks/{chunk-BGUDAULQ.js → chunk-UO5GVXQE.js} +5 -5
  95. package/chunks/{chunk-C4K3FEQ2.js → chunk-UX4SGCGN.js} +32 -3
  96. package/chunks/{chunk-RS4HRC75.js → chunk-UYT3MWEB.js} +85 -8
  97. package/chunks/{chunk-VYFMN7C6.js → chunk-VBZ452JT.js} +113 -24
  98. package/chunks/{chunk-KBXLIVWQ.js → chunk-VVLOGDB6.js} +2 -2
  99. package/chunks/{chunk-TXVGVZYR.js → chunk-XJYUPHRC.js} +3 -3
  100. package/chunks/{chunk-2JD55C6G.js → chunk-Y6YMRS3U.js} +2 -2
  101. package/chunks/{chunk-PXFFKNCO.js → chunk-YAINVQ3Q.js} +2961 -1349
  102. package/chunks/{chunk-X6EDWN44.js → chunk-ZP6UKOPB.js} +1 -1
  103. package/chunks/{computer-use-6BBRNT6S.js → computer-use-JGB36FDW.js} +103 -52
  104. package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-WYU6OQ2F.js} +26 -28
  105. package/chunks/{cron-create-4KQE6YLH.js → cron-create-SKEY55RG.js} +4 -4
  106. package/chunks/{cron-delete-THME66UP.js → cron-delete-I3NAT32Z.js} +6 -6
  107. package/chunks/{cron-list-7A54SJ5N.js → cron-list-6XRRL6TH.js} +5 -5
  108. package/chunks/daemon-status-provider-HH2EC5FI.js +65 -0
  109. package/chunks/{de-ACHALDED.js → de-EOW5PVHF.js} +1 -0
  110. package/chunks/{dist-BOOH5JWN.js → dist-663NZ6MI.js} +1 -1
  111. package/chunks/{dist-QHJRBCMP.js → dist-J37VXPLD.js} +46 -5
  112. package/chunks/{dist-OD2FY543.js → dist-LB6OGPVM.js} +1 -1
  113. package/chunks/{dist-BD27IA3L.js → dist-NHEYYB2B.js} +2 -2
  114. package/chunks/{dist-QFFZWACU.js → dist-PQPZ5Q4N.js} +1 -1
  115. package/chunks/{earlyInputCapture-X6KMCSHD.js → earlyInputCapture-44RISVVJ.js} +25 -27
  116. package/chunks/{edit-7J6WXARF.js → edit-NN6GM5DT.js} +68 -30
  117. package/chunks/{en-NCUBOJOY.js → en-HPWEJBTR.js} +8 -0
  118. package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-PB3O2C7D.js} +24 -26
  119. package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-YQFNNSUA.js} +24 -26
  120. package/chunks/{errors-6G2JYR54.js → errors-LS7XU5DZ.js} +26 -28
  121. package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-E2FTNSBK.js} +24 -26
  122. package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-GLYK2BUB.js} +24 -26
  123. package/chunks/{fast-path-35JJFS3C.js → fast-path-WQ6M7LI7.js} +4 -4
  124. package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-OAGU3X5H.js} +3 -2
  125. package/chunks/{fr-GVKZ27MF.js → fr-BN5NKSAC.js} +1 -0
  126. package/chunks/{gemini-NDTG7WAX.js → gemini-2YFLVA2M.js} +204 -103
  127. package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-XV6SV6CD.js} +4 -4
  128. package/chunks/{glob-SJ2JBZK4.js → glob-2H6CDDMK.js} +24 -26
  129. package/chunks/{grep-BRMWFEWR.js → grep-VXIUXM3C.js} +24 -26
  130. package/chunks/{headlessSafetyWarnings-LJ6FJX77.js → headlessSafetyWarnings-TBE35GJ4.js} +24 -26
  131. package/chunks/initializer-2Y7SLOKV.js +61 -0
  132. package/chunks/{ja-FKZ2WZ4D.js → ja-7DEUB2TS.js} +1 -0
  133. package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-YLMDLKXT.js} +2 -2
  134. package/chunks/list-ZAFHZ7OS.js +65 -0
  135. package/chunks/loadedSettingsAdapter-6KJXD6M3.js +60 -0
  136. package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-CITGGQHA.js} +7 -7
  137. package/chunks/{ls-BYQY7RVV.js → ls-R5WP4BGZ.js} +4 -4
  138. package/chunks/{lsp-X54RO4IV.js → lsp-GSICJMMW.js} +2 -2
  139. package/chunks/{monitor-DH7KFSJV.js → monitor-HKLRS2HQ.js} +24 -26
  140. package/chunks/nonInteractiveCli-5W4GIZQM.js +96 -0
  141. package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-Y6SKSGTT.js} +52 -26
  142. package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-J7G2FYJT.js} +13 -14
  143. package/chunks/{pt-SY5NCFGR.js → pt-TNZRNLQB.js} +1 -0
  144. package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-5XIEM5GV.js} +26 -28
  145. package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-AG3PFFLZ.js} +4 -4
  146. package/chunks/{read-file-767G23OY.js → read-file-J7D552ZJ.js} +9 -10
  147. package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-DQQW7H7T.js} +2 -2
  148. package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-IEIFIWP4.js} +24 -26
  149. package/chunks/{ru-FWNXJG4F.js → ru-NIAUBKCN.js} +1 -0
  150. package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-SGEEVMXD.js} +149 -41
  151. package/chunks/{scheduler-UNTFDQLG.js → scheduler-7CQI3S4Q.js} +24 -26
  152. package/chunks/{send-message-2DAFXEYP.js → send-message-EE4TWKVU.js} +2 -2
  153. package/chunks/{serve-KZ56QB5S.js → serve-V6GVZR6U.js} +31 -31
  154. package/chunks/{server-BV5TZUMU.js → server-4QMUWXPW.js} +6996 -5864
  155. package/chunks/{session-OIBXFSGD.js → session-NRO7UFOY.js} +62 -57
  156. package/chunks/{settings-WJTCBIRA.js → settings-SGWRDQSC.js} +30 -30
  157. package/chunks/{shell-WC52IBHW.js → shell-62ANGIHL.js} +24 -26
  158. package/chunks/{skill-U7F7JR4M.js → skill-VWAQAWW6.js} +39 -13
  159. package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-3VHW5EPY.js} +26 -28
  160. package/chunks/{src-4F6FBZFI.js → src-KUV5J5Q2.js} +52 -28
  161. package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-6EYJN3JV.js} +2588 -2371
  162. package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-T5YHQ6S2.js} +3 -3
  163. package/chunks/{task-create-OUYCA553.js → task-create-BLY7RHXX.js} +6 -6
  164. package/chunks/{task-list-WAX7I2IA.js → task-list-3QUYNVYR.js} +5 -5
  165. package/chunks/{task-stop-CAIL6FNH.js → task-stop-U4RATK2V.js} +2 -2
  166. package/chunks/{task-update-AHEO5OUT.js → task-update-U54O7KJX.js} +6 -6
  167. package/chunks/{team-create-3WC7CIIW.js → team-create-LPOGCPM7.js} +24 -26
  168. package/chunks/{team-delete-HGHFG23B.js → team-delete-LKBYPASD.js} +5 -5
  169. package/chunks/{theme-manager-DICFCT3P.js → theme-manager-LYLGAERF.js} +25 -27
  170. package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-OYXKTVYN.js} +4 -4
  171. package/chunks/{tool-search-L5K7HLER.js → tool-search-YPUFJ3ZQ.js} +102 -18
  172. package/chunks/trustedFolders-5B24TMEA.js +73 -0
  173. package/chunks/types-QX5C3CHJ.js +12 -0
  174. package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-BTDTYOVT.js} +57 -54
  175. package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-EEB5LZYU.js} +28 -15
  176. package/chunks/{workflow-OB3AND7I.js → workflow-LAWIW5LI.js} +32 -33
  177. package/chunks/workspace-providers-status-PIAFVYHA.js +62 -0
  178. package/chunks/workspace-service-YAIOD4HG.js +71 -0
  179. package/chunks/{write-file-SEXBNDZM.js → write-file-PCV226DJ.js} +63 -30
  180. package/chunks/{zh-RBEGQVQT.js → zh-5EUYXASN.js} +8 -0
  181. package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-TR3XYGE5.js} +8 -0
  182. package/cli-entry.js +20 -9
  183. package/cli.js +6 -6
  184. package/locales/ca.js +2 -0
  185. package/locales/de.js +2 -0
  186. package/locales/en.js +14 -0
  187. package/locales/fr.js +2 -0
  188. package/locales/ja.js +1 -0
  189. package/locales/pt.js +2 -0
  190. package/locales/ru.js +2 -0
  191. package/locales/zh-TW.js +12 -0
  192. package/locales/zh.js +12 -0
  193. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +35 -0
  194. package/node_modules/@qwen-code/audio-capture/dist/index.js +48 -0
  195. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +1 -0
  196. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +7 -0
  197. package/node_modules/@qwen-code/audio-capture/dist/platform.js +18 -0
  198. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +1 -0
  199. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +21 -0
  200. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +58 -0
  201. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +5 -0
  202. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +84 -0
  203. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +19 -0
  204. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +6 -0
  205. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  206. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +7 -0
  207. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +43 -0
  208. package/node_modules/@qwen-code/audio-capture/package.json +30 -0
  209. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  210. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  211. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  212. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  213. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  214. package/package.json +6 -3
  215. package/web-shell/assets/{arc-D_ae_Y9k.js → arc-DA7r8Ueo.js} +1 -1
  216. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-ZDUxPtZ2.js} +1 -1
  217. package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-vrtOf1kJ.js} +1 -1
  218. package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-BHFjzIi4.js} +1 -1
  219. package/web-shell/assets/channel-iRo68q4Q.js +1 -0
  220. package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-mdeQVz59.js} +1 -1
  221. package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-BkKMlwBX.js} +1 -1
  222. package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-B7bnXNfu.js} +1 -1
  223. package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-DGz8Mm6i.js} +1 -1
  224. package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-BQAydUNk.js} +1 -1
  225. package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-GHr2LN_p.js} +1 -1
  226. package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-7R91lnUx.js} +1 -1
  227. package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-aTJD3lSQ.js} +1 -1
  228. package/web-shell/assets/classDiagram-4FO5ZUOK-iHF24a8X.js +1 -0
  229. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-iHF24a8X.js +1 -0
  230. package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-BTf8t1RL.js} +1 -1
  231. package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-_sgp3WuA.js} +1 -1
  232. package/web-shell/assets/default-aEtf0G7-.svg +1 -0
  233. package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-CROtRy1w.js} +1 -1
  234. package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-BqGRzwSc.js} +1 -1
  235. package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-CMrcEtA7.js} +1 -1
  236. package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-BRydGNW5.js} +1 -1
  237. package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-D0ilgNjV.js} +1 -1
  238. package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-2lnQeJUM.js} +1 -1
  239. package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-C_ZMdQiC.js} +1 -1
  240. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-Dw9V_Ny0.js} +1 -1
  241. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-HDXI-F1B.js} +1 -1
  242. package/web-shell/assets/index-CHmzAWys.css +5 -0
  243. package/web-shell/assets/index-w6GTOHh1.js +713 -0
  244. package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-CuB8Ebua.js} +1 -1
  245. package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
  246. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D_tyhVwh.js} +1 -1
  247. package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-CgCwJQNU.js} +1 -1
  248. package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-PZUtcbPx.js} +1 -1
  249. package/web-shell/assets/{linear-DGGM2kcP.js → linear-CZqRdJIU.js} +1 -1
  250. package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-CPW_4UEF.js} +5 -5
  251. package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-D_Y75ID7.js} +1 -1
  252. package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-Q4dTyLeF.js} +1 -1
  253. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-ckw329Ft.js} +1 -1
  254. package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
  255. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-DbVDm4It.js} +1 -1
  256. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-CHuZ_ecH.js} +1 -1
  257. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-DU2YSpq-.js} +1 -1
  258. package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-CA9PEBUo.js} +1 -1
  259. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-t1LRI0oY.js +1 -0
  260. package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-Bhlo4WVc.js} +1 -1
  261. package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-6xtPLsyl.js} +1 -1
  262. package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-3eozmXPf.js} +1 -1
  263. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-BOn6hKss.js} +1 -1
  264. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-BsP4-I_y.js} +1 -1
  265. package/web-shell/index.html +2 -2
  266. package/chunks/chunk-5P5XGNYH.js +0 -93
  267. package/chunks/chunk-B6HQGTYR.js +0 -410
  268. package/chunks/chunk-SEZC2725.js +0 -36
  269. package/chunks/chunk-SYCJMSIJ.js +0 -82
  270. package/chunks/daemon-status-provider-CSL3BUOY.js +0 -68
  271. package/chunks/initializer-P5AXF7PV.js +0 -61
  272. package/chunks/list-6COK34BP.js +0 -65
  273. package/chunks/loadedSettingsAdapter-XIUTN245.js +0 -60
  274. package/chunks/nonInteractiveCli-7575LBXP.js +0 -91
  275. package/chunks/workspace-providers-status-ZIR5EPOO.js +0 -62
  276. package/chunks/workspace-service-OM5D4OI2.js +0 -60
  277. package/web-shell/assets/channel-DYPNiTww.js +0 -1
  278. package/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js +0 -1
  279. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js +0 -1
  280. package/web-shell/assets/index-CpOXWDPh.js +0 -714
  281. package/web-shell/assets/index-oVK7qhre.css +0 -5
  282. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js +0 -1
@@ -6,12 +6,18 @@ import {
6
6
  import {
7
7
  require_mime_db
8
8
  } from "./chunk-7RYW5LQV.js";
9
+ import {
10
+ MAX_WORKSPACE_PATH_LENGTH
11
+ } from "./chunk-JE5FVRPC.js";
12
+ import {
13
+ writeStderrLine
14
+ } from "./chunk-Y6Z2O3WR.js";
9
15
  import {
10
16
  require_once
11
- } from "./chunk-5P5XGNYH.js";
17
+ } from "./chunk-YAINVQ3Q.js";
12
18
  import {
13
19
  require_safer
14
- } from "./chunk-SYCJMSIJ.js";
20
+ } from "./chunk-EJYJYJZ2.js";
15
21
  import {
16
22
  require_src
17
23
  } from "./chunk-QN5NZ3UQ.js";
@@ -9060,11 +9066,11 @@ var require_mime_types = __commonJS({
9060
9066
  return exts[0];
9061
9067
  }
9062
9068
  __name(extension, "extension");
9063
- function lookup(path2) {
9064
- if (!path2 || typeof path2 !== "string") {
9069
+ function lookup(path3) {
9070
+ if (!path3 || typeof path3 !== "string") {
9065
9071
  return false;
9066
9072
  }
9067
- var extension2 = extname("x." + path2).toLowerCase().slice(1);
9073
+ var extension2 = extname("x." + path3).toLowerCase().slice(1);
9068
9074
  if (!extension2) {
9069
9075
  return false;
9070
9076
  }
@@ -10195,13 +10201,13 @@ var require_view = __commonJS({
10195
10201
  "use strict";
10196
10202
  init_esbuild_shims();
10197
10203
  var debug = require_src()("express:view");
10198
- var path2 = __require("node:path");
10204
+ var path3 = __require("node:path");
10199
10205
  var fs = __require("node:fs");
10200
- var dirname2 = path2.dirname;
10201
- var basename2 = path2.basename;
10202
- var extname = path2.extname;
10203
- var join2 = path2.join;
10204
- var resolve = path2.resolve;
10206
+ var dirname2 = path3.dirname;
10207
+ var basename2 = path3.basename;
10208
+ var extname = path3.extname;
10209
+ var join2 = path3.join;
10210
+ var resolve = path3.resolve;
10205
10211
  module.exports = View;
10206
10212
  function View(name, options) {
10207
10213
  var opts = options || {};
@@ -10231,17 +10237,17 @@ var require_view = __commonJS({
10231
10237
  }
10232
10238
  __name(View, "View");
10233
10239
  View.prototype.lookup = /* @__PURE__ */ __name(function lookup(name) {
10234
- var path3;
10240
+ var path4;
10235
10241
  var roots = [].concat(this.root);
10236
10242
  debug('lookup "%s"', name);
10237
- for (var i = 0; i < roots.length && !path3; i++) {
10243
+ for (var i = 0; i < roots.length && !path4; i++) {
10238
10244
  var root = roots[i];
10239
10245
  var loc = resolve(root, name);
10240
10246
  var dir = dirname2(loc);
10241
10247
  var file = basename2(loc);
10242
- path3 = this.resolve(dir, file);
10248
+ path4 = this.resolve(dir, file);
10243
10249
  }
10244
- return path3;
10250
+ return path4;
10245
10251
  }, "lookup");
10246
10252
  View.prototype.render = /* @__PURE__ */ __name(function render(options, callback) {
10247
10253
  var sync = true;
@@ -10263,21 +10269,21 @@ var require_view = __commonJS({
10263
10269
  }, "render");
10264
10270
  View.prototype.resolve = /* @__PURE__ */ __name(function resolve2(dir, file) {
10265
10271
  var ext = this.ext;
10266
- var path3 = join2(dir, file);
10267
- var stat = tryStat(path3);
10272
+ var path4 = join2(dir, file);
10273
+ var stat = tryStat(path4);
10268
10274
  if (stat && stat.isFile()) {
10269
- return path3;
10275
+ return path4;
10270
10276
  }
10271
- path3 = join2(dir, basename2(file, ext), "index" + ext);
10272
- stat = tryStat(path3);
10277
+ path4 = join2(dir, basename2(file, ext), "index" + ext);
10278
+ stat = tryStat(path4);
10273
10279
  if (stat && stat.isFile()) {
10274
- return path3;
10280
+ return path4;
10275
10281
  }
10276
10282
  }, "resolve");
10277
- function tryStat(path3) {
10278
- debug('stat "%s"', path3);
10283
+ function tryStat(path4) {
10284
+ debug('stat "%s"', path4);
10279
10285
  try {
10280
- return fs.statSync(path3);
10286
+ return fs.statSync(path4);
10281
10287
  } catch (e) {
10282
10288
  return void 0;
10283
10289
  }
@@ -11467,9 +11473,9 @@ var require_dist2 = __commonJS({
11467
11473
  function consume(endType) {
11468
11474
  const tokens2 = [];
11469
11475
  while (true) {
11470
- const path2 = it.text();
11471
- if (path2)
11472
- tokens2.push({ type: "text", value: encodePath(path2) });
11476
+ const path3 = it.text();
11477
+ if (path3)
11478
+ tokens2.push({ type: "text", value: encodePath(path3) });
11473
11479
  const param = it.tryConsume("PARAM");
11474
11480
  if (param) {
11475
11481
  tokens2.push({
@@ -11503,16 +11509,16 @@ var require_dist2 = __commonJS({
11503
11509
  return new TokenData(tokens);
11504
11510
  }
11505
11511
  __name(parse, "parse");
11506
- function compile(path2, options = {}) {
11512
+ function compile(path3, options = {}) {
11507
11513
  const { encode = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;
11508
- const data = path2 instanceof TokenData ? path2 : parse(path2, options);
11514
+ const data = path3 instanceof TokenData ? path3 : parse(path3, options);
11509
11515
  const fn = tokensToFunction(data.tokens, delimiter, encode);
11510
- return /* @__PURE__ */ __name(function path3(data2 = {}) {
11511
- const [path4, ...missing] = fn(data2);
11516
+ return /* @__PURE__ */ __name(function path4(data2 = {}) {
11517
+ const [path5, ...missing] = fn(data2);
11512
11518
  if (missing.length) {
11513
11519
  throw new TypeError(`Missing parameters: ${missing.join(", ")}`);
11514
11520
  }
11515
- return path4;
11521
+ return path5;
11516
11522
  }, "path");
11517
11523
  }
11518
11524
  __name(compile, "compile");
@@ -11571,9 +11577,9 @@ var require_dist2 = __commonJS({
11571
11577
  };
11572
11578
  }
11573
11579
  __name(tokenToFunction, "tokenToFunction");
11574
- function match(path2, options = {}) {
11580
+ function match(path3, options = {}) {
11575
11581
  const { decode = decodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;
11576
- const { regexp, keys } = pathToRegexp(path2, options);
11582
+ const { regexp, keys } = pathToRegexp(path3, options);
11577
11583
  const decoders = keys.map((key) => {
11578
11584
  if (decode === false)
11579
11585
  return NOOP_VALUE;
@@ -11585,7 +11591,7 @@ var require_dist2 = __commonJS({
11585
11591
  const m = regexp.exec(input);
11586
11592
  if (!m)
11587
11593
  return false;
11588
- const path3 = m[0];
11594
+ const path4 = m[0];
11589
11595
  const params = /* @__PURE__ */ Object.create(null);
11590
11596
  for (let i = 1; i < m.length; i++) {
11591
11597
  if (m[i] === void 0)
@@ -11594,17 +11600,17 @@ var require_dist2 = __commonJS({
11594
11600
  const decoder = decoders[i - 1];
11595
11601
  params[key.name] = decoder(m[i]);
11596
11602
  }
11597
- return { path: path3, params };
11603
+ return { path: path4, params };
11598
11604
  }, "match");
11599
11605
  }
11600
11606
  __name(match, "match");
11601
- function pathToRegexp(path2, options = {}) {
11607
+ function pathToRegexp(path3, options = {}) {
11602
11608
  const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true } = options;
11603
11609
  const keys = [];
11604
11610
  const sources = [];
11605
11611
  const flags = sensitive ? "" : "i";
11606
- const paths = Array.isArray(path2) ? path2 : [path2];
11607
- const items = paths.map((path3) => path3 instanceof TokenData ? path3 : parse(path3, options));
11612
+ const paths = Array.isArray(path3) ? path3 : [path3];
11613
+ const items = paths.map((path4) => path4 instanceof TokenData ? path4 : parse(path4, options));
11608
11614
  for (const { tokens } of items) {
11609
11615
  for (const seq of flatten(tokens, 0, [])) {
11610
11616
  const regexp2 = sequenceToRegExp(seq, delimiter, keys);
@@ -11722,18 +11728,18 @@ var require_layer = __commonJS({
11722
11728
  var TRAILING_SLASH_REGEXP = /\/+$/;
11723
11729
  var MATCHING_GROUP_REGEXP = /\((?:\?<(.*?)>)?(?!\?)/g;
11724
11730
  module.exports = Layer;
11725
- function Layer(path2, options, fn) {
11731
+ function Layer(path3, options, fn) {
11726
11732
  if (!(this instanceof Layer)) {
11727
- return new Layer(path2, options, fn);
11733
+ return new Layer(path3, options, fn);
11728
11734
  }
11729
- debug("new %o", path2);
11735
+ debug("new %o", path3);
11730
11736
  const opts = options || {};
11731
11737
  this.handle = fn;
11732
11738
  this.keys = [];
11733
11739
  this.name = fn.name || "<anonymous>";
11734
11740
  this.params = void 0;
11735
11741
  this.path = void 0;
11736
- this.slash = path2 === "/" && opts.end === false;
11742
+ this.slash = path3 === "/" && opts.end === false;
11737
11743
  function matcher(_path) {
11738
11744
  if (_path instanceof RegExp) {
11739
11745
  const keys = [];
@@ -11773,7 +11779,7 @@ var require_layer = __commonJS({
11773
11779
  });
11774
11780
  }
11775
11781
  __name(matcher, "matcher");
11776
- this.matchers = Array.isArray(path2) ? path2.map(matcher) : [matcher(path2)];
11782
+ this.matchers = Array.isArray(path3) ? path3.map(matcher) : [matcher(path3)];
11777
11783
  }
11778
11784
  __name(Layer, "Layer");
11779
11785
  Layer.prototype.handleError = /* @__PURE__ */ __name(function handleError(error, req, res, next) {
@@ -11814,9 +11820,9 @@ var require_layer = __commonJS({
11814
11820
  next(err);
11815
11821
  }
11816
11822
  }, "handleRequest");
11817
- Layer.prototype.match = /* @__PURE__ */ __name(function match(path2) {
11823
+ Layer.prototype.match = /* @__PURE__ */ __name(function match(path3) {
11818
11824
  let match2;
11819
- if (path2 != null) {
11825
+ if (path3 != null) {
11820
11826
  if (this.slash) {
11821
11827
  this.params = {};
11822
11828
  this.path = "";
@@ -11824,7 +11830,7 @@ var require_layer = __commonJS({
11824
11830
  }
11825
11831
  let i = 0;
11826
11832
  while (!match2 && i < this.matchers.length) {
11827
- match2 = this.matchers[i](path2);
11833
+ match2 = this.matchers[i](path3);
11828
11834
  i++;
11829
11835
  }
11830
11836
  }
@@ -11853,13 +11859,13 @@ var require_layer = __commonJS({
11853
11859
  }
11854
11860
  }
11855
11861
  __name(decodeParam, "decodeParam");
11856
- function loosen(path2) {
11857
- if (path2 instanceof RegExp || path2 === "/") {
11858
- return path2;
11862
+ function loosen(path3) {
11863
+ if (path3 instanceof RegExp || path3 === "/") {
11864
+ return path3;
11859
11865
  }
11860
- return Array.isArray(path2) ? path2.map(function(p) {
11866
+ return Array.isArray(path3) ? path3.map(function(p) {
11861
11867
  return loosen(p);
11862
- }) : String(path2).replace(TRAILING_SLASH_REGEXP, "");
11868
+ }) : String(path3).replace(TRAILING_SLASH_REGEXP, "");
11863
11869
  }
11864
11870
  __name(loosen, "loosen");
11865
11871
  }
@@ -11877,9 +11883,9 @@ var require_route = __commonJS({
11877
11883
  var flatten = Array.prototype.flat;
11878
11884
  var methods = METHODS.map((method) => method.toLowerCase());
11879
11885
  module.exports = Route;
11880
- function Route(path2) {
11881
- debug("new %o", path2);
11882
- this.path = path2;
11886
+ function Route(path3) {
11887
+ debug("new %o", path3);
11888
+ this.path = path3;
11883
11889
  this.stack = [];
11884
11890
  this.methods = /* @__PURE__ */ Object.create(null);
11885
11891
  }
@@ -12092,8 +12098,8 @@ var require_router = __commonJS({
12092
12098
  if (++sync > 100) {
12093
12099
  return setImmediate(next, err);
12094
12100
  }
12095
- const path2 = getPathname(req);
12096
- if (path2 == null) {
12101
+ const path3 = getPathname(req);
12102
+ if (path3 == null) {
12097
12103
  return done(layerError);
12098
12104
  }
12099
12105
  let layer;
@@ -12101,7 +12107,7 @@ var require_router = __commonJS({
12101
12107
  let route;
12102
12108
  while (match !== true && idx < stack.length) {
12103
12109
  layer = stack[idx++];
12104
- match = matchLayer(layer, path2);
12110
+ match = matchLayer(layer, path3);
12105
12111
  route = layer.route;
12106
12112
  if (typeof match !== "boolean") {
12107
12113
  layerError = layerError || match;
@@ -12139,19 +12145,19 @@ var require_router = __commonJS({
12139
12145
  } else if (route) {
12140
12146
  layer.handleRequest(req, res, next);
12141
12147
  } else {
12142
- trimPrefix(layer, layerError, layerPath, path2);
12148
+ trimPrefix(layer, layerError, layerPath, path3);
12143
12149
  }
12144
12150
  sync = 0;
12145
12151
  });
12146
12152
  }
12147
12153
  __name(next, "next");
12148
- function trimPrefix(layer, layerError, layerPath, path2) {
12154
+ function trimPrefix(layer, layerError, layerPath, path3) {
12149
12155
  if (layerPath.length !== 0) {
12150
- if (layerPath !== path2.substring(0, layerPath.length)) {
12156
+ if (layerPath !== path3.substring(0, layerPath.length)) {
12151
12157
  next(layerError);
12152
12158
  return;
12153
12159
  }
12154
- const c = path2[layerPath.length];
12160
+ const c = path3[layerPath.length];
12155
12161
  if (c && c !== "/") {
12156
12162
  next(layerError);
12157
12163
  return;
@@ -12176,7 +12182,7 @@ var require_router = __commonJS({
12176
12182
  }, "handle");
12177
12183
  Router.prototype.use = /* @__PURE__ */ __name(function use(handler) {
12178
12184
  let offset = 0;
12179
- let path2 = "/";
12185
+ let path3 = "/";
12180
12186
  if (typeof handler !== "function") {
12181
12187
  let arg = handler;
12182
12188
  while (Array.isArray(arg) && arg.length !== 0) {
@@ -12184,7 +12190,7 @@ var require_router = __commonJS({
12184
12190
  }
12185
12191
  if (typeof arg !== "function") {
12186
12192
  offset = 1;
12187
- path2 = handler;
12193
+ path3 = handler;
12188
12194
  }
12189
12195
  }
12190
12196
  const callbacks = flatten.call(slice.call(arguments, offset), Infinity);
@@ -12196,8 +12202,8 @@ var require_router = __commonJS({
12196
12202
  if (typeof fn !== "function") {
12197
12203
  throw new TypeError("argument handler must be a function");
12198
12204
  }
12199
- debug("use %o %s", path2, fn.name || "<anonymous>");
12200
- const layer = new Layer(path2, {
12205
+ debug("use %o %s", path3, fn.name || "<anonymous>");
12206
+ const layer = new Layer(path3, {
12201
12207
  sensitive: this.caseSensitive,
12202
12208
  strict: false,
12203
12209
  end: false
@@ -12207,9 +12213,9 @@ var require_router = __commonJS({
12207
12213
  }
12208
12214
  return this;
12209
12215
  }, "use");
12210
- Router.prototype.route = /* @__PURE__ */ __name(function route(path2) {
12211
- const route2 = new Route(path2);
12212
- const layer = new Layer(path2, {
12216
+ Router.prototype.route = /* @__PURE__ */ __name(function route(path3) {
12217
+ const route2 = new Route(path3);
12218
+ const layer = new Layer(path3, {
12213
12219
  sensitive: this.caseSensitive,
12214
12220
  strict: this.strict,
12215
12221
  end: true
@@ -12223,8 +12229,8 @@ var require_router = __commonJS({
12223
12229
  return route2;
12224
12230
  }, "route");
12225
12231
  methods.concat("all").forEach(function(method) {
12226
- Router.prototype[method] = function(path2) {
12227
- const route = this.route(path2);
12232
+ Router.prototype[method] = function(path3) {
12233
+ const route = this.route(path3);
12228
12234
  route[method].apply(route, slice.call(arguments, 1));
12229
12235
  return this;
12230
12236
  };
@@ -12256,9 +12262,9 @@ var require_router = __commonJS({
12256
12262
  return fqdnIndex !== -1 ? url.substring(0, url.indexOf("/", 3 + fqdnIndex)) : void 0;
12257
12263
  }
12258
12264
  __name(getProtohost, "getProtohost");
12259
- function matchLayer(layer, path2) {
12265
+ function matchLayer(layer, path3) {
12260
12266
  try {
12261
- return layer.match(path2);
12267
+ return layer.match(path3);
12262
12268
  } catch (err) {
12263
12269
  return err;
12264
12270
  }
@@ -12496,7 +12502,7 @@ var require_application = __commonJS({
12496
12502
  }, "handle");
12497
12503
  app.use = /* @__PURE__ */ __name(function use(fn) {
12498
12504
  var offset = 0;
12499
- var path2 = "/";
12505
+ var path3 = "/";
12500
12506
  if (typeof fn !== "function") {
12501
12507
  var arg = fn;
12502
12508
  while (Array.isArray(arg) && arg.length !== 0) {
@@ -12504,7 +12510,7 @@ var require_application = __commonJS({
12504
12510
  }
12505
12511
  if (typeof arg !== "function") {
12506
12512
  offset = 1;
12507
- path2 = fn;
12513
+ path3 = fn;
12508
12514
  }
12509
12515
  }
12510
12516
  var fns = flatten.call(slice.call(arguments, offset), Infinity);
@@ -12514,12 +12520,12 @@ var require_application = __commonJS({
12514
12520
  var router = this.router;
12515
12521
  fns.forEach(function(fn2) {
12516
12522
  if (!fn2 || !fn2.handle || !fn2.set) {
12517
- return router.use(path2, fn2);
12523
+ return router.use(path3, fn2);
12518
12524
  }
12519
- debug(".use app under %s", path2);
12520
- fn2.mountpath = path2;
12525
+ debug(".use app under %s", path3);
12526
+ fn2.mountpath = path3;
12521
12527
  fn2.parent = this;
12522
- router.use(path2, /* @__PURE__ */ __name(function mounted_app(req, res, next) {
12528
+ router.use(path3, /* @__PURE__ */ __name(function mounted_app(req, res, next) {
12523
12529
  var orig = req.app;
12524
12530
  fn2.handle(req, res, function(err) {
12525
12531
  Object.setPrototypeOf(req, orig.request);
@@ -12531,8 +12537,8 @@ var require_application = __commonJS({
12531
12537
  }, this);
12532
12538
  return this;
12533
12539
  }, "use");
12534
- app.route = /* @__PURE__ */ __name(function route(path2) {
12535
- return this.router.route(path2);
12540
+ app.route = /* @__PURE__ */ __name(function route(path3) {
12541
+ return this.router.route(path3);
12536
12542
  }, "route");
12537
12543
  app.engine = /* @__PURE__ */ __name(function engine(ext, fn) {
12538
12544
  if (typeof fn !== "function") {
@@ -12575,7 +12581,7 @@ var require_application = __commonJS({
12575
12581
  }
12576
12582
  return this;
12577
12583
  }, "set");
12578
- app.path = /* @__PURE__ */ __name(function path2() {
12584
+ app.path = /* @__PURE__ */ __name(function path3() {
12579
12585
  return this.parent ? this.parent.path() + this.mountpath : "";
12580
12586
  }, "path");
12581
12587
  app.enabled = /* @__PURE__ */ __name(function enabled(setting) {
@@ -12591,17 +12597,17 @@ var require_application = __commonJS({
12591
12597
  return this.set(setting, false);
12592
12598
  }, "disable");
12593
12599
  methods.forEach(function(method) {
12594
- app[method] = function(path2) {
12600
+ app[method] = function(path3) {
12595
12601
  if (method === "get" && arguments.length === 1) {
12596
- return this.set(path2);
12602
+ return this.set(path3);
12597
12603
  }
12598
- var route = this.route(path2);
12604
+ var route = this.route(path3);
12599
12605
  route[method].apply(route, slice.call(arguments, 1));
12600
12606
  return this;
12601
12607
  };
12602
12608
  });
12603
- app.all = /* @__PURE__ */ __name(function all(path2) {
12604
- var route = this.route(path2);
12609
+ app.all = /* @__PURE__ */ __name(function all(path3) {
12610
+ var route = this.route(path3);
12605
12611
  var args = slice.call(arguments, 1);
12606
12612
  for (var i = 0; i < methods.length; i++) {
12607
12613
  route[methods[i]].apply(route, args);
@@ -13571,7 +13577,7 @@ var require_request = __commonJS({
13571
13577
  var subdomains2 = !isIP(hostname) ? hostname.split(".").reverse() : [hostname];
13572
13578
  return subdomains2.slice(offset);
13573
13579
  }, "subdomains"));
13574
- defineGetter(req, "path", /* @__PURE__ */ __name(function path2() {
13580
+ defineGetter(req, "path", /* @__PURE__ */ __name(function path3() {
13575
13581
  return parse(this).pathname;
13576
13582
  }, "path"));
13577
13583
  defineGetter(req, "host", /* @__PURE__ */ __name(function host() {
@@ -13794,8 +13800,8 @@ var require_content_disposition = __commonJS({
13794
13800
  this.parameters = parameters;
13795
13801
  }
13796
13802
  __name(ContentDisposition, "ContentDisposition");
13797
- function basename2(path2) {
13798
- const normalized = path2.replaceAll("\\", "/");
13803
+ function basename2(path3) {
13804
+ const normalized = path3.replaceAll("\\", "/");
13799
13805
  let end = normalized.length;
13800
13806
  while (end > 0 && normalized[end - 1] === "/") {
13801
13807
  end--;
@@ -14055,28 +14061,28 @@ var require_send = __commonJS({
14055
14061
  var ms = require_ms();
14056
14062
  var onFinished = require_on_finished();
14057
14063
  var parseRange = require_range_parser();
14058
- var path2 = __require("path");
14064
+ var path3 = __require("path");
14059
14065
  var statuses = require_statuses();
14060
14066
  var Stream = __require("stream");
14061
14067
  var util = __require("util");
14062
- var extname = path2.extname;
14063
- var join2 = path2.join;
14064
- var normalize = path2.normalize;
14065
- var resolve = path2.resolve;
14066
- var sep = path2.sep;
14068
+ var extname = path3.extname;
14069
+ var join2 = path3.join;
14070
+ var normalize = path3.normalize;
14071
+ var resolve = path3.resolve;
14072
+ var sep = path3.sep;
14067
14073
  var BYTES_RANGE_REGEXP = /^ *bytes=/;
14068
14074
  var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3;
14069
14075
  var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/;
14070
14076
  module.exports = send;
14071
- function send(req, path3, options) {
14072
- return new SendStream(req, path3, options);
14077
+ function send(req, path4, options) {
14078
+ return new SendStream(req, path4, options);
14073
14079
  }
14074
14080
  __name(send, "send");
14075
- function SendStream(req, path3, options) {
14081
+ function SendStream(req, path4, options) {
14076
14082
  Stream.call(this);
14077
14083
  var opts = options || {};
14078
14084
  this.options = opts;
14079
- this.path = path3;
14085
+ this.path = path4;
14080
14086
  this.req = req;
14081
14087
  this._acceptRanges = opts.acceptRanges !== void 0 ? Boolean(opts.acceptRanges) : true;
14082
14088
  this._cacheControl = opts.cacheControl !== void 0 ? Boolean(opts.cacheControl) : true;
@@ -14191,10 +14197,10 @@ var require_send = __commonJS({
14191
14197
  var lastModified = this.res.getHeader("Last-Modified");
14192
14198
  return parseHttpDate(lastModified) <= parseHttpDate(ifRange);
14193
14199
  }, "isRangeFresh");
14194
- SendStream.prototype.redirect = /* @__PURE__ */ __name(function redirect(path3) {
14200
+ SendStream.prototype.redirect = /* @__PURE__ */ __name(function redirect(path4) {
14195
14201
  var res = this.res;
14196
14202
  if (hasListeners(this, "directory")) {
14197
- this.emit("directory", res, path3);
14203
+ this.emit("directory", res, path4);
14198
14204
  return;
14199
14205
  }
14200
14206
  if (this.hasTrailingSlash()) {
@@ -14214,38 +14220,38 @@ var require_send = __commonJS({
14214
14220
  SendStream.prototype.pipe = /* @__PURE__ */ __name(function pipe(res) {
14215
14221
  var root = this._root;
14216
14222
  this.res = res;
14217
- var path3 = decode(this.path);
14218
- if (path3 === -1) {
14223
+ var path4 = decode(this.path);
14224
+ if (path4 === -1) {
14219
14225
  this.error(400);
14220
14226
  return res;
14221
14227
  }
14222
- if (~path3.indexOf("\0")) {
14228
+ if (~path4.indexOf("\0")) {
14223
14229
  this.error(400);
14224
14230
  return res;
14225
14231
  }
14226
14232
  var parts;
14227
14233
  if (root !== null) {
14228
- if (path3) {
14229
- path3 = normalize("." + sep + path3);
14234
+ if (path4) {
14235
+ path4 = normalize("." + sep + path4);
14230
14236
  }
14231
- if (UP_PATH_REGEXP.test(path3)) {
14232
- debug('malicious path "%s"', path3);
14237
+ if (UP_PATH_REGEXP.test(path4)) {
14238
+ debug('malicious path "%s"', path4);
14233
14239
  this.error(403);
14234
14240
  return res;
14235
14241
  }
14236
- parts = path3.split(sep);
14237
- path3 = normalize(join2(root, path3));
14242
+ parts = path4.split(sep);
14243
+ path4 = normalize(join2(root, path4));
14238
14244
  } else {
14239
- if (UP_PATH_REGEXP.test(path3)) {
14240
- debug('malicious path "%s"', path3);
14245
+ if (UP_PATH_REGEXP.test(path4)) {
14246
+ debug('malicious path "%s"', path4);
14241
14247
  this.error(403);
14242
14248
  return res;
14243
14249
  }
14244
- parts = normalize(path3).split(sep);
14245
- path3 = resolve(path3);
14250
+ parts = normalize(path4).split(sep);
14251
+ path4 = resolve(path4);
14246
14252
  }
14247
14253
  if (containsDotFile(parts)) {
14248
- debug('%s dotfile "%s"', this._dotfiles, path3);
14254
+ debug('%s dotfile "%s"', this._dotfiles, path4);
14249
14255
  switch (this._dotfiles) {
14250
14256
  case "allow":
14251
14257
  break;
@@ -14259,13 +14265,13 @@ var require_send = __commonJS({
14259
14265
  }
14260
14266
  }
14261
14267
  if (this._index.length && this.hasTrailingSlash()) {
14262
- this.sendIndex(path3);
14268
+ this.sendIndex(path4);
14263
14269
  return res;
14264
14270
  }
14265
- this.sendFile(path3);
14271
+ this.sendFile(path4);
14266
14272
  return res;
14267
14273
  }, "pipe");
14268
- SendStream.prototype.send = /* @__PURE__ */ __name(function send2(path3, stat) {
14274
+ SendStream.prototype.send = /* @__PURE__ */ __name(function send2(path4, stat) {
14269
14275
  var len = stat.size;
14270
14276
  var options = this.options;
14271
14277
  var opts = {};
@@ -14277,9 +14283,9 @@ var require_send = __commonJS({
14277
14283
  this.headersAlreadySent();
14278
14284
  return;
14279
14285
  }
14280
- debug('pipe "%s"', path3);
14281
- this.setHeader(path3, stat);
14282
- this.type(path3);
14286
+ debug('pipe "%s"', path4);
14287
+ this.setHeader(path4, stat);
14288
+ this.type(path4);
14283
14289
  if (this.isConditionalGET()) {
14284
14290
  if (this.isPreconditionFailure()) {
14285
14291
  this.error(412);
@@ -14328,28 +14334,28 @@ var require_send = __commonJS({
14328
14334
  res.end();
14329
14335
  return;
14330
14336
  }
14331
- this.stream(path3, opts);
14337
+ this.stream(path4, opts);
14332
14338
  }, "send");
14333
- SendStream.prototype.sendFile = /* @__PURE__ */ __name(function sendFile(path3) {
14339
+ SendStream.prototype.sendFile = /* @__PURE__ */ __name(function sendFile(path4) {
14334
14340
  var i = 0;
14335
14341
  var self = this;
14336
- debug('stat "%s"', path3);
14337
- fs.stat(path3, /* @__PURE__ */ __name(function onstat(err, stat) {
14338
- var pathEndsWithSep = path3[path3.length - 1] === sep;
14339
- if (err && err.code === "ENOENT" && !extname(path3) && !pathEndsWithSep) {
14342
+ debug('stat "%s"', path4);
14343
+ fs.stat(path4, /* @__PURE__ */ __name(function onstat(err, stat) {
14344
+ var pathEndsWithSep = path4[path4.length - 1] === sep;
14345
+ if (err && err.code === "ENOENT" && !extname(path4) && !pathEndsWithSep) {
14340
14346
  return next(err);
14341
14347
  }
14342
14348
  if (err) return self.onStatError(err);
14343
- if (stat.isDirectory()) return self.redirect(path3);
14349
+ if (stat.isDirectory()) return self.redirect(path4);
14344
14350
  if (pathEndsWithSep) return self.error(404);
14345
- self.emit("file", path3, stat);
14346
- self.send(path3, stat);
14351
+ self.emit("file", path4, stat);
14352
+ self.send(path4, stat);
14347
14353
  }, "onstat"));
14348
14354
  function next(err) {
14349
14355
  if (self._extensions.length <= i) {
14350
14356
  return err ? self.onStatError(err) : self.error(404);
14351
14357
  }
14352
- var p = path3 + "." + self._extensions[i++];
14358
+ var p = path4 + "." + self._extensions[i++];
14353
14359
  debug('stat "%s"', p);
14354
14360
  fs.stat(p, function(err2, stat) {
14355
14361
  if (err2) return next(err2);
@@ -14360,7 +14366,7 @@ var require_send = __commonJS({
14360
14366
  }
14361
14367
  __name(next, "next");
14362
14368
  }, "sendFile");
14363
- SendStream.prototype.sendIndex = /* @__PURE__ */ __name(function sendIndex(path3) {
14369
+ SendStream.prototype.sendIndex = /* @__PURE__ */ __name(function sendIndex(path4) {
14364
14370
  var i = -1;
14365
14371
  var self = this;
14366
14372
  function next(err) {
@@ -14368,7 +14374,7 @@ var require_send = __commonJS({
14368
14374
  if (err) return self.onStatError(err);
14369
14375
  return self.error(404);
14370
14376
  }
14371
- var p = join2(path3, self._index[i]);
14377
+ var p = join2(path4, self._index[i]);
14372
14378
  debug('stat "%s"', p);
14373
14379
  fs.stat(p, function(err2, stat) {
14374
14380
  if (err2) return next(err2);
@@ -14380,10 +14386,10 @@ var require_send = __commonJS({
14380
14386
  __name(next, "next");
14381
14387
  next();
14382
14388
  }, "sendIndex");
14383
- SendStream.prototype.stream = /* @__PURE__ */ __name(function stream(path3, options) {
14389
+ SendStream.prototype.stream = /* @__PURE__ */ __name(function stream(path4, options) {
14384
14390
  var self = this;
14385
14391
  var res = this.res;
14386
- var stream2 = fs.createReadStream(path3, options);
14392
+ var stream2 = fs.createReadStream(path4, options);
14387
14393
  this.emit("stream", stream2);
14388
14394
  stream2.pipe(res);
14389
14395
  function cleanup() {
@@ -14399,17 +14405,17 @@ var require_send = __commonJS({
14399
14405
  self.emit("end");
14400
14406
  }, "onend"));
14401
14407
  }, "stream");
14402
- SendStream.prototype.type = /* @__PURE__ */ __name(function type(path3) {
14408
+ SendStream.prototype.type = /* @__PURE__ */ __name(function type(path4) {
14403
14409
  var res = this.res;
14404
14410
  if (res.getHeader("Content-Type")) return;
14405
- var ext = extname(path3);
14411
+ var ext = extname(path4);
14406
14412
  var type2 = mime.contentType(ext) || "application/octet-stream";
14407
14413
  debug("content-type %s", type2);
14408
14414
  res.setHeader("Content-Type", type2);
14409
14415
  }, "type");
14410
- SendStream.prototype.setHeader = /* @__PURE__ */ __name(function setHeader(path3, stat) {
14416
+ SendStream.prototype.setHeader = /* @__PURE__ */ __name(function setHeader(path4, stat) {
14411
14417
  var res = this.res;
14412
- this.emit("headers", res, path3, stat);
14418
+ this.emit("headers", res, path4, stat);
14413
14419
  if (this._acceptRanges && !res.getHeader("Accept-Ranges")) {
14414
14420
  debug("accept ranges");
14415
14421
  res.setHeader("Accept-Ranges", "bytes");
@@ -14473,9 +14479,9 @@ var require_send = __commonJS({
14473
14479
  return err instanceof Error ? createError(status, err, { expose: false }) : createError(status, err);
14474
14480
  }
14475
14481
  __name(createHttpError, "createHttpError");
14476
- function decode(path3) {
14482
+ function decode(path4) {
14477
14483
  try {
14478
- return decodeURIComponent(path3);
14484
+ return decodeURIComponent(path4);
14479
14485
  } catch (err) {
14480
14486
  return -1;
14481
14487
  }
@@ -14630,7 +14636,7 @@ var require_response = __commonJS({
14630
14636
  var http = __require("node:http");
14631
14637
  var onFinished = require_on_finished();
14632
14638
  var mime = require_mime_types();
14633
- var path2 = __require("node:path");
14639
+ var path3 = __require("node:path");
14634
14640
  var pathIsAbsolute = __require("node:path").isAbsolute;
14635
14641
  var statuses = require_statuses();
14636
14642
  var sign = require_cookie_signature().sign;
@@ -14639,8 +14645,8 @@ var require_response = __commonJS({
14639
14645
  var setCharset = require_utils2().setCharset;
14640
14646
  var cookie = require_cookie();
14641
14647
  var send = require_send();
14642
- var extname = path2.extname;
14643
- var resolve = path2.resolve;
14648
+ var extname = path3.extname;
14649
+ var resolve = path3.resolve;
14644
14650
  var vary = require_vary();
14645
14651
  var { Buffer: Buffer2 } = __require("node:buffer");
14646
14652
  var res = Object.create(http.ServerResponse.prototype);
@@ -14786,26 +14792,26 @@ var require_response = __commonJS({
14786
14792
  this.type("txt");
14787
14793
  return this.send(body);
14788
14794
  }, "sendStatus");
14789
- res.sendFile = /* @__PURE__ */ __name(function sendFile(path3, options, callback) {
14795
+ res.sendFile = /* @__PURE__ */ __name(function sendFile(path4, options, callback) {
14790
14796
  var done = callback;
14791
14797
  var req = this.req;
14792
14798
  var res2 = this;
14793
14799
  var next = req.next;
14794
14800
  var opts = options || {};
14795
- if (!path3) {
14801
+ if (!path4) {
14796
14802
  throw new TypeError("path argument is required to res.sendFile");
14797
14803
  }
14798
- if (typeof path3 !== "string") {
14804
+ if (typeof path4 !== "string") {
14799
14805
  throw new TypeError("path must be a string to res.sendFile");
14800
14806
  }
14801
14807
  if (typeof options === "function") {
14802
14808
  done = options;
14803
14809
  opts = {};
14804
14810
  }
14805
- if (!opts.root && !pathIsAbsolute(path3)) {
14811
+ if (!opts.root && !pathIsAbsolute(path4)) {
14806
14812
  throw new TypeError("path must be absolute or specify root to res.sendFile");
14807
14813
  }
14808
- var pathname = encodeURI(path3);
14814
+ var pathname = encodeURI(path4);
14809
14815
  opts.etag = this.app.enabled("etag");
14810
14816
  var file = send(req, pathname, opts);
14811
14817
  sendfile(res2, file, opts, function(err) {
@@ -14816,7 +14822,7 @@ var require_response = __commonJS({
14816
14822
  }
14817
14823
  });
14818
14824
  }, "sendFile");
14819
- res.download = /* @__PURE__ */ __name(function download(path3, filename, options, callback) {
14825
+ res.download = /* @__PURE__ */ __name(function download(path4, filename, options, callback) {
14820
14826
  var done = callback;
14821
14827
  var name = filename;
14822
14828
  var opts = options || null;
@@ -14833,7 +14839,7 @@ var require_response = __commonJS({
14833
14839
  opts = filename;
14834
14840
  }
14835
14841
  var headers = {
14836
- "Content-Disposition": contentDisposition(name || path3)
14842
+ "Content-Disposition": contentDisposition(name || path4)
14837
14843
  };
14838
14844
  if (opts && opts.headers) {
14839
14845
  var keys = Object.keys(opts.headers);
@@ -14846,7 +14852,7 @@ var require_response = __commonJS({
14846
14852
  }
14847
14853
  opts = Object.create(opts);
14848
14854
  opts.headers = headers;
14849
- var fullPath = !opts.root ? resolve(path3) : path3;
14855
+ var fullPath = !opts.root ? resolve(path4) : path4;
14850
14856
  return this.sendFile(fullPath, opts, done);
14851
14857
  }, "download");
14852
14858
  res.contentType = res.type = /* @__PURE__ */ __name(function contentType(type) {
@@ -15139,11 +15145,11 @@ var require_serve_static = __commonJS({
15139
15145
  }
15140
15146
  var forwardError = !fallthrough;
15141
15147
  var originalUrl = parseUrl.original(req);
15142
- var path2 = parseUrl(req).pathname;
15143
- if (path2 === "/" && originalUrl.pathname.substr(-1) !== "/") {
15144
- path2 = "";
15148
+ var path3 = parseUrl(req).pathname;
15149
+ if (path3 === "/" && originalUrl.pathname.substr(-1) !== "/") {
15150
+ path3 = "";
15145
15151
  }
15146
- var stream = send(req, path2, opts);
15152
+ var stream = send(req, path3, opts);
15147
15153
  stream.on("directory", onDirectory);
15148
15154
  if (setHeaders) {
15149
15155
  stream.on("headers", setHeaders);
@@ -16367,6 +16373,7 @@ var SERVE_CAPABILITY_REGISTRY = {
16367
16373
  session_tasks: { since: "v1" },
16368
16374
  session_stats: { since: "v1" },
16369
16375
  session_lsp: { since: "v1" },
16376
+ session_status: { since: "v1" },
16370
16377
  session_close: { since: "v1" },
16371
16378
  session_metadata: { since: "v1" },
16372
16379
  // Daemon supports the MCP client guardrail surface: an in-process
@@ -16416,7 +16423,17 @@ var SERVE_CAPABILITY_REGISTRY = {
16416
16423
  // (`tools.disabled` is consulted at `Config` construction time).
16417
16424
  workspace_tool_toggle: { since: "v1" },
16418
16425
  workspace_settings: { since: "v1" },
16426
+ // `GET /workspace/permissions` is always available when this tag is
16427
+ // advertised. `POST /workspace/permissions` updates the active ACP
16428
+ // child and returns `permission_session_required` when no live ACP
16429
+ // session exists; the tag means the route contract exists, not that
16430
+ // the current daemon state can accept a write.
16419
16431
  workspace_permissions: { since: "v1" },
16432
+ workspace_voice: { since: "v1" },
16433
+ workspace_voice_transcription: { since: "v1", modes: ["batch"] },
16434
+ // Inspect bound workspace trust and request local operator action.
16435
+ // Remote clients cannot directly write trustedFolders.json.
16436
+ workspace_trust: { since: "v1" },
16420
16437
  // `POST /workspace/init` scaffolds an empty
16421
16438
  // `QWEN.md` (or whatever `getCurrentGeminiMdFilename()` returns) at
16422
16439
  // the bound workspace root. Body: `{force?: boolean}`. Default
@@ -16425,6 +16442,11 @@ var SERVE_CAPABILITY_REGISTRY = {
16425
16442
  // the file, the caller should follow up with
16426
16443
  // `POST /session/:id/prompt`.
16427
16444
  workspace_init: { since: "v1" },
16445
+ // `POST /workspace/setup-github` installs the fixed
16446
+ // qwen-code-action workflow set into the bound workspace after
16447
+ // explicit consent. The route reuses the interactive `/setup-github`
16448
+ // release lookup, workflow download, and `.gitignore` update logic.
16449
+ workspace_github_setup: { since: "v1" },
16428
16450
  // `POST /workspace/mcp/:server/restart` performs
16429
16451
  // a single-server MCP restart (disconnect + reconnect + rediscover)
16430
16452
  // through the ACP child's `McpClientManager`. Pre-checks the live
@@ -16542,9 +16564,10 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
16542
16564
  (toggles) => typeof toggles.writerIdleTimeoutMs === "number" && toggles.writerIdleTimeoutMs > 0
16543
16565
  ],
16544
16566
  ["workspace_settings", (toggles) => toggles.persistSettingAvailable === true],
16567
+ ["workspace_voice", (toggles) => toggles.persistSettingAvailable === true],
16545
16568
  [
16546
- "workspace_permissions",
16547
- (toggles) => toggles.persistSettingAvailable === true
16569
+ "workspace_voice_transcription",
16570
+ (toggles) => toggles.voiceTranscriptionAvailable === true
16548
16571
  ],
16549
16572
  [
16550
16573
  "session_shell_command",
@@ -16594,13 +16617,232 @@ __name(getServeProtocolVersions, "getServeProtocolVersions");
16594
16617
  init_esbuild_shims();
16595
16618
  var CAPABILITIES_SCHEMA_VERSION = 1;
16596
16619
 
16620
+ // packages/cli/src/serve/acp-session-bridge.ts
16621
+ init_esbuild_shims();
16622
+
16623
+ // packages/cli/src/serve/server/request-helpers.ts
16624
+ init_esbuild_shims();
16625
+ import * as path2 from "node:path";
16626
+ function sendJsonBodyParserError(res, err) {
16627
+ if (err instanceof SyntaxError && "status" in err && err.status === 400) {
16628
+ res.status(400).json({ error: "Invalid JSON in request body" });
16629
+ return true;
16630
+ }
16631
+ if (err && typeof err === "object" && "status" in err && err.status === 413) {
16632
+ res.status(413).json({ error: "Request body too large (max 10 MB)" });
16633
+ return true;
16634
+ }
16635
+ return false;
16636
+ }
16637
+ __name(sendJsonBodyParserError, "sendJsonBodyParserError");
16638
+ var PROTOTYPE_POLLUTION_KEYS = /* @__PURE__ */ new Set([
16639
+ "__proto__",
16640
+ "constructor",
16641
+ "prototype"
16642
+ ]);
16643
+ var CLIENT_ID_HEADER = "x-qwen-client-id";
16644
+ var MAX_CLIENT_ID_LENGTH = 128;
16645
+ var MAX_TOOL_NAME_LENGTH = 256;
16646
+ var MAX_SERVER_NAME_LENGTH = 256;
16647
+ var CLIENT_ID_RE = /^[A-Za-z0-9._:-]+$/;
16648
+ var INVALID_PERMISSION_OUTCOME_ERROR = '`outcome` must be `{ outcome: "cancelled" }` or `{ outcome: "selected", optionId: string }`';
16649
+ function safeBody(req) {
16650
+ const raw = req.body;
16651
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
16652
+ return /* @__PURE__ */ Object.create(null);
16653
+ }
16654
+ const out = /* @__PURE__ */ Object.create(null);
16655
+ for (const [key, value] of Object.entries(raw)) {
16656
+ if (PROTOTYPE_POLLUTION_KEYS.has(key)) continue;
16657
+ out[key] = value;
16658
+ }
16659
+ return out;
16660
+ }
16661
+ __name(safeBody, "safeBody");
16662
+ function parseOptionalWorkspaceCwd(body, boundWorkspace, res) {
16663
+ const hasCwd = "cwd" in body;
16664
+ if (hasCwd && typeof body["cwd"] !== "string") {
16665
+ res.status(400).json({ error: "`cwd` must be a string absolute path when provided" });
16666
+ return void 0;
16667
+ }
16668
+ if (hasCwd && body["cwd"].length > MAX_WORKSPACE_PATH_LENGTH) {
16669
+ res.status(400).json({
16670
+ error: `\`cwd\` exceeds the ${MAX_WORKSPACE_PATH_LENGTH}-character limit`
16671
+ });
16672
+ return void 0;
16673
+ }
16674
+ const cwd = hasCwd ? body["cwd"] : boundWorkspace;
16675
+ if (!path2.isAbsolute(cwd)) {
16676
+ res.status(400).json({ error: "`cwd` must be an absolute path when provided" });
16677
+ return void 0;
16678
+ }
16679
+ return cwd;
16680
+ }
16681
+ __name(parseOptionalWorkspaceCwd, "parseOptionalWorkspaceCwd");
16682
+ function requireSessionId(req, res) {
16683
+ const sessionId = req.params["id"];
16684
+ if (!sessionId) {
16685
+ res.status(400).json({ error: "`sessionId` route parameter is required" });
16686
+ return null;
16687
+ }
16688
+ return sessionId;
16689
+ }
16690
+ __name(requireSessionId, "requireSessionId");
16691
+ function parseClientIdHeader(req, res) {
16692
+ const raw = req.get(CLIENT_ID_HEADER);
16693
+ if (raw === void 0 || raw === "") return void 0;
16694
+ if (raw.length > MAX_CLIENT_ID_LENGTH || !CLIENT_ID_RE.test(raw)) {
16695
+ res.status(400).json({
16696
+ error: "`X-Qwen-Client-Id` must be a non-empty token of 128 characters or fewer",
16697
+ code: "invalid_client_id"
16698
+ });
16699
+ return null;
16700
+ }
16701
+ return raw;
16702
+ }
16703
+ __name(parseClientIdHeader, "parseClientIdHeader");
16704
+ function detectFromLoopback(req) {
16705
+ const addr = req.socket?.remoteAddress;
16706
+ if (typeof addr !== "string") return false;
16707
+ if (addr === "::1") return true;
16708
+ if (addr.startsWith("127.")) return true;
16709
+ if (addr.startsWith("::ffff:127.")) return true;
16710
+ return false;
16711
+ }
16712
+ __name(detectFromLoopback, "detectFromLoopback");
16713
+ function validateMcpRuntimeServerName(name, res) {
16714
+ if (typeof name !== "string" || name.length === 0) {
16715
+ res.status(400).json({
16716
+ error: "Server name is required and must be a non-empty string",
16717
+ code: "invalid_server_name"
16718
+ });
16719
+ return false;
16720
+ }
16721
+ if (name.length > MAX_SERVER_NAME_LENGTH) {
16722
+ res.status(400).json({
16723
+ error: `Server name exceeds ${MAX_SERVER_NAME_LENGTH}-character limit`,
16724
+ code: "invalid_server_name"
16725
+ });
16726
+ return false;
16727
+ }
16728
+ if (!/^[A-Za-z0-9_-]+$/.test(name)) {
16729
+ res.status(400).json({
16730
+ error: "Server name must contain only alphanumeric characters, underscores, and hyphens",
16731
+ code: "invalid_server_name"
16732
+ });
16733
+ return false;
16734
+ }
16735
+ if (name === "__proto__" || name === "constructor" || name === "prototype") {
16736
+ res.status(400).json({
16737
+ error: "Server name must not be a reserved JS property name",
16738
+ code: "invalid_server_name"
16739
+ });
16740
+ return false;
16741
+ }
16742
+ return true;
16743
+ }
16744
+ __name(validateMcpRuntimeServerName, "validateMcpRuntimeServerName");
16745
+ function parseAndValidateWorkspaceClientId(req, res, bridge) {
16746
+ const raw = parseClientIdHeader(req, res);
16747
+ if (raw === null || raw === void 0) return raw;
16748
+ if (!bridge.knownClientIds().has(raw)) {
16749
+ res.status(400).json({
16750
+ error: `Client id "${raw}" is not registered for this workspace`,
16751
+ code: "invalid_client_id",
16752
+ clientId: raw
16753
+ });
16754
+ return null;
16755
+ }
16756
+ return raw;
16757
+ }
16758
+ __name(parseAndValidateWorkspaceClientId, "parseAndValidateWorkspaceClientId");
16759
+ function createBuildWorkspaceCtx(boundWorkspace) {
16760
+ return (route, clientId) => ({
16761
+ originatorClientId: clientId,
16762
+ route,
16763
+ workspaceCwd: boundWorkspace
16764
+ });
16765
+ }
16766
+ __name(createBuildWorkspaceCtx, "createBuildWorkspaceCtx");
16767
+ function parsePermissionVoteBody(req, res) {
16768
+ const body = safeBody(req);
16769
+ const outcome = body["outcome"];
16770
+ if (!isValidOutcome(outcome)) {
16771
+ res.status(400).json({ error: INVALID_PERMISSION_OUTCOME_ERROR });
16772
+ return void 0;
16773
+ }
16774
+ return {
16775
+ ...body,
16776
+ outcome
16777
+ };
16778
+ }
16779
+ __name(parsePermissionVoteBody, "parsePermissionVoteBody");
16780
+ function isValidOutcome(raw) {
16781
+ if (typeof raw !== "object" || raw === null) return false;
16782
+ const obj = raw;
16783
+ if (obj["outcome"] === "cancelled") return true;
16784
+ return obj["outcome"] === "selected" && typeof obj["optionId"] === "string" && obj["optionId"].length > 0;
16785
+ }
16786
+ __name(isValidOutcome, "isValidOutcome");
16787
+ var MIN_QUERY_MAX_QUEUED = 16;
16788
+ var MAX_QUERY_MAX_QUEUED = 2048;
16789
+ function parseMaxQueuedQuery(raw, res) {
16790
+ if (raw === void 0) return void 0;
16791
+ if (typeof raw !== "string" || !/^\d+$/.test(raw)) {
16792
+ writeStderrLine(
16793
+ `qwen serve: rejected ?maxQueued ${safeLogValue(raw)} (not a decimal integer)`
16794
+ );
16795
+ res.status(400).json({
16796
+ error: "`maxQueued` must be a decimal integer",
16797
+ code: "invalid_max_queued"
16798
+ });
16799
+ return null;
16800
+ }
16801
+ const n = Number.parseInt(raw, 10);
16802
+ if (!Number.isFinite(n) || n < MIN_QUERY_MAX_QUEUED || n > MAX_QUERY_MAX_QUEUED) {
16803
+ writeStderrLine(
16804
+ `qwen serve: rejected ?maxQueued ${safeLogValue(raw)} (outside [${MIN_QUERY_MAX_QUEUED}, ${MAX_QUERY_MAX_QUEUED}])`
16805
+ );
16806
+ res.status(400).json({
16807
+ error: `\`maxQueued\` must be in [${MIN_QUERY_MAX_QUEUED}, ${MAX_QUERY_MAX_QUEUED}]`,
16808
+ code: "invalid_max_queued"
16809
+ });
16810
+ return null;
16811
+ }
16812
+ return n;
16813
+ }
16814
+ __name(parseMaxQueuedQuery, "parseMaxQueuedQuery");
16815
+ function safeLogValue(raw) {
16816
+ return JSON.stringify(String(raw)).slice(0, 82);
16817
+ }
16818
+ __name(safeLogValue, "safeLogValue");
16819
+ function parseLastEventId(raw) {
16820
+ if (typeof raw !== "string" || !/^\d+$/.test(raw)) {
16821
+ if (typeof raw === "string" && raw.length > 0) {
16822
+ writeStderrLine(
16823
+ `qwen serve: rejected Last-Event-ID ${safeLogValue(raw)} (not a decimal integer)`
16824
+ );
16825
+ }
16826
+ return void 0;
16827
+ }
16828
+ const n = Number.parseInt(raw, 10);
16829
+ if (!Number.isFinite(n) || n > Number.MAX_SAFE_INTEGER) {
16830
+ writeStderrLine(
16831
+ `qwen serve: rejected Last-Event-ID ${safeLogValue(raw)} (exceeds Number.MAX_SAFE_INTEGER)`
16832
+ );
16833
+ return void 0;
16834
+ }
16835
+ return n;
16836
+ }
16837
+ __name(parseLastEventId, "parseLastEventId");
16838
+
16597
16839
  // packages/cli/src/serve/rate-limit.ts
16598
16840
  init_esbuild_shims();
16599
16841
  var MAX_BUCKETS = 1e4;
16600
16842
  var GC_REQUEST_INTERVAL = 1e3;
16601
16843
  var GC_TIMER_INTERVAL_MS = 5 * 60 * 1e3;
16602
- function resolveTier(method, path2) {
16603
- const p = path2.endsWith("/") && path2.length > 1 ? path2.slice(0, -1) : path2;
16844
+ function resolveTier(method, path3) {
16845
+ const p = path3.endsWith("/") && path3.length > 1 ? path3.slice(0, -1) : path3;
16604
16846
  if (method === "OPTIONS") return null;
16605
16847
  if ((method === "GET" || method === "HEAD") && (p === "/health" || p === "/demo"))
16606
16848
  return null;
@@ -16615,8 +16857,6 @@ function resolveTier(method, path2) {
16615
16857
  return "read";
16616
16858
  }
16617
16859
  __name(resolveTier, "resolveTier");
16618
- var MAX_CLIENT_ID_LENGTH = 128;
16619
- var CLIENT_ID_RE = /^[A-Za-z0-9._:-]+$/;
16620
16860
  function normalizeIp(raw) {
16621
16861
  if (raw.startsWith("::ffff:")) {
16622
16862
  return raw.slice(7);
@@ -17292,6 +17532,24 @@ export {
17292
17532
  getAdvertisedServeFeatures,
17293
17533
  getServeProtocolVersions,
17294
17534
  CAPABILITIES_SCHEMA_VERSION,
17535
+ sendJsonBodyParserError,
17536
+ CLIENT_ID_HEADER,
17537
+ MAX_CLIENT_ID_LENGTH,
17538
+ MAX_TOOL_NAME_LENGTH,
17539
+ MAX_SERVER_NAME_LENGTH,
17540
+ CLIENT_ID_RE,
17541
+ safeBody,
17542
+ parseOptionalWorkspaceCwd,
17543
+ requireSessionId,
17544
+ parseClientIdHeader,
17545
+ detectFromLoopback,
17546
+ validateMcpRuntimeServerName,
17547
+ parseAndValidateWorkspaceClientId,
17548
+ createBuildWorkspaceCtx,
17549
+ parsePermissionVoteBody,
17550
+ parseMaxQueuedQuery,
17551
+ safeLogValue,
17552
+ parseLastEventId,
17295
17553
  createRateLimiter,
17296
17554
  setRateLimiter,
17297
17555
  getRateLimiter,