@qwen-code/qwen-code 0.21.0-nightly.20260727.c003e1718 → 0.21.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +4 -0
  2. package/bundled/qc-helper/docs/features/channels/github.md +14 -14
  3. package/bundled/qc-helper/docs/features/hooks.md +50 -13
  4. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
  5. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  6. package/bundled/review/SKILL.md +15 -0
  7. package/chunks/{MaxSizedBox-2N5IOLMA.js → MaxSizedBox-UQGQ6O3I.js} +36 -36
  8. package/chunks/{StandaloneSessionPicker-6SNFY63D.js → StandaloneSessionPicker-QLO5COVM.js} +51 -51
  9. package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-DFVPFQ6C.js} +2 -2
  10. package/chunks/{acpAgent-6BDY452E.js → acpAgent-ECMKCJPZ.js} +1265 -505
  11. package/chunks/{agent-WPMRCC7E.js → agent-NJ4VPY5B.js} +31 -31
  12. package/chunks/{agent-headless-OSOKZOZK.js → agent-headless-JB6RF5HT.js} +31 -31
  13. package/chunks/{anthropicContentGenerator-EJEHPX2W.js → anthropicContentGenerator-V2QOGVYD.js} +54 -13
  14. package/chunks/{artifact-tool-FQYTXKFY.js → artifact-tool-6K6U7XYJ.js} +2 -2
  15. package/chunks/{askUserQuestion-DJQIJ5T4.js → askUserQuestion-GD2IJJ7I.js} +2 -2
  16. package/chunks/{bridge-VR3WL36L.js → bridge-EXKCQ7MD.js} +38 -37
  17. package/chunks/{build-47LY6L7H.js → build-S6DO7LMM.js} +1 -1
  18. package/chunks/{ca-UBSN3YSM.js → ca-6W3SK7OQ.js} +1 -1
  19. package/chunks/{channel-management-service-2WRAWZQU.js → channel-management-service-XR7GZSWF.js} +7 -7
  20. package/chunks/{channel-settings-store-3FOVM5TF.js → channel-settings-store-VA4J7HPF.js} +38 -38
  21. package/chunks/{channel-worker-group-VMGKUBUY.js → channel-worker-group-XDPTDWTX.js} +9 -5
  22. package/chunks/{channel-worker-manager-2SCF42S2.js → channel-worker-manager-YYEHVRRE.js} +9 -5
  23. package/chunks/{channel-worker-supervisor-F3HADSDC.js → channel-worker-supervisor-74HTWA2G.js} +5 -4
  24. package/chunks/{chunk-2PHWA4IO.js → chunk-2DN4J57Y.js} +2 -2
  25. package/chunks/{chunk-HHYPUCUF.js → chunk-2LKVPASC.js} +3 -3
  26. package/chunks/{chunk-ECBKZ7SV.js → chunk-2LQTH543.js} +2 -2
  27. package/chunks/{chunk-EDEO3ZXU.js → chunk-2XSLTRFZ.js} +2 -2
  28. package/chunks/{chunk-HIJQF5B5.js → chunk-3L2SPEBH.js} +1 -1
  29. package/chunks/{chunk-2KHUM3TN.js → chunk-3MGBLIXX.js} +167 -81
  30. package/chunks/{chunk-CWFC2GZB.js → chunk-3Q4TGVUX.js} +1385 -785
  31. package/chunks/{chunk-KR2UZ6QL.js → chunk-4G2BISNC.js} +1 -1
  32. package/chunks/{chunk-IUYFCE34.js → chunk-4WSL256B.js} +3 -3
  33. package/chunks/{chunk-LI4HGDLZ.js → chunk-5FNROPXI.js} +4 -4
  34. package/chunks/{chunk-ECEJ6T4L.js → chunk-5TBMQLGG.js} +2 -2
  35. package/chunks/{chunk-KW3H2FM4.js → chunk-5YKDXHUY.js} +2 -2
  36. package/chunks/{chunk-PIVH7FAY.js → chunk-5YVWMI26.js} +5 -5
  37. package/chunks/{chunk-IUNB6SUW.js → chunk-64LQLPL7.js} +3 -3
  38. package/chunks/{chunk-7R4YENCL.js → chunk-6QIGFD5W.js} +1 -1
  39. package/chunks/{chunk-SHJ4R6JF.js → chunk-727I7LJ2.js} +5 -5
  40. package/chunks/{chunk-BRKWIX5C.js → chunk-74YNMTJP.js} +30 -19
  41. package/chunks/{chunk-IM6PC55H.js → chunk-75GFAX4R.js} +1 -1
  42. package/chunks/{chunk-IXNNGTUI.js → chunk-75MIQ3LV.js} +18 -3
  43. package/chunks/{chunk-VCBKBEU7.js → chunk-7A4ZDITM.js} +27 -14
  44. package/chunks/{chunk-FZZTCEXC.js → chunk-7HRXAFCW.js} +10 -10
  45. package/chunks/{chunk-BJHP755Z.js → chunk-7I5GTCT4.js} +271 -164
  46. package/chunks/{chunk-BOWYL27T.js → chunk-7XATOOE7.js} +1 -1
  47. package/chunks/{chunk-HAZMIZP7.js → chunk-A2APC6HM.js} +2 -2
  48. package/chunks/{chunk-ZYD3KZPB.js → chunk-A3NDJ5SB.js} +2 -2
  49. package/chunks/{chunk-IIJCNWAY.js → chunk-AL62VKMS.js} +4 -4
  50. package/chunks/{chunk-NZYXKNSZ.js → chunk-AOAYOH3R.js} +1 -1
  51. package/chunks/{chunk-C6U6ZR65.js → chunk-ATZOB5Y2.js} +11 -11
  52. package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
  53. package/chunks/{chunk-JJY7H2ZU.js → chunk-BCZFQXWK.js} +2 -2
  54. package/chunks/{chunk-FUFNINKB.js → chunk-BGTQCTQW.js} +42 -3
  55. package/chunks/{chunk-6PQHZ4YW.js → chunk-BWKCTLEJ.js} +193 -149
  56. package/chunks/{chunk-3FNJBOF7.js → chunk-CVHIL5IG.js} +3 -3
  57. package/chunks/{chunk-55PWRVIR.js → chunk-DABQX74H.js} +8 -8
  58. package/chunks/{chunk-N7U3LRNS.js → chunk-DDKAZLZ7.js} +17 -6
  59. package/chunks/{chunk-CPF4NIKT.js → chunk-DIQGH5CN.js} +1 -1
  60. package/chunks/{chunk-3YAW4B2W.js → chunk-DJGYJDYR.js} +1 -1
  61. package/chunks/{chunk-4IQSPE3A.js → chunk-DNDETPES.js} +3 -3
  62. package/chunks/{chunk-4CCAX23S.js → chunk-DZLYR4U3.js} +1 -1
  63. package/chunks/{chunk-7XSFZ3FM.js → chunk-EABYVKAK.js} +2 -2
  64. package/chunks/{chunk-SJXVC6ZO.js → chunk-F3EYHTOC.js} +4 -4
  65. package/chunks/{chunk-RKMMVQDZ.js → chunk-FNMZK765.js} +1 -1
  66. package/chunks/{chunk-2KLJYA37.js → chunk-FW4M4GA7.js} +1 -1
  67. package/chunks/chunk-FYJ7W2PI.js +194 -0
  68. package/chunks/{chunk-7GC5YKSS.js → chunk-GATT5TKW.js} +1 -1
  69. package/chunks/{chunk-4CSVLZXK.js → chunk-GBAZKAZW.js} +3 -3
  70. package/chunks/{chunk-5ADNRHTY.js → chunk-GEBV2JGB.js} +28 -5
  71. package/chunks/{chunk-VV6QF662.js → chunk-GKX7E4CO.js} +1 -1
  72. package/chunks/{chunk-ELHHYF7E.js → chunk-GNR2RNMP.js} +157 -4
  73. package/chunks/{chunk-PLMOXLFY.js → chunk-GW3XHA6P.js} +2 -2
  74. package/chunks/{chunk-SAXBG6AR.js → chunk-GXIJHV66.js} +3 -3
  75. package/chunks/{chunk-4AVIERNE.js → chunk-GZ3RCT54.js} +1 -1
  76. package/chunks/{chunk-6K2CPEAB.js → chunk-HKFEPLKW.js} +1 -1
  77. package/chunks/{chunk-QVKDVURA.js → chunk-HRD7NI6D.js} +11 -3
  78. package/chunks/{chunk-G3RJEBAA.js → chunk-HUK2P4RS.js} +2510 -1273
  79. package/chunks/{chunk-RRNQGWR4.js → chunk-HWNLU2HC.js} +7 -7
  80. package/chunks/{chunk-TH6TQR5Y.js → chunk-IZO36O6O.js} +252 -15
  81. package/chunks/{chunk-67IE7N5D.js → chunk-JMONIXMJ.js} +1 -1
  82. package/chunks/{chunk-DMEKUQ5Z.js → chunk-JSD33JG6.js} +3 -3
  83. package/chunks/{chunk-CX2KLDRX.js → chunk-JYBU6YUE.js} +1 -1
  84. package/chunks/{chunk-SJOQ5GW7.js → chunk-KADQPLPX.js} +1 -1
  85. package/chunks/{chunk-PAJNXBXO.js → chunk-KBNDRM4U.js} +3 -3
  86. package/chunks/{chunk-TD665TIY.js → chunk-KFPFJAR3.js} +24 -22
  87. package/chunks/{chunk-ZGVQLKMP.js → chunk-KY3NRFJ5.js} +9 -6
  88. package/chunks/{chunk-DEKCAHRS.js → chunk-LGAOC3ZS.js} +1 -1
  89. package/chunks/{chunk-GVHHFBJ2.js → chunk-LHZRAR2Q.js} +37 -40
  90. package/chunks/{chunk-2WUAKFCQ.js → chunk-LNHZ3A4I.js} +44 -11
  91. package/chunks/{chunk-2LFSPVBC.js → chunk-LW3RFMG7.js} +3 -3
  92. package/chunks/{chunk-SEWRIH7H.js → chunk-M7OONWYU.js} +2 -2
  93. package/chunks/{chunk-CO3BKKFP.js → chunk-ML5M5XOY.js} +269 -248
  94. package/chunks/{chunk-YF6D7CRB.js → chunk-NG3V2LPY.js} +8 -13
  95. package/chunks/{chunk-ZAJIOSFI.js → chunk-NNERMV7T.js} +2 -2
  96. package/chunks/{chunk-N5JEINK3.js → chunk-NOKIVHOL.js} +15 -2
  97. package/chunks/chunk-OCPBI7J5.js +18 -0
  98. package/chunks/{chunk-YF7TVSQK.js → chunk-OKF7JF3R.js} +3 -3
  99. package/chunks/{chunk-5FQ3CINJ.js → chunk-OXWFQXKX.js} +6 -6
  100. package/chunks/{chunk-EWYICJNY.js → chunk-P2YNZWXZ.js} +3 -3
  101. package/chunks/{chunk-6LOSXNKO.js → chunk-PONHVBRT.js} +2 -2
  102. package/chunks/{chunk-FZP2GLM4.js → chunk-QQLCYEN2.js} +1 -1
  103. package/chunks/{chunk-HEVX5YOM.js → chunk-R3NOCPFB.js} +4 -4
  104. package/chunks/{chunk-WZOPR2ZP.js → chunk-R7ZITH3J.js} +3 -1
  105. package/chunks/{chunk-ACPMPDKQ.js → chunk-RPLGZJV2.js} +38 -1
  106. package/chunks/{chunk-MFBM3CQZ.js → chunk-SGFT55XI.js} +1 -1
  107. package/chunks/{chunk-QSDUHJAR.js → chunk-SGM6M3XG.js} +1 -1
  108. package/chunks/{chunk-II55VZQA.js → chunk-SUWVXF2E.js} +3 -3
  109. package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
  110. package/chunks/{chunk-UWSREISS.js → chunk-T2QMKU3R.js} +79 -1
  111. package/chunks/{chunk-7VOUXBKJ.js → chunk-TFRMVU6R.js} +1 -1
  112. package/chunks/{chunk-RGZ34F4F.js → chunk-TUQ36KWK.js} +10 -5
  113. package/chunks/{chunk-R2F2DRBY.js → chunk-U3E3UQAA.js} +4 -4
  114. package/chunks/{chunk-2XORP6RV.js → chunk-UEDIRTKG.js} +1 -1
  115. package/chunks/{chunk-VOTXHGKJ.js → chunk-UFI5GRDS.js} +3 -3
  116. package/chunks/{chunk-ATIV6G7N.js → chunk-UHUSJ6X7.js} +1 -1
  117. package/chunks/{chunk-2WVVMSPB.js → chunk-UPUG4GXM.js} +3 -3
  118. package/chunks/{chunk-TXI4LPWT.js → chunk-UWMLWVCA.js} +18 -6
  119. package/chunks/{chunk-G2W6OP2O.js → chunk-V5AWXXVA.js} +3 -3
  120. package/chunks/{chunk-5CGAUBFZ.js → chunk-VYO6YPYG.js} +3 -3
  121. package/chunks/{chunk-67ZRSECV.js → chunk-W4MIWP6M.js} +26 -15
  122. package/chunks/{chunk-OJJVALKY.js → chunk-WBSMNTSV.js} +3 -3
  123. package/chunks/{chunk-BZU6TRNQ.js → chunk-WUKGHS32.js} +5 -5
  124. package/chunks/{chunk-WTCKVXNT.js → chunk-WUNZAP5I.js} +4 -4
  125. package/chunks/{chunk-XM5V2A2E.js → chunk-WZRWHXFE.js} +1 -1
  126. package/chunks/{chunk-K2P7QBXF.js → chunk-X6XZITHR.js} +3 -3
  127. package/chunks/{chunk-ZEVUICUF.js → chunk-XBYYDKAZ.js} +7 -7
  128. package/chunks/{chunk-XL7TLW5I.js → chunk-XBZQT63P.js} +1 -1
  129. package/chunks/{chunk-DC2Y3JSV.js → chunk-XH7E5IGP.js} +1 -1
  130. package/chunks/{chunk-B5DJFAHN.js → chunk-XR2NFLNQ.js} +4 -4
  131. package/chunks/{chunk-FOT6JBY5.js → chunk-XRYM3MCI.js} +348 -126
  132. package/chunks/{chunk-IJDXG4RL.js → chunk-XWWKIXVD.js} +1 -1
  133. package/chunks/{chunk-3SJ43L4W.js → chunk-XZC5VLBZ.js} +2 -0
  134. package/chunks/{chunk-ZWL7SSVL.js → chunk-Y4IHBGBP.js} +1 -1
  135. package/chunks/{chunk-MB3M2BFP.js → chunk-Y6AXW2OG.js} +9 -3
  136. package/chunks/{chunk-6ENJ2DGB.js → chunk-Y6RATHM5.js} +2 -2
  137. package/chunks/{chunk-D33ZN3GK.js → chunk-YAKKV4WO.js} +12 -12
  138. package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
  139. package/chunks/{chunk-H6YTFKW7.js → chunk-YGF33UXG.js} +60 -7
  140. package/chunks/{chunk-BV6LBI45.js → chunk-YPCRRO7K.js} +3 -3
  141. package/chunks/{chunk-WDMODYUC.js → chunk-ZBVS26BY.js} +4 -0
  142. package/chunks/{chunk-GBJUC5ZL.js → chunk-ZHBO7WVX.js} +1 -1
  143. package/chunks/{chunk-4CKLWQQR.js → chunk-ZSQ5LDBH.js} +1 -1
  144. package/chunks/{computer-use-42W2GDED.js → computer-use-TGJRGZWO.js} +31 -31
  145. package/chunks/{config-utils-OTUC46XY.js → config-utils-NYSXDMEQ.js} +4 -4
  146. package/chunks/{contextCommand-2WIK6DG3.js → contextCommand-HGWDMG36.js} +33 -33
  147. package/chunks/{core-runtime-YFT4JKHA.js → core-runtime-WHE3LSHF.js} +31 -31
  148. package/chunks/{create-sub-session-HQMFFLL5.js → create-sub-session-OWI4RC7D.js} +31 -31
  149. package/chunks/{create-sub-session-Q4BUPKIO.js → create-sub-session-SBYUMSSS.js} +2 -2
  150. package/chunks/{cron-create-NI2G2ACR.js → cron-create-2QK6TCEC.js} +4 -4
  151. package/chunks/{cron-delete-KHD2WOMV.js → cron-delete-FDCDFYMG.js} +4 -4
  152. package/chunks/{cron-list-LZMV5V7N.js → cron-list-XN3WVBTP.js} +4 -4
  153. package/chunks/{daemon-KN3FWTYU.js → daemon-Q2AB5Z23.js} +139 -2
  154. package/chunks/{daemon-status-provider-DYVQTAZX.js → daemon-status-provider-KY35PVUR.js} +43 -42
  155. package/chunks/{daemon-trust-policy-QUHMUDOQ.js → daemon-trust-policy-QSQRPXHD.js} +37 -37
  156. package/chunks/{daemon-trust-policy-monitor-AHIPWCQD.js → daemon-trust-policy-monitor-VJQ54EM3.js} +37 -37
  157. package/chunks/{de-LVJPZWUT.js → de-SY6O76BF.js} +1 -1
  158. package/chunks/{deferred-core-runtime-VWKP5HVD.js → deferred-core-runtime-U3DDMMV2.js} +31 -31
  159. package/chunks/{dist-CWCPAMA2.js → dist-BSTVRPMT.js} +234 -78
  160. package/chunks/{dist-GWORRKWL.js → dist-DOLYHMXE.js} +2 -2
  161. package/chunks/{dist-CRNO2KXU.js → dist-HVRQ2CFL.js} +271 -11
  162. package/chunks/{dist-TPJRJ237.js → dist-IXQEQWRG.js} +1 -1
  163. package/chunks/{dist-ONF2ZUUX.js → dist-SSU66DM4.js} +1 -1
  164. package/chunks/{dist-BRVIXBFA.js → dist-SV7Q3AWJ.js} +1 -1
  165. package/chunks/{dist-2HFXMUT6.js → dist-YGBBMK3Z.js} +1 -1
  166. package/chunks/{earlyInputCapture-AZAUUSDE.js → earlyInputCapture-H4YOY6R7.js} +32 -32
  167. package/chunks/{edit-2GM73YUN.js → edit-NZWMOOX6.js} +31 -31
  168. package/chunks/{en-7JEDYSBE.js → en-NBK3JKCE.js} +4 -1
  169. package/chunks/{enter-worktree-O6MC2FZM.js → enter-worktree-6FMYNZ4S.js} +31 -31
  170. package/chunks/{enterPlanMode-NJNHHLAJ.js → enterPlanMode-RYK5P7WC.js} +31 -31
  171. package/chunks/{environment-L5QWIYKQ.js → environment-RBLY3QVX.js} +33 -33
  172. package/chunks/{errors-GO7MH572.js → errors-WVUI42QV.js} +33 -33
  173. package/chunks/{exit-worktree-FR7KKQSW.js → exit-worktree-FRFYEX6R.js} +31 -31
  174. package/chunks/{exitPlanMode-QKNK5MBZ.js → exitPlanMode-STTGKHP2.js} +31 -31
  175. package/chunks/{fast-path-7SP4KXIF.js → fast-path-OZD2JFDY.js} +3 -3
  176. package/chunks/{fast-path-settings-GTWXZLJZ.js → fast-path-settings-WQJU2LAT.js} +2 -2
  177. package/chunks/{fr-JXF5ONTD.js → fr-4KG5V7UT.js} +1 -1
  178. package/chunks/{gemini-J5WX6DS3.js → gemini-PUKYW6OF.js} +83 -82
  179. package/chunks/{geminiContentGenerator-X4FCO2IH.js → geminiContentGenerator-HYMWIERE.js} +6 -6
  180. package/chunks/{glob-UYGYQ73X.js → glob-IZATNUPS.js} +31 -31
  181. package/chunks/{grep-HWLK333D.js → grep-DWHBLRXJ.js} +33 -32
  182. package/chunks/{handleAutoUpdate-H55RTXMU.js → handleAutoUpdate-3VHGEOAV.js} +35 -35
  183. package/chunks/{i18n-6YL3VGHQ.js → i18n-A56PNKBP.js} +32 -32
  184. package/chunks/{image-gen-ZN43Y352.js → image-gen-RBLQKXQJ.js} +9 -9
  185. package/chunks/{initializer-ATU3WGM5.js → initializer-TCD6H7VY.js} +38 -38
  186. package/chunks/{installationInfo-3D4M363G.js → installationInfo-276EXQW2.js} +32 -32
  187. package/chunks/{ja-72VBFAM5.js → ja-F3GSQXMF.js} +1 -1
  188. package/chunks/{keychain-token-storage-U6BBK3IE.js → keychain-token-storage-72IYCAZV.js} +2 -2
  189. package/chunks/{list-K7TOZQ5T.js → list-NWDHWJ4D.js} +40 -40
  190. package/chunks/{list-agents-FHIQAX2Y.js → list-agents-R6KDXQR3.js} +2 -2
  191. package/chunks/{loadedSettingsAdapter-IDASCO2P.js → loadedSettingsAdapter-YXJKWUYF.js} +37 -37
  192. package/chunks/{loggingContentGenerator-C7ECOBP5.js → loggingContentGenerator-LU6TII3U.js} +18 -18
  193. package/chunks/{loop-wakeup-PSF72P7O.js → loop-wakeup-3IQKCYAH.js} +5 -5
  194. package/chunks/{ls-RVQ2JC4C.js → ls-DKZ37A7N.js} +4 -4
  195. package/chunks/{lsp-UFP2H2RG.js → lsp-QNWN7KN3.js} +2 -2
  196. package/chunks/{managed-npm-update-MWQIFEJC.js → managed-npm-update-AO3CL6VU.js} +32 -32
  197. package/chunks/{mcp-YJ4SZXFF.js → mcp-5PMHEFAR.js} +37 -37
  198. package/chunks/{monitor-MWKW6W4Q.js → monitor-2YELRQ6S.js} +31 -31
  199. package/chunks/nonInteractiveCli-74R5S76M.js +144 -0
  200. package/chunks/{notebook-edit-ALAKK5DZ.js → notebook-edit-SV6GDWUG.js} +31 -31
  201. package/chunks/{openaiContentGenerator-V5GYCLVN.js → openaiContentGenerator-FMBXX26Z.js} +19 -19
  202. package/chunks/{pidfile-I7IOGSVT.js → pidfile-HZA26WFC.js} +32 -32
  203. package/chunks/process-registry-2CHQBXH5.js +157 -0
  204. package/chunks/{processUtils-SRGJPX5P.js → processUtils-4F7EMUKQ.js} +2 -2
  205. package/chunks/{pt-E4AMXNUG.js → pt-EQ33KWEN.js} +1 -1
  206. package/chunks/{qwenContentGenerator-INCMQJG3.js → qwenContentGenerator-CXAD5IOE.js} +37 -37
  207. package/chunks/{qwenOAuth2-MIL7MEKO.js → qwenOAuth2-7V2RGLUU.js} +8 -8
  208. package/chunks/{read-file-BBQ6BN7G.js → read-file-AQKNOXOV.js} +11 -11
  209. package/chunks/{read-mcp-resource-M4IJUOXP.js → read-mcp-resource-GFTWYXMK.js} +2 -2
  210. package/chunks/{record-artifact-4NWBVHNM.js → record-artifact-XAMSFSW4.js} +2 -2
  211. package/chunks/{resumeHistoryUtils-X74IGERO.js → resumeHistoryUtils-NSHGEJZY.js} +37 -37
  212. package/chunks/{ripGrep-GCSZGI22.js → ripGrep-KVWIREMR.js} +31 -31
  213. package/chunks/{ru-OJOR34RM.js → ru-7OZAUKGG.js} +1 -1
  214. package/chunks/{run-qwen-serve-RAPQ4UBN.js → run-qwen-serve-LBBMQRWJ.js} +94 -58
  215. package/chunks/{runtime-F4YK7A5M.js → runtime-XR3VFARS.js} +42 -42
  216. package/chunks/{scheduler-JFOAST7W.js → scheduler-OLI5YERT.js} +31 -31
  217. package/chunks/{sdk-exporters-http-H6MWAYGV.js → sdk-exporters-http-WO556XNU.js} +2 -2
  218. package/chunks/{sdk-impl-U4BU6LE5.js → sdk-impl-LPAVACSF.js} +2 -2
  219. package/chunks/{send-message-GAB3K4KN.js → send-message-SAWK4DZX.js} +4 -4
  220. package/chunks/{serve-WAK4FQIT.js → serve-2WM3HPSN.js} +37 -37
  221. package/chunks/{server-GJFU7OZ6.js → server-T4C6UGPM.js} +895 -127
  222. package/chunks/{session-WFWS7D6U.js → session-IAPGXMG3.js} +78 -77
  223. package/chunks/{settings-NI7K6BOS.js → settings-LIYC7NVY.js} +39 -39
  224. package/chunks/{shell-PI52ZRBM.js → shell-M455ZXG6.js} +31 -31
  225. package/chunks/{skill-EGJY4VDT.js → skill-ZHDF6IVV.js} +15 -15
  226. package/chunks/{skill-settings-27BQIOWC.js → skill-settings-MEFO33AC.js} +36 -36
  227. package/chunks/{spawnChannel-LU6YO2IZ.js → spawnChannel-NAISQSBK.js} +33 -33
  228. package/chunks/{standalone-update-TG2BLT73.js → standalone-update-K4RNR537.js} +33 -33
  229. package/chunks/{startInteractiveUI-4NTL2RZ6.js → startInteractiveUI-HJUQMCBD.js} +426 -216
  230. package/chunks/{syntheticOutput-YCOHYBPM.js → syntheticOutput-355CB6CJ.js} +3 -3
  231. package/chunks/{task-create-YRN3PDAT.js → task-create-INGWNUG4.js} +8 -8
  232. package/chunks/{task-list-FYGHXFOT.js → task-list-5XNNGTF4.js} +5 -5
  233. package/chunks/{task-stop-I7CNWL7J.js → task-stop-4ROAOBXH.js} +2 -2
  234. package/chunks/{task-update-5QOY2AIK.js → task-update-CRK5VWWZ.js} +8 -8
  235. package/chunks/{team-create-5H4T3ENJ.js → team-create-YWCUC55A.js} +31 -31
  236. package/chunks/{team-delete-OAA4YOAC.js → team-delete-S2RCXA4P.js} +5 -5
  237. package/chunks/{team-plan-approval-44SCBFBB.js → team-plan-approval-ZJGZRKV5.js} +31 -31
  238. package/chunks/{theme-manager-HYFW3GL7.js → theme-manager-5LUFI5NY.js} +32 -32
  239. package/chunks/{todoWrite-YFIBFZO3.js → todoWrite-7WM3VDMY.js} +4 -4
  240. package/chunks/{tool-search-YAIIWTSJ.js → tool-search-LZMDLBAK.js} +13 -13
  241. package/chunks/{total-session-admission-FPF66OF6.js → total-session-admission-MDA3ANYQ.js} +39 -38
  242. package/chunks/{trustedFolders-4RSRSIO3.js → trustedFolders-NZEZRJPU.js} +32 -32
  243. package/chunks/{update-relaunch-4NKVI2H5.js → update-relaunch-D7EKBO4E.js} +5 -5
  244. package/chunks/{updateCheck-E2336RGI.js → updateCheck-AKFMZZCG.js} +34 -34
  245. package/chunks/{useAutoAcceptIndicator-YXC4OJ2B.js → useAutoAcceptIndicator-55OEL7UZ.js} +40 -40
  246. package/chunks/{validateNonInterActiveAuth-G5PREALO.js → validateNonInterActiveAuth-K5WQOFUQ.js} +72 -71
  247. package/chunks/{version-IBROP4MJ.js → version-ANSPR52A.js} +1 -1
  248. package/chunks/{web-fetch-G2GFNE3L.js → web-fetch-WFKX5SJM.js} +14 -14
  249. package/chunks/{web-search-4ISTNKIX.js → web-search-XDPHXEUC.js} +9 -9
  250. package/chunks/{workflow-OQY4Y74P.js → workflow-6YYVMHCS.js} +32 -32
  251. package/chunks/{workspace-providers-status-SRB65GMC.js → workspace-providers-status-5L4FEPYR.js} +40 -40
  252. package/chunks/{workspace-registration-store-XOUNCX5G.js → workspace-registration-store-C2HIDNXV.js} +1 -1
  253. package/chunks/{workspace-registry-XMDDRCP3.js → workspace-registry-7B7T5SC3.js} +39 -38
  254. package/chunks/{workspace-service-XUAHBWUX.js → workspace-service-VGGIWADS.js} +46 -45
  255. package/chunks/{workspace-skills-status-GGH6TYSU.js → workspace-skills-status-MZZLEGL5.js} +38 -38
  256. package/chunks/{workspace-trust-reconciler-AKKLKLJQ.js → workspace-trust-reconciler-3PA5PLHX.js} +45 -44
  257. package/chunks/{write-file-7MSTD3VC.js → write-file-5GNKRL2B.js} +31 -31
  258. package/chunks/{zh-2MA5UKNJ.js → zh-H3YDK5QW.js} +4 -1
  259. package/chunks/{zh-TW-JO4Z7CVC.js → zh-TW-JYCP7XUA.js} +4 -1
  260. package/chunks/zoom-image-JIRPKLNA.js +351 -0
  261. package/cli.js +13 -13
  262. package/locales/ca.js +2 -2
  263. package/locales/de.js +2 -2
  264. package/locales/en.js +5 -2
  265. package/locales/fr.js +2 -2
  266. package/locales/ja.js +2 -2
  267. package/locales/pt.js +2 -2
  268. package/locales/ru.js +2 -2
  269. package/locales/zh-TW.js +5 -2
  270. package/locales/zh.js +5 -2
  271. package/package.json +5 -4
  272. package/web-shell/assets/{arc-DYNfZ967.js → arc-75-Wdeo3.js} +1 -1
  273. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CkKsIF39.js → architectureDiagram-3BPJPVTR-FKeXQbyP.js} +1 -1
  274. package/web-shell/assets/{blockDiagram-GPEHLZMM-FfDv_qOy.js → blockDiagram-GPEHLZMM-CY0vc-A3.js} +1 -1
  275. package/web-shell/assets/{c4Diagram-AAUBKEIU-pA5r7guO.js → c4Diagram-AAUBKEIU-CNP-A-8u.js} +1 -1
  276. package/web-shell/assets/channel-DPYMT76A.js +1 -0
  277. package/web-shell/assets/{chunk-2J33WTMH-Bfnf2k-q.js → chunk-2J33WTMH-GybS4Gii.js} +1 -1
  278. package/web-shell/assets/{chunk-4BX2VUAB-BCpgiyb4.js → chunk-4BX2VUAB-02H91V8v.js} +1 -1
  279. package/web-shell/assets/{chunk-55IACEB6-BrwrazA2.js → chunk-55IACEB6-D3M-2VT6.js} +1 -1
  280. package/web-shell/assets/{chunk-727SXJPM-DDCxd_BK.js → chunk-727SXJPM-CCu29u4H.js} +1 -1
  281. package/web-shell/assets/{chunk-AQP2D5EJ-Ce-B1Qi5.js → chunk-AQP2D5EJ-CaFKWgrn.js} +1 -1
  282. package/web-shell/assets/{chunk-FMBD7UC4-Dl2u6_p7.js → chunk-FMBD7UC4-ZZpPqIwQ.js} +1 -1
  283. package/web-shell/assets/{chunk-ND2GUHAM-32W_JFKh.js → chunk-ND2GUHAM-D22DqGs8.js} +1 -1
  284. package/web-shell/assets/{chunk-QZHKN3VN-BmtCt0RT.js → chunk-QZHKN3VN-Bu85S0fw.js} +1 -1
  285. package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +1 -0
  286. package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +1 -0
  287. package/web-shell/assets/{cose-bilkent-S5V4N54A-D_DXerbn.js → cose-bilkent-S5V4N54A-f1CK1Gwe.js} +1 -1
  288. package/web-shell/assets/{dagre-BM42HDAG-C3fMtjq2.js → dagre-BM42HDAG-D0Ow8F_n.js} +1 -1
  289. package/web-shell/assets/{diagram-2AECGRRQ-CBiuEoIi.js → diagram-2AECGRRQ-BPrmTWp8.js} +1 -1
  290. package/web-shell/assets/{diagram-5GNKFQAL-J8DRS3up.js → diagram-5GNKFQAL-HccuFAzy.js} +1 -1
  291. package/web-shell/assets/{diagram-KO2AKTUF-DEVjvvjZ.js → diagram-KO2AKTUF-BrS76mbA.js} +1 -1
  292. package/web-shell/assets/{diagram-LMA3HP47-Bh9hEXeR.js → diagram-LMA3HP47-V7T9lU-5.js} +1 -1
  293. package/web-shell/assets/{diagram-OG6HWLK6-CgV4R96R.js → diagram-OG6HWLK6-DKidyJMR.js} +1 -1
  294. package/web-shell/assets/{erDiagram-TEJ5UH35-BGCFyfGU.js → erDiagram-TEJ5UH35-DBadZIkp.js} +1 -1
  295. package/web-shell/assets/{flowDiagram-I6XJVG4X-BCaQuiMb.js → flowDiagram-I6XJVG4X-BymfqdNJ.js} +1 -1
  296. package/web-shell/assets/{ganttDiagram-6RSMTGT7-B9J27vXf.js → ganttDiagram-6RSMTGT7-DOw340jf.js} +1 -1
  297. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-C2u3FvFn.js → gitGraphDiagram-PVQCEYII-_8EiD8sl.js} +1 -1
  298. package/web-shell/assets/{index-BF2Ug_o6.js → index-CKIadvET.js} +1 -1
  299. package/web-shell/assets/index-D1eXNRHe.js +1389 -0
  300. package/web-shell/assets/index-DVLD4CQq.css +5 -0
  301. package/web-shell/assets/{infoDiagram-5YYISTIA-VGjh3Icm.js → infoDiagram-5YYISTIA-D61KYQBu.js} +1 -1
  302. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-8AZWigme.js → ishikawaDiagram-YF4QCWOH-CsiXSpNx.js} +1 -1
  303. package/web-shell/assets/{journeyDiagram-JHISSGLW-CnAVNJU5.js → journeyDiagram-JHISSGLW-Sdfionyh.js} +1 -1
  304. package/web-shell/assets/{kanban-definition-UN3LZRKU-DAh7CFUA.js → kanban-definition-UN3LZRKU-C3WI3Cnl.js} +1 -1
  305. package/web-shell/assets/{linear-BMHEIvy4.js → linear-Dpigcc62.js} +1 -1
  306. package/web-shell/assets/{mermaid.core-CpHDMzGU.js → mermaid.core-Ct97pqgW.js} +5 -5
  307. package/web-shell/assets/{mindmap-definition-RKZ34NQL-Cf3CMPHf.js → mindmap-definition-RKZ34NQL-BzeaN0rB.js} +1 -1
  308. package/web-shell/assets/{pieDiagram-4H26LBE5-BpRfWcVA.js → pieDiagram-4H26LBE5-CvjgcbVD.js} +1 -1
  309. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-kqzUnUwh.js → quadrantDiagram-W4KKPZXB-BUzgTNdH.js} +1 -1
  310. package/web-shell/assets/{requirementDiagram-4Y6WPE33-D2FenOqg.js → requirementDiagram-4Y6WPE33-B7zKlgUQ.js} +1 -1
  311. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-dWDMUdUe.js → sankeyDiagram-5OEKKPKP-Bb9CQgrT.js} +1 -1
  312. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CYcL0MEP.js → sequenceDiagram-3UESZ5HK-DJ6V7itG.js} +1 -1
  313. package/web-shell/assets/{stateDiagram-AJRCARHV-DkpIKZM6.js → stateDiagram-AJRCARHV-IImflERY.js} +1 -1
  314. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +1 -0
  315. package/web-shell/assets/{timeline-definition-PNZ67QCA-B50fgyFY.js → timeline-definition-PNZ67QCA-6Q_uWHKh.js} +1 -1
  316. package/web-shell/assets/{vennDiagram-CIIHVFJN-DMlYXh0E.js → vennDiagram-CIIHVFJN-TmyKyjwv.js} +1 -1
  317. package/web-shell/assets/{wardley-L42UT6IY-B2iJy8jY.js → wardley-L42UT6IY-CRh9uiPv.js} +1 -1
  318. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-B-PG81LW.js → wardleyDiagram-YWT4CUSO-59TKAW8w.js} +1 -1
  319. package/web-shell/assets/{xychartDiagram-2RQKCTM6-D1N8kSF9.js → xychartDiagram-2RQKCTM6-GCSUIK2L.js} +1 -1
  320. package/web-shell/index.html +2 -2
  321. package/chunks/nonInteractiveCli-74XMYNLX.js +0 -143
  322. package/web-shell/assets/channel-C-gQ4Nim.js +0 -1
  323. package/web-shell/assets/classDiagram-4FO5ZUOK-DKEurkx0.js +0 -1
  324. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DKEurkx0.js +0 -1
  325. package/web-shell/assets/index-Du08qEb3.js +0 -1249
  326. package/web-shell/assets/index-tq1xUECo.css +0 -5
  327. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-QSG1JRm2.js +0 -1
  328. package/chunks/{chunk-IAU6HCJZ.js → chunk-D3UEZIQH.js} +6 -6
  329. /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
