@qwen-code/qwen-code 0.21.2 → 0.21.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +41 -38
  2. package/bundled/qc-helper/docs/features/channels/github.md +7 -0
  3. package/bundled/qc-helper/docs/features/channels/gitlab.md +6 -0
  4. package/bundled/qc-helper/docs/features/code-review.md +78 -23
  5. package/bundled/qc-helper/docs/features/commands.md +2 -0
  6. package/bundled/qc-helper/docs/features/hooks.md +115 -18
  7. package/bundled/qc-helper/docs/features/memory.md +27 -0
  8. package/bundled/qc-helper/docs/features/skills.md +46 -1
  9. package/bundled/qc-helper/docs/features/sub-agents.md +42 -9
  10. package/bundled/qc-helper/docs/features/tool-use-summaries.md +7 -7
  11. package/bundled/qc-helper/docs/qwen-serve.md +21 -1
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +13 -13
  13. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -1
  14. package/bundled/review/DESIGN.md +167 -32
  15. package/bundled/review/SKILL.md +156 -32
  16. package/chunks/{MaxSizedBox-TQBQ247P.js → MaxSizedBox-OJR636GP.js} +40 -38
  17. package/chunks/{StandaloneSessionPicker-2HPTKCLX.js → StandaloneSessionPicker-AMMBF5UY.js} +62 -59
  18. package/chunks/{acp-startup-profiler-2C4A5ZTJ.js → acp-startup-profiler-3RICG2YW.js} +2 -2
  19. package/chunks/{acpAgent-PS6EDGH3.js → acpAgent-M57LVIQA.js} +662 -560
  20. package/chunks/{agent-VDOUB35F.js → agent-PE37ARLM.js} +36 -34
  21. package/chunks/{agent-headless-EO53EFS2.js → agent-headless-45ASME4R.js} +36 -34
  22. package/chunks/{anthropicContentGenerator-OFHSZJBF.js → anthropicContentGenerator-WCBYB6JG.js} +337 -27
  23. package/chunks/{artifact-tool-RDN2W7ND.js → artifact-tool-TBOYEKTY.js} +2 -2
  24. package/chunks/{askUserQuestion-OZERWH5R.js → askUserQuestion-23Y5WZFJ.js} +2 -2
  25. package/chunks/{bridge-W7AZSRZQ.js → bridge-K3ZRPO4D.js} +42 -40
  26. package/chunks/{ca-6W3SK7OQ.js → ca-4OJN75WT.js} +46 -5
  27. package/chunks/{channel-management-service-5S7YCWX5.js → channel-management-service-IXJ2MZTS.js} +7 -7
  28. package/chunks/{channel-settings-store-JFVRSNER.js → channel-settings-store-PEAR3IME.js} +43 -41
  29. package/chunks/{channel-worker-group-OVWGYMZS.js → channel-worker-group-NDG4WOOZ.js} +8 -8
  30. package/chunks/{channel-worker-manager-H55GKOQA.js → channel-worker-manager-ZCW6UW34.js} +8 -8
  31. package/chunks/{channel-worker-supervisor-CABBXYHK.js → channel-worker-supervisor-ATGFTZRN.js} +4 -4
  32. package/chunks/{chunk-W3UKBMSI.js → chunk-22YFMJBW.js} +84 -8
  33. package/chunks/{chunk-6MPDY6ZG.js → chunk-24ER7UV4.js} +1 -1
  34. package/chunks/{chunk-QDK4F2N5.js → chunk-2DNKEBXY.js} +1 -1
  35. package/chunks/{chunk-D6MDRSZ6.js → chunk-2LZCLQIS.js} +22 -11
  36. package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
  37. package/chunks/{chunk-KR32NIAN.js → chunk-2MI7ZTRT.js} +10 -10
  38. package/chunks/{chunk-LHKCY7DY.js → chunk-2UISUFHQ.js} +3 -3
  39. package/chunks/{chunk-JXVC2PL3.js → chunk-33FNCQSY.js} +2 -2
  40. package/chunks/{chunk-NBD76HUW.js → chunk-3LGZEYOF.js} +2 -2
  41. package/chunks/{chunk-CO2U743O.js → chunk-3MWNROHB.js} +4 -4
  42. package/chunks/{chunk-E2BHWIDT.js → chunk-3RXUYQJI.js} +6 -2
  43. package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
  44. package/chunks/{chunk-LYI2PZDK.js → chunk-3XF4WT3B.js} +2 -2
  45. package/chunks/{chunk-N4ACHWNH.js → chunk-432XCUHF.js} +1 -1
  46. package/chunks/{chunk-FNDXMN7I.js → chunk-4AGGSHCH.js} +774 -205
  47. package/chunks/{chunk-DUNI4EBW.js → chunk-4K3RV3OA.js} +80 -50
  48. package/chunks/{chunk-L2E5GFAG.js → chunk-4LKVQFHM.js} +2 -2
  49. package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
  50. package/chunks/{chunk-JLZ3RBQG.js → chunk-5JPVOYWA.js} +144 -11
  51. package/chunks/{chunk-6TAASXWL.js → chunk-5VYFXHY2.js} +3 -3
  52. package/chunks/{chunk-EU5TBFJI.js → chunk-6NE5NTHJ.js} +2 -2
  53. package/chunks/{chunk-XQK4XXTN.js → chunk-6O5DVH27.js} +1 -1
  54. package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
  55. package/chunks/{chunk-3APUUXRF.js → chunk-A5YZ3FA2.js} +2 -1
  56. package/chunks/{chunk-SHN4KHDK.js → chunk-A6SX5TAH.js} +3 -3
  57. package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
  58. package/chunks/{chunk-Q3T5KA2V.js → chunk-BFHXDAR7.js} +1 -1
  59. package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
  60. package/chunks/{chunk-P5VC5USY.js → chunk-BKGA75MU.js} +1 -1
  61. package/chunks/{chunk-2KKCCLPT.js → chunk-BKXTHMOZ.js} +1 -1
  62. package/chunks/{chunk-V4XNUDPE.js → chunk-BSKUTHLO.js} +15 -7
  63. package/chunks/{chunk-MM7TH7ZM.js → chunk-CFDR3GNL.js} +18 -3
  64. package/chunks/{chunk-E2FN6SM7.js → chunk-CIUUYB23.js} +5 -5
  65. package/chunks/{chunk-A7Y5H4TX.js → chunk-D2GPKXCQ.js} +7 -7
  66. package/chunks/{chunk-JCJ7LKNA.js → chunk-DIEFUBV6.js} +1644 -1570
  67. package/chunks/{chunk-GL4JOZXU.js → chunk-DSGJLHM3.js} +4 -4
  68. package/chunks/{chunk-675H6PLP.js → chunk-DYA25Y7U.js} +1 -1
  69. package/chunks/{chunk-3I6DUGQD.js → chunk-E4WHKETF.js} +32 -4
  70. package/chunks/{chunk-CU47KXB5.js → chunk-EGYJRIDF.js} +6 -6
  71. package/chunks/{chunk-6CQWRWUC.js → chunk-EIMKVOSF.js} +3 -3
  72. package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
  73. package/chunks/{chunk-NHFEMWAZ.js → chunk-FF75UUB2.js} +1 -1
  74. package/chunks/{chunk-L32VV3ZJ.js → chunk-FG63DZQA.js} +12 -12
  75. package/chunks/{chunk-FCYYAB4S.js → chunk-FHPKHXHT.js} +3 -3
  76. package/chunks/{chunk-GJ2GBPBD.js → chunk-FXVHVCNA.js} +5 -5
  77. package/chunks/{chunk-56Z7QEAQ.js → chunk-GMSBXEH4.js} +16 -16
  78. package/chunks/chunk-GOFAQQZA.js +132 -0
  79. package/chunks/{chunk-YUFIEIWC.js → chunk-GTM6IHBB.js} +2 -2
  80. package/chunks/{chunk-HIVKI6O6.js → chunk-H35Q5CEG.js} +9 -7
  81. package/chunks/{chunk-FJ5WUMUQ.js → chunk-H36SETQS.js} +1 -1
  82. package/chunks/{chunk-AUOULH6Q.js → chunk-H6FIBBXK.js} +1610 -2196
  83. package/chunks/{chunk-VEMNQMHA.js → chunk-H6ZYP74A.js} +5 -13
  84. package/chunks/{chunk-TTJZAIFP.js → chunk-HEBW74ZW.js} +3 -3
  85. package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
  86. package/chunks/{chunk-44F4LBWZ.js → chunk-HIXVWF7I.js} +56 -18
  87. package/chunks/{chunk-EQNUDTL6.js → chunk-HUIQ4FYC.js} +2 -2
  88. package/chunks/{chunk-5NNHICSA.js → chunk-I7JDGNG6.js} +3 -3
  89. package/chunks/{chunk-PVNQRENX.js → chunk-IF6K42YJ.js} +1 -1
  90. package/chunks/{chunk-PJOHNFIY.js → chunk-IWGTGH4G.js} +5 -5
  91. package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
  92. package/chunks/{chunk-CNTR4GR6.js → chunk-JELIWHXD.js} +1 -1
  93. package/chunks/{chunk-V25K5ID7.js → chunk-K2J5JZ6B.js} +1 -1
  94. package/chunks/{chunk-IGTHU3T4.js → chunk-KKN2IE7Q.js} +1 -1
  95. package/chunks/{chunk-TZTAV5RH.js → chunk-KVUBYJDM.js} +2 -2
  96. package/chunks/{chunk-3F2WDAV6.js → chunk-KXWERR6P.js} +14 -14
  97. package/chunks/{chunk-JJPKFJBT.js → chunk-L7FTDKCD.js} +3 -3
  98. package/chunks/chunk-LBOVL47Y.js +29 -0
  99. package/chunks/{chunk-FS674JW4.js → chunk-LBWNSLJK.js} +3 -3
  100. package/chunks/{chunk-I5BT7ADR.js → chunk-LGT3YMLN.js} +4 -4
  101. package/chunks/{chunk-UV6KF7T3.js → chunk-LZV2BZPL.js} +3 -3
  102. package/chunks/{chunk-P755N4CS.js → chunk-M5LIY7Y6.js} +6 -6
  103. package/chunks/{chunk-YGE3IXJP.js → chunk-M744OFVE.js} +1 -1
  104. package/chunks/{chunk-NTDH4IML.js → chunk-MCXMWLFT.js} +7 -7
  105. package/chunks/chunk-MISUEWB4.js +8749 -0
  106. package/chunks/{chunk-TEGJSJDF.js → chunk-MOHAWIAW.js} +2 -2
  107. package/chunks/{chunk-KXDONCPU.js → chunk-MTR4JWQJ.js} +4 -4
  108. package/chunks/{chunk-RSVPYAGK.js → chunk-MUEJ4R3E.js} +5 -5
  109. package/chunks/{chunk-PCK4B6LR.js → chunk-N42C2FU3.js} +1 -1
  110. package/chunks/{chunk-WWCMSZII.js → chunk-NW57GHNL.js} +71 -7
  111. package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
  112. package/chunks/{chunk-QARJNL2V.js → chunk-O2ZYHG33.js} +5 -4
  113. package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
  114. package/chunks/{chunk-GURGAJTX.js → chunk-PDDYAXL2.js} +4 -1
  115. package/chunks/chunk-PWCQRLM5.js +1170 -0
  116. package/chunks/{chunk-VMX5RZQH.js → chunk-Q3G5L5KF.js} +18 -9
  117. package/chunks/{chunk-DQ2O5QOJ.js → chunk-QDWLUXKP.js} +1 -1
  118. package/chunks/chunk-QL4TN4HS.js +59 -0
  119. package/chunks/{chunk-E6CJ2SMM.js → chunk-QMBEW7EW.js} +2 -2
  120. package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
  121. package/chunks/{chunk-DEEABGH2.js → chunk-QPSYIV2O.js} +3320 -536
  122. package/chunks/{chunk-Q5WZTTWE.js → chunk-QWDVZH24.js} +6 -8
  123. package/chunks/{chunk-2LEOZTBT.js → chunk-QWW6I2UO.js} +111 -26
  124. package/chunks/{chunk-LOY7RWQG.js → chunk-QYPT3QUD.js} +3 -3
  125. package/chunks/{chunk-6PQPKTXP.js → chunk-R7XNRHYD.js} +1 -1
  126. package/chunks/{chunk-7SJN2IWT.js → chunk-RCXCGZG6.js} +5 -5
  127. package/chunks/{chunk-HX6RLYUO.js → chunk-RL6J3BPE.js} +4 -4
  128. package/chunks/{chunk-Z3S5EMOW.js → chunk-RPYYTL7E.js} +60 -12
  129. package/chunks/{chunk-MB32MS4U.js → chunk-RR224BUP.js} +215 -174
  130. package/chunks/{chunk-H6I4PGRV.js → chunk-SKSF3LGQ.js} +4 -4
  131. package/chunks/{chunk-77V3VIKL.js → chunk-SQ3YD5MI.js} +9 -9
  132. package/chunks/{chunk-CBBP4BMC.js → chunk-SRY26X4H.js} +72 -206
  133. package/chunks/{chunk-RDJOB6S3.js → chunk-TXABHVZD.js} +1 -1
  134. package/chunks/{chunk-R2XWGR75.js → chunk-TYERNYH4.js} +2 -2
  135. package/chunks/chunk-TZTBZ25J.js +222 -0
  136. package/chunks/{chunk-45IOTAUS.js → chunk-U25CMJYY.js} +1 -1
  137. package/chunks/{chunk-7ULQIS27.js → chunk-UEJESCS7.js} +1 -1
  138. package/chunks/{chunk-HC45LTEN.js → chunk-UH7Z7Y45.js} +1 -1
  139. package/chunks/{chunk-CPZAH673.js → chunk-UKZEXS6K.js} +2 -0
  140. package/chunks/{chunk-54YCNSK5.js → chunk-UQDFEU47.js} +4113 -10152
  141. package/chunks/{chunk-XP4L6KS3.js → chunk-URN76TKR.js} +2 -2
  142. package/chunks/{chunk-XUGZYLDH.js → chunk-UWSXFI6E.js} +1 -1
  143. package/chunks/{chunk-AOHY3QJ3.js → chunk-VA5NLVPT.js} +3 -3
  144. package/chunks/{chunk-PZEXDV3H.js → chunk-VUNRNRN6.js} +71 -43
  145. package/chunks/{chunk-FANRZEAJ.js → chunk-VWOVHOTT.js} +1 -1
  146. package/chunks/{chunk-QTHQ6Z5X.js → chunk-WK4TJUEA.js} +1 -1
  147. package/chunks/{chunk-ZPZ7ZJEE.js → chunk-WUC6ZFXO.js} +1 -1
  148. package/chunks/{chunk-7KAXXBER.js → chunk-WY2ENRDN.js} +3 -3
  149. package/chunks/{chunk-TIRRPCFS.js → chunk-X6QNZOTC.js} +1 -1
  150. package/chunks/{chunk-KWHKHSIS.js → chunk-X6WUYMOV.js} +8 -8
  151. package/chunks/{chunk-IIUGIWWY.js → chunk-XC2VAFVZ.js} +1 -1
  152. package/chunks/{chunk-D4HTUMGX.js → chunk-XC656O42.js} +3 -3
  153. package/chunks/{chunk-RG64CDT2.js → chunk-XMJO6C44.js} +131 -48
  154. package/chunks/{chunk-ZMOJ7ISP.js → chunk-XUMAD5IT.js} +1 -1
  155. package/chunks/{chunk-THVU3RNH.js → chunk-YAVY33G4.js} +1 -1
  156. package/chunks/{chunk-YANIWTRZ.js → chunk-YPUHMQXV.js} +1 -1
  157. package/chunks/{chunk-QCXGC7QB.js → chunk-YU6TBRTA.js} +3 -3
  158. package/chunks/{chunk-OFZKFPYG.js → chunk-YWMDTMAU.js} +3 -3
  159. package/chunks/{chunk-DSFHVTWD.js → chunk-YXEVDA66.js} +2 -2
  160. package/chunks/{chunk-JE2CEOBO.js → chunk-ZGSUFIL5.js} +4 -4
  161. package/chunks/{chunk-BBIQAX4V.js → chunk-ZJES4C3I.js} +30 -18
  162. package/chunks/{computer-use-5QWCFNKD.js → computer-use-UJMK6JQU.js} +36 -34
  163. package/chunks/{config-utils-WADIDWGG.js → config-utils-7COTJMWK.js} +4 -4
  164. package/chunks/{contextCommand-4Z7T7TUM.js → contextCommand-4YABGF4S.js} +40 -38
  165. package/chunks/{core-runtime-6N4EFC2Q.js → core-runtime-7M4VM3DA.js} +36 -34
  166. package/chunks/{create-sub-session-AEREHZBQ.js → create-sub-session-HOFDW4N7.js} +39 -37
  167. package/chunks/{create-sub-session-62YZWVAY.js → create-sub-session-J32WC64U.js} +2 -2
  168. package/chunks/{cron-create-6E7GIQTG.js → cron-create-HMFSHIAR.js} +4 -4
  169. package/chunks/{cron-delete-JD26XY3W.js → cron-delete-ZJFHOX57.js} +4 -4
  170. package/chunks/{cron-list-CUWFB44G.js → cron-list-ZEX2NBMN.js} +4 -4
  171. package/chunks/{daemon-PCNCI5YU.js → daemon-CCIX4BMG.js} +47 -6
  172. package/chunks/{daemon-status-provider-DDF7C5M7.js → daemon-status-provider-W2U5Q3J5.js} +47 -45
  173. package/chunks/{daemon-trust-policy-Q4KSOJTR.js → daemon-trust-policy-IFICWPXP.js} +42 -40
  174. package/chunks/{daemon-trust-policy-monitor-V6FTE3IY.js → daemon-trust-policy-monitor-GX7EO6FW.js} +42 -40
  175. package/chunks/{de-SY6O76BF.js → de-A6TI4LBB.js} +46 -5
  176. package/chunks/{deferred-core-runtime-GHJ5GQHK.js → deferred-core-runtime-U36OOOKE.js} +36 -34
  177. package/chunks/display-image-VS3TXYQH.js +184 -0
  178. package/chunks/{dist-ZHXOBXDN.js → dist-3BMEUGTG.js} +1 -1
  179. package/chunks/{dist-26BIMQT6.js → dist-4KAX7CCL.js} +289 -27
  180. package/chunks/{dist-OAOC5OV4.js → dist-7JGAAQSC.js} +2 -2
  181. package/chunks/{dist-SL2LUMML.js → dist-A7H2KKUC.js} +1 -1
  182. package/chunks/{dist-2PERFI23.js → dist-DPPHJAVL.js} +3 -3
  183. package/chunks/{dist-PVEAFLHY.js → dist-HVBMEYWK.js} +1 -1
  184. package/chunks/{dist-ULIG4M5H.js → dist-NEBRI7WO.js} +67 -15
  185. package/chunks/{dist-WGMNT3JQ.js → dist-SFQ34F4M.js} +24 -6
  186. package/chunks/{earlyInputCapture-TQXLLISD.js → earlyInputCapture-5ZWDH3SB.js} +37 -35
  187. package/chunks/{edit-FJEUV6KZ.js → edit-J7SW6UP6.js} +36 -34
  188. package/chunks/{en-NBK3JKCE.js → en-L4UQDLWW.js} +57 -6
  189. package/chunks/{enter-worktree-7GE3TZ4P.js → enter-worktree-NRLOHRB6.js} +36 -34
  190. package/chunks/{enterPlanMode-KR5TMPCJ.js → enterPlanMode-GDSTEFSM.js} +36 -34
  191. package/chunks/{environment-SWL3CMB3.js → environment-KHYEKG5W.js} +39 -37
  192. package/chunks/{errors-XQE7BGZV.js → errors-VNLAJV3O.js} +39 -37
  193. package/chunks/{exit-worktree-CHKTYNCV.js → exit-worktree-ARVID7DF.js} +36 -34
  194. package/chunks/{exitPlanMode-QYAG6LWX.js → exitPlanMode-4ZFY7KUH.js} +36 -34
  195. package/chunks/{fast-path-Z2K7W6DC.js → fast-path-KA65VREJ.js} +9 -5
  196. package/chunks/{fr-4KG5V7UT.js → fr-QF7RI5ZE.js} +46 -5
  197. package/chunks/{gemini-YU4XKEDG.js → gemini-5PMCNPF7.js} +149 -90
  198. package/chunks/{geminiContentGenerator-ZZX6NBO4.js → geminiContentGenerator-NFSYJ4HA.js} +6 -6
  199. package/chunks/{glob-VYF5CXSX.js → glob-F3EAUDAX.js} +36 -34
  200. package/chunks/{goal-tools-HGO6VXPB.js → goal-tools-SPQ5M6D3.js} +3 -3
  201. package/chunks/{grep-5DP5ZUTW.js → grep-UJMPVZER.js} +36 -34
  202. package/chunks/{handleAutoUpdate-UVBJ56DL.js → handleAutoUpdate-MG4FRZPN.js} +42 -40
  203. package/chunks/{i18n-UQNYHEUD.js → i18n-EVHV4ZF3.js} +38 -36
  204. package/chunks/{image-gen-WHPIZNWF.js → image-gen-UC7XVHI7.js} +9 -9
  205. package/chunks/{initializer-GMIICF4W.js → initializer-O5B6HUBI.js} +43 -41
  206. package/chunks/{installationInfo-4MGG4WVI.js → installationInfo-2LIKCNVX.js} +37 -35
  207. package/chunks/{ja-F3GSQXMF.js → ja-URQESVGW.js} +46 -5
  208. package/chunks/{keychain-token-storage-IKO4G53C.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
  209. package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
  210. package/chunks/{list-CPN2W334.js → list-BPKIE3Z4.js} +45 -43
  211. package/chunks/{list-agents-PXJ7ZUFB.js → list-agents-TWEGRJWO.js} +2 -2
  212. package/chunks/{loadedSettingsAdapter-ZQAV5NDO.js → loadedSettingsAdapter-NGLFF4V4.js} +42 -40
  213. package/chunks/{loggingContentGenerator-5E7W4IEP.js → loggingContentGenerator-7TFESRG5.js} +52 -37
  214. package/chunks/{loop-wakeup-Y26NQZ5I.js → loop-wakeup-6LLEOQYV.js} +5 -5
  215. package/chunks/{ls-ONQTTMQR.js → ls-H5WX22VK.js} +4 -4
  216. package/chunks/{lsp-YGHHRGMD.js → lsp-G6FXYEIS.js} +2 -2
  217. package/chunks/{managed-npm-update-MKKAXYXA.js → managed-npm-update-CLZGGV7F.js} +39 -37
  218. package/chunks/{mcp-V5NTJF6X.js → mcp-X5OZOOXX.js} +42 -40
  219. package/chunks/{monitor-CO3ASY6E.js → monitor-TGSVSAZZ.js} +36 -34
  220. package/chunks/nonInteractiveCli-GUMJ5JLG.js +150 -0
  221. package/chunks/{notebook-edit-Z7AEE6FM.js → notebook-edit-EZISE7IC.js} +36 -34
  222. package/chunks/{openaiContentGenerator-CA3MQOP3.js → openaiContentGenerator-ZAKS5A6P.js} +18 -18
  223. package/chunks/{pidfile-NL7MKDRU.js → pidfile-PCMBX4LR.js} +37 -35
  224. package/chunks/{processUtils-PB5K2DYH.js → processUtils-2CSVE5BW.js} +2 -2
  225. package/chunks/{pt-EQ33KWEN.js → pt-EEEQXRUI.js} +46 -5
  226. package/chunks/{qwenContentGenerator-JYFNDCOS.js → qwenContentGenerator-S3H6PIC4.js} +42 -40
  227. package/chunks/{qwenOAuth2-W2ALKQDD.js → qwenOAuth2-MNU425VE.js} +8 -8
  228. package/chunks/{read-file-IEOR5H5W.js → read-file-HXJXHBI6.js} +10 -10
  229. package/chunks/{read-mcp-resource-U2IJN5HM.js → read-mcp-resource-DRZSI3HE.js} +2 -2
  230. package/chunks/{record-artifact-MGPJ7EG4.js → record-artifact-IPIRWMFY.js} +3 -3
  231. package/chunks/{resumeHistoryUtils-BNBTP5AS.js → resumeHistoryUtils-4QAMC2S6.js} +44 -42
  232. package/chunks/{ripGrep-UMQODKEB.js → ripGrep-MCETPF2E.js} +36 -34
  233. package/chunks/{ru-7OZAUKGG.js → ru-WGZDYQAB.js} +46 -5
  234. package/chunks/{run-qwen-serve-RN2R6QQW.js → run-qwen-serve-3NMODTXV.js} +219 -55
  235. package/chunks/{runtime-QFJ2MJF5.js → runtime-AQOV7DVP.js} +49 -45
  236. package/chunks/{scheduler-AMYUFOZI.js → scheduler-DN7SZ6ZE.js} +36 -34
  237. package/chunks/{sdk-exporters-http-4BQANSJ6.js → sdk-exporters-http-IKNWQJNV.js} +2 -2
  238. package/chunks/{sdk-impl-Z4VXWVFX.js → sdk-impl-7CUUMQDB.js} +2 -2
  239. package/chunks/{send-message-PMP4ATVM.js → send-message-HGCVVDTZ.js} +5 -4
  240. package/chunks/{serve-EIIYJVX3.js → serve-WZB45HVT.js} +42 -40
  241. package/chunks/{server-EP2LLAPD.js → server-GOTZFEEZ.js} +616 -387
  242. package/chunks/{session-GMPZBLOW.js → session-23LOFLWN.js} +149 -87
  243. package/chunks/{settings-LN7RNKBS.js → settings-LI2ORVXC.js} +41 -39
  244. package/chunks/{shell-EM2OWU5X.js → shell-GLC6OP3C.js} +36 -34
  245. package/chunks/{skill-T5VPSK73.js → skill-C7W6M4GO.js} +27 -14
  246. package/chunks/{skill-settings-GMR3GMNY.js → skill-settings-W25NCK5I.js} +41 -39
  247. package/chunks/{spawnChannel-YPCU62DI.js → spawnChannel-OHJLEBLD.js} +38 -36
  248. package/chunks/{standalone-update-JAKIM2NF.js → standalone-update-E4V5V7WT.js} +39 -37
  249. package/chunks/{startInteractiveUI-YETQWGYF.js → startInteractiveUI-FKILLW7Q.js} +1815 -1034
  250. package/chunks/{syntheticOutput-D7E6ZFKR.js → syntheticOutput-EYL7DWO7.js} +3 -3
  251. package/chunks/{task-create-NFCYD43L.js → task-create-CSCEG4SM.js} +10 -9
  252. package/chunks/{task-list-TAVMGEVD.js → task-list-6CVQPORX.js} +6 -6
  253. package/chunks/{task-stop-ZDF2UJRM.js → task-stop-Y5ZTFVRX.js} +2 -2
  254. package/chunks/{task-update-6L7LHGEX.js → task-update-C52LNFU5.js} +10 -9
  255. package/chunks/{team-create-LFJ6HGNY.js → team-create-HBIJ7NHT.js} +36 -34
  256. package/chunks/{team-delete-DPGGRQBU.js → team-delete-CE7DC53R.js} +6 -6
  257. package/chunks/{team-plan-approval-C2KLSDGO.js → team-plan-approval-IBJOKS4J.js} +36 -34
  258. package/chunks/terminal-image-renderer-BOQJPVLB.js +89 -0
  259. package/chunks/{theme-manager-JQ3ZGBP5.js → theme-manager-NSS7VLUD.js} +37 -35
  260. package/chunks/{todoWrite-2UO5G6G6.js → todoWrite-YKAA57W2.js} +107 -36
  261. package/chunks/{tool-search-FAZBFRJZ.js → tool-search-DEAS54VG.js} +13 -12
  262. package/chunks/{total-session-admission-5CALIVYO.js → total-session-admission-4LWTX3WD.js} +43 -41
  263. package/chunks/{trustedFolders-KOPSP44S.js → trustedFolders-NF3J2TA7.js} +38 -36
  264. package/chunks/{update-relaunch-6QL2TICS.js → update-relaunch-WUHRH5V3.js} +5 -5
  265. package/chunks/{updateCheck-4Q6RIKFW.js → updateCheck-7EG4BLBH.js} +41 -39
  266. package/chunks/{useAutoAcceptIndicator-Q5BMKZV3.js → useAutoAcceptIndicator-ZRV56GVP.js} +46 -44
  267. package/chunks/{validateNonInterActiveAuth-GKOC5F6Z.js → validateNonInterActiveAuth-WC2FPE3I.js} +86 -84
  268. package/chunks/{version-VSATY2LD.js → version-6SS7KCUP.js} +1 -1
  269. package/chunks/{web-fetch-JCLKL6NL.js → web-fetch-Y5QQMPKA.js} +13 -13
  270. package/chunks/{web-search-DSQTFUBX.js → web-search-QKKEU723.js} +8 -8
  271. package/chunks/{workflow-M6QAVKVJ.js → workflow-PWIU6Q2M.js} +418 -304
  272. package/chunks/{workspace-providers-status-YKLTLMJA.js → workspace-providers-status-B2DM6FNK.js} +45 -43
  273. package/chunks/{workspace-registration-store-5DMGKU64.js → workspace-registration-store-7Y33TTHJ.js} +2 -2
  274. package/chunks/{workspace-registry-PTYUSYXX.js → workspace-registry-TSNJKLPC.js} +43 -41
  275. package/chunks/{workspace-service-25ML3T47.js → workspace-service-4I2QHDX4.js} +50 -48
  276. package/chunks/{workspace-skills-status-YKZWOYRX.js → workspace-skills-status-HVXNWVGR.js} +44 -42
  277. package/chunks/{workspace-trust-reconciler-5FI2S3OS.js → workspace-trust-reconciler-RDBBGMWP.js} +49 -47
  278. package/chunks/{write-file-AY7VLP5X.js → write-file-RQ4DG5RY.js} +36 -34
  279. package/chunks/{zh-H3YDK5QW.js → zh-72XPUG5P.js} +54 -6
  280. package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-LTB4SRH3.js} +54 -6
  281. package/chunks/{zoom-image-S4LJZMD5.js → zoom-image-O5YCB7WN.js} +10 -10
  282. package/cli.js +32 -48
  283. package/locales/ca.js +60 -4
  284. package/locales/de.js +62 -4
  285. package/locales/en.js +76 -6
  286. package/locales/fr.js +64 -4
  287. package/locales/ja.js +61 -4
  288. package/locales/pt.js +60 -4
  289. package/locales/ru.js +63 -4
  290. package/locales/zh-TW.js +67 -6
  291. package/locales/zh.js +67 -6
  292. package/package.json +3 -3
  293. package/web-shell/assets/{arc-xjArKHU2.js → arc-Bd7d781i.js} +1 -1
  294. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BgrQDNYG.js → architectureDiagram-3BPJPVTR-CpnOJqNE.js} +1 -1
  295. package/web-shell/assets/{blockDiagram-GPEHLZMM-CXxWC-1_.js → blockDiagram-GPEHLZMM-NxVTiWnk.js} +1 -1
  296. package/web-shell/assets/{c4Diagram-AAUBKEIU-Dx1tLm3v.js → c4Diagram-AAUBKEIU-BWT75l82.js} +1 -1
  297. package/web-shell/assets/channel-A434sWK5.js +1 -0
  298. package/web-shell/assets/{chunk-2J33WTMH-CBxjogVR.js → chunk-2J33WTMH-Dzz03hk6.js} +1 -1
  299. package/web-shell/assets/{chunk-4BX2VUAB-izb-rY5W.js → chunk-4BX2VUAB-DRF-egfm.js} +1 -1
  300. package/web-shell/assets/{chunk-55IACEB6-NzLyvSb8.js → chunk-55IACEB6-Co15vq5x.js} +1 -1
  301. package/web-shell/assets/{chunk-727SXJPM-DVyKb0dl.js → chunk-727SXJPM-DHSUk1J7.js} +1 -1
  302. package/web-shell/assets/{chunk-AQP2D5EJ-BtqL7NzB.js → chunk-AQP2D5EJ-Br8u_E2R.js} +1 -1
  303. package/web-shell/assets/{chunk-FMBD7UC4-iNpdKIO0.js → chunk-FMBD7UC4-DXbPTnqF.js} +1 -1
  304. package/web-shell/assets/{chunk-ND2GUHAM-DI7cbFmX.js → chunk-ND2GUHAM-BleQdi4d.js} +1 -1
  305. package/web-shell/assets/{chunk-QZHKN3VN-3Y_-xFYs.js → chunk-QZHKN3VN-CqgBf-95.js} +1 -1
  306. package/web-shell/assets/classDiagram-4FO5ZUOK-CwPuhldB.js +1 -0
  307. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwPuhldB.js +1 -0
  308. package/web-shell/assets/{cose-bilkent-S5V4N54A--raRatZn.js → cose-bilkent-S5V4N54A-WS7b13Yg.js} +1 -1
  309. package/web-shell/assets/{dagre-BM42HDAG-B8SU70mO.js → dagre-BM42HDAG-v_55ki8o.js} +1 -1
  310. package/web-shell/assets/{diagram-2AECGRRQ-ewgoakXo.js → diagram-2AECGRRQ-DaYAjbdK.js} +1 -1
  311. package/web-shell/assets/{diagram-5GNKFQAL-Bm_JLTnS.js → diagram-5GNKFQAL-D_Hy-L64.js} +1 -1
  312. package/web-shell/assets/{diagram-KO2AKTUF-DEIUjUy9.js → diagram-KO2AKTUF-dB06cZyD.js} +1 -1
  313. package/web-shell/assets/{diagram-LMA3HP47-C2Wmrpj-.js → diagram-LMA3HP47-DzSluD4F.js} +1 -1
  314. package/web-shell/assets/{diagram-OG6HWLK6-CtYe6bFx.js → diagram-OG6HWLK6-Cvb6CeXQ.js} +1 -1
  315. package/web-shell/assets/{erDiagram-TEJ5UH35-DfpHcWLV.js → erDiagram-TEJ5UH35-7eB2Hmov.js} +1 -1
  316. package/web-shell/assets/{flowDiagram-I6XJVG4X-CAiUhio5.js → flowDiagram-I6XJVG4X-B08iGCw_.js} +1 -1
  317. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CYc7ezr4.js → ganttDiagram-6RSMTGT7-BgsrCHq-.js} +1 -1
  318. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-70lbkcRS.js → gitGraphDiagram-PVQCEYII-DQLurQ2i.js} +1 -1
  319. package/web-shell/assets/{index-Ww86nT9f.js → index-B_1Z0Mgr.js} +1 -1
  320. package/web-shell/assets/index-Bi1dP2mU.css +5 -0
  321. package/web-shell/assets/index-DJ-z1Oba.js +1756 -0
  322. package/web-shell/assets/{infoDiagram-5YYISTIA-C7e8DWPa.js → infoDiagram-5YYISTIA-DXZGO8qB.js} +1 -1
  323. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BYLr2op-.js → ishikawaDiagram-YF4QCWOH-g7gbuH2w.js} +1 -1
  324. package/web-shell/assets/{journeyDiagram-JHISSGLW-hEibAHKX.js → journeyDiagram-JHISSGLW-euefICGn.js} +1 -1
  325. package/web-shell/assets/{kanban-definition-UN3LZRKU-F2rt8Uhp.js → kanban-definition-UN3LZRKU-Dws8-mjG.js} +1 -1
  326. package/web-shell/assets/{linear-DPhyNezd.js → linear-C63F0tyh.js} +1 -1
  327. package/web-shell/assets/{mermaid.core-ZUtnug0n.js → mermaid.core-fLrhp_4-.js} +5 -5
  328. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DDWcMoi8.js → mindmap-definition-RKZ34NQL-qRkydfT-.js} +1 -1
  329. package/web-shell/assets/{pieDiagram-4H26LBE5-CTRKzw1_.js → pieDiagram-4H26LBE5-BZ0wQaKN.js} +1 -1
  330. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CAEwYG_z.js → quadrantDiagram-W4KKPZXB-Fjq6GbSZ.js} +1 -1
  331. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CRjnH9D9.js → requirementDiagram-4Y6WPE33-CqWvjLHU.js} +1 -1
  332. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-LPQT_sOd.js → sankeyDiagram-5OEKKPKP-VcXX6PVZ.js} +1 -1
  333. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js → sequenceDiagram-3UESZ5HK-BJSRtxFr.js} +1 -1
  334. package/web-shell/assets/{stateDiagram-AJRCARHV-CIUdqOXu.js → stateDiagram-AJRCARHV-Dt9zUwmZ.js} +1 -1
  335. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CCxQt56w.js +1 -0
  336. package/web-shell/assets/{timeline-definition-PNZ67QCA-BcilneZF.js → timeline-definition-PNZ67QCA-DQwlNRws.js} +1 -1
  337. package/web-shell/assets/{vennDiagram-CIIHVFJN-BljwiiH1.js → vennDiagram-CIIHVFJN-DwxjUEtQ.js} +1 -1
  338. package/web-shell/assets/{wardley-L42UT6IY-DeKjkYjq.js → wardley-L42UT6IY-D3QdMSpJ.js} +1 -1
  339. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-L3U1H7KG.js → wardleyDiagram-YWT4CUSO-BddN8oK8.js} +1 -1
  340. package/web-shell/assets/{xychartDiagram-2RQKCTM6-IJnWsgMT.js → xychartDiagram-2RQKCTM6-BUNuBrRJ.js} +1 -1
  341. package/web-shell/index.html +2 -2
  342. package/chunks/chunk-4KP2F2TE.js +0 -82
  343. package/chunks/chunk-HGT6JR3U.js +0 -177
  344. package/chunks/nonInteractiveCli-ZJYEOO7U.js +0 -148
  345. package/web-shell/assets/channel-B1cyk94G.js +0 -1
  346. package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +0 -1
  347. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +0 -1
  348. package/web-shell/assets/index-C1k3PDuU.css +0 -5
  349. package/web-shell/assets/index-DZLIXILO.js +0 -1750
  350. package/web-shell/assets/insert-DmRbh9Rv.svg +0 -1
  351. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +0 -1
