@qwen-code/qwen-code 0.19.12 → 0.20.0-nightly.20260720.0c271659d

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 (276) hide show
  1. package/bundled/qc-helper/docs/integration-github-action.md +1 -1
  2. package/bundled/qc-helper/docs/qwen-serve.md +42 -5
  3. package/bundled/review/DESIGN.md +2 -2
  4. package/bundled/review/SKILL.md +13 -9
  5. package/chunks/{MaxSizedBox-QOXLJGAF.js → MaxSizedBox-ED3QND6V.js} +30 -27
  6. package/chunks/{StandaloneSessionPicker-FLV6CGYJ.js → StandaloneSessionPicker-NQVAOTKS.js} +50 -45
  7. package/chunks/{acpAgent-OB2CTF3P.js → acpAgent-HOBFF5B6.js} +353 -130
  8. package/chunks/{agent-CKSI7BTR.js → agent-J7EPFLA6.js} +22 -22
  9. package/chunks/{agent-headless-U36LIYTU.js → agent-headless-RRG3JU7Q.js} +22 -22
  10. package/chunks/{anthropicContentGenerator-ZZRGFEES.js → anthropicContentGenerator-HVKLXOOU.js} +6 -5
  11. package/chunks/{artifact-tool-PHO5XEGZ.js → artifact-tool-WBCAMD3O.js} +2 -2
  12. package/chunks/{askUserQuestion-CEPBT47X.js → askUserQuestion-6DZC4UV5.js} +2 -2
  13. package/chunks/{bridge-AIKTINJG.js → bridge-OW5FZ6BF.js} +25 -25
  14. package/chunks/build-SSCNEHZZ.js +62 -0
  15. package/chunks/{channel-worker-group-NEUVTPB2.js → channel-worker-group-53CMOPFT.js} +4 -4
  16. package/chunks/{channel-worker-manager-7CQVOVWV.js → channel-worker-manager-UTXILKC2.js} +4 -4
  17. package/chunks/{channel-worker-supervisor-3BU2KNCZ.js → channel-worker-supervisor-ZGO2W2MD.js} +3 -3
  18. package/chunks/chunk-27AJEU6G.js +442 -0
  19. package/chunks/{chunk-BABX5XRO.js → chunk-2HOVDT7W.js} +1 -1
  20. package/chunks/{chunk-GW7BONBU.js → chunk-2JOLZA6L.js} +5 -5
  21. package/chunks/{chunk-ZSDFNE6Y.js → chunk-2TDSM7I6.js} +3 -3
  22. package/chunks/{chunk-6IITZE7O.js → chunk-2YJLFCYI.js} +7 -7
  23. package/chunks/{chunk-VEFR4XJQ.js → chunk-37MGCVTS.js} +1 -1
  24. package/chunks/{chunk-3B6PSWHE.js → chunk-3ML52IFS.js} +4 -4
  25. package/chunks/{chunk-TKASNYDS.js → chunk-3QR5MOHP.js} +2 -2
  26. package/chunks/{chunk-KRMARA3A.js → chunk-3SNKL6L6.js} +29 -13
  27. package/chunks/{chunk-DJ4VHAFJ.js → chunk-3ZL6YMO2.js} +3 -3
  28. package/chunks/chunk-43T5WDQ7.js +127 -0
  29. package/chunks/{chunk-W6CQPLWM.js → chunk-4ODB7WIB.js} +1 -1
  30. package/chunks/{chunk-CHPQFLW6.js → chunk-4UH63YE5.js} +5 -5
  31. package/chunks/{chunk-2CCDMJM7.js → chunk-53OPIXUE.js} +3 -3
  32. package/chunks/{chunk-HTHUX2T5.js → chunk-5QWWOFGG.js} +0 -1
  33. package/chunks/{chunk-3DJY4IFO.js → chunk-5SCI6E3E.js} +1 -1
  34. package/chunks/{chunk-4CHDYDG3.js → chunk-6EFTQYW7.js} +1 -1
  35. package/chunks/{chunk-OBSLEYCD.js → chunk-6HQW55TM.js} +29 -2
  36. package/chunks/{chunk-N47VAEAJ.js → chunk-6MN6XJTR.js} +2379 -1291
  37. package/chunks/{chunk-UCTCDLDS.js → chunk-6VGRTGOG.js} +1 -1
  38. package/chunks/{chunk-KNGZ5EYL.js → chunk-7JQK6FXK.js} +198 -120
  39. package/chunks/{chunk-2476XGOU.js → chunk-A4TJMY65.js} +1 -1
  40. package/chunks/{chunk-67Q33DQY.js → chunk-AMRWCMX4.js} +4 -4
  41. package/chunks/{chunk-XAAEDML2.js → chunk-AYCDXHZB.js} +1 -1
  42. package/chunks/{chunk-VAJS2E2D.js → chunk-BDBMYST4.js} +1 -1
  43. package/chunks/{chunk-F2RR4HO2.js → chunk-BVLROR2T.js} +1 -1
  44. package/chunks/{chunk-UE5TZ55T.js → chunk-C27BYUX6.js} +29 -2
  45. package/chunks/{chunk-PK7COE5O.js → chunk-CL7IRYTA.js} +1 -1
  46. package/chunks/{chunk-KMJOMWHE.js → chunk-COWNNAWJ.js} +1 -1
  47. package/chunks/{chunk-UOA2IHRI.js → chunk-CPCVCKKF.js} +1 -1
  48. package/chunks/{chunk-4RPARQ5D.js → chunk-D2VIDMVM.js} +2 -2
  49. package/chunks/{chunk-4MPYGENG.js → chunk-DCCW7CRR.js} +6 -6
  50. package/chunks/chunk-DIKIJS6Z.js +114 -0
  51. package/chunks/{chunk-ETN2G32U.js → chunk-DR5AUNJ2.js} +4 -4
  52. package/chunks/{chunk-6ETOSWAO.js → chunk-DSBCU6JY.js} +3 -3
  53. package/chunks/{chunk-LKR7QQ63.js → chunk-EAUYY7SS.js} +3 -3
  54. package/chunks/{chunk-J2MKYJKZ.js → chunk-EIAK6Q2B.js} +2 -2
  55. package/chunks/{chunk-WEPXQKGP.js → chunk-EZVDJFZ7.js} +1 -1
  56. package/chunks/{chunk-WHQNBBWW.js → chunk-FLSVD6BS.js} +2 -2
  57. package/chunks/{chunk-3ESL7JXA.js → chunk-FODJ5Q5K.js} +3 -3
  58. package/chunks/{chunk-4XCVGEEX.js → chunk-FSL5W5TI.js} +3 -3
  59. package/chunks/{chunk-NE6HHLL3.js → chunk-FWT66O5E.js} +2 -2
  60. package/chunks/{chunk-OSSDHJDU.js → chunk-G45X5TRN.js} +1 -1
  61. package/chunks/{chunk-ZGT623SG.js → chunk-G6MDKXDP.js} +12 -12
  62. package/chunks/{chunk-KANTXY7B.js → chunk-GKY2OJ7R.js} +2 -2
  63. package/chunks/chunk-GMGDLUC7.js +37 -0
  64. package/chunks/{chunk-J6NT5YTN.js → chunk-H2XVO6NE.js} +1 -289
  65. package/chunks/{chunk-XSEWNUMZ.js → chunk-I4HZ4GOD.js} +8 -8
  66. package/chunks/{chunk-CPU6I5YV.js → chunk-I6JUVU7J.js} +34 -24
  67. package/chunks/{chunk-UZC5VPOJ.js → chunk-IDGTC5AS.js} +3 -3
  68. package/chunks/{chunk-QIFTJDBY.js → chunk-INL2RSLA.js} +1 -1
  69. package/chunks/{chunk-GSPWDTYY.js → chunk-INQQM52C.js} +18 -16
  70. package/chunks/{chunk-HVGJWOR6.js → chunk-JBCFW3IL.js} +2 -2
  71. package/chunks/{chunk-LPHGXXZX.js → chunk-JD3MKVKL.js} +1 -1
  72. package/chunks/{chunk-GCY7QTCE.js → chunk-JDPCOUZ3.js} +1602 -398
  73. package/chunks/{chunk-NUHSLBJZ.js → chunk-JNWZQ27S.js} +15 -9
  74. package/chunks/{chunk-KGWA7XYL.js → chunk-JRJ2LV6P.js} +6 -226
  75. package/chunks/{chunk-QSG4ZFG4.js → chunk-KTUQMDEP.js} +1 -1
  76. package/chunks/{chunk-RKUMFUFM.js → chunk-LTQ5C5AB.js} +4 -4
  77. package/chunks/{chunk-V4PCIS25.js → chunk-MAQQGNQ5.js} +44 -1
  78. package/chunks/{chunk-EISVEV45.js → chunk-NBMIC7DR.js} +2 -2
  79. package/chunks/{chunk-GEHSF7MS.js → chunk-NEEB7UEN.js} +2545 -1974
  80. package/chunks/{chunk-BKNPMEN6.js → chunk-NIJEXGV6.js} +93 -17
  81. package/chunks/{chunk-PR5XQ73G.js → chunk-NQVA6O7F.js} +2 -2
  82. package/chunks/{chunk-FUSMC3SZ.js → chunk-NT324EJ6.js} +13 -8
  83. package/chunks/{chunk-5N7M4XYN.js → chunk-O2SPEQFA.js} +5 -5
  84. package/chunks/{chunk-OEHCAWUA.js → chunk-OLMETXLX.js} +2 -2
  85. package/chunks/{chunk-JCJPZMJV.js → chunk-OOCI5VVU.js} +1 -1
  86. package/chunks/{chunk-XSPFQQRE.js → chunk-OONJNQ42.js} +3 -3
  87. package/chunks/{chunk-ANRANWVE.js → chunk-OP4MOGXF.js} +1 -1
  88. package/chunks/{chunk-SGPFJMRP.js → chunk-PBATSWUQ.js} +1 -1
  89. package/chunks/chunk-QKYTTBYW.js +624 -0
  90. package/chunks/{chunk-W4UN42YP.js → chunk-QOSKUG5P.js} +77 -20
  91. package/chunks/{chunk-76BFY7AF.js → chunk-QTERJVPZ.js} +1 -6
  92. package/chunks/{chunk-WIYV7CSF.js → chunk-RB7NXUP5.js} +3 -3
  93. package/chunks/{chunk-HCCR43AY.js → chunk-RFIAR4YL.js} +1 -1
  94. package/chunks/{chunk-GMUPIMHF.js → chunk-RS5JPH6Y.js} +3 -3
  95. package/chunks/chunk-RS7MT2QG.js +305 -0
  96. package/chunks/{chunk-GXFYV7MP.js → chunk-SG2PEESS.js} +1106 -592
  97. package/chunks/{chunk-PUKUUASO.js → chunk-SLLG5XXE.js} +1 -1
  98. package/chunks/{chunk-GLH2NTPB.js → chunk-SQMTULHJ.js} +1 -1
  99. package/chunks/{chunk-NPMVLWYL.js → chunk-STFP7PJR.js} +6 -6
  100. package/chunks/chunk-SV5PQVQE.js +71 -0
  101. package/chunks/{chunk-HZ4M2UQD.js → chunk-TFNZCC4B.js} +1 -1
  102. package/chunks/{chunk-5QSVANRT.js → chunk-THNJYTA6.js} +2 -2
  103. package/chunks/{chunk-MRE77ST5.js → chunk-TN2BYMNH.js} +69 -2216
  104. package/chunks/{chunk-64GC5EMF.js → chunk-TQBA6DVX.js} +1 -1
  105. package/chunks/{chunk-VLHQMOZK.js → chunk-U24E4R5U.js} +3 -3
  106. package/chunks/{chunk-4CA4WUMS.js → chunk-UEY4AYUL.js} +2 -2
  107. package/chunks/{chunk-42VIHAYT.js → chunk-UGRL5B5F.js} +1 -1
  108. package/chunks/chunk-V7RNNPGC.js +44 -0
  109. package/chunks/{chunk-R3EDIMYZ.js → chunk-VGFFYNBD.js} +1 -1
  110. package/chunks/chunk-VIOFKPPN.js +125 -0
  111. package/chunks/{chunk-BEZPRKD3.js → chunk-VLDBVLC4.js} +156 -2
  112. package/chunks/{chunk-HD6EGS5K.js → chunk-VWLLDHAY.js} +6 -6
  113. package/chunks/chunk-WCDH2CRI.js +1187 -0
  114. package/chunks/{chunk-7SX6WZNO.js → chunk-XVVH63JG.js} +3 -3
  115. package/chunks/{chunk-I7RRHHYG.js → chunk-Y2ENGUD6.js} +1 -1
  116. package/chunks/{chunk-NALRQ3SG.js → chunk-Y5534U4G.js} +332 -116
  117. package/chunks/{chunk-4SJJT466.js → chunk-YDZ6J2BY.js} +72 -159
  118. package/chunks/{chunk-APOFULHK.js → chunk-YNBP3YSU.js} +7 -6
  119. package/chunks/{chunk-EFAXBOQO.js → chunk-YWEW33JY.js} +7 -7
  120. package/chunks/{chunk-335ECZTA.js → chunk-ZEOZL37W.js} +1 -1
  121. package/chunks/{chunk-DUR7BZYK.js → chunk-ZGJ4LDD2.js} +53 -28
  122. package/chunks/{computer-use-4PUGCUQK.js → computer-use-ET5476VX.js} +22 -22
  123. package/chunks/{config-utils-6PJUXHLI.js → config-utils-AHQ6YZ66.js} +3 -3
  124. package/chunks/{contextCommand-C57KTWFV.js → contextCommand-QIULFDBF.js} +25 -26
  125. package/chunks/{create-sub-session-5Q42XR6I.js → create-sub-session-BVL2ZHTM.js} +22 -22
  126. package/chunks/{create-sub-session-DIJOV6HV.js → create-sub-session-P26FE5GG.js} +2 -2
  127. package/chunks/{cron-create-X462ERYA.js → cron-create-JWFHBDRQ.js} +4 -4
  128. package/chunks/{cron-delete-SL5UJUM3.js → cron-delete-GDX4E26G.js} +4 -4
  129. package/chunks/{cron-list-3MD6SVXI.js → cron-list-USMAIWPT.js} +4 -4
  130. package/chunks/{daemon-ZW6LHOXT.js → daemon-EE5T3KOW.js} +169 -84
  131. package/chunks/{daemon-status-provider-YPV3UXHT.js → daemon-status-provider-L5UW7TGV.js} +29 -29
  132. package/chunks/{dist-3DQNQJ6H.js → dist-2BHAYBKP.js} +1 -1
  133. package/chunks/{dist-J2H4KTLB.js → dist-2MIU4UUH.js} +1 -1
  134. package/chunks/{dist-IEQSDXS7.js → dist-53PZYC5B.js} +2 -2
  135. package/chunks/{dist-NUXRQHC5.js → dist-AU7NQQRP.js} +1 -1
  136. package/chunks/{dist-XLE6ODMB.js → dist-FUTEXY6A.js} +1 -1
  137. package/chunks/{dist-IGZMVS5R.js → dist-WGTQO7F2.js} +1 -1
  138. package/chunks/{earlyInputCapture-5VDWSYAM.js → earlyInputCapture-ZLAL5GTE.js} +23 -23
  139. package/chunks/{edit-GORZTX2U.js → edit-4ZOPT6OC.js} +23 -23
  140. package/chunks/{enter-worktree-LJB2AW4L.js → enter-worktree-DFP5CZYS.js} +22 -22
  141. package/chunks/{enterPlanMode-LIIPP37T.js → enterPlanMode-7VEJ7A2A.js} +22 -22
  142. package/chunks/{environment-HQ2UHJ35.js → environment-KHS35XJY.js} +24 -24
  143. package/chunks/{errors-6JD5VMVQ.js → errors-574WBU5R.js} +24 -24
  144. package/chunks/{exit-worktree-IEP2WHOV.js → exit-worktree-5Q7V6D4C.js} +22 -22
  145. package/chunks/{exitPlanMode-U5Z6XBLO.js → exitPlanMode-SX2F6PDJ.js} +22 -22
  146. package/chunks/{fast-path-HFKNMP23.js → fast-path-G7BLOZVF.js} +2 -2
  147. package/chunks/{gemini-C2SCJH3N.js → gemini-M4JWSTGU.js} +70 -68
  148. package/chunks/{geminiContentGenerator-ADZTXEKV.js → geminiContentGenerator-MKXLUFUH.js} +4 -4
  149. package/chunks/{glob-GOAPGD6G.js → glob-FPKZY5W6.js} +22 -22
  150. package/chunks/{grep-HZLSTX7D.js → grep-RS22OMZG.js} +22 -22
  151. package/chunks/{handleAutoUpdate-UF74WGFE.js → handleAutoUpdate-RFNQ36JC.js} +27 -28
  152. package/chunks/{i18n-FMXIYUOC.js → i18n-MAEWSKYF.js} +23 -23
  153. package/chunks/{initializer-ERDBM3DU.js → initializer-T2BFZJBP.js} +28 -28
  154. package/chunks/{installationInfo-LROMXYLX.js → installationInfo-3UETF773.js} +25 -23
  155. package/chunks/{keychain-token-storage-K23CFKGN.js → keychain-token-storage-DWRJMNH3.js} +2 -2
  156. package/chunks/{list-6JPJROU5.js → list-FWZUKWD2.js} +30 -30
  157. package/chunks/{loadedSettingsAdapter-QCWYUBBF.js → loadedSettingsAdapter-3DUNHAPX.js} +27 -27
  158. package/chunks/{loop-wakeup-6H7OENTB.js → loop-wakeup-5GLTUBHA.js} +5 -5
  159. package/chunks/{ls-APTSOOS5.js → ls-FHBY3Y7I.js} +4 -4
  160. package/chunks/{lsp-HPACPJAN.js → lsp-B6VMEW6Y.js} +2 -2
  161. package/chunks/{mcp-3P3KWYWO.js → mcp-POXS7QWD.js} +27 -27
  162. package/chunks/{monitor-LMYKCF6R.js → monitor-2ZZC2NKH.js} +22 -22
  163. package/chunks/nonInteractiveCli-WSJVCB2W.js +126 -0
  164. package/chunks/{notebook-edit-IBEOVZ6A.js → notebook-edit-BMQLME3Q.js} +23 -23
  165. package/chunks/{openaiContentGenerator-42PZKET5.js → openaiContentGenerator-GOREG72R.js} +11 -11
  166. package/chunks/{pidfile-VTBDIGOH.js → pidfile-MVZDE5TC.js} +23 -23
  167. package/chunks/{processUtils-L7ZKOGDG.js → processUtils-RH5KNLDH.js} +2 -2
  168. package/chunks/{qwenContentGenerator-VR2CNFGI.js → qwenContentGenerator-R55BCLRI.js} +24 -24
  169. package/chunks/{qwenOAuth2-6LS2T3Q6.js → qwenOAuth2-QZBI2SOZ.js} +11 -11
  170. package/chunks/react-SG7JAQSZ.js +8 -0
  171. package/chunks/{read-file-VSKOE22I.js → read-file-CPS2CYYG.js} +8 -8
  172. package/chunks/{read-mcp-resource-C6NT52T6.js → read-mcp-resource-AKCL7I43.js} +2 -2
  173. package/chunks/{record-artifact-ENCU7QCL.js → record-artifact-PEUB7727.js} +2 -2
  174. package/chunks/resumeHistoryUtils-YD6DSYHU.js +78 -0
  175. package/chunks/{ripGrep-5V5FLW2A.js → ripGrep-UKGJ7RHZ.js} +22 -22
  176. package/chunks/{run-qwen-serve-LSOPP4R2.js → run-qwen-serve-GFKSKLF6.js} +1442 -148
  177. package/chunks/{runtime-LT7R4CS5.js → runtime-4KGNL3TP.js} +31 -31
  178. package/chunks/{scheduler-YOWQ7KZP.js → scheduler-GJ3CELWI.js} +22 -22
  179. package/chunks/{send-message-5GZ4FX2V.js → send-message-3RHE7HSM.js} +3 -3
  180. package/chunks/{serve-VWLBXKGK.js → serve-UU6Z4C7W.js} +27 -27
  181. package/chunks/{server-3RW3FYOH.js → server-RTJUMN24.js} +393 -256
  182. package/chunks/{session-ZONXFOBQ.js → session-EYD3CEB5.js} +79 -163
  183. package/chunks/{settings-JC3VC53L.js → settings-H5O22TGQ.js} +26 -26
  184. package/chunks/{shell-2NGEMAVM.js → shell-KVNHDHMT.js} +22 -22
  185. package/chunks/{skill-3U2T6H3E.js → skill-32525KCE.js} +10 -10
  186. package/chunks/{spawnChannel-QEAUPARQ.js → spawnChannel-G7DUQKHL.js} +24 -24
  187. package/chunks/{src-75ZPXO7B.js → src-DUFUUEHE.js} +52 -22
  188. package/chunks/{standalone-update-UUJWJWYY.js → standalone-update-UC6CWBLH.js} +24 -24
  189. package/chunks/{startInteractiveUI-V7XISPQ6.js → startInteractiveUI-A5YYAWLF.js} +5451 -2045
  190. package/chunks/{syntheticOutput-ULOVVLY4.js → syntheticOutput-FG5PQKIR.js} +3 -3
  191. package/chunks/{task-create-DUE2PMNI.js → task-create-HX32YXO7.js} +7 -7
  192. package/chunks/{task-list-WVPNX7BZ.js → task-list-QWSY4ZIU.js} +5 -5
  193. package/chunks/{task-stop-CPEQWOT6.js → task-stop-GWC6UWAL.js} +2 -2
  194. package/chunks/{task-update-HY2LNFFB.js → task-update-NCTAB73Q.js} +7 -7
  195. package/chunks/{team-create-R6AXDYPG.js → team-create-LS2Q32Y4.js} +22 -22
  196. package/chunks/{team-delete-JJV6IUOA.js → team-delete-KK37HTOG.js} +5 -5
  197. package/chunks/{team-plan-approval-O2ZPPT64.js → team-plan-approval-DWCZABX6.js} +22 -22
  198. package/chunks/{theme-manager-YIX2IC2D.js → theme-manager-E22CNBIL.js} +23 -23
  199. package/chunks/{todoWrite-JHHIDOIV.js → todoWrite-ERCAMLFS.js} +4 -4
  200. package/chunks/{tool-search-5IE2VO7X.js → tool-search-MHXUDFD2.js} +9 -9
  201. package/chunks/{total-session-admission-K6APQYEF.js → total-session-admission-KOPTGDJZ.js} +25 -25
  202. package/chunks/{trustedFolders-GPSSPVBF.js → trustedFolders-ANQXYAQT.js} +23 -23
  203. package/chunks/{update-relaunch-4BVAPX6Y.js → update-relaunch-HFGRB7PE.js} +9 -9
  204. package/chunks/{updateCheck-AHTHWLAM.js → updateCheck-EKIPND4B.js} +33 -26
  205. package/chunks/useAutoAcceptIndicator-EE22V2F5.js +80 -0
  206. package/chunks/{validateNonInterActiveAuth-UKAPCWDM.js → validateNonInterActiveAuth-RUICXVPH.js} +61 -63
  207. package/chunks/{version-EXGWKKQE.js → version-QLT755OV.js} +1 -1
  208. package/chunks/{web-fetch-ZDNE6FF2.js → web-fetch-DINW4Z65.js} +10 -10
  209. package/chunks/{workflow-G7U6OQWS.js → workflow-GPMXRWKK.js} +23 -23
  210. package/chunks/{workspace-providers-status-W6CEA6YM.js → workspace-providers-status-XCQKBVSX.js} +30 -30
  211. package/chunks/{workspace-registration-store-OGBMWCLC.js → workspace-registration-store-4I4KL7TN.js} +1 -1
  212. package/chunks/{workspace-registry-ZUWQM44P.js → workspace-registry-N4J57SFQ.js} +25 -25
  213. package/chunks/{workspace-service-UXX5P7GU.js → workspace-service-JJNJWVH3.js} +32 -32
  214. package/chunks/{workspace-skills-status-635B5R7N.js → workspace-skills-status-CEHLAQ2Y.js} +28 -28
  215. package/chunks/{write-file-DR3HN7IH.js → write-file-XRGEJRCC.js} +23 -23
  216. package/cli.js +11 -11
  217. package/package.json +3 -3
  218. package/web-shell/assets/{arc-_dVIKMdB.js → arc-DwJhljn9.js} +1 -1
  219. package/web-shell/assets/{architectureDiagram-3BPJPVTR-MuN3nKpL.js → architectureDiagram-3BPJPVTR-qdxSRav-.js} +1 -1
  220. package/web-shell/assets/{blockDiagram-GPEHLZMM-BtmvJjzx.js → blockDiagram-GPEHLZMM-2-dKM5aM.js} +1 -1
  221. package/web-shell/assets/{c4Diagram-AAUBKEIU-Dvi58_BU.js → c4Diagram-AAUBKEIU-Dt_Nu2HD.js} +1 -1
  222. package/web-shell/assets/channel-C6uyh95L.js +1 -0
  223. package/web-shell/assets/{chunk-2J33WTMH-YqxOVhS1.js → chunk-2J33WTMH-CBCeeNfD.js} +1 -1
  224. package/web-shell/assets/{chunk-4BX2VUAB-DoBgbC9z.js → chunk-4BX2VUAB-DPAzjqNs.js} +1 -1
  225. package/web-shell/assets/{chunk-55IACEB6-3NEQrBAr.js → chunk-55IACEB6-yrqyxvIK.js} +1 -1
  226. package/web-shell/assets/{chunk-727SXJPM-DrCZQxp0.js → chunk-727SXJPM-DguD_BBT.js} +1 -1
  227. package/web-shell/assets/{chunk-AQP2D5EJ-m_g3zjgv.js → chunk-AQP2D5EJ-KRUOG9v0.js} +1 -1
  228. package/web-shell/assets/{chunk-FMBD7UC4-D1_crABJ.js → chunk-FMBD7UC4-C0lilT2U.js} +1 -1
  229. package/web-shell/assets/{chunk-ND2GUHAM-BdhgVtBx.js → chunk-ND2GUHAM-DG9epIWK.js} +1 -1
  230. package/web-shell/assets/{chunk-QZHKN3VN-BlmThhm-.js → chunk-QZHKN3VN-PdJDkYHw.js} +1 -1
  231. package/web-shell/assets/classDiagram-4FO5ZUOK-Cv8Ulf-B.js +1 -0
  232. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cv8Ulf-B.js +1 -0
  233. package/web-shell/assets/{cose-bilkent-S5V4N54A-Cbjm_00Z.js → cose-bilkent-S5V4N54A-BAOPPuJm.js} +1 -1
  234. package/web-shell/assets/{dagre-BM42HDAG-C39QNVgC.js → dagre-BM42HDAG-CDHJv82_.js} +1 -1
  235. package/web-shell/assets/{diagram-2AECGRRQ-DNXSAixC.js → diagram-2AECGRRQ-C_hkG5fN.js} +1 -1
  236. package/web-shell/assets/{diagram-5GNKFQAL-BCbGUPEA.js → diagram-5GNKFQAL-e9zo_eKt.js} +1 -1
  237. package/web-shell/assets/{diagram-KO2AKTUF-1eujKSDC.js → diagram-KO2AKTUF-BFN41SCb.js} +1 -1
  238. package/web-shell/assets/{diagram-LMA3HP47-DUMKXgql.js → diagram-LMA3HP47-DG72N0W0.js} +1 -1
  239. package/web-shell/assets/{diagram-OG6HWLK6-BFktU3_u.js → diagram-OG6HWLK6-Dkmp-tdv.js} +1 -1
  240. package/web-shell/assets/{erDiagram-TEJ5UH35-BvJC7DLk.js → erDiagram-TEJ5UH35-CyS0GnQV.js} +1 -1
  241. package/web-shell/assets/{flowDiagram-I6XJVG4X-Cgu3PlOt.js → flowDiagram-I6XJVG4X-Cg1SRmzV.js} +1 -1
  242. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DLNXN5Xh.js → ganttDiagram-6RSMTGT7-CoNkSLs3.js} +1 -1
  243. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BQFRDv6R.js → gitGraphDiagram-PVQCEYII-DEA6GWPa.js} +1 -1
  244. package/web-shell/assets/index-B49xd8_A.css +5 -0
  245. package/web-shell/assets/{index-CdC3pjP3.js → index-CMaZgs6B.js} +1 -1
  246. package/web-shell/assets/index-D-cDAZgO.js +1192 -0
  247. package/web-shell/assets/{infoDiagram-5YYISTIA-DT2mOSvp.js → infoDiagram-5YYISTIA-BZshyoGT.js} +1 -1
  248. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-9fy_K4bd.js → ishikawaDiagram-YF4QCWOH-CT2ssZqC.js} +1 -1
  249. package/web-shell/assets/{journeyDiagram-JHISSGLW-CoGSEuhE.js → journeyDiagram-JHISSGLW-BtMQ0rDG.js} +1 -1
  250. package/web-shell/assets/{kanban-definition-UN3LZRKU-BP9hHYIj.js → kanban-definition-UN3LZRKU-CoDbK5Db.js} +1 -1
  251. package/web-shell/assets/{linear-uIroDsmp.js → linear-CwhZ6u7u.js} +1 -1
  252. package/web-shell/assets/{mermaid.core-BUwoStsA.js → mermaid.core-C9nn0nrr.js} +5 -5
  253. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DZB-FWim.js → mindmap-definition-RKZ34NQL-BXUbjTeL.js} +1 -1
  254. package/web-shell/assets/{pieDiagram-4H26LBE5-YPptloKl.js → pieDiagram-4H26LBE5-JddiYlWQ.js} +1 -1
  255. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-dgk3DSzm.js → quadrantDiagram-W4KKPZXB-DK5HKzXO.js} +1 -1
  256. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BH2En2i9.js → requirementDiagram-4Y6WPE33-Y-uipa_6.js} +1 -1
  257. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BB98feeI.js → sankeyDiagram-5OEKKPKP-BbWeqo8H.js} +1 -1
  258. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CunAIGh8.js → sequenceDiagram-3UESZ5HK-tX2gOoo5.js} +1 -1
  259. package/web-shell/assets/{stateDiagram-AJRCARHV-DTJs_-I2.js → stateDiagram-AJRCARHV-CACN457G.js} +1 -1
  260. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DaUeO2zt.js +1 -0
  261. package/web-shell/assets/{timeline-definition-PNZ67QCA-Cd4AN7O0.js → timeline-definition-PNZ67QCA-DnHWKSOq.js} +1 -1
  262. package/web-shell/assets/{vennDiagram-CIIHVFJN-xIG-rUU9.js → vennDiagram-CIIHVFJN-BO8Yl2FG.js} +1 -1
  263. package/web-shell/assets/{wardley-L42UT6IY-D1UyjIcG.js → wardley-L42UT6IY-1NMqqrBi.js} +1 -1
  264. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BVM0Mb99.js → wardleyDiagram-YWT4CUSO-C3eWgIvD.js} +1 -1
  265. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BX31JDSz.js → xychartDiagram-2RQKCTM6-D0h8FgFX.js} +1 -1
  266. package/web-shell/index.html +2 -2
  267. package/chunks/chunk-EDFD7VOX.js +0 -368
  268. package/chunks/chunk-GFYFLDEG.js +0 -709
  269. package/chunks/chunk-LUJQUNKY.js +0 -3288
  270. package/chunks/nonInteractiveCli-YURFHZV5.js +0 -129
  271. package/web-shell/assets/channel-Bi5TehaT.js +0 -1
  272. package/web-shell/assets/classDiagram-4FO5ZUOK-BKhhRdd1.js +0 -1
  273. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BKhhRdd1.js +0 -1
  274. package/web-shell/assets/index-C_ouplMQ.js +0 -1187
  275. package/web-shell/assets/index-XGDFJE-X.css +0 -5
  276. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DrfFMYta.js +0 -1
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  SkillError
5
- } from "./chunk-GCY7QTCE.js";
5
+ } from "./chunk-JDPCOUZ3.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -5,17 +5,17 @@ import {
5
5
  } from "./chunk-2W3OOD4W.js";
