@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260710.205430235

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 (292) hide show
  1. package/bundled/qc-helper/SKILL.md +1 -0
  2. package/bundled/qc-helper/docs/configuration/auth.md +40 -55
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
  4. package/bundled/qc-helper/docs/configuration/settings.md +43 -36
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +20 -12
  7. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
  8. package/bundled/qc-helper/docs/features/code-review.md +2 -1
  9. package/bundled/qc-helper/docs/features/commands.md +39 -38
  10. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  11. package/bundled/qc-helper/docs/features/hooks.md +36 -34
  12. package/bundled/qc-helper/docs/features/memory.md +1 -1
  13. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  14. package/bundled/qc-helper/docs/qwen-serve.md +22 -12
  15. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  16. package/bundled/review/DESIGN.md +14 -13
  17. package/bundled/review/SKILL.md +38 -61
  18. package/chunks/{MaxSizedBox-XY5LIO5O.js → MaxSizedBox-LOFYQFYJ.js} +13 -14
  19. package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-U5OQBGEB.js} +31 -29
  20. package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-SDIFRIED.js} +637 -131
  21. package/chunks/{agent-TKIBLLQT.js → agent-JIBBVHNQ.js} +10 -10
  22. package/chunks/{agent-headless-VLX4C7KX.js → agent-headless-6LGZYJYU.js} +10 -10
  23. package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-55REPTTF.js} +30 -3
  24. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-EIN46DPM.js} +1 -1
  25. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-6YX6ZRX7.js} +1 -1
  26. package/chunks/{bridge-BCU73DZO.js → bridge-HVPFYNM4.js} +17 -16
  27. package/chunks/{ca-HCMB2I54.js → ca-MULEGDVS.js} +89 -5
  28. package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-OPXXT4JK.js} +20 -3
  29. package/chunks/{chunk-DGHJTO2K.js → chunk-2AF26HVM.js} +31 -2
  30. package/chunks/{chunk-3B26UVCX.js → chunk-2GUVUHJY.js} +6 -4
  31. package/chunks/{chunk-FV7425LN.js → chunk-2SZOMGOR.js} +4 -1
  32. package/chunks/{chunk-CNSF3WO5.js → chunk-32KS5XSX.js} +3 -3
  33. package/chunks/{chunk-4UCTWSTP.js → chunk-34UUM3IN.js} +1 -1
  34. package/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
  35. package/chunks/{chunk-MIG5SQNL.js → chunk-4CSVIZLT.js} +4 -4
  36. package/chunks/{chunk-GD236YPV.js → chunk-4ONWIT5C.js} +1 -1
  37. package/chunks/{chunk-4ZJIPVPB.js → chunk-4XK7TNBP.js} +8 -8
  38. package/chunks/{chunk-I4A4K72C.js → chunk-5F2H3PXG.js} +446 -232
  39. package/chunks/chunk-5HOF2K5U.js +19 -0
  40. package/chunks/{chunk-GMOWQOQQ.js → chunk-5ZVIYNLN.js} +228 -36
  41. package/chunks/chunk-6O6Z2I5Q.js +292 -0
  42. package/chunks/{chunk-RYFZCUJO.js → chunk-6QKT5VNZ.js} +14 -6
  43. package/chunks/{chunk-SD4N3QJ2.js → chunk-6ZPSVWLF.js} +61 -17
  44. package/chunks/{chunk-X265R5C6.js → chunk-7YGSDQ5J.js} +2 -2
  45. package/chunks/{chunk-PRDFOIZF.js → chunk-A6KEUFJO.js} +32 -5
  46. package/chunks/{chunk-OWVIH4HY.js → chunk-B5OAMPJ5.js} +389 -87
  47. package/chunks/{chunk-ME3YSROJ.js → chunk-CV2AT2WJ.js} +22 -10
  48. package/chunks/{chunk-U4FRHCLA.js → chunk-DDKUYKHA.js} +1912 -201
  49. package/chunks/{chunk-YDSYD7UI.js → chunk-E3SA2LY4.js} +2 -2
  50. package/chunks/{chunk-6IAWPIQ6.js → chunk-EDM5O3SX.js} +2 -2
  51. package/chunks/{chunk-CISB3IQF.js → chunk-FONJQQWI.js} +65 -6
  52. package/chunks/{chunk-FRFFNYUY.js → chunk-G3WIMNL4.js} +3 -3
  53. package/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
  54. package/chunks/chunk-GLE2YUPU.js +34 -0
  55. package/chunks/{chunk-MJI36HER.js → chunk-GOTMC3BX.js} +1 -1
  56. package/chunks/{chunk-RFIL6REB.js → chunk-GRB4QSBD.js} +168 -31
  57. package/chunks/chunk-GVVY7GSP.js +38 -0
  58. package/chunks/{chunk-7JGISHHZ.js → chunk-HDEUQRAR.js} +14 -156
  59. package/chunks/{chunk-NZEGNV4V.js → chunk-HPRI22FZ.js} +6 -6
  60. package/chunks/{chunk-STAZRKOT.js → chunk-I34IHZFJ.js} +117 -459
  61. package/chunks/{chunk-JF7DFPQ5.js → chunk-I3MBKL6Z.js} +12 -2
  62. package/chunks/{chunk-DNV4FSN5.js → chunk-I5XN6KDI.js} +21 -4
  63. package/chunks/{chunk-VZ7HY3YU.js → chunk-IAMRWMFU.js} +1 -1
  64. package/chunks/{chunk-44NROQYV.js → chunk-JOQMY62N.js} +1 -1
  65. package/chunks/{chunk-VQWAZSXN.js → chunk-JW4IKIZ2.js} +57 -35
  66. package/chunks/{chunk-SAIILPQ3.js → chunk-KJMYXFUR.js} +3 -1
  67. package/chunks/{chunk-AFOLR6YL.js → chunk-KQ6MKCFE.js} +102 -16
  68. package/chunks/{chunk-X3YGAX7V.js → chunk-KS2FRTYI.js} +2 -0
  69. package/chunks/{chunk-IUE7YWC3.js → chunk-LE7EF36E.js} +7 -7
  70. package/chunks/{chunk-B4U2M63D.js → chunk-LRY7HD3Q.js} +2101 -11
  71. package/chunks/{chunk-PUQLHSQ2.js → chunk-ME7E6WZB.js} +6 -8
  72. package/chunks/{chunk-LEIJKM7Q.js → chunk-MEK7ZRJ3.js} +1 -1
  73. package/chunks/{chunk-AJBEAUIS.js → chunk-MG2TNCRX.js} +4 -3
  74. package/chunks/{chunk-GL5TV7B5.js → chunk-MSMQURDV.js} +21 -5
  75. package/chunks/{chunk-6BN7NZ5Z.js → chunk-NXDJLKKX.js} +4 -6
  76. package/chunks/{chunk-FEJ2FZ3U.js → chunk-NY2ZOFMM.js} +1 -1
  77. package/chunks/{chunk-QZF5U5KA.js → chunk-NY5BE643.js} +8 -8
  78. package/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
  79. package/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
  80. package/chunks/chunk-PCWSPWXZ.js +168 -0
  81. package/chunks/{chunk-XPJH4PKR.js → chunk-PJ74K3DH.js} +1 -1
  82. package/chunks/{chunk-FTFXDZYI.js → chunk-PW7VWRLX.js} +45 -29
  83. package/chunks/chunk-R3SLDK6Y.js +468 -0
  84. package/chunks/{chunk-4O344UEE.js → chunk-SDJOZOYY.js} +38 -18
  85. package/chunks/{chunk-ALZ75L2X.js → chunk-SMYIBRAA.js} +412 -376
  86. package/chunks/{chunk-CCGOFQV3.js → chunk-SS5P6JM6.js} +6 -5
  87. package/chunks/{chunk-AIY5UTFI.js → chunk-T3XHYGMG.js} +925 -2872
  88. package/chunks/{chunk-Q6OEPOOC.js → chunk-TB6GWNV4.js} +1 -1
  89. package/chunks/{chunk-24XYI5EI.js → chunk-TERKDCOZ.js} +3 -3
  90. package/chunks/chunk-TVO5C767.js +159 -0
  91. package/chunks/{chunk-TBAZMRW3.js → chunk-TVW53EK7.js} +1 -1
  92. package/chunks/chunk-TX5QZYK6.js +296 -0
  93. package/chunks/{chunk-JD33UY7E.js → chunk-TZRVTPJ6.js} +15 -9
  94. package/chunks/{chunk-65CFHNSE.js → chunk-UAFB2DNB.js} +59 -59
  95. package/chunks/{chunk-QAKFYMJI.js → chunk-UOXLB2LY.js} +152 -17
  96. package/chunks/chunk-V35MD7KN.js +13 -0
  97. package/chunks/{chunk-XSAFNANZ.js → chunk-VWDJHVXM.js} +12 -12
  98. package/chunks/{chunk-XISQIIT7.js → chunk-W77ZLCSX.js} +1 -1
  99. package/chunks/{chunk-BWVQN2HV.js → chunk-WTEIUA2V.js} +4 -4
  100. package/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
  101. package/chunks/{chunk-HJ3GX3Y3.js → chunk-XZVUZSDG.js} +25 -11
  102. package/chunks/{chunk-ADZG46HR.js → chunk-YHGCTQG3.js} +1 -1
  103. package/chunks/{chunk-2NPS2UDH.js → chunk-YUNPEB3Q.js} +478 -43
  104. package/chunks/chunk-Z3I3QJK3.js +47 -0
  105. package/chunks/{chunk-P7I3D7FM.js → chunk-Z466FBSA.js} +1 -1
  106. package/chunks/{chunk-YEGT55NW.js → chunk-ZDAZSR2O.js} +3009 -1220
  107. package/chunks/{chunk-VEB3NYSO.js → chunk-ZJQBTFJ6.js} +6 -1
  108. package/chunks/chunk-ZL5HN75Q.js +61 -0
  109. package/chunks/{computer-use-X4KUU3NM.js → computer-use-IW5XBECT.js} +10 -10
  110. package/chunks/{contextCommand-LAYJZF7H.js → contextCommand-4QPLK2SH.js} +14 -14
  111. package/chunks/create-sub-session-7JK3EYWA.js +212 -0
  112. package/chunks/create-sub-session-EVYZYAE3.js +364 -0
  113. package/chunks/{cron-create-JSXEIPVS.js → cron-create-2CCO2PW6.js} +2 -2
  114. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-ETVTP5IV.js} +2 -2
  115. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-FS3KWOY5.js} +2 -2
  116. package/chunks/{daemon-F3I2RXP6.js → daemon-NNUYIBWA.js} +461 -0
  117. package/chunks/{daemon-status-provider-XSAFKVDS.js → daemon-status-provider-3EPG6BXX.js} +21 -19
  118. package/chunks/{de-PLLFDERI.js → de-QRG6J2CM.js} +89 -5
  119. package/chunks/{dist-YTRKAVUB.js → dist-3EIIFOJV.js} +1 -1
  120. package/chunks/{dist-PKFTNUHO.js → dist-7F5GWZDZ.js} +2 -1
  121. package/chunks/{dist-FQ5WRJPL.js → dist-CBJ7OJ5R.js} +2 -2
  122. package/chunks/{dist-OT7G2WNM.js → dist-LIFJ2YAI.js} +1 -1
  123. package/chunks/{dist-573HNSVO.js → dist-OKXOQ63L.js} +2 -1
  124. package/chunks/{dist-IMFFBMAT.js → dist-SU5LY5R4.js} +3 -1
  125. package/chunks/{earlyInputCapture-AERYYGXE.js → earlyInputCapture-HP5XAS7A.js} +10 -10
  126. package/chunks/{edit-WZTZDGCI.js → edit-MDICC6KH.js} +11 -11
  127. package/chunks/{en-GA2RMXY5.js → en-HF3KFWZG.js} +91 -5
  128. package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-JWTRNEN4.js} +10 -10
  129. package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-GMRZMTBQ.js} +10 -10
  130. package/chunks/environment-2CJAFOFN.js +88 -0
  131. package/chunks/{errors-GMZL4QV7.js → errors-UZOVFD2U.js} +13 -13
  132. package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-QQGEG343.js} +10 -10
  133. package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-YK2JVAAB.js} +10 -10
  134. package/chunks/{fast-path-W2U6XDNO.js → fast-path-6SD4JNQW.js} +12 -3
  135. package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-RAQGCIT7.js} +3 -2
  136. package/chunks/{fr-GWNQG4XH.js → fr-RSCO6HHD.js} +89 -5
  137. package/chunks/{gemini-T4WX6SRW.js → gemini-TFQXPUZB.js} +436 -140
  138. package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-LJ2BNXHX.js} +1 -1
  139. package/chunks/{glob-4KKSHZDF.js → glob-3IJ6JR5W.js} +10 -10
  140. package/chunks/{grep-GHRYXSLZ.js → grep-UFZ2RFQZ.js} +10 -10
  141. package/chunks/{handleAutoUpdate-HN7ZOSXY.js → handleAutoUpdate-TEZC5ZIR.js} +17 -13
  142. package/chunks/i18n-5QEODTJV.js +84 -0
  143. package/chunks/{initializer-SRN3IM42.js → initializer-222MPCLQ.js} +18 -16
  144. package/chunks/installationInfo-OZ62OHZ2.js +65 -0
  145. package/chunks/{ja-2HOTA47X.js → ja-RRFGG2DC.js} +89 -5
  146. package/chunks/{list-INTVXUPA.js → list-BN5VBIIE.js} +20 -18
  147. package/chunks/{loadedSettingsAdapter-QVHHQPGM.js → loadedSettingsAdapter-EHTUJRFB.js} +18 -16
  148. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-SR2KWT4B.js} +3 -3
  149. package/chunks/{ls-L654WOAT.js → ls-RUBQK5Q2.js} +2 -2
  150. package/chunks/{lsp-M35KE54Y.js → lsp-DUTVY2ZA.js} +3 -5
  151. package/chunks/{mcp-7V4T46RG.js → mcp-OPGHD26Y.js} +18 -16
  152. package/chunks/{monitor-464OY2UE.js → monitor-WXBDVYYV.js} +10 -10
  153. package/chunks/{nonInteractiveCli-LJEEODU2.js → nonInteractiveCli-CWIBGJ4U.js} +54 -49
  154. package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-T7P7M73F.js} +11 -11
  155. package/chunks/{openaiContentGenerator-PFF6HYB2.js → openaiContentGenerator-OES264C3.js} +7 -7
  156. package/chunks/{pidfile-LIBUENIV.js → pidfile-LJ3NLS2P.js} +10 -10
  157. package/chunks/{pt-2THT3YHA.js → pt-D4CG46JM.js} +89 -5
  158. package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-QJ67LAJ5.js} +12 -12
  159. package/chunks/{read-file-L7TBQVX7.js → read-file-KZD7TLU7.js} +5 -5
  160. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-Q56IMYOH.js} +1 -1
  161. package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-GZ5D5HZX.js} +4 -4
  162. package/chunks/{ripGrep-CKKX3GRB.js → ripGrep-KUJLX75U.js} +10 -10
  163. package/chunks/{ru-Z67YJHBG.js → ru-O2QUEL22.js} +89 -5
  164. package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-M52KVRGI.js} +664 -153
  165. package/chunks/{scheduler-ZRW3AIDU.js → scheduler-FFATTAYZ.js} +10 -10
  166. package/chunks/{send-message-OA6MV4EU.js → send-message-HAGK3VTV.js} +2 -2
  167. package/chunks/{serve-36WS32W6.js → serve-B5S32524.js} +21 -18
  168. package/chunks/{server-M372UENX.js → server-6HK5FJMR.js} +3301 -665
  169. package/chunks/{session-F5KSNP2N.js → session-3WB76VTQ.js} +55 -50
  170. package/chunks/{settings-WFLNS3WT.js → settings-W3IX7NHK.js} +27 -23
  171. package/chunks/{shell-DEDSWN56.js → shell-HZIU2ZG7.js} +10 -10
  172. package/chunks/{skill-A2TL2NPC.js → skill-34OUFB65.js} +5 -5
  173. package/chunks/{spawnChannel-RQHUWTCL.js → spawnChannel-FTZJ3I5O.js} +12 -12
  174. package/chunks/{src-XKZMNHXS.js → src-NELBIIGI.js} +48 -10
  175. package/chunks/standalone-update-LICI2VSK.js +79 -0
  176. package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-LZEV5YI2.js} +2203 -1764
  177. package/chunks/stdioHelpers-CA7MG65Z.js +14 -0
  178. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-XFFJVCGV.js} +2 -2
  179. package/chunks/{task-create-RPFZNB4B.js → task-create-VINUSVBF.js} +3 -3
  180. package/chunks/{task-list-TGGJX7EA.js → task-list-YZ2AWQEG.js} +1 -1
  181. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-PEXPKUW3.js} +1 -1
  182. package/chunks/{task-update-5WUG5MVQ.js → task-update-BHIX57YH.js} +3 -3
  183. package/chunks/{team-create-TBQVWAG7.js → team-create-2JS2OYSF.js} +10 -10
  184. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-2OHXSBVS.js} +1 -1
  185. package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-PHLGYUY7.js} +10 -10
  186. package/chunks/{theme-manager-DQZVNSOC.js → theme-manager-UYXLX37P.js} +10 -10
  187. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-7Q4ELT4F.js} +1 -1
  188. package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2MWA3GWE.js} +6 -6
  189. package/chunks/total-session-admission-PRZK35X4.js +72 -0
  190. package/chunks/{trustedFolders-Z475EIHL.js → trustedFolders-IT4JBNPG.js} +12 -12
  191. package/chunks/{updateCheck-E2ZX7RL7.js → updateCheck-X3ZWDO3Z.js} +17 -13
  192. package/chunks/updateEventEmitter-NXWTRHXY.js +10 -0
  193. package/chunks/{validateNonInterActiveAuth-O4ECBHQL.js → validateNonInterActiveAuth-IAOL7CM3.js} +51 -45
  194. package/chunks/{version-CEDD6ZZR.js → version-25QF6A5H.js} +1 -1
  195. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-I7FOWHGA.js} +2 -2
  196. package/chunks/{workflow-CQQ4J4I6.js → workflow-LZZ5U3IT.js} +11 -11
  197. package/chunks/{workspace-providers-status-MVYXMYDG.js → workspace-providers-status-7DTOAWEL.js} +21 -18
  198. package/chunks/workspace-registry-BBIPESIZ.js +76 -0
  199. package/chunks/{workspace-service-OMBR6ZLG.js → workspace-service-SY3P3FUY.js} +25 -23
  200. package/chunks/{workspace-skills-status-IMMQ7CAY.js → workspace-skills-status-GTT2A4WN.js} +20 -18
  201. package/chunks/{write-file-VWGY7AJP.js → write-file-M6IHNW3V.js} +11 -11
  202. package/chunks/{zh-7XVVRTDH.js → zh-K2EH6BDD.js} +91 -5
  203. package/chunks/{zh-TW-DPH554OG.js → zh-TW-4GPXJ7ZY.js} +91 -5
  204. package/cli.js +13 -12
  205. package/locales/ca.js +115 -7
  206. package/locales/de.js +114 -7
  207. package/locales/en.js +118 -7
  208. package/locales/fr.js +115 -7
  209. package/locales/ja.js +116 -6
  210. package/locales/pt.js +114 -7
  211. package/locales/ru.js +114 -7
  212. package/locales/zh-TW.js +114 -6
  213. package/locales/zh.js +114 -6
  214. package/package.json +3 -6
  215. package/web-shell/assets/{arc-C7hjaa7g.js → arc-G3HZaqaL.js} +1 -1
  216. package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-DhBrwwch.js} +1 -1
  217. package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-16JbbF0N.js} +1 -1
  218. package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-DQ3-pKgc.js} +1 -1
  219. package/web-shell/assets/channel-CX7ZHuuL.js +1 -0
  220. package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-ERCn30sp.js} +1 -1
  221. package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-DTysfbFi.js} +1 -1
  222. package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-BFGrbTBi.js} +1 -1
  223. package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DCX4Oar-.js} +1 -1
  224. package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-CgT6sBr3.js} +1 -1
  225. package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-C1Uuk1KV.js} +1 -1
  226. package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-DajgESiu.js} +1 -1
  227. package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DLJSvy9X.js} +1 -1
  228. package/web-shell/assets/classDiagram-4FO5ZUOK-B-oT3UI8.js +1 -0
  229. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B-oT3UI8.js +1 -0
  230. package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CH3w3qs7.js} +1 -1
  231. package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-BloXan9B.js} +1 -1
  232. package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-BbZiGcmK.js} +1 -1
  233. package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-GQlYvLJv.js} +1 -1
  234. package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-CtIBvVq3.js} +1 -1
  235. package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-D5TBo9a2.js} +1 -1
  236. package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-N0gQhw6R.js} +1 -1
  237. package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-zab9vDj3.js} +1 -1
  238. package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-BnnjtWJa.js} +1 -1
  239. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-2T0SQU4f.js} +1 -1
  240. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-DAD6_que.js} +1 -1
  241. package/web-shell/assets/index-XLkWfLja.css +5 -0
  242. package/web-shell/assets/index-srlTR1Jg.js +786 -0
  243. package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-C-j8d0xO.js} +1 -1
  244. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-D97bAKoT.js} +1 -1
  245. package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-BJAHfJmm.js} +1 -1
  246. package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-CZgR5aac.js} +1 -1
  247. package/web-shell/assets/{linear-Bo5bWzvo.js → linear-DOd4kYhA.js} +1 -1
  248. package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-BBaplnXA.js} +5 -5
  249. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-IhBF_BR5.js} +1 -1
  250. package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B4R4sYyH.js} +1 -1
  251. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-DKd1SJ61.js} +1 -1
  252. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-Cw96V0Xb.js} +1 -1
  253. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-C6ne_yWi.js} +1 -1
  254. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-CCyp4PDp.js} +1 -1
  255. package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DHvIqTmx.js} +1 -1
  256. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DvFhmpwA.js +1 -0
  257. package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-amb3n9zH.js} +1 -1
  258. package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-Abf2qRFJ.js} +1 -1
  259. package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-BBlOp1av.js} +1 -1
  260. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-gE_sZ0Ak.js} +1 -1
  261. package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BwOni53i.js} +1 -1
  262. package/web-shell/index.html +16 -4
  263. package/chunks/chunk-6SHO7WFF.js +0 -79
  264. package/chunks/chunk-IFEWJXFS.js +0 -37
  265. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  266. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  267. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  268. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  269. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  270. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  271. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  272. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  273. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  274. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  275. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  276. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  277. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  278. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  279. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  280. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  281. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  282. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  283. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  284. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  285. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  286. package/web-shell/assets/channel-BNf1dW-j.js +0 -1
  287. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
  288. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
  289. package/web-shell/assets/index-CnE2ur2L.js +0 -779
  290. package/web-shell/assets/index-hSKXrlSE.css +0 -5
  291. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
  292. /package/chunks/{chunk-Y6Z2O3WR.js → chunk-JM7BYJO5.js} +0 -0