@@ -5,20 +5,20 @@ import {
5
5
  } from "./chunk-VGC4I5JJ.js";
6
6
  import {
7
7
  isAnyAutoMemPath
8
- } from "./chunk-3I6DUGQD.js";
8
+ } from "./chunk-E4WHKETF.js";
9
9
  import {
10
10
  STRUCTURED_OUTPUT_REDACTED_ARGS
11
- } from "./chunk-7ULQIS27.js";
11
+ } from "./chunk-UEJESCS7.js";
12
12
  import {
13
13
  BaseDeclarativeTool,
14
14
  BaseToolInvocation,
15
15
  SchemaValidator,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-MM7TH7ZM.js";
18
+ } from "./chunk-CFDR3GNL.js";
19
19
  import {
20
20
  DEFAULT_QWEN_MODEL
21
- } from "./chunk-HIVKI6O6.js";
21
+ } from "./chunk-H35Q5CEG.js";
22
22
  import {
23
23
  estimateTextTokens,
24
24
  generateLegacyMcpToolName,
@@ -29,10 +29,10 @@ import {
29
29
  } from "./chunk-ZBVS26BY.js";
30
30
  import {
31
31
  InstallationManager
32
- } from "./chunk-R2XWGR75.js";
32
+ } from "./chunk-TYERNYH4.js";
33
33
  import {
34
34
  atomicWriteFile
35
- } from "./chunk-HC45LTEN.js";
35
+ } from "./chunk-UH7Z7Y45.js";
36
36
  import {
37
37
  isTelemetrySdkInitialized,
38
38
  recordApiErrorMetrics,
@@ -53,7 +53,7 @@ import {
53
53
  recordSubagentExecutionMetrics,
54
54
  recordTokenUsageMetrics,
55
55
  recordToolCallMetrics
56
- } from "./chunk-QARJNL2V.js";
56
+ } from "./chunk-O2ZYHG33.js";
57
57
  import {
58
58
  require_src,
59
59
  safeJsonStringify
@@ -113,7 +113,7 @@ import {
113
113
  makeRelative,
114
114
  shortenPath,
115
115
  unescapePath
116
- } from "./chunk-E2BHWIDT.js";
116
+ } from "./chunk-3RXUYQJI.js";
117
117
  import {
118
118
  SemanticAttributes,
119
119
  init_esm
@@ -9730,12 +9730,15 @@ async function readFileWithLineAndLimit(params) {
9730
9730
  const endLine = Math.min(startLine + limit, originalLineCount);
9731
9731
  const actualStartLine = Math.min(startLine, originalLineCount);
9732
9732
  const selectedLines = lines.slice(actualStartLine, endLine);
9733
+ const joined = selectedLines.join("\n");
9733
9734
  return {
9734
- content: selectedLines.join("\n"),
9735
+ content: joined,
9735
9736
  bom,
9736
9737
  encoding,
9737
9738
  originalLineCount,
9738
- originalLineCountExact: true
9739
+ originalLineCountExact: true,
9740
+ truncatedByBytes: false,
9741
+ lineEnding: detectLineEndingFromContent(joined)
9739
9742
  };
9740
9743
  }
9741
9744
  __name(readFileWithLineAndLimit, "readFileWithLineAndLimit");
@@ -10071,20 +10074,22 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10071
10074
  preserveUnsupportedImage = false,
10072
10075
  preparePdfForVisionBridge = false,
10073
10076
  signal,
10074
- largePdfBehavior = "error"
10077
+ largePdfBehavior = "error",
10078
+ displayPath = filePath
10075
10079
  } = options;