@@ -1,5 +1,10 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ openQwenAsrRealtimeStream,
5
+ openVoiceStream,
6
+ openVoiceStreamWithRetry
7
+ } from "./chunk-BCZFQXWK.js";
3
8
  import {
4
9
  GENERATION_MAX_PROMPT_BYTES,
5
10
  MAX_REMEMBER_CONTENT_BYTES,
@@ -16,12 +21,7 @@ import {
16
21
  shouldSuppressRememberErrorDetails,
17
22
  workspaceMemoryFailureCode,
18
23
  workspaceMemoryFailureDiagnostics
19
- } from "./chunk-N7U3LRNS.js";
20
- import {
21
- openQwenAsrRealtimeStream,
22
- openVoiceStream,
23
- openVoiceStreamWithRetry
24
- } from "./chunk-JJY7H2ZU.js";
24
+ } from "./chunk-DDKAZLZ7.js";
25
25
  import {
26
26
  SetupGithubError,
27
27
  collectSessionData,
@@ -33,13 +33,13 @@ import {
33
33
  toJson,
34
34
  toJsonl,
35
35
  toMarkdown
36
- } from "./chunk-TH6TQR5Y.js";
36
+ } from "./chunk-IZO36O6O.js";
37
37
  import {
38
38
  OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
39
39
  ObservedChannelContactStore
40
- } from "./chunk-DEKCAHRS.js";
41
- import "./chunk-IPUUTYMV.js";
42
- import "./chunk-6K2CPEAB.js";
40
+ } from "./chunk-LGAOC3ZS.js";
41
+ import "./chunk-HKFEPLKW.js";
42
+ import "./chunk-YDLJGZHL.js";
43
43
  import "./chunk-2MIN6GRR.js";