@@ -0,0 +1,19 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-A4BMJM77.js";
6
+
7
+ // packages/cli/src/utils/updateEventEmitter.ts
8
+ init_esbuild_shims();
9
+ import { EventEmitter } from "node:events";
10
+ var updateEventEmitter = new EventEmitter();
11
+
12
+ export {
13
+ updateEventEmitter
14
+ };
15
+ /**
16
+ * @license
17
+ * Copyright 2025 Google LLC
18
+ * SPDX-License-Identifier: Apache-2.0
19
+ */
@@ -23,19 +23,19 @@ import {
23
23
  } from "./chunk-OMX7CUOE.js";
24
24
  import {
25
25
  isAnyAutoMemPath
26
- } from "./chunk-4KJ2BPIT.js";
26
+ } from "./chunk-OACJLMLD.js";
27
27
  import {
28
28
  InstallationManager
29
29
  } from "./chunk-SUAKHHK7.js";
30
30
  import {
31
31
  STRUCTURED_OUTPUT_REDACTED_ARGS
32
- } from "./chunk-FEJ2FZ3U.js";
32
+ } from "./chunk-NY2ZOFMM.js";
33
33
  import {
34
34
  BaseDeclarativeTool,
35
35
  BaseToolInvocation,
36
36
  ToolDisplayNames,
37
37
  ToolNames
38
- } from "./chunk-X3YGAX7V.js";
38
+ } from "./chunk-KS2FRTYI.js";
39
39
  import {
40
40
  atomicWriteFile,
41
41
  atomicWriteFileSync
@@ -45,7 +45,7 @@ import {
45
45
  estimateTextTokens,
46
46
  runtimeDiagnostics,
47
47
  safeJsonParse
48
- } from "./chunk-CCGOFQV3.js";
48
+ } from "./chunk-SS5P6JM6.js";
49
49
  import {
50
50
  require_lib
51
51
  } from "./chunk-IRJWHZWU.js";