10076
10080
  const rootDirectory = config.getTargetDir();
10081
+ const relativePathForDisplay = (path2.isAbsolute(displayPath) ? path2.relative(rootDirectory, displayPath) : displayPath).replace(/\\/g, "/");
10077
10082
  try {
10078
10083
  signal?.throwIfAborted();
10079
10084
  let stats;
10080
10085
  try {
10081
- stats = await fs3.promises.stat(filePath);
10086
+ stats = options.textFileStats ?? await fs3.promises.stat(filePath);
10082
10087
  } catch (error) {
10083
10088
  if (isNodeError(error) && error.code === "ENOENT") {
10084
10089
  return {
10085
10090
  llmContent: "Could not read file because no file was found at the specified path.",
10086
10091
  returnDisplay: "File not found.",
10087
- error: `File not found: ${filePath}`,
10092
+ error: `File not found: ${displayPath}`,
10088
10093
  errorType: "file_not_found" /* FILE_NOT_FOUND */
10089
10094
  };
10090
10095
  }
@@ -10094,7 +10099,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10094
10099
  return {
10095
10100
  llmContent: "Could not read file because the provided path is a directory, not a file.",
10096
10101
  returnDisplay: "Path is a directory.",
10097
- error: `Path is a directory, not a file: ${filePath}`,
10102
+ error: `Path is a directory, not a file: ${displayPath}`,
10098
10103
  errorType: "target_is_directory" /* TARGET_IS_DIRECTORY */
10099
10104
  };
10100
10105
  }
@@ -10102,15 +10107,14 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10102
10107
  return {
10103
10108
  llmContent: `Cannot read file: ${path2.basename(filePath)} is not a regular file (e.g. device, socket, or pipe).`,
10104
10109
  returnDisplay: "Not a regular file.",
10105
- error: `Not a regular file: ${filePath}`,
10110
+ error: `Not a regular file: ${displayPath}`,
10106
10111
  errorType: "read_content_failure" /* READ_CONTENT_FAILURE */
10107
10112
  };
10108
10113
  }