44
44
  import "./chunk-QHTIBUWB.js";
45
45
  import "./chunk-QTERJVPZ.js";
@@ -101,14 +101,14 @@ import {
101
101
  setRateLimiter,
102
102
  unsafeRevealSecret,
103
103
  validateMcpRuntimeServerName
104
- } from "./chunk-H6YTFKW7.js";
104
+ } from "./chunk-YGF33UXG.js";
105
105
  import {
106
106
  isLoopbackBind
107
107
  } from "./chunk-RXFQM6FQ.js";
108
108
  import {
109
109
  evaluateDaemonWorkspaceTrust,
110
110
  readDaemonTrustPolicySnapshot
111
- } from "./chunk-4IQSPE3A.js";
111
+ } from "./chunk-DNDETPES.js";
112
112
  import {
113
113
  EMPTY_WORKSPACE_VOICE_UPDATE_ERROR,
114
114
  MAX_WORKSPACE_SKILL_NAME_LENGTH,
@@ -122,14 +122,14 @@ import {
122
122
  validateWorkspaceSkillName,
123
123
  validateWorkspaceVoiceState,
124
124
  voiceSettingsScopeToWire
125
- } from "./chunk-TD665TIY.js";
125
+ } from "./chunk-KFPFJAR3.js";
126
126
  import {
127
127
  PermissionRulesValidationError,
128
128
  buildPermissionSettings,
129
129
  isPermissionRuleType,
130
130
  normalizePermissionRules,
131
131
  readPermissionRuleSet
132
- } from "./chunk-2XORP6RV.js";
132
+ } from "./chunk-UEDIRTKG.js";
133
133
  import {
134
134
  assertVoiceBaseUrlNetworkAllowed,
135
135
  isStreamingVoiceModel,
@@ -137,44 +137,95 @@ import {
137
137
  resolveVoiceTranscriptionConfig,
138
138
  sanitizeVoiceErrorMessage,
139
139
  transcribeVoiceAudio
140
- } from "./chunk-G2W6OP2O.js";
140
+ } from "./chunk-V5AWXXVA.js";
141
141
  import {
142
142
  isVoiceEnabled,
143
143
  isVoiceMode,
144
144
  readVoiceModel
145
- } from "./chunk-FZP2GLM4.js";
146
- import "./chunk-GBJUC5ZL.js";
145
+ } from "./chunk-QQLCYEN2.js";
146
+ import "./chunk-ZHBO7WVX.js";
147
+ import {
148
+ WorkspacePermissionRulesSessionRequiredError,
149
+ WorkspaceSettingsPartialPersistError,
150
+ WorkspaceSkillNotFoundError,
151
+ WorkspaceSkillNotToggleableError
152
+ } from "./chunk-OA4JVLSA.js";
147
153
  import {
148
154
  createTotalSessionAdmissionController
149
- } from "./chunk-VYPFXUCB.js";
155
+ } from "./chunk-SZ3KHTDR.js";
150
156
  import {
151
157
  WorkspaceGenerationClosedError,
152
158
  createSingleWorkspaceRegistry,
153
159
  createWorkspaceSessionOwnerIndex
154
- } from "./chunk-CX2KLDRX.js";
160
+ } from "./chunk-JYBU6YUE.js";
155
161
  import "./chunk-GRC5HGPI.js";