6
6
  import {
7
7
  STATUS_SCHEMA_VERSION
8
- } from "./chunk-64GC5EMF.js";
8
+ } from "./chunk-TQBA6DVX.js";
9
9
  import {
10
10
  loadSettings
11
- } from "./chunk-6IITZE7O.js";
11
+ } from "./chunk-2YJLFCYI.js";
12
12
  import {
13
13
  writeStderrLine
14
14
  } from "./chunk-OWAK7LMW.js";
15
15
  import {
16
16
  SkillManager,
17
17
  isSafeModeEnv
18
- } from "./chunk-GCY7QTCE.js";
18
+ } from "./chunk-JDPCOUZ3.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  atomicWriteFileSync
5
- } from "./chunk-VAJS2E2D.js";
5
+ } from "./chunk-BDBMYST4.js";
6
6
  import {
7
7
  Storage,
8
8
  createDebugLogger
9
- } from "./chunk-UE5TZ55T.js";
9
+ } from "./chunk-C27BYUX6.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -6,7 +6,7 @@ import {
6
6
  getNestedProperty,
7
7
  getPersistScopeForModelSelection,
8
8
  restoreSettingsFromBackup
9
- } from "./chunk-6IITZE7O.js";
9
+ } from "./chunk-2YJLFCYI.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,44 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/cli/src/utils/classify-api-error.ts
11
+ init_esbuild_shims();
12
+ function classifyApiError(error) {
13
+ const status = error.status;
14
+ const message = error.message?.toLowerCase() ?? "";
15
+ if (status === 429 || message.includes("rate limit")) {
16
+ return "rate_limit";
17
+ }
18
+ if (status === 401 || message.includes("unauthorized")) {
19
+ return "authentication_failed";
20
+ }
21
+ if (status === 402 || status === 403 || message.includes("billing") || message.includes("quota")) {
22
+ return "billing_error";
23
+ }
24
+ if (status === 400 || message.includes("invalid")) {
25
+ return "invalid_request";
26
+ }
27
+ if (status !== void 0 && status >= 500) {
28
+ return "server_error";
29
+ }
30
+ if (message.includes("max_tokens") || message.includes("token limit")) {
31
+ return "max_output_tokens";
32
+ }
33
+ return "unknown";
34
+ }
35
+ __name(classifyApiError, "classifyApiError");
36
+
37
+ export {
38
+ classifyApiError
39
+ };
40
+ /**
41
+ * @license
42
+ * Copyright 2025 Google LLC
43
+ * SPDX-License-Identifier: Apache-2.0
44
+ */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  BaseJsonOutputAdapter
5
- } from "./chunk-5N7M4XYN.js";
5
+ } from "./chunk-O2SPEQFA.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,125 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ useKeypress
5
+ } from "./chunk-WCDH2CRI.js";
6
+ import {
7
+ require_react
8
+ } from "./chunk-5QWWOFGG.js";
9
+ import {
10
+ t
11
+ } from "./chunk-3QR5MOHP.js";
12
+ import {
13
+ APPROVAL_MODES
14
+ } from "./chunk-CPCVCKKF.js";
15
+ import {
16
+ init_esbuild_shims
17
+ } from "./chunk-5O2XNYP6.js";
18
+ import {
19
+ __name,
20
+ __toESM
21
+ } from "./chunk-J2S4EL5Y.js";
22
+
23
+ // packages/cli/src/ui/hooks/useAutoAcceptIndicator.ts
24
+ init_esbuild_shims();
25
+ var import_react = __toESM(require_react(), 1);
26
+ var AUTO_MODE_FIRST_TIME_MESSAGE_KEY = "auto_mode.entry_notice";
27
+ var AUTO_MODE_FIRST_TIME_MESSAGE_FALLBACK = "Auto mode enabled.\n An LLM classifier evaluates each tool call \u2014 safe actions auto-approve,\n risky ones are blocked. Exit: Shift+Tab or /approval-mode default.";
28
+ var getAutoModeFirstTimeMessage = /* @__PURE__ */ __name(() => {
29
+ const message = t(AUTO_MODE_FIRST_TIME_MESSAGE_KEY);
30
+ return message === AUTO_MODE_FIRST_TIME_MESSAGE_KEY ? AUTO_MODE_FIRST_TIME_MESSAGE_FALLBACK : message;
31
+ }, "getAutoModeFirstTimeMessage");
32
+ function useAutoAcceptIndicator({
33
+ config,
34
+ settings,
35
+ addItem,
36
+ onApprovalModeChange,
37
+ shouldBlockTab,
38
+ disabled
39
+ }) {
40
+ const currentConfigValue = config.getApprovalMode();
41
+ const [showAutoAcceptIndicator, setShowAutoAcceptIndicator] = (0, import_react.useState)(currentConfigValue);
42
+ (0, import_react.useEffect)(() => {
43
+ setShowAutoAcceptIndicator(currentConfigValue);
44
+ }, [currentConfigValue]);
45
+ (0, import_react.useEffect)(() => {
46
+ if (currentConfigValue === "auto" /* AUTO */) {
47
+ emitAutoModeEntryNotices({ config, settings, addItem });
48
+ }
49
+ }, []);
50
+ useKeypress(
51
+ (key) => {
52
+ const isShiftTab = key.shift && key.name === "tab";
53
+ const isWindowsTab = process.platform === "win32" && key.name === "tab" && !key.ctrl && !key.meta;
54
+ if (isShiftTab || isWindowsTab) {
55
+ if (isWindowsTab && shouldBlockTab?.()) {
56
+ return;
57
+ }
58
+ const currentMode = config.getApprovalMode();
59
+ const currentIndex = APPROVAL_MODES.indexOf(currentMode);
60
+ const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % APPROVAL_MODES.length;
61
+ const nextApprovalMode = APPROVAL_MODES[nextIndex];
62
+ try {
63
+ config.setApprovalMode(nextApprovalMode);
64
+ setShowAutoAcceptIndicator(nextApprovalMode);
65
+ if (nextApprovalMode === "auto" /* AUTO */ && currentMode !== "auto" /* AUTO */) {
66
+ emitAutoModeEntryNotices({ config, settings, addItem });
67
+ }
68
+ onApprovalModeChange?.(nextApprovalMode);
69
+ } catch (e) {
70
+ addItem?.(
71
+ {
72
+ type: "info" /* INFO */,
73
+ text: e.message
74
+ },
75
+ Date.now()
76
+ );
77
+ }
78
+ }
79
+ },
80
+ { isActive: !disabled }
81
+ );
82
+ return showAutoAcceptIndicator;
83
+ }
84
+ __name(useAutoAcceptIndicator, "useAutoAcceptIndicator");
85
+ function emitAutoModeEntryNotices(opts) {
86
+ const { config, settings, addItem } = opts;
87
+ if (!addItem) return;
88
+ const now = Date.now();
89
+ const acknowledged = settings?.merged.ui?.autoModeAcknowledged === true;
90
+ if (!acknowledged) {
91
+ addItem(
92
+ { type: "info" /* INFO */, text: getAutoModeFirstTimeMessage() },
93
+ now
94
+ );
95
+ if (settings) {
96
+ try {
97
+ settings.setValue("User" /* User */, "ui.autoModeAcknowledged", true);
98
+ } catch {
99
+ }
100
+ }
101
+ }
102
+ const pm = config.getPermissionManager?.();
103
+ const stripped = pm?.getStrippedDangerousRules?.();
104
+ if (stripped && (stripped.persistent.length > 0 || stripped.session.length > 0)) {
105
+ const lines = [
106
+ "\u2139 Auto mode temporarily disabled these allow rules",
107
+ " (they would bypass the classifier):",
108
+ ...stripped.persistent.map((r) => ` - ${r.raw} (from user settings)`),
109
+ ...stripped.session.map((r) => ` - ${r.raw} (session)`),
110
+ " These will be restored when leaving auto mode."
111
+ ];
112
+ addItem({ type: "info" /* INFO */, text: lines.join("\n") }, now + 1);
113
+ }
114
+ }
115
+ __name(emitAutoModeEntryNotices, "emitAutoModeEntryNotices");
116
+
117
+ export {
118
+ useAutoAcceptIndicator,
119
+ emitAutoModeEntryNotices
120
+ };
121
+ /**
122
+ * @license
123
+ * Copyright 2025 Google LLC
124
+ * SPDX-License-Identifier: Apache-2.0
125
+ */
@@ -16566,6 +16566,8 @@ var SERVE_CAPABILITY_REGISTRY = {
16566
16566
  workspace_mcp: { since: "v1" },
16567
16567
  workspace_skills: { since: "v1" },
16568
16568
  workspace_providers: { since: "v1" },
16569
+ workspace_acp_preheat: { since: "v1" },
16570
+ workspace_acp_status: { since: "v1" },
16569
16571
  auth_provider_install: { since: "v1" },
16570
16572
  // Workspace memory CRUD (`GET/POST /workspace/memory`). Daemon exposes
16571
16573
  // hierarchical QWEN.md state and accepts append/replace writes scoped
@@ -17459,6 +17461,7 @@ function parseDaemonStatusDetail(raw) {
17459
17461
  }
17460
17462
  __name(parseDaemonStatusDetail, "parseDaemonStatusDetail");
17461
17463
  async function buildDaemonStatusResponse(detail, input) {
17464
+ const daemonLogStatus = input.daemonLog?.getStatus();
17462
17465
  const bridgeSnapshot = input.bridge.getDaemonStatusSnapshot();
17463
17466
  const lastActivity = input.bridge.lastActivityAt ?? null;
17464
17467
  const workspaceRuntimes = input.workspaceRegistry?.list();
@@ -17531,6 +17534,13 @@ async function buildDaemonStatusResponse(detail, input) {
17531
17534
  totalAdmissionSnapshot,
17532
17535
  workspaceSnapshots
17533
17536
  );
17537
+ if (daemonLogStatus?.health === "degraded") {
17538
+ issues.push({
17539
+ code: "daemon_log_degraded",
17540
+ severity: "warning",
17541
+ message: "Daemon file logging is degraded; inspect full status for details."
17542
+ });
17543
+ }
17534
17544
  if (detail === "full") {
17535
17545
  full = await buildFullStatus(
17536
17546
  input,
@@ -17553,7 +17563,17 @@ async function buildDaemonStatusResponse(detail, input) {
17553
17563
  ...input.startup ? { startup: cloneStartup(input.startup) } : {},
17554
17564
  ...input.qwenCodeVersion ? { qwenCodeVersion: input.qwenCodeVersion } : {},
17555
17565
  ...input.daemonLog?.getDaemonId() ? { daemonId: input.daemonLog.getDaemonId() } : {},
17556
- ...detail === "full" && input.daemonLog?.getLogPath() ? { logPath: input.daemonLog.getLogPath() } : {}
17566
+ ...daemonLogStatus ? {
17567
+ runId: daemonLogStatus.runId,
17568
+ logMode: daemonLogStatus.mode,
17569
+ logHealth: daemonLogStatus.health
17570
+ } : {},
17571
+ ...detail === "full" && input.daemonLog?.getLogPath() ? { logPath: input.daemonLog.getLogPath() } : {},
17572
+ ...detail === "full" && daemonLogStatus ? {
17573
+ logIssues: daemonLogStatus.issues,
17574
+ logDroppedRecords: daemonLogStatus.droppedRecords,
17575
+ logDroppedBytes: daemonLogStatus.droppedBytes
17576
+ } : {}
17557
17577
  },
17558
17578
  security: {
17559
17579
  tokenConfigured: Boolean(input.opts.token),
@@ -18249,6 +18269,138 @@ var WorkspaceVoiceCoordinator = class {
18249
18269
  }
18250
18270
  };
18251
18271
 
18272
+ // packages/cli/src/serve/server/access-log.ts
18273
+ init_esbuild_shims();
18274
+ import { performance } from "node:perf_hooks";
18275
+ var SESSION_ID_RE = /\/session\/([^/]+)/;
18276
+ var ACCESS_LOG_BURST = 60;
18277
+ var ACCESS_LOG_REFILL_PER_SECOND = 2;
18278
+ var ROUTE_MAX_BYTES = 2 * 1024;
18279
+ var SESSION_ID_MAX_BYTES = 256;
18280
+ var CLIENT_ID_MAX_BYTES = 256;
18281
+ var ACCESS_LOG_CONTROLLER_LOCAL = "accessLogController";
18282
+ function emptySuppressedCounts() {
18283
+ return {
18284
+ suppressed: 0,
18285
+ status2xx: 0,
18286
+ status3xx: 0,
18287
+ status4xx: 0,
18288
+ status5xx: 0,
18289
+ statusOther: 0
18290
+ };
18291
+ }
18292
+ __name(emptySuppressedCounts, "emptySuppressedCounts");
18293
+ function countSuppressed(counts, status) {
18294
+ counts.suppressed += 1;
18295
+ if (status >= 200 && status < 300) counts.status2xx += 1;
18296
+ else if (status >= 300 && status < 400) counts.status3xx += 1;
18297
+ else if (status >= 400 && status < 500) counts.status4xx += 1;
18298
+ else if (status >= 500 && status < 600) counts.status5xx += 1;
18299
+ else counts.statusOther += 1;
18300
+ }
18301
+ __name(countSuppressed, "countSuppressed");
18302
+ function firstRawHeader(rawHeaders, targetName) {
18303
+ for (let i = 0; i + 1 < rawHeaders.length; i += 2) {
18304
+ if (rawHeaders[i]?.toLowerCase() === targetName) return rawHeaders[i + 1];
18305
+ }
18306
+ return void 0;
18307
+ }
18308
+ __name(firstRawHeader, "firstRawHeader");
18309
+ function truncateUtf8(value, maxBytes) {
18310
+ const bytes = Buffer.from(value, "utf8");
18311
+ if (bytes.length <= maxBytes) return { value };
18312
+ let end = maxBytes;
18313
+ while (end > 0 && (bytes[end] & 192) === 128) end -= 1;
18314
+ return {
18315
+ value: bytes.subarray(0, end).toString("utf8"),
18316
+ originalBytes: bytes.length
18317
+ };
18318
+ }
18319
+ __name(truncateUtf8, "truncateUtf8");
18320
+ function installAccessLogMiddleware(app, daemonLog, monotonicNow = () => performance.now()) {
18321
+ let sealed = false;
18322
+ let tokens = ACCESS_LOG_BURST;
18323
+ let refillBaseline = monotonicNow();
18324
+ let suppressed = emptySuppressedCounts();
18325
+ const refill = /* @__PURE__ */ __name(() => {
18326
+ const now = Math.max(monotonicNow(), refillBaseline);
18327
+ tokens = Math.min(
18328
+ ACCESS_LOG_BURST,
18329
+ tokens + (now - refillBaseline) / 1e3 * ACCESS_LOG_REFILL_PER_SECOND
18330
+ );
18331
+ refillBaseline = now;
18332
+ }, "refill");
18333
+ const flushSuppressed = /* @__PURE__ */ __name(() => {
18334
+ if (!daemonLog || suppressed.suppressed === 0) return false;
18335
+ daemonLog.warn("access logs suppressed", suppressed);
18336
+ suppressed = emptySuppressedCounts();
18337
+ return true;
18338
+ }, "flushSuppressed");
18339
+ const controller = {
18340
+ sealAndFlushSuppressed: /* @__PURE__ */ __name(() => {
18341
+ if (sealed) return;
18342
+ sealed = true;
18343
+ try {
18344
+ flushSuppressed();
18345
+ } catch {
18346
+ }
18347
+ }, "sealAndFlushSuppressed")
18348
+ };
18349
+ app.locals[ACCESS_LOG_CONTROLLER_LOCAL] = controller;
18350
+ if (!daemonLog) return controller;
18351
+ app.use((req, res, next) => {
18352
+ const { method, path: reqPath } = req;
18353
+ if (method === "GET" && reqPath === "/health" || method === "POST" && reqPath.endsWith("/heartbeat")) {
18354
+ return next();
18355
+ }
18356
+ const startMs = monotonicNow();
18357
+ res.on("finish", () => {
18358
+ try {
18359
+ if (sealed) return;
18360
+ const status = res.statusCode;
18361
+ if (method === "GET" && reqPath.endsWith("/events") && status === 200) {
18362
+ return;
18363
+ }
18364
+ refill();
18365
+ if (suppressed.suppressed > 0 && tokens >= 1) {
18366
+ tokens -= 1;
18367
+ flushSuppressed();
18368
+ }
18369
+ if (tokens < 1) {
18370
+ countSuppressed(suppressed, status);
18371
+ return;
18372
+ }
18373
+ tokens -= 1;
18374
+ const route = truncateUtf8(`${method} ${reqPath}`, ROUTE_MAX_BYTES);
18375
+ const sessionMatch = reqPath.match(SESSION_ID_RE);
18376
+ const sessionId = sessionMatch?.[1] ? truncateUtf8(sessionMatch[1], SESSION_ID_MAX_BYTES) : void 0;
18377
+ const rawClientId = firstRawHeader(req.rawHeaders, "x-qwen-client-id");
18378
+ const clientId = rawClientId ? truncateUtf8(rawClientId, CLIENT_ID_MAX_BYTES) : void 0;
18379
+ const ctx = {
18380
+ route: route.value,
18381
+ ...route.originalBytes ? { routeOriginalBytes: route.originalBytes } : {},
18382
+ ...sessionId ? {
18383
+ sessionId: sessionId.value,
18384
+ ...sessionId.originalBytes ? { sessionIdOriginalBytes: sessionId.originalBytes } : {}
18385
+ } : {},
18386
+ ...clientId ? {
18387
+ clientId: clientId.value,
18388
+ ...clientId.originalBytes ? { clientIdOriginalBytes: clientId.originalBytes } : {}
18389
+ } : {},
18390
+ status,
18391
+ durationMs: Math.max(0, Math.round(monotonicNow() - startMs))
18392
+ };
18393
+ if (status >= 400) daemonLog.warn("request completed", ctx);
18394
+ else daemonLog.info("request completed", ctx);
18395
+ } catch {
18396
+ }
18397
+ });
18398
+ next();
18399
+ });
18400
+ return controller;
18401
+ }
18402
+ __name(installAccessLogMiddleware, "installAccessLogMiddleware");
18403
+
18252
18404
  export {
18253
18405
  require_express2 as require_express,
18254
18406
  sanitizeForStderr,
@@ -18310,7 +18462,9 @@ export {
18310
18462
  isBrowserAutomationMcpAvailable,
18311
18463
  MAX_CONCURRENT_VOICE_SESSIONS,
18312
18464
  VoiceLeaseAbortError,
18313
- WorkspaceVoiceCoordinator
18465
+ WorkspaceVoiceCoordinator,
18466
+ ACCESS_LOG_CONTROLLER_LOCAL,
18467
+ installAccessLogMiddleware
18314
18468
  };
18315
18469
  /**
18316
18470
  * @license
@@ -2,28 +2,28 @@
2
2
  "use strict";
3
3
  import {
4
4
  getExtensionManager
5
- } from "./chunk-RKUMFUFM.js";
5
+ } from "./chunk-LTQ5C5AB.js";
6
6
  import {
7
7
  getPlugin,
8
8
  parseChannelConfig,
9
9
  registerPlugin
10
- } from "./chunk-EFAXBOQO.js";
10
+ } from "./chunk-YWEW33JY.js";
11
11
  import {
12
12
  sanitizeLogText
13
- } from "./chunk-BKNPMEN6.js";
13
+ } from "./chunk-NIJEXGV6.js";
14
14
  import {
15
15
  loadSettings
16
- } from "./chunk-6IITZE7O.js";
16
+ } from "./chunk-2YJLFCYI.js";
17
17
  import {
18
18
  writeStderrLine,
19
19
  writeStdoutLine
20
20
  } from "./chunk-OWAK7LMW.js";
21
21
  import {
22
22
  hashDaemonWorkspace
23
- } from "./chunk-CPU6I5YV.js";
23
+ } from "./chunk-I6JUVU7J.js";
24
24
  import {
25
25
  Storage
26
- } from "./chunk-UE5TZ55T.js";
26
+ } from "./chunk-C27BYUX6.js";
27
27
  import {
28
28
  init_esbuild_shims
29
29
  } from "./chunk-5O2XNYP6.js";