10109
- const fileType = await detectFileType(filePath);
10114
+ const fileType = options.textFileHandle ? "text" : await detectFileType(filePath);
10110
10115
  const mediaMimeType = index_lite_default.getType(filePath) ?? MIME_LITE_MISSING_VIDEO_TYPES.get(path2.extname(filePath).toLowerCase()) ?? "application/octet-stream";
10111
10116
  const shouldRenderImageOverview = fileType === "image" && CANONICAL_IMAGE_MIME_TYPES.has(mediaMimeType);
10112
- const relativePathForDisplay = path2.relative(rootDirectory, filePath).replace(/\\/g, "/");
10113
- const displayName = path2.basename(filePath);
10117
+ const displayName = path2.basename(displayPath);
10114
10118
  const modalities = config.getContentGeneratorConfig?.()?.modalities ?? {};
10115
10119
  const willRenderPdfImages = fileType === "pdf" && !!modalities.image && largePdfBehavior !== "reference";
10116
10120
  const renderForBridge = fileType === "pdf" && !modalities.image && !modalities.pdf && (preserveUnsupportedImage || preparePdfForVisionBridge);
@@ -10149,7 +10153,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10149
10153
  return {
10150
10154
  llmContent: `PDF file is too large for full text extraction: ${fileSizeInMB.toFixed(2)}MB exceeds the ${PDF_FULL_TEXT_EXTRACTION_MAX_MB}MB limit. Use the 'pages' parameter to read a narrower range, or split the document into smaller files before retrying.`,
10151
10155
  returnDisplay: `PDF file too large (${fileSizeInMB.toFixed(2)}MB > ${PDF_FULL_TEXT_EXTRACTION_MAX_MB}MB).`,
10152
- error: `PDF exceeds extraction size limit: ${filePath} (${fileSizeInMB.toFixed(2)}MB)`,
10156
+ error: `PDF exceeds extraction size limit: ${displayPath} (${fileSizeInMB.toFixed(2)}MB)`,
10153
10157
  errorType: "file_too_large" /* FILE_TOO_LARGE */,
10154
10158
  stats
10155
10159
  };