156
162
  import {
157
163
  assertValidChannelSecretUpdates
158
- } from "./chunk-6ENJ2DGB.js";
164
+ } from "./chunk-Y6RATHM5.js";
159
165
  import {
160
166
  createDaemonStatusProvider
161
- } from "./chunk-LI4HGDLZ.js";
162
- import "./chunk-LXXMOYPL.js";
163
- import "./chunk-WTCKVXNT.js";
167
+ } from "./chunk-5FNROPXI.js";
168
+ import "./chunk-VXZBKKQR.js";
169
+ import "./chunk-WUNZAP5I.js";
164
170
  import "./chunk-E5Z2AVNV.js";
165
171
  import {
166
172
  SessionArtifactAuthorizationError,
167
173
  SessionArtifactValidationError,
168
174
  createAcpSessionBridge,
169
175
  parseSessionSource
170
- } from "./chunk-FOT6JBY5.js";
176
+ } from "./chunk-XRYM3MCI.js";
171
177
  import {
172
178
  EVENT_SCHEMA_VERSION,
173
179
  EventBus,
174
180
  SubscriberLimitExceededError
175
181
  } from "./chunk-GLWP3FDB.js";
176
182
  import "./chunk-XCGIMOLN.js";
177
- import "./chunk-3SJ43L4W.js";
183
+ import "./chunk-OCPBI7J5.js";
184
+ import "./chunk-3MGBLIXX.js";
185
+ import {
186
+ createWorkspaceProvidersStatusProvider
187
+ } from "./chunk-DABQX74H.js";
188
+ import {
189
+ getAuthTypeFromEnv,
190
+ resolveCliGenerationConfig
191
+ } from "./chunk-KBNDRM4U.js";
192
+ import {
193
+ snapshotProcessEnv
194
+ } from "./chunk-A2APC6HM.js";
195
+ import {
196
+ createWorkspaceSkillsStatusProvider
197
+ } from "./chunk-UFI5GRDS.js";
198
+ import "./chunk-L55JWS76.js";
199
+ import {
200
+ STATUS_SCHEMA_VERSION,
201
+ createIdleWorkspaceMemoryStatus,
202
+ mapDomainErrorToErrorKind
203
+ } from "./chunk-R7ZITH3J.js";
204
+ import "./chunk-Z4X5MTRT.js";
205
+ import "./chunk-WBL3FJEU.js";
206
+ import {
207
+ daemonObservedContactsPath,
208
+ loadChannelsConfig
209
+ } from "./chunk-HWNLU2HC.js";
210
+ import "./chunk-XR2NFLNQ.js";
211
+ import "./chunk-57OAHC2Y.js";
212
+ import {
213
+ parseChannelWebhookConfigLenient
214
+ } from "./chunk-2XSLTRFZ.js";
215
+ import "./chunk-TFRMVU6R.js";
216
+ import {
217
+ supportedChannelCatalog
218
+ } from "./chunk-XBYYDKAZ.js";
219
+ import "./chunk-V6WHFGST.js";
220
+ import {
221
+ MAX_REGISTERED_WORKSPACES,
222
+ WorkspaceDisplayNameValidationError,
223
+ WorkspaceRegistrationStoreCommittedError,
224
+ WorkspaceRegistrationStoreLimitError,
225
+ normalizeWorkspaceDisplayName,
226
+ workspaceRegistrationId
227
+ } from "./chunk-XH7E5IGP.js";
228
+ import "./chunk-XZC5VLBZ.js";
178
229
  import {
179
230
  BranchWhilePromptActiveError,
180
231
  CancelSentinelCollisionError,
@@ -207,48 +258,13 @@ import {
207
258
  WorkspaceInitRaceError,
208
259
  WorkspaceInitSymlinkError,
209
260
  WorkspaceMismatchError
210
- } from "./chunk-UH3WSE5L.js";
211
- import "./chunk-2KHUM3TN.js";
212
- import {
213
- createWorkspaceProvidersStatusProvider
214
- } from "./chunk-55PWRVIR.js";
215
- import {
216
- getAuthTypeFromEnv,
217
- resolveCliGenerationConfig
218
- } from "./chunk-PAJNXBXO.js";
219
- import {
220
- snapshotProcessEnv
221
- } from "./chunk-HAZMIZP7.js";
222
- import {
223
- createWorkspaceSkillsStatusProvider
224
- } from "./chunk-VOTXHGKJ.js";
225
- import "./chunk-L55JWS76.js";
226
- import {
227
- STATUS_SCHEMA_VERSION,
228
- createIdleWorkspaceMemoryStatus,
229
- mapDomainErrorToErrorKind
230
- } from "./chunk-WZOPR2ZP.js";
231
- import "./chunk-Z4X5MTRT.js";
232
- import {
233
- WorkspacePermissionRulesSessionRequiredError,
234
- WorkspaceSettingsPartialPersistError,
235
- WorkspaceSkillNotFoundError,
236
- WorkspaceSkillNotToggleableError
237
- } from "./chunk-OA4JVLSA.js";
261
+ } from "./chunk-B4AJNNOL.js";
238
262
  import {
239
- daemonObservedContactsPath,
240
- loadChannelsConfig
241
- } from "./chunk-RRNQGWR4.js";
242
- import "./chunk-B5DJFAHN.js";
243
- import "./chunk-57OAHC2Y.js";
244
- import {
245
- parseChannelWebhookConfigLenient
246
- } from "./chunk-EDEO3ZXU.js";
247
- import "./chunk-7VOUXBKJ.js";
248
- import {
249
- supportedChannelCatalog
250
- } from "./chunk-ZEVUICUF.js";
251
- import "./chunk-V6WHFGST.js";
263
+ MAX_WORKSPACE_PATH_LENGTH,
264
+ canonicalizeWorkspace,
265
+ canonicalizeWorkspaces,
266
+ translateAndCheckAbsoluteWorkspacePath
267
+ } from "./chunk-2RFKHEXL.js";
252
268
  import {
253
269
  ChannelDeliveryError,
254
270
  MAX_CHANNEL_STARTUP_FAILURES,
@@ -261,7 +277,7 @@ import {
261
277
  } from "./chunk-U4VTUMMK.js";
262
278
  import {
263
279
  normalizeWorkerDiagnostic
264
- } from "./chunk-4AVIERNE.js";
280
+ } from "./chunk-GZ3RCT54.js";
265
281
  import {
266
282
  normalizeServeChannelSelection
267
283
  } from "./chunk-ALMR3E6Q.js";