@@ -52768,8 +52768,8 @@ var require_async = __commonJS({
52768
52768
  cb(null, x);
52769
52769
  }
52770
52770
  }, "maybeRealpath");
52771
- var defaultReadPackage = /* @__PURE__ */ __name(function defaultReadPackage2(readFile, pkgfile, cb) {
52772
- readFile(pkgfile, function(readFileErr, body) {
52771
+ var defaultReadPackage = /* @__PURE__ */ __name(function defaultReadPackage2(readFile2, pkgfile, cb) {
52772
+ readFile2(pkgfile, function(readFileErr, body) {
52773
52773
  if (readFileErr) cb(readFileErr);
52774
52774
  else {
52775
52775
  try {
@@ -52804,7 +52804,7 @@ var require_async = __commonJS({
52804
52804
  opts = normalizeOptions(x, opts);
52805
52805
  var isFile = opts.isFile || defaultIsFile;
52806
52806
  var isDirectory = opts.isDirectory || defaultIsDir;
52807
- var readFile = opts.readFile || fs9.readFile;
52807
+ var readFile2 = opts.readFile || fs9.readFile;
52808
52808
  var realpath = opts.realpath || defaultRealpath;
52809
52809
  var readPackage = opts.readPackage || defaultReadPackage;
52810
52810
  if (opts.readFile && opts.readPackage) {
@@ -52930,7 +52930,7 @@ var require_async = __commonJS({
52930
52930
  var pkgfile = path11.join(pkgdir, "package.json");
52931
52931
  isFile(pkgfile, function(err2, ex) {
52932
52932
  if (!ex) return loadpkg(path11.dirname(dir), cb2);
52933
- readPackage(readFile, pkgfile, function(err3, pkgParam) {
52933
+ readPackage(readFile2, pkgfile, function(err3, pkgParam) {
52934
52934
  if (err3) cb2(err3);
52935
52935
  var pkg = pkgParam;
52936
52936
  if (pkg && opts.packageFilter) {
@@ -52955,7 +52955,7 @@ var require_async = __commonJS({
52955
52955
  isFile(pkgfile, function(err2, ex) {
52956
52956
  if (err2) return cb2(err2);
52957
52957
  if (!ex) return loadAsFile(path11.join(x2, "index"), fpkg, cb2);
52958
- readPackage(readFile, pkgfile, function(err3, pkgParam) {
52958
+ readPackage(readFile2, pkgfile, function(err3, pkgParam) {
52959
52959
  if (err3) return cb2(err3);
52960
52960
  var pkg = pkgParam;
52961
52961
  if (pkg && opts.packageFilter) {
@@ -59215,6 +59215,9 @@ __name(detectEncodingFromBuffer, "detectEncodingFromBuffer");
59215
59215
  // packages/core/src/utils/pdf.ts
59216
59216
  init_esbuild_shims();
59217
59217
  import { execFile } from "node:child_process";
59218
+ import { mkdtemp, readdir, readFile, rm } from "node:fs/promises";
59219
+ import { tmpdir } from "node:os";
59220
+ import { join } from "node:path";
59218
59221
  var MAX_PDF_TEXT_OUTPUT_CHARS = 1e5;
59219
59222
  var PDF_FULL_TEXT_PAGE_LIMIT = 10;
59220
59223
  var PDF_MAX_PAGES_PER_READ = 20;
@@ -59223,6 +59226,10 @@ var PDF_TEXT_RESULT_MAX_TOKENS = 12e3;
59223
59226
  var PDF_TEXT_RESULT_WRAPPER_TOKEN_CHARS = 64;
59224
59227
  var PDF_TEXT_RESULT_CHARS_PER_TOKEN = 4;
59225
59228
  var PDF_TEXT_EXTRACTION_UNAVAILABLE_MESSAGE = "pdftotext is not installed. Install poppler-utils to enable PDF text extraction (e.g. `apt-get install poppler-utils` or `brew install poppler`).";
59229
+ var PDF_RENDER_UNAVAILABLE_MESSAGE = "pdftoppm is not installed. Install poppler-utils to enable PDF page rendering (e.g. `apt-get install poppler-utils` or `brew install poppler`).";
59230
+ var PDF_RENDER_SCALE_TO_PX = 1600;
59231
+ var PDF_RENDER_MAX_TOTAL_BASE64_BYTES = 25 * 1024 * 1024;
59232
+ var PDF_RENDER_TIMEOUT_MS = 12e4;
59226
59233
  var MAX_PDF_PAGE_NUMBER = 1e6;
59227
59234
  function shouldRequirePDFPageRange(pageCount, sizeBytes) {
59228
59235
  const hadPdfInfo = pageCount !== null;
@@ -59447,6 +59454,125 @@ async function extractPDFText(filePath, options) {
59447
59454
  }
59448
59455
  }
59449
59456
  __name(extractPDFText, "extractPDFText");
59457
+ var pdftoppmAvailable;
59458
+ var pdftoppmAvailablePromise;
59459
+ async function isPdftoppmAvailable() {
59460
+ if (pdftoppmAvailable !== void 0) return pdftoppmAvailable;
59461
+ if (pdftoppmAvailablePromise) return pdftoppmAvailablePromise;
59462
+ pdftoppmAvailablePromise = (async () => {
59463
+ try {
59464
+ const { code } = await execCommand("pdftoppm", ["-v"], {
59465
+ timeout: 5e3
59466
+ });
59467
+ return code === 0;
59468
+ } catch {
59469
+ return false;
59470
+ }
59471
+ })().then((result) => {
59472
+ pdftoppmAvailable = result;
59473
+ return result;
59474
+ }).finally(() => {
59475
+ pdftoppmAvailablePromise = void 0;
59476
+ });
59477
+ return pdftoppmAvailablePromise;
59478
+ }
59479
+ __name(isPdftoppmAvailable, "isPdftoppmAvailable");
59480
+ function comparePdfPageFilenames(a, b) {
59481
+ const pageNumber = /* @__PURE__ */ __name((name) => {
59482
+ const match = /(\d+)\.jpg$/i.exec(name);
59483
+ return match ? parseInt(match[1], 10) : 0;
59484
+ }, "pageNumber");
59485
+ return pageNumber(a) - pageNumber(b);
59486
+ }
59487
+ __name(comparePdfPageFilenames, "comparePdfPageFilenames");
59488
+ async function renderPDFPagesToImages(filePath, options) {
59489
+ const available = await isPdftoppmAvailable();
59490
+ if (!available) {
59491
+ return { success: false, error: PDF_RENDER_UNAVAILABLE_MESSAGE };
59492
+ }
59493
+ let tempDir;
59494
+ try {
59495
+ tempDir = await mkdtemp(join(tmpdir(), "pdf-render-"));
59496
+ const outputPrefix = join(tempDir, "page");
59497
+ const args = [
59498
+ "-jpeg",
59499
+ "-scale-to",
59500
+ String(PDF_RENDER_SCALE_TO_PX)
59501
+ ];
59502
+ if (options?.firstPage) {
59503
+ args.push("-f", String(options.firstPage));
59504
+ }
59505
+ if (options?.lastPage && options.lastPage !== Infinity) {
59506
+ args.push("-l", String(options.lastPage));
59507
+ }
59508
+ args.push("--", filePath, outputPrefix);
59509
+ const { stderr, code, timedOut } = await execCommand("pdftoppm", args, {
59510
+ timeout: PDF_RENDER_TIMEOUT_MS
59511
+ });
59512
+ if (timedOut) {
59513
+ return {
59514
+ success: false,
59515
+ error: `pdftoppm timed out after ${Math.round(
59516
+ PDF_RENDER_TIMEOUT_MS / 1e3
59517
+ )}s. The PDF may be unusually large or complex; try the 'pages' parameter to narrow the range.`
59518
+ };
59519
+ }
59520
+ if (code !== 0) {
59521
+ if (/password/i.test(stderr)) {
59522
+ return {
59523
+ success: false,
59524
+ error: "PDF is password-protected. Please provide an unprotected version."
59525
+ };
59526
+ }
59527
+ if (/damaged|corrupt|invalid/i.test(stderr)) {
59528
+ return { success: false, error: "PDF file is corrupted or invalid." };
59529
+ }
59530
+ return {
59531
+ success: false,
59532
+ error: `pdftoppm failed: ${stderr || "(no stderr)"}`
59533
+ };
59534
+ }
59535
+ const entries = (await readdir(tempDir)).filter((name) => name.toLowerCase().endsWith(".jpg")).sort(comparePdfPageFilenames);
59536
+ if (entries.length === 0) {
59537
+ return {
59538
+ success: false,
59539
+ error: "pdftoppm produced no image output. The PDF may be empty or the page range may be out of bounds."
59540
+ };
59541
+ }
59542
+ const images = [];
59543
+ let totalBytes = 0;
59544
+ let bytesTruncated = false;
59545
+ for (const name of entries) {
59546
+ const buffer = await readFile(join(tempDir, name));
59547
+ const data = buffer.toString("base64");
59548
+ if (images.length > 0 && totalBytes + data.length > PDF_RENDER_MAX_TOTAL_BASE64_BYTES) {
59549
+ bytesTruncated = true;
59550
+ break;
59551
+ }
59552
+ totalBytes += data.length;
59553
+ images.push({ data, mimeType: "image/jpeg" });
59554
+ }
59555
+ return { success: true, images, bytesTruncated };
59556
+ } catch (e) {
59557
+ return {
59558
+ success: false,
59559
+ error: `pdftoppm execution failed: ${e instanceof Error ? e.message : String(e)}`
59560
+ };
59561
+ } finally {
59562
+ if (tempDir) {
59563
+ await rm(tempDir, { recursive: true, force: true }).catch(() => {
59564
+ });
59565
+ }
59566
+ }
59567
+ }
59568
+ __name(renderPDFPagesToImages, "renderPDFPagesToImages");
59569
+
59570
+ // packages/core/src/services/visionBridge/vision-bridge-constants.ts
59571
+ init_esbuild_shims();
59572
+ var VISION_BRIDGE_MAX_IMAGES = 4;
59573
+ var VISION_BRIDGE_MAX_IMAGE_BASE64_BYTES = Math.floor(
59574
+ 9.9 * 1024 * 1024
59575
+ );
59450
59576
 
59451
59577
  // packages/core/src/utils/notebook.ts
59452
59578
  init_esbuild_shims();
@@ -60494,6 +60620,8 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
60494
60620
  const relativePathForDisplay = path2.relative(rootDirectory, filePath).replace(/\\/g, "/");
60495
60621
  const displayName = path2.basename(filePath);
60496
60622
  const modalities = config.getContentGeneratorConfig?.()?.modalities ?? {};
60623
+ const willRenderPdfImages = fileType === "pdf" && !!modalities.image && largePdfBehavior !== "reference";
60624
+ const renderForBridge = fileType === "pdf" && !modalities.image && preserveUnsupportedImage;
60497
60625
  const fileSizeInMB = stats.size / (1024 * 1024);
60498
60626
  const normalizedPages = pages?.trim();
60499
60627
  let pageRange;
@@ -60545,10 +60673,11 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
60545
60673
  if (willExtractPdfText && !pageRange) {
60546
60674
  const pageCount = await getPDFPageCount(filePath);
60547
60675
  const requirement = shouldRequirePDFPageRange(pageCount, stats.size);
60676
+ const rangeRequired = willRenderPdfImages ? requirement.effectivePageCount > PDF_MAX_PAGES_PER_READ : requirement.required;
60548
60677
  debugLogger2.debug(
60549
- `PDF full-text fallback gate: file=${relativePathForDisplay}, sizeMB=${fileSizeInMB.toFixed(2)}, pageCount=${pageCount ?? "unknown"}, required=${requirement.required}, effectivePageCount=${requirement.effectivePageCount}, hadPdfInfo=${requirement.hadPdfInfo}, behavior=${largePdfBehavior}`
60678
+ `PDF full-text fallback gate: file=${relativePathForDisplay}, sizeMB=${fileSizeInMB.toFixed(2)}, pageCount=${pageCount ?? "unknown"}, required=${requirement.required}, rangeRequired=${rangeRequired}, effectivePageCount=${requirement.effectivePageCount}, hadPdfInfo=${requirement.hadPdfInfo}, behavior=${largePdfBehavior}`
60550
60679
  );
60551
- if (requirement.required) {
60680
+ if (rangeRequired) {
60552
60681
  if (largePdfBehavior === "error" && !await isPdftotextAvailable()) {
60553
60682
  return {
60554
60683
  llmContent: `[Cannot extract text from PDF: "${displayName}". ${PDF_TEXT_EXTRACTION_UNAVAILABLE_MESSAGE}]`,
@@ -60755,34 +60884,95 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
60755
60884
  const pdfResult = await extractPDFText(filePath, pageRange);
60756
60885
  if (pdfResult.success) {
60757
60886
  const estimatedTokens = estimatePDFTextOutputTokens(pdfResult.text);
60758
- if (estimatedTokens > PDF_TEXT_RESULT_MAX_TOKENS) {
60759
- debugLogger2.debug(
60760
- `PDF text extraction output exceeds token limit: file=${relativePathForDisplay}, pages=${normalizedPages ?? "all"}, estimatedTokens=${estimatedTokens}, limit=${PDF_TEXT_RESULT_MAX_TOKENS}`
60761
- );
60762
- const guidance = buildPDFTextTooLargeGuidance(
60763
- displayName,
60764
- estimatedTokens,
60765
- normalizedPages
60766
- );
60767
- if (!pageRange && largePdfBehavior === "reference") {
60768
- return {
60769
- llmContent: guidance,
60770
- returnDisplay: `Referenced large PDF: ${relativePathForDisplay}`,
60771
- stats
60772
- };
60887
+ if (estimatedTokens <= PDF_TEXT_RESULT_MAX_TOKENS) {
60888
+ const pagesLabel = normalizedPages ? ` (pages ${normalizedPages})` : "";
60889
+ return {
60890
+ llmContent: pdfResult.text,
60891
+ returnDisplay: `Read pdf as text${pagesLabel}: ${relativePathForDisplay}`,
60892
+ stats
60893
+ };
60894
+ }
60895
+ }
60896
+ const toImageParts = /* @__PURE__ */ __name((images, startPage) => images.map((image, index) => ({
60897
+ inlineData: {
60898
+ data: image.data,
60899
+ mimeType: image.mimeType,
60900
+ displayName: `${displayName} (page ${startPage + index})`
60901
+ }
60902
+ })), "toImageParts");
60903
+ if (willRenderPdfImages) {
60904
+ const startPage = pageRange?.firstPage ?? 1;
60905
+ const render = await renderPDFPagesToImages(
60906
+ filePath,
60907
+ pageRange ?? { firstPage: 1, lastPage: PDF_MAX_PAGES_PER_READ }
60908
+ );
60909
+ if (render.success) {
60910
+ const parts = toImageParts(render.images, startPage);
60911
+ if (render.bytesTruncated) {
60912
+ parts.push({
60913
+ text: `[Rendered the first ${render.images.length} page(s) of "${displayName}"; later pages were omitted to stay within size limits. Use the 'pages' parameter to read a specific range.]`
60914
+ });
60915
+ } else if (!pageRange && render.images.length >= PDF_MAX_PAGES_PER_READ) {
60916
+ parts.push({
60917
+ text: `[Rendered the first ${render.images.length} page(s) (the per-read maximum) of "${displayName}". If the document has more pages, use the 'pages' parameter to read a later range.]`
60918
+ });
60919
+ }
60920
+ return {
60921
+ llmContent: parts,
60922
+ returnDisplay: `Read pdf as ${render.images.length} image(s): ${relativePathForDisplay}`,
60923
+ stats
60924
+ };
60925
+ }
60926
+ debugLogger2.debug(
60927
+ `PDF image render failed, falling back to text outcome: file=${relativePathForDisplay}, error=${render.error}`
60928
+ );
60929
+ }
60930
+ if (renderForBridge && pdfResult.success === false) {
60931
+ const render = await renderPDFPagesToImages(filePath, {
60932
+ firstPage: 1,
60933
+ lastPage: VISION_BRIDGE_MAX_IMAGES
60934
+ });
60935
+ if (render.success) {
60936
+ const parts = toImageParts(render.images, 1);
60937
+ const pageCount = await getPDFPageCount(filePath);
60938
+ const mayHaveMore = pageCount !== null ? pageCount > render.images.length : render.images.length >= VISION_BRIDGE_MAX_IMAGES;
60939
+ if (mayHaveMore || render.bytesTruncated) {
60940
+ const total = pageCount !== null ? ` of ${pageCount}` : "";
60941
+ parts.push({
60942
+ text: `[Rendered the first ${render.images.length}${total} page(s) of "${displayName}" for transcription; later pages were not included.]`
60943
+ });
60773
60944
  }
60945
+ return {
60946
+ llmContent: parts,
60947
+ returnDisplay: `Rendered ${render.images.length} page(s) for transcription: ${relativePathForDisplay}`,
60948
+ stats
60949
+ };
60950
+ }
60951
+ debugLogger2.debug(
60952
+ `PDF bridge render failed, falling back to text outcome: file=${relativePathForDisplay}, error=${render.error}`
60953
+ );
60954
+ }
60955
+ if (pdfResult.success) {
60956
+ const guidance = buildPDFTextTooLargeGuidance(
60957
+ displayName,
60958
+ estimatePDFTextOutputTokens(pdfResult.text),
60959
+ normalizedPages
60960
+ );
60961
+ debugLogger2.debug(
60962
+ `PDF text extraction output exceeds token limit: file=${relativePathForDisplay}, pages=${normalizedPages ?? "all"}, limit=${PDF_TEXT_RESULT_MAX_TOKENS}`
60963
+ );
60964
+ if (!pageRange && largePdfBehavior === "reference") {
60774
60965
  return {
60775
60966
  llmContent: guidance,
60776
- returnDisplay: `PDF text too large: ${relativePathForDisplay}`,
60777
- error: guidance,
60778
- errorType: "file_too_large" /* FILE_TOO_LARGE */,
60967
+ returnDisplay: `Referenced large PDF: ${relativePathForDisplay}`,
60779
60968
  stats
60780
60969
  };
60781
60970
  }
60782
- const pagesLabel = normalizedPages ? ` (pages ${normalizedPages})` : "";
60783
60971
  return {
60784
- llmContent: pdfResult.text,
60785
- returnDisplay: `Read pdf as text${pagesLabel}: ${relativePathForDisplay}`,
60972
+ llmContent: guidance,
60973
+ returnDisplay: `PDF text too large: ${relativePathForDisplay}`,
60974
+ error: guidance,
60975
+ errorType: "file_too_large" /* FILE_TOO_LARGE */,
60786
60976
  stats
60787
60977
  };
60788
60978
  }
@@ -69870,11 +70060,11 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
69870
70060
  let baseGenerator;
69871
70061
  try {
69872
70062
  if (authType === "openai" /* USE_OPENAI */) {
69873
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-PFF6HYB2.js");
70063
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-OES264C3.js");
69874
70064
  baseGenerator = createOpenAIContentGenerator(generatorConfig, config);
69875
70065
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
69876
70066
  const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-ZV7YLMND.js");
69877
- const { QwenContentGenerator } = await import("./qwenContentGenerator-SUUHZ6CR.js");
70067
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-QJ67LAJ5.js");
69878
70068
  try {
69879
70069
  const qwenClient = await getQwenOauthClient(
69880
70070
  config,
@@ -69892,10 +70082,10 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
69892
70082
  throw new Error(error instanceof Error ? error.message : String(error));
69893
70083
  }
69894
70084
  } else if (authType === "anthropic" /* USE_ANTHROPIC */) {
69895
- const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-AKYPSZIV.js");
70085
+ const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-55REPTTF.js");
69896
70086
  baseGenerator = createAnthropicContentGenerator(generatorConfig, config);
69897
70087
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
69898
- const { createGeminiContentGenerator } = await import("./geminiContentGenerator-MKQACXEJ.js");
70088
+ const { createGeminiContentGenerator } = await import("./geminiContentGenerator-LJ2BNXHX.js");
69899
70089
  baseGenerator = createGeminiContentGenerator(generatorConfig, config);
69900
70090
  } else {
69901
70091
  throw new Error(
@@ -72663,6 +72853,8 @@ var ReadFileTool = class _ReadFileTool extends BaseDeclarativeTool {
72663
72853
  };
72664
72854
 
72665
72855
  export {
72856
+ VISION_BRIDGE_MAX_IMAGES,
72857
+ VISION_BRIDGE_MAX_IMAGE_BASE64_BYTES,
72666
72858
  EVENT_TOOL_CALL,
72667
72859
  EVENT_API_ERROR,
72668
72860
  EVENT_API_RESPONSE,