@@ -10158,7 +10162,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10158
10162
  return {
10159
10163
  llmContent: `PDF file is too large for page-range text extraction: ${fileSizeInMB.toFixed(2)}MB exceeds the ${PDF_PAGED_TEXT_EXTRACTION_MAX_MB}MB limit. Split the document into smaller files before retrying.`,
10160
10164
  returnDisplay: `PDF file too large (${fileSizeInMB.toFixed(2)}MB > ${PDF_PAGED_TEXT_EXTRACTION_MAX_MB}MB).`,
10161
- error: `PDF exceeds page-range extraction size limit: ${filePath} (${fileSizeInMB.toFixed(2)}MB)`,
10165
+ error: `PDF exceeds page-range extraction size limit: ${displayPath} (${fileSizeInMB.toFixed(2)}MB)`,
10162
10166
  errorType: "file_too_large" /* FILE_TOO_LARGE */,
10163
10167
  stats
10164
10168
  };
@@ -10197,7 +10201,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10197
10201
  return {
10198
10202
  llmContent: "Image file exceeds the 100 MB source limit.",
10199
10203
  returnDisplay: "Image file exceeds the 100 MB source limit.",
10200
- error: `Image file exceeds the 100 MB source limit: ${filePath}`,
10204
+ error: `Image file exceeds the 100 MB source limit: ${displayPath}`,
10201
10205
  errorType: "file_too_large" /* FILE_TOO_LARGE */
10202
10206
  };