@@ -269,11 +285,11 @@ import "./chunk-BK2UNYWD.js";
269
285
  import {
270
286
  redactLogCredentials
271
287
  } from "./chunk-M5GB774H.js";
272
- import "./chunk-WBL3FJEU.js";
288
+ import "./chunk-5HBA2Z7V.js";
273
289
  import "./chunk-T2NCM2ET.js";
274
290
  import {
275
291
  sanitizeLogText
276
- } from "./chunk-BJHP755Z.js";
292
+ } from "./chunk-7I5GTCT4.js";
277
293
  import "./chunk-UDXSXLER.js";
278
294
  import {
279
295
  getDialogSettingKeys,
@@ -284,38 +300,23 @@ import {
284
300
  getWritableScopes,
285
301
  loadSettings,
286
302
  validateSettingValue
287
- } from "./chunk-VCBKBEU7.js";
303
+ } from "./chunk-7A4ZDITM.js";
288
304
  import "./chunk-RKUWKYED.js";
289
305
  import {
290
306
  SUPPORTED_LANGUAGES,
291
307
  detectSystemLanguage,
292
308
  resolveLanguageSetting,
293
309
  resolveSupportedLanguage
294
- } from "./chunk-C6U6ZR65.js";
295
- import "./chunk-ZAJIOSFI.js";
310
+ } from "./chunk-ATZOB5Y2.js";
311
+ import "./chunk-NNERMV7T.js";
296
312
  import "./chunk-GOXKNSDZ.js";
297
- import "./chunk-6PEXNQTX.js";
298
- import {
299
- MAX_REGISTERED_WORKSPACES,
300
- WorkspaceDisplayNameValidationError,
301
- WorkspaceRegistrationStoreCommittedError,
302
- WorkspaceRegistrationStoreLimitError,
303
- normalizeWorkspaceDisplayName,
304
- workspaceRegistrationId
305
- } from "./chunk-DC2Y3JSV.js";
306
- import {
307
- MAX_WORKSPACE_PATH_LENGTH,
308
- canonicalizeWorkspace,
309
- canonicalizeWorkspaces,
310
- translateAndCheckAbsoluteWorkspacePath
311
- } from "./chunk-2RFKHEXL.js";
312
- import "./chunk-5HBA2Z7V.js";
313
313
  import "./chunk-IDS7MSUP.js";
314
- import "./chunk-NZYXKNSZ.js";
314
+ import "./chunk-6PEXNQTX.js";
315
+ import "./chunk-AOAYOH3R.js";
315
316
  import "./chunk-VJNBRRZG.js";
316
317
  import {
317
318
  getWorkspaceTrustStatus
318
- } from "./chunk-IUYFCE34.js";
319
+ } from "./chunk-4WSL256B.js";
319
320
  import "./chunk-ALGGS7UH.js";
320
321
  import {
321
322
  isWithinRoot as isWithinRoot2
@@ -361,16 +362,27 @@ import {
361
362
  WorkspaceMemoryFileTooLargeError,
362
363
  WorkspaceMemoryWriteTimeoutError,
363
364
  buildUsageDashboard,
365
+ createGitHubPullRequest,
364
366
  detectLineEnding,
365
367
  encodeTextFileContentAsync,
368
+ fetchGitBranches,
366
369
  fetchGitCommitDetail,
367
370
  fetchGitDiff,
368
371
  fetchGitDiffHunksForFile,
369
372
  fetchGitHubPullRequests,
370
373
  fetchGitLog,
374
+ findGitRoot,
375
+ getDefaultBranch,
371
376
  getGitWorkingTreeStatus,
372
377
  getSubagentSessionDir,
378
+ gitCheckout,
379
+ gitCommit,
380
+ gitCreateBranch,
381
+ gitPull,
382
+ gitPush,
373
383
  glob,
384
+ isValidCheckoutRef,
385
+ isValidRefName,
374
386
  loadIgnoreRules,
375
387
  loadUsageHistoryWithLive,
376
388
  parseInstallSource,
@@ -386,18 +398,19 @@ import {
386
398
  writeWorkspaceContextFile,
387
399
  writeWorktreeSession,
388
400
  writeWorktreeSessionMarker
389
- } from "./chunk-G3RJEBAA.js";
401
+ } from "./chunk-HUK2P4RS.js";
390
402
  import "./chunk-TWPJO254.js";
391
403
  import "./chunk-H6XPXXMH.js";
392
404
  import "./chunk-5M6IDOMF.js";
393
- import "./chunk-2WVVMSPB.js";
394
- import "./chunk-IUNB6SUW.js";
395
- import "./chunk-ECBKZ7SV.js";
405
+ import "./chunk-UPUG4GXM.js";
406
+ import "./chunk-64LQLPL7.js";
407
+ import "./chunk-2LQTH543.js";
396
408
  import "./chunk-KRXPRVGL.js";
409
+ import "./chunk-DJGYJDYR.js";
397
410
  import {
398
411
  MAX_JOBS,
399
412
  nextDurableFireMs
400
- } from "./chunk-3FNJBOF7.js";
413
+ } from "./chunk-CVHIL5IG.js";
401
414
  import {
402
415
  nextFireTime,
403
416
  parseCron
@@ -410,23 +423,22 @@ import {
410
423
  readCronTasks,
411
424
  taskHasLegacyCondition,
412
425
  updateCronTasks
413
- } from "./chunk-6LOSXNKO.js";
426
+ } from "./chunk-PONHVBRT.js";
414
427
  import "./chunk-T26EAKDL.js";
415
428
  import "./chunk-6PVPNMXU.js";
416
- import "./chunk-3YAW4B2W.js";
417
429
  import "./chunk-CPBF7KYF.js";
418
- import "./chunk-7R4YENCL.js";
419
- import "./chunk-IJDXG4RL.js";
420
- import "./chunk-IM6PC55H.js";
421
- import "./chunk-YF7TVSQK.js";
430
+ import "./chunk-6QIGFD5W.js";
431
+ import "./chunk-XWWKIXVD.js";
432
+ import "./chunk-75GFAX4R.js";
433
+ import "./chunk-OKF7JF3R.js";
422
434
  import {
423
435
  APPROVAL_MODES,
424
436
  SubagentError,
425
437
  SubagentErrorCode
426
- } from "./chunk-DMEKUQ5Z.js";
438
+ } from "./chunk-JSD33JG6.js";
427
439
  import "./chunk-S6LOFUVP.js";
428
440
  import "./chunk-JCW2R7WC.js";
429
- import "./chunk-2PHWA4IO.js";
441
+ import "./chunk-2DN4J57Y.js";
430
442
  import "./chunk-ZPJWUGCS.js";
431
443
  import {
432
444
  QwenOAuth2Client,
@@ -436,15 +448,15 @@ import {
436
448
  isDeviceAuthorizationSuccess,
437
449
  isDeviceTokenPending,
438
450
  isDeviceTokenSuccess
439
- } from "./chunk-HHYPUCUF.js";
451
+ } from "./chunk-2LKVPASC.js";
440
452
  import "./chunk-NAVJD2PQ.js";
441
- import "./chunk-2LFSPVBC.js";
442
- import "./chunk-67ZRSECV.js";
453
+ import "./chunk-LW3RFMG7.js";
454
+ import "./chunk-W4MIWP6M.js";
443
455
  import "./chunk-DGEIYUC3.js";
444
456
  import "./chunk-MPHPFVKK.js";
445
457
  import "./chunk-GLNBDYUX.js";
446
458
  import "./chunk-DJ2GSRLV.js";
447
- import "./chunk-EWYICJNY.js";
459
+ import "./chunk-P2YNZWXZ.js";
448
460
  import {
449
461
  addDaemonRequestAttribute,
450
462
  emitDaemonLog,
@@ -454,12 +466,12 @@ import {
454
466
  recordDaemonHttpRequest,
455
467
  recordDaemonHttpResponse,
456
468
  withDaemonRequestSpan
457
- } from "./chunk-IXNNGTUI.js";
469
+ } from "./chunk-75MIQ3LV.js";
458
470
  import "./chunk-2J3OJGTL.js";
459
471
  import "./chunk-P3QQPMQA.js";
460
- import "./chunk-ACPMPDKQ.js";
472
+ import "./chunk-RPLGZJV2.js";
461
473
  import "./chunk-GLCZKT5V.js";
462
- import "./chunk-4CCAX23S.js";
474
+ import "./chunk-DZLYR4U3.js";
463
475
  import "./chunk-CR3C7WXL.js";
464
476
  import "./chunk-XWRJCPHC.js";
465
477
  import {
@@ -468,18 +480,18 @@ import {
468
480
  isWithinRoot,
469
481
  parseLineTolerant,
470
482
  read
471
- } from "./chunk-6PQHZ4YW.js";
483
+ } from "./chunk-BWKCTLEJ.js";
472
484
  import "./chunk-VGC4I5JJ.js";
473
- import "./chunk-MFBM3CQZ.js";
474
- import "./chunk-ZWL7SSVL.js";
475
- import "./chunk-MB3M2BFP.js";
476
- import "./chunk-2WUAKFCQ.js";
485
+ import "./chunk-SGFT55XI.js";
486
+ import "./chunk-Y4IHBGBP.js";
487
+ import "./chunk-Y6AXW2OG.js";
488
+ import "./chunk-LNHZ3A4I.js";
477
489
  import "./chunk-46UV252V.js";
478
- import "./chunk-WDMODYUC.js";
479
- import "./chunk-XM5V2A2E.js";
480
- import "./chunk-ZYD3KZPB.js";
481
- import "./chunk-BOWYL27T.js";
482
- import "./chunk-FUFNINKB.js";
490
+ import "./chunk-ZBVS26BY.js";
491
+ import "./chunk-WZRWHXFE.js";
492
+ import "./chunk-A3NDJ5SB.js";
493
+ import "./chunk-7XATOOE7.js";
494
+ import "./chunk-BGTQCTQW.js";
483
495
  import "./chunk-W4RQUHY3.js";
484
496
  import "./chunk-S7W2GKIO.js";
485
497
  import {
@@ -487,7 +499,7 @@ import {
487
499
  Storage,
488
500
  createDebugLogger,
489
501
  runWithoutDebugLogSession
490
- } from "./chunk-ATIV6G7N.js";
502
+ } from "./chunk-UHUSJ6X7.js";
491
503
  import "./chunk-VOQXFAY5.js";
492
504
  import "./chunk-75DOP5OR.js";
493
505
  import "./chunk-DMTGGOSA.js";
@@ -2625,6 +2637,26 @@ function resolveContainedCwd(req, workspaceCwd) {
2625
2637
  return workspaceCwd;
2626
2638
  }
2627
2639
  __name(resolveContainedCwd, "resolveContainedCwd");
2640
+ function resolveContainedCwdOrFail(req, workspaceCwd) {
2641
+ const rawCwd = req.query["cwd"];
2642
+ if (rawCwd === void 0) {
2643
+ return workspaceCwd;
2644
+ }
2645
+ if (typeof rawCwd !== "string" || rawCwd.length === 0) {
2646
+ return null;
2647
+ }
2648
+ try {
2649
+ const resolved = fs.realpathSync(path5.resolve(rawCwd));
2650
+ const root = fs.realpathSync(workspaceCwd);
2651
+ const rel = path5.relative(root, resolved);
2652
+ if (!rel.startsWith("..") && !path5.isAbsolute(rel)) {
2653
+ return resolved;
2654
+ }
2655
+ } catch {
2656
+ }
2657
+ return null;
2658
+ }
2659
+ __name(resolveContainedCwdOrFail, "resolveContainedCwdOrFail");
2628
2660
 
2629
2661
  // packages/cli/src/serve/routes/workspace-file-read.ts
2630
2662
  var MAX_LIST_ENTRIES = 2e3;
@@ -29206,6 +29238,84 @@ init_esbuild_shims();
29206
29238
  import { readdir as readdir2, stat as stat2 } from "node:fs/promises";
29207
29239
  import { realpathSync as realpathSync3 } from "node:fs";
29208
29240
  import { basename as basename4, dirname as dirname4, isAbsolute as isAbsolute7, join as join8, resolve as resolve4, sep as sep3 } from "node:path";
29241
+
29242
+ // packages/cli/src/serve/native-directory-picker.ts
29243
+ init_esbuild_shims();
29244
+ import { execFile as execFile2 } from "node:child_process";
29245
+ import { promisify as promisify2 } from "node:util";
29246
+ var execFileAsync2 = promisify2(execFile2);
29247
+ var PICKER_TIMEOUT_MS = 3e5;
29248
+ var NativeDirectoryPickerUnavailableError = class extends Error {
29249
+ static {
29250
+ __name(this, "NativeDirectoryPickerUnavailableError");
29251
+ }
29252
+ };
29253
+ async function pickNativeDirectory(signal) {
29254
+ try {
29255
+ if (process.platform === "darwin") {
29256
+ const script = [
29257
+ "const app = Application.currentApplication();",
29258
+ "app.includeStandardAdditions = true;",
29259
+ "app.chooseFolder({",
29260
+ 'withPrompt: "Select a workspace folder",',
29261
+ "}).toString();"
29262
+ ].join(" ");
29263
+ const { stdout } = await execFileAsync2(
29264
+ "osascript",
29265
+ ["-l", "JavaScript", "-e", script],
29266
+ { timeout: PICKER_TIMEOUT_MS, signal }
29267
+ );
29268
+ return stdout.trim() || void 0;
29269
+ }
29270
+ if (process.platform === "win32") {
29271
+ const script = [
29272
+ "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8;",
29273
+ "Add-Type -AssemblyName System.Windows.Forms;",
29274
+ "$dialog = New-Object System.Windows.Forms.FolderBrowserDialog;",
29275
+ "if ($dialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {",
29276
+ "[Console]::Out.Write($dialog.SelectedPath)",
29277
+ "}"
29278
+ ].join(" ");
29279
+ const { stdout } = await execFileAsync2(
29280
+ "powershell.exe",
29281
+ ["-NoProfile", "-STA", "-Command", script],
29282
+ { timeout: PICKER_TIMEOUT_MS, signal }
29283
+ );
29284
+ return stdout.trim() || void 0;
29285
+ }
29286
+ if (process.platform === "linux") {
29287
+ const { stdout } = await execFileAsync2(
29288
+ "zenity",
29289
+ [
29290
+ "--file-selection",
29291
+ "--directory",
29292
+ "--title=Select a workspace folder"
29293
+ ],
29294
+ { timeout: PICKER_TIMEOUT_MS, signal }
29295
+ );
29296
+ return stdout.trim() || void 0;
29297
+ }
29298
+ } catch (error2) {
29299
+ const result = error2;
29300
+ if (result.killed) {
29301
+ return void 0;
29302
+ }
29303
+ if (process.platform === "darwin" && (result.stderr?.includes("(-128)") || result.stderr?.includes("User canceled")) || // Zenity exits 1 both for a deliberate cancel and for "cannot open
29304
+ // display" on headless Linux; only the former is a silent cancel.
29305
+ process.platform === "linux" && result.code === 1 && !result.stderr?.includes("cannot open display")) {
29306
+ return void 0;
29307
+ }
29308
+ throw new NativeDirectoryPickerUnavailableError(
29309
+ error2 instanceof Error ? error2.message : String(error2)
29310
+ );
29311
+ }
29312
+ throw new NativeDirectoryPickerUnavailableError(
29313
+ `Native directory picker is not supported on ${process.platform}`
29314
+ );
29315
+ }
29316
+ __name(pickNativeDirectory, "pickNativeDirectory");
29317
+
29318
+ // packages/cli/src/serve/routes/workspace-management.ts
29209
29319
  var MAX_PATH_SUGGESTIONS = 50;
29210
29320
  function registerWorkspaceManagementRoutes(app, deps) {
29211
29321
  const {
@@ -29218,8 +29328,10 @@ function registerWorkspaceManagementRoutes(app, deps) {
29218
29328
  runWorkspaceTrustOperation,
29219
29329
  workspaceRegistrationStore,
29220
29330
  getAcpHandle,
29221
- runtimeRemoval
29331
+ runtimeRemoval,
29332
+ pickWorkspaceDirectory: pickWorkspaceDirectoryOverride
29222
29333
  } = deps;
29334
+ const pickWorkspaceDirectory = pickWorkspaceDirectoryOverride ?? pickNativeDirectory;
29223
29335
  const inFlight = /* @__PURE__ */ new Map();
29224
29336
  let sealed = false;
29225
29337
  let activeOperations = 0;
@@ -29460,6 +29572,41 @@ function registerWorkspaceManagementRoutes(app, deps) {
29460
29572
  });
29461
29573
  }
29462
29574
  );