10203
10207
  }
@@ -10205,7 +10209,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10205
10209
  return {
10206
10210
  llmContent: "File size exceeds the 10MB limit.",
10207
10211
  returnDisplay: "File size exceeds the 10MB limit.",
10208
- error: `File size exceeds the 10MB limit: ${filePath} (${fileSizeInMB.toFixed(2)}MB)`,
10212
+ error: `File size exceeds the 10MB limit: ${displayPath} (${fileSizeInMB.toFixed(2)}MB)`,
10209
10213
  errorType: "file_too_large" /* FILE_TOO_LARGE */
10210
10214
  };
10211
10215
  }
@@ -10255,11 +10259,22 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10255
10259
  };
10256
10260
  }
10257
10261
  case "text": {
10258
- const { content, _meta } = await config.getFileSystemService().readTextFile({
10262
+ const fileSystemService = config.getFileSystemService();
10263
+ const maxOutputBytes = getRangeReadByteLimit(config);
10264
+ const readTextFileFromHandle = fileSystemService.readTextFileFromHandle;
10265
+ const { content, _meta } = options.textFileHandle ? await readTextFileFromHandle.call(fileSystemService, {
10266
+ fileHandle: options.textFileHandle,
10267
+ fileSize: stats.size,
10268
+ limit: limit ?? config.getTruncateToolOutputLines(),
10269
+ line: offset,
10270
+ maxOutputBytes,
10271
+ maxScanBytes: options.textFileMaxScanBytes ?? maxOutputBytes,
10272
+ ...signal !== void 0 ? { signal } : {}
10273
+ }) : await fileSystemService.readTextFile({
10259
10274
  path: filePath,
10260
10275
  limit: limit ?? config.getTruncateToolOutputLines(),
10261
10276
  line: offset,
10262
- maxOutputBytes: getRangeReadByteLimit(config),
10277
+ maxOutputBytes,
10263
10278
  stats,
10264
10279
  ...signal !== void 0 ? { signal } : {}
10265
10280
  });
@@ -10379,7 +10394,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10379
10394
  return {
10380
10395
  llmContent: `File exceeds the 10MB data URI limit after base64 encoding (${base64SizeInMB.toFixed(2)}MB encoded).`,
10381
10396
  returnDisplay: `File exceeds the 10MB data URI limit after base64 encoding.`,
10382
- error: `File exceeds the 10MB data URI limit after base64 encoding: ${filePath} (${base64SizeInMB.toFixed(2)}MB encoded)`,
10397
+ error: `File exceeds the 10MB data URI limit after base64 encoding: ${displayPath} (${base64SizeInMB.toFixed(2)}MB encoded)`,
10383
10398
  errorType: "file_too_large" /* FILE_TOO_LARGE */
10384
10399
  };
10385
10400
  }
@@ -10403,7 +10418,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10403
10418
  return {
10404
10419
  llmContent: `File exceeds the 10MB data URI limit after base64 encoding (${base64SizeInMB.toFixed(2)}MB encoded).`,
10405
10420
  returnDisplay: `File exceeds the 10MB data URI limit after base64 encoding.`,
10406
- error: `File exceeds the 10MB data URI limit after base64 encoding: ${filePath} (${base64SizeInMB.toFixed(2)}MB encoded)`,
10421
+ error: `File exceeds the 10MB data URI limit after base64 encoding: ${displayPath} (${base64SizeInMB.toFixed(2)}MB encoded)`,
10407
10422
  errorType: "file_too_large" /* FILE_TOO_LARGE */
10408
10423
  };
10409
10424
  }
@@ -10427,7 +10442,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10427
10442
  return {
10428
10443
  llmContent: `File exceeds the 10MB data URI limit after base64 encoding (${base64SizeInMB.toFixed(2)}MB encoded).`,
10429
10444
  returnDisplay: `File exceeds the 10MB data URI limit after base64 encoding.`,
10430
- error: `File exceeds the 10MB data URI limit after base64 encoding: ${filePath} (${base64SizeInMB.toFixed(2)}MB encoded)`,
10445
+ error: `File exceeds the 10MB data URI limit after base64 encoding: ${displayPath} (${base64SizeInMB.toFixed(2)}MB encoded)`,
10431
10446
  errorType: "file_too_large" /* FILE_TOO_LARGE */
10432
10447
  };
10433
10448
  }
@@ -10638,7 +10653,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10638
10653
  return {
10639
10654
  llmContent: `Error parsing notebook ${relativePathForDisplay}: ${msg}`,
10640
10655
  returnDisplay: `Error reading notebook: ${relativePathForDisplay}`,
10641
- error: `Error parsing notebook ${filePath}: ${msg}`,
10656
+ error: `Error parsing notebook ${displayPath}: ${msg}`,
10642
10657
  errorType: "read_content_failure" /* READ_CONTENT_FAILURE */
10643
10658
  };
10644
10659
  }
@@ -10648,7 +10663,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10648
10663
  return {
10649
10664
  llmContent: `Unhandled file type: ${exhaustiveCheck}`,
10650
10665
  returnDisplay: `Skipped unhandled file type: ${relativePathForDisplay}`,
10651
- error: `Unhandled file type for ${filePath}`
10666
+ error: `Unhandled file type for ${displayPath}`
10652
10667
  };
10653
10668
  }
10654
10669
  }
@@ -10657,11 +10672,10 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
10657
10672
  throw error;
10658
10673
  }
10659
10674
  const errorMessage = getErrorMessage(error);
10660
- const displayPath = path2.relative(rootDirectory, filePath).replace(/\\/g, "/");
10661
10675
  return {
10662
- llmContent: `Error reading file ${displayPath}: ${errorMessage}`,
10663
- returnDisplay: `Error reading file ${displayPath}: ${errorMessage}`,
10664
- error: `Error reading file ${filePath}: ${errorMessage}`,
10676
+ llmContent: `Error reading file ${relativePathForDisplay}: ${errorMessage}`,
10677
+ returnDisplay: `Error reading file ${relativePathForDisplay}: ${errorMessage}`,
10678
+ error: `Error reading file ${relativePathForDisplay}: ${errorMessage}`,
10665
10679
  errorType: "read_content_failure" /* READ_CONTENT_FAILURE */
10666
10680
  };
10667
10681
  }