29575
+ app.post(
29576
+ "/workspace-directory-picker",
29577
+ mutate(),
29578
+ async (req, res) => {
29579
+ const controller = new AbortController();
29580
+ res.on("close", () => controller.abort());
29581
+ try {
29582
+ const path14 = await pickWorkspaceDirectory(controller.signal);
29583
+ res.status(200).json({
29584
+ kind: "workspace-directory-picker",
29585
+ selected: path14 !== void 0,
29586
+ ...path14 === void 0 ? {} : { path: path14 }
29587
+ });
29588
+ } catch (error2) {
29589
+ const detail = error2 instanceof Error ? error2.message : String(error2);
29590
+ if (error2 instanceof NativeDirectoryPickerUnavailableError) {
29591
+ writeStderrLine(
29592
+ `qwen serve: native directory picker unavailable: ${detail}`
29593
+ );
29594
+ res.status(501).json({
29595
+ error: "Native directory picker is unavailable",
29596
+ code: "directory_picker_unavailable"
29597
+ });
29598
+ return;
29599
+ }
29600
+ writeStderrLine(
29601
+ `qwen serve: native directory picker failed: ${detail}`
29602
+ );
29603
+ res.status(500).json({
29604
+ error: "Failed to open native directory picker",
29605
+ code: "directory_picker_failed"
29606
+ });
29607
+ }
29608
+ }
29609
+ );
29463
29610
  app.post(
29464
29611
  "/workspaces",
29465
29612
  mutate({ strict: true }),
@@ -30717,7 +30864,9 @@ async function handleLogList(req, res, workspaceCwd, sendBridgeError2, route) {
30717
30864
  try {
30718
30865
  applyReadHeaders(res);
30719
30866
  const { limit, skip } = parsePagination(req);
30720
- const result = await fetchGitLog(workspaceCwd, { limit, skip });
30867
+ const rawRange = req.query["range"];
30868
+ const range = typeof rawRange === "string" && rawRange.trim() ? rawRange.trim() : void 0;
30869
+ const result = await fetchGitLog(workspaceCwd, { limit, skip, range });
30721
30870
  res.status(200).json(buildLogList(workspaceCwd, result));
30722
30871
  } catch (err) {
30723
30872
  sendBridgeError2(res, err, { route });
@@ -30797,6 +30946,502 @@ function registerWorkspaceQualifiedGitLogRoutes(app, deps) {
30797
30946
  }
30798
30947
  __name(registerWorkspaceQualifiedGitLogRoutes, "registerWorkspaceQualifiedGitLogRoutes");
30799
30948
 
30949
+ // packages/cli/src/serve/routes/workspace-git-branches.ts
30950
+ init_esbuild_shims();
30951
+ var GIT_ERROR_MESSAGE_MAX = 512;
30952
+ function resolveTrustedRuntime5(registry, req, res) {
30953
+ const runtime = resolveWorkspaceRuntimeFromParam(registry, req, res);
30954
+ if (!runtime) return null;
30955
+ return requireTrustedWorkspaceRuntime(runtime, res) ? runtime : null;
30956
+ }
30957
+ __name(resolveTrustedRuntime5, "resolveTrustedRuntime");
30958
+ function sendGitError(res, err, route, sendBridgeError2, cwd) {
30959
+ let detail;
30960
+ if (err && typeof err === "object" && ("stdout" in err || "stderr" in err)) {
30961
+ const e = err;
30962
+ detail = `${e.stdout ?? ""}
30963
+ ${e.stderr ?? ""}`;
30964
+ } else {
30965
+ detail = err instanceof Error ? err.message : String(err);
30966
+ }
30967
+ const gitRoot = findGitRoot(cwd);
30968
+ let message = detail.split(cwd).join("<workspace>");
30969
+ if (gitRoot && gitRoot !== cwd) {
30970
+ message = message.split(gitRoot).join("<workspace>");
30971
+ }
30972
+ message = message.slice(0, GIT_ERROR_MESSAGE_MAX);
30973
+ if (/not a git repository/i.test(message) || /invalid reference/i.test(message)) {
30974
+ res.status(404).json({ error: "not_a_git_repository", message });
30975
+ return;
30976
+ }
30977
+ if (/dirty|uncommitted|would be overwritten/i.test(message)) {
30978
+ res.status(409).json({ error: "dirty_working_tree", message });
30979
+ return;
30980
+ }
30981
+ if (/already exists/i.test(message)) {
30982
+ res.status(409).json({ error: "branch_already_exists", message });
30983
+ return;
30984
+ }
30985
+ if (/nothing to commit/i.test(message)) {
30986
+ res.status(400).json({ error: "nothing_to_commit", message });
30987
+ return;
30988
+ }
30989
+ if (/detached HEAD/i.test(message)) {
30990
+ res.status(409).json({ error: "detached_head", message });
30991
+ return;
30992
+ }
30993
+ if (/no upstream|no tracking information/i.test(message)) {
30994
+ res.status(400).json({ error: "no_upstream", message });
30995
+ return;
30996
+ }
30997
+ sendBridgeError2(res, new Error(message), { route });
30998
+ }
30999
+ __name(sendGitError, "sendGitError");
31000
+ async function handleBranches(res, cwd, sendBridgeError2, route, assertGenerationOpen, env) {
31001
+ try {
31002
+ assertGenerationOpen?.();
31003
+ const result = await fetchGitBranches(cwd, env);
31004
+ assertGenerationOpen?.();
31005
+ res.status(200).json({
31006
+ v: 1,
31007
+ workspaceCwd: cwd,
31008
+ available: true,
31009
+ local: result.local,
31010
+ remote: result.remote,
31011
+ tags: result.tags,
31012
+ recent: result.recent,
31013
+ head: result.head,
31014
+ detached: result.detached
31015
+ });
31016
+ } catch (err) {
31017
+ if (sendGenerationClosedError(res, err)) return;
31018
+ sendGitError(res, err, route, sendBridgeError2, cwd);
31019
+ }
31020
+ }
31021
+ __name(handleBranches, "handleBranches");
31022
+ async function handleCheckout(req, res, cwd, sendBridgeError2, route, env) {
31023
+ const body = safeBody(req);
31024
+ const ref = body["ref"];
31025
+ if (typeof ref !== "string" || !ref.trim()) {
31026
+ res.status(400).json({ error: "missing_ref", message: "ref is required" });
31027
+ return;
31028
+ }
31029
+ if (!isValidCheckoutRef(ref)) {
31030
+ res.status(400).json({ error: "invalid_ref", message: "Invalid checkout ref" });
31031
+ return;
31032
+ }
31033
+ try {
31034
+ const result = await gitCheckout(cwd, ref.trim(), env);
31035
+ res.status(200).json(result);
31036
+ } catch (err) {
31037
+ sendGitError(res, err, route, sendBridgeError2, cwd);
31038
+ }
31039
+ }
31040
+ __name(handleCheckout, "handleCheckout");
31041
+ async function handleCreateBranch(req, res, cwd, sendBridgeError2, route, env) {
31042
+ const body = safeBody(req);
31043
+ const name = body["name"];
31044
+ if (typeof name !== "string" || !isValidRefName(name) || name.startsWith("-")) {
31045
+ res.status(400).json({ error: "invalid_branch_name", message: "Invalid branch name" });
31046
+ return;
31047
+ }
31048
+ const rawStartPoint = body["startPoint"];
31049
+ if (rawStartPoint !== void 0 && typeof rawStartPoint !== "string") {
31050
+ res.status(400).json({
31051
+ error: "invalid_start_point",
31052
+ message: "startPoint must be a string"
31053
+ });
31054
+ return;
31055
+ }
31056
+ const startPoint = typeof rawStartPoint === "string" ? rawStartPoint.trim() || void 0 : void 0;
31057
+ if (startPoint !== void 0 && !isValidCheckoutRef(startPoint)) {
31058
+ res.status(400).json({ error: "invalid_start_point", message: "Invalid start point" });
31059
+ return;
31060
+ }
31061
+ try {
31062
+ const result = await gitCreateBranch(cwd, name, startPoint, env);
31063
+ res.status(200).json(result);
31064
+ } catch (err) {
31065
+ sendGitError(res, err, route, sendBridgeError2, cwd);
31066
+ }
31067
+ }
31068
+ __name(handleCreateBranch, "handleCreateBranch");
31069
+ async function handlePush(req, res, cwd, sendBridgeError2, route, env) {
31070
+ const body = safeBody(req);
31071
+ if (body["setUpstream"] !== void 0 && typeof body["setUpstream"] !== "boolean") {
31072
+ res.status(400).json({
31073
+ error: "invalid_set_upstream",
31074
+ message: "setUpstream must be a boolean"
31075
+ });
31076
+ return;
31077
+ }
31078
+ if (body["force"] !== void 0 && typeof body["force"] !== "boolean") {
31079
+ res.status(400).json({ error: "invalid_force", message: "force must be a boolean" });
31080
+ return;
31081
+ }
31082
+ const setUpstream = body["setUpstream"] === true;
31083
+ const force = body["force"] === true;
31084
+ try {
31085
+ const result = await gitPush(cwd, { setUpstream, force }, env);
31086
+ res.status(200).json(result);
31087
+ } catch (err) {
31088
+ sendGitError(res, err, route, sendBridgeError2, cwd);
31089
+ }
31090
+ }
31091
+ __name(handlePush, "handlePush");
31092
+ async function handlePull(req, res, cwd, sendBridgeError2, route, env) {
31093
+ const body = safeBody(req);
31094
+ if (body["rebase"] !== void 0 && typeof body["rebase"] !== "boolean") {
31095
+ res.status(400).json({ error: "invalid_rebase", message: "rebase must be a boolean" });
31096
+ return;
31097
+ }
31098
+ if (body["fetchOnly"] !== void 0 && typeof body["fetchOnly"] !== "boolean") {
31099
+ res.status(400).json({
31100
+ error: "invalid_fetch_only",
31101
+ message: "fetchOnly must be a boolean"
31102
+ });
31103
+ return;
31104
+ }
31105
+ const rebase = body["rebase"] === true;
31106
+ const fetchOnly = body["fetchOnly"] === true;
31107
+ try {
31108
+ const result = await gitPull(cwd, { rebase, fetchOnly }, env);
31109
+ res.status(200).json(result);
31110
+ } catch (err) {
31111
+ sendGitError(res, err, route, sendBridgeError2, cwd);
31112
+ }
31113
+ }
31114
+ __name(handlePull, "handlePull");
31115
+ async function handleCommit(req, res, cwd, sendBridgeError2, route, env) {
31116
+ const body = safeBody(req);
31117
+ const message = body["message"];
31118
+ if (typeof message !== "string" || !message.trim()) {
31119
+ res.status(400).json({ error: "missing_message", message: "message is required" });
31120
+ return;
31121
+ }
31122
+ if (body["all"] !== void 0 && typeof body["all"] !== "boolean") {
31123
+ res.status(400).json({ error: "invalid_all", message: "all must be a boolean" });
31124
+ return;
31125
+ }
31126
+ const all = body["all"] === true;
31127
+ try {
31128
+ const result = await gitCommit(cwd, message.trim(), { all }, env);
31129
+ res.status(200).json(result);
31130
+ } catch (err) {
31131
+ sendGitError(res, err, route, sendBridgeError2, cwd);
31132
+ }
31133
+ }
31134
+ __name(handleCommit, "handleCommit");
31135
+ function registerWorkspaceGitBranchRoutes(app, deps) {
31136
+ app.get("/workspace/git/branches", (_req, res) => {
31137
+ if (deps.isWorkspaceTrusted?.() === false) {
31138
+ sendUntrustedWorkspaceResponse(res);
31139
+ return;
31140
+ }
31141
+ void handleBranches(
31142
+ res,
31143
+ deps.boundWorkspace,
31144
+ deps.sendBridgeError,
31145
+ "GET /workspace/git/branches",
31146
+ deps.captureGenerationAssertion?.()
31147
+ );
31148
+ });
31149
+ app.post(
31150
+ "/workspace/git/checkout",
31151
+ deps.mutate({ strict: true }),
31152
+ (req, res) => {
31153
+ if (deps.isWorkspaceTrusted?.() === false) {
31154
+ sendUntrustedWorkspaceResponse(res);
31155
+ return;
31156
+ }
31157
+ try {
31158
+ deps.captureGenerationAssertion?.()?.();
31159
+ } catch (err) {
31160
+ deps.sendBridgeError(res, err, {
31161
+ route: "POST /workspace/git/checkout"
31162
+ });
31163
+ return;
31164
+ }
31165
+ void handleCheckout(
31166
+ req,
31167
+ res,
31168
+ deps.boundWorkspace,
31169
+ deps.sendBridgeError,
31170
+ "POST /workspace/git/checkout"
31171
+ );
31172
+ }
31173
+ );
31174
+ app.post(
31175
+ "/workspace/git/branch",
31176
+ deps.mutate({ strict: true }),
31177
+ (req, res) => {
31178
+ if (deps.isWorkspaceTrusted?.() === false) {
31179
+ sendUntrustedWorkspaceResponse(res);
31180
+ return;
31181
+ }
31182
+ try {
31183
+ deps.captureGenerationAssertion?.()?.();
31184
+ } catch (err) {
31185
+ deps.sendBridgeError(res, err, {
31186
+ route: "POST /workspace/git/branch"
31187
+ });
31188
+ return;
31189
+ }
31190
+ void handleCreateBranch(
31191
+ req,
31192
+ res,
31193
+ deps.boundWorkspace,
31194
+ deps.sendBridgeError,
31195
+ "POST /workspace/git/branch"
31196
+ );
31197
+ }
31198
+ );
31199
+ app.post("/workspace/git/push", deps.mutate({ strict: true }), (req, res) => {
31200
+ if (deps.isWorkspaceTrusted?.() === false) {
31201
+ sendUntrustedWorkspaceResponse(res);
31202
+ return;
31203
+ }
31204
+ try {
31205
+ deps.captureGenerationAssertion?.()?.();
31206
+ } catch (err) {
31207
+ deps.sendBridgeError(res, err, { route: "POST /workspace/git/push" });
31208
+ return;
31209
+ }
31210
+ void handlePush(
31211
+ req,
31212
+ res,
31213
+ deps.boundWorkspace,
31214
+ deps.sendBridgeError,
31215
+ "POST /workspace/git/push"
31216
+ );
31217
+ });
31218
+ app.post("/workspace/git/pull", deps.mutate({ strict: true }), (req, res) => {
31219
+ if (deps.isWorkspaceTrusted?.() === false) {
31220
+ sendUntrustedWorkspaceResponse(res);
31221
+ return;
31222
+ }
31223
+ try {
31224
+ deps.captureGenerationAssertion?.()?.();
31225
+ } catch (err) {
31226
+ deps.sendBridgeError(res, err, { route: "POST /workspace/git/pull" });
31227
+ return;
31228
+ }
31229
+ void handlePull(
31230
+ req,
31231
+ res,
31232
+ deps.boundWorkspace,
31233
+ deps.sendBridgeError,
31234
+ "POST /workspace/git/pull"
31235
+ );
31236
+ });
31237
+ app.post(
31238
+ "/workspace/git/commit",
31239
+ deps.mutate({ strict: true }),
31240
+ (req, res) => {
31241
+ if (deps.isWorkspaceTrusted?.() === false) {
31242
+ sendUntrustedWorkspaceResponse(res);
31243
+ return;
31244
+ }
31245
+ try {
31246
+ deps.captureGenerationAssertion?.()?.();
31247
+ } catch (err) {
31248
+ deps.sendBridgeError(res, err, {
31249
+ route: "POST /workspace/git/commit"
31250
+ });
31251
+ return;
31252
+ }
31253
+ void handleCommit(
31254
+ req,
31255
+ res,
31256
+ deps.boundWorkspace,
31257
+ deps.sendBridgeError,
31258
+ "POST /workspace/git/commit"
31259
+ );
31260
+ }
31261
+ );
31262
+ }
31263
+ __name(registerWorkspaceGitBranchRoutes, "registerWorkspaceGitBranchRoutes");
31264
+ function registerWorkspaceQualifiedGitBranchRoutes(app, deps) {
31265
+ app.get("/workspaces/:workspace/git/branches", (req, res) => {
31266
+ const runtime = resolveTrustedRuntime5(deps.workspaceRegistry, req, res);
31267
+ if (!runtime) return;
31268
+ void handleBranches(
31269
+ res,
31270
+ resolveContainedCwd(req, runtime.workspaceCwd),
31271
+ deps.sendBridgeError,
31272
+ "GET /workspaces/:workspace/git/branches",
31273
+ () => runtime.generationGuard?.assertOpen(),
31274
+ runtime.env.effectiveEnv
31275
+ );
31276
+ });
31277
+ app.post(
31278
+ "/workspaces/:workspace/git/checkout",
31279
+ deps.mutate({ strict: true }),
31280
+ (req, res) => {
31281
+ const runtime = resolveTrustedRuntime5(deps.workspaceRegistry, req, res);
31282
+ if (!runtime) return;
31283
+ try {
31284
+ runtime.generationGuard?.assertOpen();
31285
+ } catch (err) {
31286
+ if (sendGenerationClosedError(res, err)) return;
31287
+ deps.sendBridgeError(res, err, {
31288
+ route: "POST /workspaces/:workspace/git/checkout"
31289
+ });
31290
+ return;
31291
+ }
31292
+ const cwd = resolveContainedCwdOrFail(req, runtime.workspaceCwd);
31293
+ if (cwd === null) {
31294
+ res.status(400).json({
31295
+ error: "invalid_cwd",
31296
+ message: "The supplied cwd is invalid or outside the workspace"
31297
+ });
31298
+ return;
31299
+ }
31300
+ void handleCheckout(
31301
+ req,
31302
+ res,
31303
+ cwd,
31304
+ deps.sendBridgeError,
31305
+ "POST /workspaces/:workspace/git/checkout",
31306
+ runtime.env.effectiveEnv
31307
+ );
31308
+ }
31309
+ );
31310
+ app.post(
31311
+ "/workspaces/:workspace/git/branch",
31312
+ deps.mutate({ strict: true }),
31313
+ (req, res) => {
31314
+ const runtime = resolveTrustedRuntime5(deps.workspaceRegistry, req, res);
31315
+ if (!runtime) return;
31316
+ try {
31317
+ runtime.generationGuard?.assertOpen();
31318
+ } catch (err) {
31319
+ if (sendGenerationClosedError(res, err)) return;
31320
+ deps.sendBridgeError(res, err, {
31321
+ route: "POST /workspaces/:workspace/git/branch"
31322
+ });
31323
+ return;
31324
+ }
31325
+ const cwd = resolveContainedCwdOrFail(req, runtime.workspaceCwd);
31326
+ if (cwd === null) {
31327
+ res.status(400).json({
31328
+ error: "invalid_cwd",
31329
+ message: "The supplied cwd is invalid or outside the workspace"
31330
+ });
31331
+ return;
31332
+ }
31333
+ void handleCreateBranch(
31334
+ req,
31335
+ res,
31336
+ cwd,
31337
+ deps.sendBridgeError,
31338
+ "POST /workspaces/:workspace/git/branch",
31339
+ runtime.env.effectiveEnv
31340
+ );
31341
+ }
31342
+ );
31343
+ app.post(
31344
+ "/workspaces/:workspace/git/push",
31345
+ deps.mutate({ strict: true }),
31346
+ (req, res) => {
31347
+ const runtime = resolveTrustedRuntime5(deps.workspaceRegistry, req, res);
31348
+ if (!runtime) return;
31349
+ try {
31350
+ runtime.generationGuard?.assertOpen();
31351
+ } catch (err) {
31352
+ if (sendGenerationClosedError(res, err)) return;
31353
+ deps.sendBridgeError(res, err, {
31354
+ route: "POST /workspaces/:workspace/git/push"
31355
+ });
31356
+ return;
31357
+ }
31358
+ const cwd = resolveContainedCwdOrFail(req, runtime.workspaceCwd);
31359
+ if (cwd === null) {
31360
+ res.status(400).json({
31361
+ error: "invalid_cwd",
31362
+ message: "The supplied cwd is invalid or outside the workspace"
31363
+ });
31364
+ return;
31365
+ }
31366
+ void handlePush(
31367
+ req,
31368
+ res,
31369
+ cwd,
31370
+ deps.sendBridgeError,
31371
+ "POST /workspaces/:workspace/git/push",
31372
+ runtime.env.effectiveEnv
31373
+ );
31374
+ }
31375
+ );
31376
+ app.post(
31377
+ "/workspaces/:workspace/git/pull",
31378
+ deps.mutate({ strict: true }),
31379
+ (req, res) => {
31380
+ const runtime = resolveTrustedRuntime5(deps.workspaceRegistry, req, res);
31381
+ if (!runtime) return;
31382
+ try {
31383
+ runtime.generationGuard?.assertOpen();
31384
+ } catch (err) {
31385
+ if (sendGenerationClosedError(res, err)) return;
31386
+ deps.sendBridgeError(res, err, {
31387
+ route: "POST /workspaces/:workspace/git/pull"
31388
+ });
31389
+ return;
31390
+ }
31391
+ const cwd = resolveContainedCwdOrFail(req, runtime.workspaceCwd);
31392
+ if (cwd === null) {
31393
+ res.status(400).json({
31394
+ error: "invalid_cwd",
31395
+ message: "The supplied cwd is invalid or outside the workspace"
31396
+ });
31397
+ return;
31398
+ }
31399
+ void handlePull(
31400
+ req,
31401
+ res,
31402
+ cwd,
31403
+ deps.sendBridgeError,
31404
+ "POST /workspaces/:workspace/git/pull",
31405
+ runtime.env.effectiveEnv
31406
+ );
31407
+ }
31408
+ );
31409
+ app.post(
31410
+ "/workspaces/:workspace/git/commit",
31411
+ deps.mutate({ strict: true }),
31412
+ (req, res) => {
31413
+ const runtime = resolveTrustedRuntime5(deps.workspaceRegistry, req, res);
31414
+ if (!runtime) return;
31415
+ try {
31416
+ runtime.generationGuard?.assertOpen();
31417
+ } catch (err) {
31418
+ if (sendGenerationClosedError(res, err)) return;
31419
+ deps.sendBridgeError(res, err, {
31420
+ route: "POST /workspaces/:workspace/git/commit"
31421
+ });
31422
+ return;
31423
+ }
31424
+ const cwd = resolveContainedCwdOrFail(req, runtime.workspaceCwd);
31425
+ if (cwd === null) {
31426
+ res.status(400).json({
31427
+ error: "invalid_cwd",
31428
+ message: "The supplied cwd is invalid or outside the workspace"
31429
+ });
31430
+ return;
31431
+ }
31432
+ void handleCommit(
31433
+ req,
31434
+ res,
31435
+ cwd,
31436
+ deps.sendBridgeError,
31437
+ "POST /workspaces/:workspace/git/commit",
31438
+ runtime.env.effectiveEnv
31439
+ );
31440
+ }
31441
+ );
31442
+ }
31443
+ __name(registerWorkspaceQualifiedGitBranchRoutes, "registerWorkspaceQualifiedGitBranchRoutes");
31444
+
30800
31445
  // packages/cli/src/serve/routes/workspace-github-prs.ts
30801
31446
  init_esbuild_shims();
30802
31447
  var DEFAULT_CACHE_TTL_MS2 = 6e4;
@@ -30807,13 +31452,13 @@ __name(sanitizeMessage, "sanitizeMessage");
30807
31452
  function registerWorkspaceQualifiedGitHubPrsRoutes(app, deps) {
30808
31453
  const ttlMs = deps.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS2;
30809
31454
  const cache = /* @__PURE__ */ new Map();
30810
- const getPullRequests = /* @__PURE__ */ __name((workspaceCwd) => {
31455
+ const getPullRequests = /* @__PURE__ */ __name((workspaceCwd, env) => {
30811
31456
  const now = Date.now();
30812
31457
  const existing = cache.get(workspaceCwd);
30813
31458
  const fresh = existing !== void 0 && (existing.settledAt === null || now - existing.settledAt < ttlMs);
30814
31459
  if (!fresh) {
30815
31460
  const entry = {
30816
- promise: fetchGitHubPullRequests(workspaceCwd),
31461
+ promise: fetchGitHubPullRequests(workspaceCwd, env),
30817
31462
  settledAt: null
30818
31463
  };
30819
31464
  cache.set(workspaceCwd, entry);
@@ -30841,7 +31486,10 @@ function registerWorkspaceQualifiedGitHubPrsRoutes(app, deps) {
30841
31486
  if (!requireTrustedWorkspaceRuntime(runtime, res)) return;
30842
31487
  applyReadHeaders(res);
30843
31488
  try {
30844
- const result = await getPullRequests(runtime.workspaceCwd);
31489
+ const result = await getPullRequests(
31490
+ runtime.workspaceCwd,
31491
+ runtime.env.effectiveEnv
31492
+ );
30845
31493
  switch (result.kind) {
30846
31494
  case "ok":
30847
31495
  res.status(200).json({
@@ -30887,6 +31535,113 @@ function registerWorkspaceQualifiedGitHubPrsRoutes(app, deps) {
30887
31535
  deps.sendBridgeError(res, err, { route });
30888
31536
  }
30889
31537
  });
31538
+ app.post(
31539
+ "/workspaces/:workspace/github/prs/create",
31540
+ deps.mutate({ strict: true }),
31541
+ async (req, res) => {
31542
+ const route = "POST /workspaces/:workspace/github/prs/create";
31543
+ const runtime = resolveWorkspaceRuntimeFromParam(
31544
+ deps.workspaceRegistry,
31545
+ req,
31546
+ res
31547
+ );
31548
+ if (!runtime) return;
31549
+ if (!requireTrustedWorkspaceRuntime(runtime, res)) return;
31550
+ try {
31551
+ runtime.generationGuard?.assertOpen();
31552
+ } catch (err) {
31553
+ if (sendGenerationClosedError(res, err)) return;
31554
+ deps.sendBridgeError(res, err, { route });
31555
+ return;
31556
+ }
31557
+ const body = safeBody(req);
31558
+ const title = body["title"];
31559
+ if (typeof title !== "string" || !title.trim()) {
31560
+ res.status(400).json({ error: "title is required" });
31561
+ return;
31562
+ }
31563
+ for (const field of ["body", "base", "head"]) {
31564
+ if (body[field] !== void 0 && typeof body[field] !== "string") {
31565
+ res.status(400).json({ error: `${field} must be a string` });
31566
+ return;
31567
+ }
31568
+ }
31569
+ const prBody = typeof body["body"] === "string" ? body["body"] : void 0;
31570
+ const base = typeof body["base"] === "string" ? body["base"] : void 0;
31571
+ const head = typeof body["head"] === "string" ? body["head"] : void 0;
31572
+ const cwd = resolveContainedCwdOrFail(req, runtime.workspaceCwd);
31573
+ if (cwd === null) {
31574
+ res.status(400).json({
31575
+ error: "invalid_cwd",
31576
+ message: "The supplied cwd is invalid or outside the workspace"
31577
+ });
31578
+ return;
31579
+ }
31580
+ try {
31581
+ const result = await createGitHubPullRequest(
31582
+ cwd,
31583
+ {
31584
+ title: title.trim(),
31585
+ body: prBody,
31586
+ base,
31587
+ head
31588
+ },
31589
+ runtime.env.effectiveEnv
31590
+ );
31591
+ switch (result.kind) {
31592
+ case "ok":
31593
+ res.status(201).json({ url: result.url, number: result.number });
31594
+ return;
31595
+ case "not_a_repo":
31596
+ res.status(404).json({ error: "not_a_git_repository" });
31597
+ return;
31598
+ case "cli_unavailable":
31599
+ res.status(502).json({
31600
+ error: "gh CLI not available",
31601
+ code: "github_cli_unavailable"
31602
+ });
31603
+ return;
31604
+ case "failed":
31605
+ res.status(502).json({
31606
+ error: sanitizeMessage(
31607
+ sanitizeMessage(result.message, runtime.workspaceCwd),
31608
+ result.gitRoot
31609
+ ).slice(0, GITHUB_PR_ERROR_MESSAGE_MAX),
31610
+ code: "github_pr_create_failed"
31611
+ });
31612
+ return;
31613
+ default:
31614
+ res.status(500).json({ error: "unexpected result" });
31615
+ return;
31616
+ }
31617
+ } catch (err) {
31618
+ deps.sendBridgeError(res, err, { route });
31619
+ }
31620
+ }
31621
+ );
31622
+ app.get("/workspaces/:workspace/github/default-branch", async (req, res) => {
31623
+ const route = "GET /workspaces/:workspace/github/default-branch";
31624
+ const runtime = resolveWorkspaceRuntimeFromParam(
31625
+ deps.workspaceRegistry,
31626
+ req,
31627
+ res
31628
+ );
31629
+ if (!runtime) return;
31630
+ if (!requireTrustedWorkspaceRuntime(runtime, res)) return;
31631
+ applyReadHeaders(res);
31632
+ try {
31633
+ runtime.generationGuard?.assertOpen();
31634
+ const branch = await getDefaultBranch(
31635
+ runtime.workspaceCwd,
31636
+ runtime.env.effectiveEnv
31637
+ );
31638
+ runtime.generationGuard?.assertOpen();
31639
+ res.status(200).json({ branch: branch ?? "origin/main" });
31640
+ } catch (err) {
31641
+ if (sendGenerationClosedError(res, err)) return;
31642
+ deps.sendBridgeError(res, err, { route });
31643
+ }
31644
+ });
30890
31645
  }
30891
31646
  __name(registerWorkspaceQualifiedGitHubPrsRoutes, "registerWorkspaceQualifiedGitHubPrsRoutes");
30892
31647
 
@@ -33542,9 +34297,22 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
33542
34297
  workspaceRegistry,
33543
34298
  sendBridgeError: sendBridgeError2
33544
34299
  });
34300
+ registerWorkspaceGitBranchRoutes(app, {
34301
+ boundWorkspace: primaryBoundWorkspace,
34302
+ sendBridgeError: sendBridgeError2,
34303
+ isWorkspaceTrusted: isPrimaryWorkspaceTrusted,
34304
+ captureGenerationAssertion: capturePrimaryGenerationAssertion,
34305
+ mutate
34306
+ });
34307
+ registerWorkspaceQualifiedGitBranchRoutes(app, {
34308
+ workspaceRegistry,
34309
+ sendBridgeError: sendBridgeError2,
34310
+ mutate
34311
+ });
33545
34312
  registerWorkspaceQualifiedGitHubPrsRoutes(app, {
33546
34313
  workspaceRegistry,
33547
- sendBridgeError: sendBridgeError2
34314
+ sendBridgeError: sendBridgeError2,
34315
+ mutate
33548
34316
  });
33549
34317
  mountWorkspaceMemoryRoutes(app, {
33550
34318
  bridge: primaryBridge,