@@ -10670,7 +10684,7 @@ __name(processSingleFileContent, "processSingleFileContent");
10670
10684
  function getRangeReadByteLimit(config) {
10671
10685
  const charLimit = config.getTruncateToolOutputThreshold();
10672
10686
  if (charLimit === Number.POSITIVE_INFINITY) {
10673
- return Number.POSITIVE_INFINITY;
10687
+ return Number.MAX_SAFE_INTEGER;
10674
10688
  }
10675
10689
  if (!Number.isFinite(charLimit)) {
10676
10690
  return DEFAULT_RANGE_READ_BYTES;
@@ -11214,6 +11228,8 @@ var QwenLogger = class _QwenLogger {
11214
11228
  response_id: event.response_id,
11215
11229
  tool_name: event.function_name,
11216
11230
  permission: event.decision,
11231
+ status: event.status,
11232
+ tool_type: event.tool_type,
11217
11233
  success: event.success ? 1 : 0,
11218
11234
  duration_ms: event.duration_ms,
11219
11235
  error_type: event.error_type,
@@ -12780,42 +12796,55 @@ function logUserRetry(config, event) {
12780
12796
  logger.emit(logRecord);
12781
12797
  }
12782
12798
  __name(logUserRetry, "logUserRetry");
12799
+ function normalizeToolCallEvent(event) {
12800
+ const isError = event.status === "error";
12801
+ return {
12802
+ ...event,
12803
+ function_name: event.function_name.trim().length > 0 ? event.function_name : "unknown_tool",
12804
+ success: event.status === "success",
12805
+ error: isError ? event.error : void 0,
12806
+ error_type: isError ? event.error_type?.trim() ? event.error_type : "unknown" /* UNKNOWN */ : void 0
12807
+ };
12808
+ }
12809
+ __name(normalizeToolCallEvent, "normalizeToolCallEvent");
12783
12810
  function logToolCall(config, event) {
12811
+ const normalizedEvent = normalizeToolCallEvent(event);
12784
12812
  const uiEvent = {
12785
- ...event,
12813
+ ...normalizedEvent,
12786
12814
  "event.name": EVENT_TOOL_CALL,
12787
12815
  "event.timestamp": (/* @__PURE__ */ new Date()).toISOString()
12788
12816
  };
12789
12817
  uiTelemetryService.addEvent(uiEvent, config.getSessionId());
12790
- if (!isInternalPromptId(event.prompt_id)) {
12818
+ if (!isInternalPromptId(normalizedEvent.prompt_id)) {
12791
12819
  recordUiTelemetryEventToChat(config, uiEvent);
12792
12820
  }
12793
- QwenLogger.getInstance(config)?.logToolCallEvent(event);
12821
+ QwenLogger.getInstance(config)?.logToolCallEvent(normalizedEvent);
12794
12822
  if (!isTelemetrySdkInitialized()) return;
12795
12823
  const attributes = {
12796
12824
  ...getCommonAttributes(config),
12797
- ...event,
12825
+ ...normalizedEvent,
12798
12826
  "event.name": EVENT_TOOL_CALL,
12799
12827
  "event.timestamp": (/* @__PURE__ */ new Date()).toISOString(),
12800
- function_args: safeJsonStringify(event.function_args, 2)
12828
+ function_args: safeJsonStringify(normalizedEvent.function_args, 2)
12801
12829
  };
12802
- if (event.error) {
12803
- attributes["error.message"] = event.error;
12804
- if (event.error_type) {
12805
- attributes["error.type"] = event.error_type;
12806
- }
12830
+ if (normalizedEvent.error) {
12831
+ attributes["error.message"] = normalizedEvent.error;
12832
+ }
12833
+ if (normalizedEvent.error_type) {
12834
+ attributes["error.type"] = normalizedEvent.error_type;
12807
12835
  }
12808
12836
  const logger = import_api_logs.logs.getLogger(SERVICE_NAME);
12809
12837
  const logRecord = {
12810
- body: `Tool call: ${event.function_name}${event.decision ? `. Decision: ${event.decision}` : ""}. Success: ${event.success}. Duration: ${event.duration_ms}ms.`,
12838
+ body: `Tool call: ${normalizedEvent.function_name}${normalizedEvent.decision ? `. Decision: ${normalizedEvent.decision}` : ""}. Success: ${normalizedEvent.success}. Duration: ${normalizedEvent.duration_ms}ms.`,
12811
12839
  attributes
12812
12840
  };
12813
12841
  logger.emit(logRecord);
12814
- recordToolCallMetrics(config, event.duration_ms, {
12815
- function_name: event.function_name,
12816
- success: event.success,
12817
- decision: event.decision,
12818
- tool_type: event.tool_type
12842
+ recordToolCallMetrics(config, normalizedEvent.duration_ms, {
12843
+ function_name: normalizedEvent.function_name,
12844
+ status: normalizedEvent.status,
12845
+ success: normalizedEvent.success,
12846
+ decision: normalizedEvent.decision,
12847
+ tool_type: normalizedEvent.tool_type
12819
12848
  });
12820
12849
  }
12821
12850
  __name(logToolCall, "logToolCall");
@@ -16980,6 +17009,7 @@ export {
16980
17009
  readFileWithLineAndLimit,
16981
17010
  getSpecificMimeType,
16982
17011
  isWithinRoot,
17012
+ detectFileType,
16983
17013
  isCacheableReadResult,
16984
17014
  processSingleFileContent,
16985
17015
  fileExists,
@@ -9,7 +9,7 @@ import {
9
9
  relaxSchemaForFunctionCalling,
10
10
  safeJsonParse,
11
11
  setGenAiUsageProvenance
12
- } from "./chunk-QTHQ6Z5X.js";
12
+ } from "./chunk-WK4TJUEA.js";
13
13
  import {
14
14
  setToolCallPreparations
15
15
  } from "./chunk-GLCZKT5V.js";
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-46UV252V.js";
22
22
  import {
23
23
  createDebugLogger
24
- } from "./chunk-E2BHWIDT.js";
24
+ } from "./chunk-3RXUYQJI.js";
25
25
  import {
26
26
  FinishReason,
27
27
  GenerateContentResponse
@@ -109,38 +109,6 @@ function truncateToWidth(text, maxWidth) {
109
109
  return `${result}${ellipsis}`;
110
110
  }
111
111
  __name(truncateToWidth, "truncateToWidth");
112
- function wrapToVisualLines(text, width) {
113
- if (width <= 0) {
114
- return [""];
115
- }
116
- const visualLines = [];
117
- for (const logicalLine of text.split("\n")) {
118
- if (logicalLine === "") {
119
- visualLines.push("");
120
- continue;
121
- }
122
- let currentLine = "";
123
- let currentWidth = 0;
124
- for (const char of logicalLine) {
125
- const charWidth = Math.max(getCachedStringWidth(char), 1);
126
- if (currentWidth + charWidth > width && currentWidth > 0) {
127
- visualLines.push(currentLine);
128
- currentLine = "";
129
- currentWidth = 0;
130
- }
131
- currentLine += char;
132
- currentWidth += charWidth;
133
- }
134
- if (currentLine) {
135
- visualLines.push(currentLine);
136
- }
137
- }
138
- if (visualLines.length === 0) {
139
- visualLines.push("");
140
- }
141
- return visualLines;
142
- }
143
- __name(wrapToVisualLines, "wrapToVisualLines");
144
112
  var regex = ansiRegex();
145
113
  var BARE_C0_CONTROL_CHARS_REGEX = /[\x00-\x08\x0b-\x1f\x7f-\x9f]/g;
146
114
  var BIDI_OVERRIDE_CHARS_REGEX = /[\u200e\u200f\u202a-\u202e\u2066-\u2069]/g;
@@ -289,7 +257,6 @@ export {
289
257
  stripUnsafeCharacters,
290
258
  getCachedStringWidth,
291
259
  truncateToWidth,
292
- wrapToVisualLines,
293
260
  sanitizeTerminalText,
294
261
  escapeAnsiCtrlCodes,
295
262
  sanitizeSensitiveText,
@@ -2,24 +2,41 @@
2
2
  "use strict";
3
3
  import {
4
4
  HistoryReplayer
5
- } from "./chunk-PZEXDV3H.js";
5
+ } from "./chunk-VUNRNRN6.js";
6
6
  import {
7
7
  ChannelDeliveryError,
8
8
  MAX_CHANNEL_DELIVERY_TEXT_LENGTH
9
- } from "./chunk-U4VTUMMK.js";
9
+ } from "./chunk-QONSRAEV.js";
10
10
  import {
11
11
  redactLogCredentials
12
12
  } from "./chunk-M5GB774H.js";
13
13
  import {
14
- getResponseText
15
- } from "./chunk-54YCNSK5.js";
14
+ getUserSettingsPath,
15
+ loadSettings
16
+ } from "./chunk-22YFMJBW.js";
17
+ import {
18
+ getSystemDefaultsPath,
19
+ getSystemSettingsPath
20
+ } from "./chunk-IDS7MSUP.js";
21
+ import {
22
+ findEnvFiles,
23
+ preResolveHomeEnvOverrides
24
+ } from "./chunk-6NE5NTHJ.js";
25
+ import {
26
+ getResponseText,
27
+ ideContextStore
28
+ } from "./chunk-UQDFEU47.js";
16
29
  import {
17
30
  MAX_CHANNEL_DELIVERY_NAME_LENGTH,
18
31
  MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH
19
- } from "./chunk-TEGJSJDF.js";
32
+ } from "./chunk-MOHAWIAW.js";
20
33
  import {
21
34
  parseGoalSnapshotV2
22
- } from "./chunk-6FMJLI5M.js";
35
+ } from "./chunk-HFVW54NL.js";
36
+ import {
37
+ Storage,
38
+ createDebugLogger
39
+ } from "./chunk-3RXUYQJI.js";
23
40
  import {
24
41
  init_esbuild_shims
25
42
  } from "./chunk-5O2XNYP6.js";
@@ -27,7 +44,7 @@ import {
27
44
  __name
28
45
  } from "./chunk-J2S4EL5Y.js";
29
46
 
30
- // packages/cli/src/serve/workspace-remember-errors.ts
47
+ // packages/cli/src/runtime/workspace-remember-errors.ts
31
48
  init_esbuild_shims();
32
49
  var MAX_REMEMBER_ERROR_DETAILS_CHARS = 1e3;
33
50
  var MAX_REMEMBER_ERROR_CAUSE_DEPTH = 50;
@@ -263,11 +280,11 @@ function workspaceMemoryFailureDiagnostics(err, onExtractionError) {
263
280
  }
264
281
  __name(workspaceMemoryFailureDiagnostics, "workspaceMemoryFailureDiagnostics");
265
282
 
266
- // packages/cli/src/serve/workspace-memory-remember-constants.ts
283
+ // packages/cli/src/runtime/workspace-memory-remember-constants.ts
267
284
  init_esbuild_shims();
268
285
  var MAX_REMEMBER_CONTENT_BYTES = 64 * 1024;
269
286
 
270
- // packages/cli/src/serve/workspace-memory-summaries.ts
287
+ // packages/cli/src/runtime/workspace-memory-summaries.ts
271
288
  init_esbuild_shims();
272
289
  function formatWorkspaceMemoryForgetSummary(removedEntryCount) {
273
290
  return removedEntryCount > 0 ? `Forgot ${removedEntryCount} memory entr${removedEntryCount === 1 ? "y" : "ies"}.` : "No managed auto-memory entries matched.";
@@ -361,7 +378,7 @@ function restoreRedactedMcpServersSetting(value, existing) {
361
378
  }
362
379
  __name(restoreRedactedMcpServersSetting, "restoreRedactedMcpServersSetting");
363
380
 
364
- // packages/cli/src/serve/validate-server-name.ts
381
+ // packages/cli/src/runtime/validate-server-name.ts
365
382
  init_esbuild_shims();
366
383
  var VALID_SERVER_NAME = /^[A-Za-z0-9_-]+$/;
367
384
  var RESERVED_SERVER_NAMES = /* @__PURE__ */ new Set([
@@ -432,6 +449,121 @@ async function executeGeneration(config, requestId, prompt, signal, emit) {
432
449
  }
433
450
  __name(executeGeneration, "executeGeneration");
434
451
 
452
+ // packages/cli/src/config/settings-cache.ts
453
+ init_esbuild_shims();
454
+ import * as fs from "node:fs";
455
+ import * as os from "node:os";
456
+ import * as path from "node:path";
457
+ var MAX_CACHE_ENTRIES = 64;
458
+ var debugLogger = createDebugLogger("SETTINGS_CACHE");
459
+ var cache = /* @__PURE__ */ new Map();
460
+ function statSig(filePath) {
461
+ const st = fs.statSync(filePath, { throwIfNoEntry: false });
462
+ return st ? `${st.mtimeMs}:${st.size}:${st.ino}` : "missing";
463
+ }
464
+ __name(statSig, "statSig");
465
+ function realpathOr(p) {
466
+ try {
467
+ return fs.realpathSync(p);
468
+ } catch {
469
+ return path.resolve(p);
470
+ }
471
+ }
472
+ __name(realpathOr, "realpathOr");
473
+ function settingsFileSigs(workspaceDir) {
474
+ const filePaths = [
475
+ getSystemSettingsPath(),
476
+ getSystemDefaultsPath(),
477
+ getUserSettingsPath(),
478
+ new Storage(workspaceDir).getWorkspaceSettingsPath()
479
+ ];
480
+ return filePaths.map((filePath) => ({ filePath, sig: statSig(filePath) }));
481
+ }
482
+ __name(settingsFileSigs, "settingsFileSigs");
483
+ function envFileSigs(settings, workspaceDir) {
484
+ return findEnvFiles(settings.merged, workspaceDir).map((filePath) => ({
485
+ filePath,
486
+ sig: statSig(filePath)
487
+ }));
488
+ }
489
+ __name(envFileSigs, "envFileSigs");
490
+ function sameFileSigs(a, b) {
491
+ if (a.length !== b.length) {
492
+ return false;
493
+ }
494
+ return a.every(
495
+ (sig, i) => sig.filePath === b[i].filePath && sig.sig === b[i].sig
496
+ );
497
+ }
498
+ __name(sameFileSigs, "sameFileSigs");
499
+ function isEntryFresh(key, entry) {
500
+ const fp = entry.fingerprint;
501
+ return ideContextStore.get()?.workspaceState?.isTrusted === fp.ideTrust && realpathOr(key) === fp.realCwd && // homeDir guards the corner where nothing else moves: QWEN_HOME set (so
502
+ // settings paths don't follow HOME), no .env files anywhere, and the new
503
+ // home equals the workspace dir — which flips workspaceSettingsActive.
504
+ realpathOr(os.homedir()) === fp.homeDir && sameFileSigs(settingsFileSigs(key), fp.settingsFiles) && sameFileSigs(envFileSigs(entry.settings, key), fp.envFiles);
505
+ }
506
+ __name(isEntryFresh, "isEntryFresh");
507
+ function loadSettingsCached(workspaceDir) {
508
+ preResolveHomeEnvOverrides();
509
+ const key = path.resolve(workspaceDir);
510
+ const entry = cache.get(key);
511
+ if (entry) {
512
+ let isFresh = false;
513
+ try {
514
+ isFresh = isEntryFresh(key, entry);
515
+ } catch (error) {
516
+ debugLogger.warn(
517
+ `fingerprint check failed for ${key}; reloading:`,
518
+ error
519
+ );
520
+ }
521
+ if (isFresh) {
522
+ cache.delete(key);
523
+ cache.set(key, entry);
524
+ debugLogger.debug(`hit ${key}`);
525
+ return entry.settings;
526
+ }
527
+ cache.delete(key);
528
+ }
529
+ debugLogger.debug(`miss ${key}`);
530
+ let preLoadSigs;
531
+ try {
532
+ preLoadSigs = settingsFileSigs(key);
533
+ } catch (error) {
534
+ debugLogger.warn(`pre-load signing failed for ${key}; not caching:`, error);
535
+ }
536
+ const settings = loadSettings(key);
537
+ if (preLoadSigs) {
538
+ try {
539
+ cache.set(key, {
540
+ settings,
541
+ fingerprint: {
542
+ settingsFiles: preLoadSigs,
543
+ // .env discovery needs the merged settings (trust), so it can only
544
+ // be signed after the load — see difference (2) in the module doc.
545
+ envFiles: envFileSigs(settings, key),
546
+ ideTrust: ideContextStore.get()?.workspaceState?.isTrusted,
547
+ realCwd: realpathOr(key),
548
+ homeDir: realpathOr(os.homedir())
549
+ }
550
+ });
551
+ if (cache.size > MAX_CACHE_ENTRIES) {
552
+ const oldest = cache.keys().next().value;
553
+ if (oldest !== void 0) {
554
+ cache.delete(oldest);
555
+ debugLogger.debug(`evicted LRU entry ${oldest}`);
556
+ }
557
+ }
558
+ } catch (error) {
559
+ cache.delete(key);
560
+ debugLogger.warn(`caching failed for ${key}; serving uncached:`, error);
561
+ }
562
+ }
563
+ return settings;
564
+ }
565
+ __name(loadSettingsCached, "loadSettingsCached");
566
+
435
567
  // packages/cli/src/acp-integration/session/history-replay-page.ts
436
568
  init_esbuild_shims();
437
569
  function createReplayCumulativeUsage() {
@@ -621,7 +753,7 @@ async function replayTranscriptRecordPage({
621
753
  }
622
754
  __name(replayTranscriptRecordPage, "replayTranscriptRecordPage");
623
755
 
624
- // packages/cli/src/serve/channel-delivery.ts
756
+ // packages/cli/src/runtime/channel-delivery.ts
625
757
  init_esbuild_shims();
626
758
  var TRUNCATED_TEXT_SUFFIX = "\n\n[Channel delivery truncated because the result exceeded the delivery size limit.]";
627
759
  function isBoundedString(value, maxLength) {
@@ -707,6 +839,7 @@ export {
707
839
  GENERATION_MAX_PROMPT_BYTES,
708
840
  GENERATION_TIMEOUT_MS,
709
841
  executeGeneration,
842
+ loadSettingsCached,
710
843
  parseChannelDelivery,
711
844
  normalizeChannelDeliveryText,
712
845
  normalizeChannelDelivery,
@@ -3,13 +3,13 @@
3
3
  import {
4
4
  resolveModelConfig,
5
5
  resolveProviderProtocol
6
- } from "./chunk-54YCNSK5.js";
6
+ } from "./chunk-UQDFEU47.js";
7
7
  import {
8
8
  external_exports
9
9
  } from "./chunk-H6XPXXMH.js";
10
10
  import {
11
11
  stripRuntimeSnapshotPrefix
12
- } from "./chunk-ZMOJ7ISP.js";
12
+ } from "./chunk-XUMAD5IT.js";
13
13
  import {
14
14
  REASONING_EFFORT_TIERS,
15
15
  normalizeReasoningEffort
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  AuthType,
19
19
  MODEL_GENERATION_CONFIG_FIELDS
20
- } from "./chunk-HIVKI6O6.js";
20
+ } from "./chunk-H35Q5CEG.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-5O2XNYP6.js";
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-6PEXNQTX.js";
9
9
  import {
10
10
  isWorkspaceTrusted
11
- } from "./chunk-P755N4CS.js";
11
+ } from "./chunk-M5LIY7Y6.js";
12
12
  import {
13
13
  require_main
14
14
  } from "./chunk-5M6IDOMF.js";
@@ -16,7 +16,7 @@ import {
16
16
  QWEN_DIR,
17
17
  Storage,
18
18
  getErrorMessage
19
- } from "./chunk-E2BHWIDT.js";
19
+ } from "./chunk-3RXUYQJI.js";
20
20
  import {
21
21
  init_esbuild_shims
22
22
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getErrorStatus
5
- } from "./chunk-E2BHWIDT.js";
5
+ } from "./chunk-3RXUYQJI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";