@qwen-code/qwen-code 0.19.5 → 0.19.6-nightly.20260705.015ee4248

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 (264) hide show
  1. package/bundled/dataviz/SKILL.md +50 -0
  2. package/bundled/dataviz/references/anti-patterns.md +12 -0
  3. package/bundled/dataviz/references/choosing-a-form.md +16 -0
  4. package/bundled/dataviz/references/palette.md +57 -0
  5. package/bundled/dataviz/scripts/validate_palette.js +328 -0
  6. package/bundled/loop/SKILL.md +1 -1
  7. package/bundled/qc-helper/docs/configuration/settings.md +14 -8
  8. package/bundled/qc-helper/docs/features/headless.md +2 -2
  9. package/bundled/qc-helper/docs/features/scheduled-tasks.md +4 -2
  10. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  11. package/bundled/review/DESIGN.md +23 -0
  12. package/bundled/review/SKILL.md +65 -8
  13. package/chunks/{MaxSizedBox-5JV77KRA.js → MaxSizedBox-PRXTXIGC.js} +31 -30
  14. package/chunks/{StandaloneSessionPicker-MGUGB6PH.js → StandaloneSessionPicker-PV7BSC5D.js} +42 -41
  15. package/chunks/{acpAgent-4F36XM3X.js → acpAgent-F34HNAM3.js} +939 -424
  16. package/chunks/{agent-IWBUZI6A.js → agent-XSQDKLST.js} +26 -25
  17. package/chunks/{agent-headless-JUTICAYO.js → agent-headless-B63XCKWX.js} +26 -25
  18. package/chunks/{anthropicContentGenerator-WL3LJOUB.js → anthropicContentGenerator-INXXI4PW.js} +7 -7
  19. package/chunks/{artifact-tool-W76WC2JX.js → artifact-tool-H2TNPNP5.js} +16 -3
  20. package/chunks/{askUserQuestion-J3P6TH3V.js → askUserQuestion-MKL5ZTMC.js} +2 -2
  21. package/chunks/{bridge-DHZHQ4UV.js → bridge-NCZDJBRF.js} +34 -32
  22. package/chunks/{channel-worker-supervisor-EVPAYNZ5.js → channel-worker-supervisor-JUYQ5Z4R.js} +5 -5
  23. package/chunks/{chunk-AVQDCKNF.js → chunk-22MNNNXE.js} +4 -0
  24. package/chunks/chunk-3RW4AZJV.js +5063 -0
  25. package/chunks/chunk-3VJ7MT3N.js +111 -0
  26. package/chunks/{chunk-JKGCBO3O.js → chunk-3VRMGS3A.js} +4 -4
  27. package/chunks/{chunk-TN6RT6EJ.js → chunk-3WOJO5EJ.js} +16 -4
  28. package/chunks/{chunk-G7OQ3RFJ.js → chunk-42XGFRJS.js} +3 -3
  29. package/chunks/{chunk-MOUXUCXQ.js → chunk-4KJ2BPIT.js} +1 -1
  30. package/chunks/{chunk-PPFWEV7G.js → chunk-4RQIB5UZ.js} +62 -62
  31. package/chunks/{chunk-JJ6B3ZD3.js → chunk-544UZQBD.js} +3 -3
  32. package/chunks/{chunk-B236XPGF.js → chunk-5UDYETKK.js} +1 -1
  33. package/chunks/{chunk-7DMQRPC7.js → chunk-6BEOH4KK.js} +1 -1
  34. package/chunks/{chunk-CXBG27SF.js → chunk-6IAWPIQ6.js} +3 -2
  35. package/chunks/{chunk-MDBNFHIO.js → chunk-6MDY7FX3.js} +5 -5
  36. package/chunks/{chunk-RM3PGSGL.js → chunk-6SHO7WFF.js} +15 -2
  37. package/chunks/{chunk-YCU7QV7Q.js → chunk-73WGF3NW.js} +34 -1
  38. package/chunks/{chunk-T42ACHFI.js → chunk-7LTB54MK.js} +1 -1
  39. package/chunks/{chunk-SJVPSHXU.js → chunk-7U6J224Z.js} +132 -25
  40. package/chunks/{chunk-CSPSJU5R.js → chunk-7WLJPMWU.js} +17 -17
  41. package/chunks/{chunk-R6RI2HIC.js → chunk-ACD5DFUY.js} +41 -14
  42. package/chunks/{chunk-EWALXUAD.js → chunk-AGHU5VRK.js} +8 -0
  43. package/chunks/{chunk-GLPV75ES.js → chunk-AHNJGLFV.js} +2 -2
  44. package/chunks/{chunk-DRS2HTNT.js → chunk-AOAFX4PL.js} +5 -5
  45. package/chunks/{chunk-QHYITL6P.js → chunk-CK7IUFOB.js} +63 -22
  46. package/chunks/{chunk-RSBQS6M4.js → chunk-CODWJXQA.js} +1 -1
  47. package/chunks/{chunk-LWGLBVWA.js → chunk-CSOTA7KX.js} +1 -1
  48. package/chunks/{chunk-UJT42DB6.js → chunk-DFH4T5IQ.js} +6 -6
  49. package/chunks/{chunk-DX3TKXNT.js → chunk-DJACOX4C.js} +2 -2
  50. package/chunks/{chunk-KKQWC6WS.js → chunk-DNV4FSN5.js} +1 -1
  51. package/chunks/{chunk-YPCPZSZB.js → chunk-DT3B47QP.js} +1 -1
  52. package/chunks/{chunk-NIOPRZNN.js → chunk-E7KNELIZ.js} +1 -1
  53. package/chunks/{chunk-DG573EOO.js → chunk-FEJ2FZ3U.js} +1 -1
  54. package/chunks/{chunk-M5ITDKSM.js → chunk-FHGQFG2K.js} +1 -1
  55. package/chunks/{chunk-HISPEX42.js → chunk-FSXFNDTI.js} +7 -7
  56. package/chunks/{chunk-LHMZCIKL.js → chunk-FUW7YGJU.js} +3 -1
  57. package/chunks/{chunk-Y4UQT3PM.js → chunk-FV5SBNNC.js} +1 -1
  58. package/chunks/{chunk-YTFBURQD.js → chunk-GB6HDZIK.js} +10 -2
  59. package/chunks/{chunk-D5KISTLW.js → chunk-H6EMK6QK.js} +1 -1
  60. package/chunks/{chunk-2Z43HUXT.js → chunk-HLKG6CZN.js} +3 -2
  61. package/chunks/{chunk-VXGPYF7U.js → chunk-IFEWJXFS.js} +1 -1
  62. package/chunks/{chunk-TENOUWY2.js → chunk-IJRL2S3D.js} +3 -3
  63. package/chunks/{chunk-OQHLUA2Y.js → chunk-IL6ZEDZ2.js} +4 -4
  64. package/chunks/{chunk-2CAII5HD.js → chunk-J7XUJALJ.js} +1 -1
  65. package/chunks/chunk-JFFOH2XO.js +2472 -0
  66. package/chunks/{chunk-NNEJEBCF.js → chunk-K3FZXSTO.js} +95 -107
  67. package/chunks/{chunk-NDY7OENU.js → chunk-KB4ICCA5.js} +3 -3
  68. package/chunks/{chunk-MNOXKSM2.js → chunk-LFFF2SPV.js} +3 -3
  69. package/chunks/{chunk-J3ERRYYI.js → chunk-LTMDKOZC.js} +2 -2
  70. package/chunks/{chunk-R3UWLLRQ.js → chunk-M7AGQP5D.js} +1 -1
  71. package/chunks/{chunk-CBJE2PLG.js → chunk-MLB5AB2I.js} +4 -4
  72. package/chunks/{chunk-YHTNWGRR.js → chunk-MZ7BABX3.js} +1 -1
  73. package/chunks/{chunk-SJBIFVD2.js → chunk-NFE3DQ4R.js} +7 -3
  74. package/chunks/{chunk-BC4R5C5R.js → chunk-NLD2WKE3.js} +55 -12
  75. package/chunks/{chunk-ALX6BUYW.js → chunk-NUGPZXAZ.js} +35 -1
  76. package/chunks/{chunk-NSSVORTQ.js → chunk-NYKWPUAE.js} +17 -13
  77. package/chunks/{chunk-K4I4STSL.js → chunk-OGEJMKN5.js} +2 -2
  78. package/chunks/{chunk-HTWHAN44.js → chunk-PC4ZXHU2.js} +1 -1
  79. package/chunks/{chunk-2YH27UNF.js → chunk-QLBBV7C6.js} +1 -1
  80. package/chunks/chunk-QT7XKZT7.js +293 -0
  81. package/chunks/{chunk-NPQWQYU6.js → chunk-QYNNN7BK.js} +1 -1
  82. package/chunks/chunk-R4N3OALZ.js +5631 -0
  83. package/chunks/{chunk-G4M7FPNY.js → chunk-RB5GAQR6.js} +2 -2
  84. package/chunks/{chunk-SBMHB6N5.js → chunk-RPHMD5UC.js} +15 -15
  85. package/chunks/{chunk-CHY5C5T4.js → chunk-SJ2CTIYH.js} +185 -88
  86. package/chunks/chunk-SLQXGMYY.js +949 -0
  87. package/chunks/{chunk-BZHLWC6T.js → chunk-SUAKHHK7.js} +2 -2
  88. package/chunks/{chunk-IMAMNLY6.js → chunk-SWV4CVYG.js} +158 -3
  89. package/chunks/{chunk-XKSCTXPK.js → chunk-TDGF35EN.js} +4 -3
  90. package/chunks/{chunk-TOAUDIS7.js → chunk-TLWA7TPR.js} +6 -2
  91. package/chunks/{chunk-WALEWZ44.js → chunk-UVHL5TCO.js} +1 -1
  92. package/chunks/{chunk-ZISMVA6U.js → chunk-VDMM5LVR.js} +1566 -37
  93. package/chunks/{chunk-BPFJQGY7.js → chunk-VEB3NYSO.js} +164 -5
  94. package/chunks/{chunk-L7OJ3ZO3.js → chunk-VZ7HY3YU.js} +1 -1
  95. package/chunks/{chunk-6KPZJJ6U.js → chunk-W4I6PLEG.js} +131 -38
  96. package/chunks/{chunk-QOMAHFYI.js → chunk-W7EEOR7D.js} +3 -3
  97. package/chunks/{chunk-6QVQZAW6.js → chunk-WKP5QZOP.js} +1 -1
  98. package/chunks/{chunk-YXK4GPYO.js → chunk-WMPVYQ4P.js} +30 -1
  99. package/chunks/{chunk-DM4E337C.js → chunk-WNTS5A2R.js} +5 -5
  100. package/chunks/{chunk-6QTCOQX7.js → chunk-WOG7QWIT.js} +3086 -2635
  101. package/chunks/{chunk-UY2TCIZS.js → chunk-X265R5C6.js} +3 -3
  102. package/chunks/{chunk-LKWAVAB5.js → chunk-X2XNQQJI.js} +2 -2
  103. package/chunks/{chunk-MTNTVOJR.js → chunk-X3YGAX7V.js} +6 -3
  104. package/chunks/{chunk-EROWZQN7.js → chunk-XD3OLPII.js} +6 -6
  105. package/chunks/{chunk-RNGAT2Y2.js → chunk-YYL6HROQ.js} +1 -1
  106. package/chunks/{chunk-XKZXGIRM.js → chunk-YZ2LNTHO.js} +2 -2
  107. package/chunks/{chunk-Z7XNVNPM.js → chunk-YZ5ANQMR.js} +3 -3
  108. package/chunks/{chunk-4MCC4XHH.js → chunk-Z7EYROOJ.js} +3568 -5508
  109. package/chunks/{chunk-5B2WNM6V.js → chunk-ZI4MGBB5.js} +1 -1
  110. package/chunks/{chunk-WZ724G6K.js → chunk-ZPGE42V7.js} +6 -6
  111. package/chunks/{computer-use-ON3JQUHW.js → computer-use-5I2UHVNY.js} +26 -25
  112. package/chunks/{contextCommand-OGCG7W6N.js → contextCommand-3NWY7AJG.js} +28 -27
  113. package/chunks/{cron-create-6YTCOX6P.js → cron-create-O6ZHD3JN.js} +22 -7
  114. package/chunks/{cron-delete-E3NIFSUK.js → cron-delete-BFD5B2XX.js} +4 -4
  115. package/chunks/{cron-list-Q64MNQNE.js → cron-list-KI6FV4KN.js} +4 -4
  116. package/chunks/{daemon-EEB2RYOL.js → daemon-DRUMLVFP.js} +140 -0
  117. package/chunks/daemon-status-provider-A2DK3ZTO.js +74 -0
  118. package/chunks/{dist-AP5V4WYU.js → dist-AAO65DPC.js} +2 -2
  119. package/chunks/{dist-X4ZDE726.js → dist-ABQ7VWRR.js} +3 -3
  120. package/chunks/{dist-SNXOUPYS.js → dist-AW5ZYMUI.js} +2 -2
  121. package/chunks/{dist-Z57Q4YF5.js → dist-DN6M6TJ5.js} +525 -95
  122. package/chunks/{dist-IZP2VV4C.js → dist-JPSVN367.js} +2 -2
  123. package/chunks/{earlyInputCapture-DAFHSGVW.js → earlyInputCapture-5TMSSPQ5.js} +27 -26
  124. package/chunks/{edit-3QFNCSZH.js → edit-V4ITLSUD.js} +27 -26
  125. package/chunks/{en-M4EBUBNU.js → en-AXARKOWO.js} +2 -0
  126. package/chunks/{enter-worktree-62EQQMLD.js → enter-worktree-7ULPRMTJ.js} +26 -25
  127. package/chunks/{enterPlanMode-VUQSE4EG.js → enterPlanMode-YSHMLHJZ.js} +26 -25
  128. package/chunks/{errors-PW75PZXE.js → errors-TCUTD7NF.js} +28 -27
  129. package/chunks/{exit-worktree-VVNH7OVY.js → exit-worktree-JZDCKR6A.js} +26 -25
  130. package/chunks/{exitPlanMode-RUYRCYZW.js → exitPlanMode-GOQBN6SG.js} +26 -25
  131. package/chunks/{fast-path-TFRJRTTR.js → fast-path-F2HGAKO2.js} +3 -3
  132. package/chunks/{fast-path-settings-UQLRFDQP.js → fast-path-settings-RCRXH2JG.js} +2 -2
  133. package/chunks/{gemini-XW7ZDUVR.js → gemini-3M7ECKNW.js} +86 -80
  134. package/chunks/{geminiContentGenerator-MZDVHVZH.js → geminiContentGenerator-5EG3QEJM.js} +4 -4
  135. package/chunks/{glob-WAY2PUWA.js → glob-2DBDTLR4.js} +54 -29
  136. package/chunks/{grep-W6CBKSYC.js → grep-R27DLGWT.js} +26 -25
  137. package/chunks/{initializer-HK2XE6P2.js → initializer-OXB6BJZU.js} +32 -31
  138. package/chunks/{keychain-token-storage-GPAKRDKQ.js → keychain-token-storage-UJV5XP4Z.js} +2 -2
  139. package/chunks/{list-RVLIIKKL.js → list-HLCOEOSF.js} +33 -32
  140. package/chunks/{loadedSettingsAdapter-C63OUYZC.js → loadedSettingsAdapter-JHTVH3YO.js} +31 -30
  141. package/chunks/{loop-wakeup-G2EHBRGR.js → loop-wakeup-CUVIY2JY.js} +5 -5
  142. package/chunks/{ls-IDHUVSAG.js → ls-L654WOAT.js} +4 -4
  143. package/chunks/{lsp-FSRYXGFT.js → lsp-M35KE54Y.js} +2 -2
  144. package/chunks/mcp-2JWEFAIN.js +67 -0
  145. package/chunks/{monitor-FOG36ABM.js → monitor-5QKFZFDX.js} +26 -25
  146. package/chunks/nonInteractiveCli-W5W5PIHI.js +112 -0
  147. package/chunks/{notebook-edit-GC6NXRCX.js → notebook-edit-XAFBWORI.js} +27 -26
  148. package/chunks/{openaiContentGenerator-EXR3ZL3Z.js → openaiContentGenerator-NULJROYV.js} +13 -12
  149. package/chunks/{pidfile-FNZM2DDH.js → pidfile-3LT7PZSW.js} +27 -26
  150. package/chunks/{qwenContentGenerator-A7B6J4U7.js → qwenContentGenerator-KLSURVNH.js} +28 -27
  151. package/chunks/{qwenOAuth2-LWLA6MQG.js → qwenOAuth2-ZV7YLMND.js} +5 -5
  152. package/chunks/{read-file-6JL4ULMY.js → read-file-HDAM3RHJ.js} +8 -8
  153. package/chunks/{read-mcp-resource-PIJF24RO.js → read-mcp-resource-CNQHBSJM.js} +2 -2
  154. package/chunks/record-artifact-PP3LKHTS.js +343 -0
  155. package/chunks/{ripGrep-DIUGLJE5.js → ripGrep-W36NLR7M.js} +26 -25
  156. package/chunks/{run-qwen-serve-CME3AKM4.js → run-qwen-serve-IMI2CQB5.js} +72 -28
  157. package/chunks/{scheduler-L7F6GDDT.js → scheduler-I5NKE5UJ.js} +26 -25
  158. package/chunks/{send-message-33PYFMCT.js → send-message-OA6MV4EU.js} +3 -3
  159. package/chunks/{serve-SRCBOJGP.js → serve-JMHMOYBO.js} +33 -32
  160. package/chunks/{server-QSQ45QFR.js → server-QIYIN34N.js} +1358 -492
  161. package/chunks/{session-5DG6NXHZ.js → session-BLL6HB35.js} +68 -65
  162. package/chunks/{settings-3EEQI4MN.js → settings-ABECXCTY.js} +30 -29
  163. package/chunks/{shell-B7FNYF5S.js → shell-A2TQI3U4.js} +26 -25
  164. package/chunks/{skill-AAOGHD5O.js → skill-4GTWZZWR.js} +10 -10
  165. package/chunks/{spawnChannel-3CBN3ZLK.js → spawnChannel-DFUVGP53.js} +30 -29
  166. package/chunks/{src-T5A7P7FS.js → src-ZORBMUM7.js} +77 -43
  167. package/chunks/{startInteractiveUI-2FGEQ6AS.js → startInteractiveUI-FH5MVXUE.js} +449 -175
  168. package/chunks/{syntheticOutput-YOSWIHDJ.js → syntheticOutput-F7LSDCAR.js} +3 -3
  169. package/chunks/{task-create-NHS2NGB3.js → task-create-RPFZNB4B.js} +7 -7
  170. package/chunks/{task-list-5UIB564R.js → task-list-TGGJX7EA.js} +5 -5
  171. package/chunks/{task-stop-HGXZ2VZ3.js → task-stop-W7NGTMYQ.js} +2 -2
  172. package/chunks/{task-update-IYYWUILG.js → task-update-5WUG5MVQ.js} +7 -7
  173. package/chunks/{team-create-KDF6W6PV.js → team-create-F76QOR6H.js} +26 -25
  174. package/chunks/{team-delete-FEKJCU4P.js → team-delete-UHQQ2QQX.js} +5 -5
  175. package/chunks/{team-plan-approval-PSFKQX7M.js → team-plan-approval-OKM7YZC2.js} +26 -25
  176. package/chunks/{theme-manager-5XOA2AO7.js → theme-manager-6R7EVWHW.js} +27 -26
  177. package/chunks/{todoWrite-TKMVZ2HT.js → todoWrite-C4ZAMSR3.js} +4 -4
  178. package/chunks/{tool-search-LFRILZXC.js → tool-search-UWXDKI7D.js} +9 -9
  179. package/chunks/{trustedFolders-7HQY6T6X.js → trustedFolders-DHASVVUP.js} +27 -26
  180. package/chunks/{validateNonInterActiveAuth-UC27B7BA.js → validateNonInterActiveAuth-56J7MOOP.js} +62 -59
  181. package/chunks/version-NE2I4PBN.js +10 -0
  182. package/chunks/{web-fetch-J4PIW36Q.js → web-fetch-UYGMOHW4.js} +5 -5
  183. package/chunks/{workflow-KUTESS6L.js → workflow-HGF3URV3.js} +35 -27
  184. package/chunks/{workspace-providers-status-LJT5AQDS.js → workspace-providers-status-KXB2OZFQ.js} +33 -32
  185. package/chunks/{workspace-service-YOBYVDXH.js → workspace-service-NSTI55BC.js} +39 -38
  186. package/chunks/workspace-skills-status-X5S6JGQZ.js +69 -0
  187. package/chunks/{write-file-FJYBZUHP.js → write-file-HVKT5VTX.js} +27 -26
  188. package/chunks/yargs-B64EYTCF.js +10 -0
  189. package/chunks/{zh-SLZNSSZB.js → zh-RS3HZHFH.js} +2 -0
  190. package/chunks/{zh-TW-P53C2SL5.js → zh-TW-L5GRQ4S4.js} +2 -0
  191. package/cli-entry.js +81 -8
  192. package/cli.js +348 -55
  193. package/locales/en.js +2 -0
  194. package/locales/zh-TW.js +2 -0
  195. package/locales/zh.js +2 -0
  196. package/node_modules/@qwen-code/audio-capture/package.json +1 -1
  197. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  198. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  199. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  200. package/package.json +3 -3
  201. package/web-shell/assets/{arc-D_rAuMDd.js → arc-Csx4m4N0.js} +1 -1
  202. package/web-shell/assets/{architectureDiagram-3BPJPVTR-DUCzbHVo.js → architectureDiagram-3BPJPVTR-BEa0vCM7.js} +1 -1
  203. package/web-shell/assets/{blockDiagram-GPEHLZMM-BEEBt1LL.js → blockDiagram-GPEHLZMM-BPzbKnn3.js} +1 -1
  204. package/web-shell/assets/{c4Diagram-AAUBKEIU-5ZJ_DeFL.js → c4Diagram-AAUBKEIU-B8YO71yP.js} +1 -1
  205. package/web-shell/assets/channel-QU1XUuVe.js +1 -0
  206. package/web-shell/assets/{chunk-2J33WTMH-Cfw7EiLn.js → chunk-2J33WTMH-32XhwSHt.js} +1 -1
  207. package/web-shell/assets/{chunk-4BX2VUAB-FGuZNCZY.js → chunk-4BX2VUAB-Bmoyo6PS.js} +1 -1
  208. package/web-shell/assets/{chunk-55IACEB6-CaBwYPBF.js → chunk-55IACEB6-TwH6PFhs.js} +1 -1
  209. package/web-shell/assets/{chunk-727SXJPM-BlR04OFz.js → chunk-727SXJPM-RI_IVUtZ.js} +1 -1
  210. package/web-shell/assets/{chunk-AQP2D5EJ-D3_mYJH5.js → chunk-AQP2D5EJ-DH6GIAZD.js} +1 -1
  211. package/web-shell/assets/{chunk-FMBD7UC4-7D4q4SbB.js → chunk-FMBD7UC4-DeD3k3D5.js} +1 -1
  212. package/web-shell/assets/{chunk-ND2GUHAM-BjX_Iwmr.js → chunk-ND2GUHAM-BLPb8nv3.js} +1 -1
  213. package/web-shell/assets/{chunk-QZHKN3VN-C3Hz_ZQh.js → chunk-QZHKN3VN-PZpyglW1.js} +1 -1
  214. package/web-shell/assets/classDiagram-4FO5ZUOK-fv1EWO-L.js +1 -0
  215. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-fv1EWO-L.js +1 -0
  216. package/web-shell/assets/{cose-bilkent-S5V4N54A-Ax4UycaT.js → cose-bilkent-S5V4N54A-Jsd0yKfz.js} +1 -1
  217. package/web-shell/assets/{dagre-BM42HDAG-C6hmPtGt.js → dagre-BM42HDAG-B-zADciZ.js} +1 -1
  218. package/web-shell/assets/{diagram-2AECGRRQ-tXZnxjmw.js → diagram-2AECGRRQ-Cn6GDxoo.js} +1 -1
  219. package/web-shell/assets/{diagram-5GNKFQAL-99dwIzQG.js → diagram-5GNKFQAL-udLgyJxO.js} +1 -1
  220. package/web-shell/assets/{diagram-KO2AKTUF-Bqhn0-2s.js → diagram-KO2AKTUF-EcLpfzy3.js} +1 -1
  221. package/web-shell/assets/{diagram-LMA3HP47-DzThVSvo.js → diagram-LMA3HP47-D-YFbYsJ.js} +1 -1
  222. package/web-shell/assets/{diagram-OG6HWLK6-DPE8vjln.js → diagram-OG6HWLK6-C8oRUATa.js} +1 -1
  223. package/web-shell/assets/{erDiagram-TEJ5UH35-KzUKgQCV.js → erDiagram-TEJ5UH35-DPH5nStc.js} +1 -1
  224. package/web-shell/assets/{flowDiagram-I6XJVG4X-DBN-DXw5.js → flowDiagram-I6XJVG4X-CSOTwkAt.js} +1 -1
  225. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DuBsP9u8.js → ganttDiagram-6RSMTGT7-D0L988t0.js} +1 -1
  226. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BjWHMyKR.js → gitGraphDiagram-PVQCEYII-B9Oo7gxS.js} +1 -1
  227. package/web-shell/assets/index-BYZZL5N7.css +5 -0
  228. package/web-shell/assets/index-C_oTyz0s.js +753 -0
  229. package/web-shell/assets/{infoDiagram-5YYISTIA-BVux0vP6.js → infoDiagram-5YYISTIA-Ddj4YN2P.js} +1 -1
  230. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-2qzw7f--.js → ishikawaDiagram-YF4QCWOH-CBjafcl7.js} +1 -1
  231. package/web-shell/assets/{journeyDiagram-JHISSGLW-Dnl65sxL.js → journeyDiagram-JHISSGLW-Bn3XD99u.js} +1 -1
  232. package/web-shell/assets/{kanban-definition-UN3LZRKU-BElSQYtY.js → kanban-definition-UN3LZRKU-D7PBPJmE.js} +1 -1
  233. package/web-shell/assets/{linear-BjoycSSY.js → linear-Bmfo22rZ.js} +1 -1
  234. package/web-shell/assets/{mermaid.core-xe6bvMRz.js → mermaid.core-xRkAI-EI.js} +5 -5
  235. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D8DQgI4U.js → mindmap-definition-RKZ34NQL-B30zRinm.js} +1 -1
  236. package/web-shell/assets/{pieDiagram-4H26LBE5-Dwh7Gp7c.js → pieDiagram-4H26LBE5-DblnKR9Z.js} +1 -1
  237. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BXKNBln2.js → quadrantDiagram-W4KKPZXB-COkHFKjF.js} +1 -1
  238. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BzaC3cIA.js → requirementDiagram-4Y6WPE33-DDU3MMyn.js} +1 -1
  239. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DP2t7eZk.js → sankeyDiagram-5OEKKPKP-Dt4lqEYv.js} +1 -1
  240. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-XlFiWEYv.js → sequenceDiagram-3UESZ5HK-BRzby5gN.js} +1 -1
  241. package/web-shell/assets/{stateDiagram-AJRCARHV-CupgUMJO.js → stateDiagram-AJRCARHV-CylzByc3.js} +1 -1
  242. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BKWZIKkM.js +1 -0
  243. package/web-shell/assets/{timeline-definition-PNZ67QCA-DstuGywa.js → timeline-definition-PNZ67QCA-BSzaNx6w.js} +1 -1
  244. package/web-shell/assets/{vennDiagram-CIIHVFJN-CnbNp6zu.js → vennDiagram-CIIHVFJN-BbzeKzCo.js} +1 -1
  245. package/web-shell/assets/{wardley-L42UT6IY-DnvoHq6R.js → wardley-L42UT6IY-BRJwCgE_.js} +1 -1
  246. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cz0xHEWB.js → wardleyDiagram-YWT4CUSO-BmAs0mJ-.js} +1 -1
  247. package/web-shell/assets/{xychartDiagram-2RQKCTM6-p36gfo88.js → xychartDiagram-2RQKCTM6-DqywSqVW.js} +1 -1
  248. package/web-shell/index.html +2 -2
  249. package/bundled/loop/SKILL.test.ts +0 -119
  250. package/bundled/loop/autonomous-loop.test.ts +0 -59
  251. package/bundled/loop/loop-task-file.test.ts +0 -1064
  252. package/bundled/loop/loop-tick-resolver.test.ts +0 -906
  253. package/chunks/chunk-EJ7BN3EN.js +0 -11396
  254. package/chunks/chunk-L7QPM2YD.js +0 -481
  255. package/chunks/daemon-status-provider-P72STMLB.js +0 -72
  256. package/chunks/nonInteractiveCli-6BYQSJTB.js +0 -109
  257. package/chunks/workspace-skills-status-ONEPXJV6.js +0 -62
  258. package/web-shell/assets/channel-B5ynH0q8.js +0 -1
  259. package/web-shell/assets/classDiagram-4FO5ZUOK-CK3ibywp.js +0 -1
  260. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CK3ibywp.js +0 -1
  261. package/web-shell/assets/index-9qfvU0_r.css +0 -5
  262. package/web-shell/assets/index-CWzDaQT5.js +0 -717
  263. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-By3E4QwN.js +0 -1
  264. package/chunks/{chunk-UFC57OYT.js → chunk-VRDMOSQS.js} +54 -54
@@ -2,18 +2,23 @@
2
2
  "use strict";
3
3
  import {
4
4
  relaunchApp
5
- } from "./chunk-WALEWZ44.js";
5
+ } from "./chunk-UVHL5TCO.js";
6
6
  import {
7
+ CODE_FENCE_RE,
7
8
  SHELL_COMMAND_NAME,
8
9
  SHELL_NAME,
10
+ TABLE_ROW_RE,
11
+ TABLE_SEPARATOR_RE,
9
12
  TOOL_STATUS,
13
+ fitPendingSlice,
10
14
  formatSupportedModes,
11
15
  getCommandDisplayName,
12
16
  getCommandSourceBadge,
13
17
  getCommandSourceGroup,
14
18
  getCommandSubcommandNames,
19
+ splitMarkdownTableRow,
15
20
  useSessionStats
16
- } from "./chunk-IMAMNLY6.js";
21
+ } from "./chunk-SWV4CVYG.js";
17
22
  import {
18
23
  Colors,
19
24
  RowMouseController,
@@ -22,7 +27,7 @@ import {
22
27
  useMouseEvents,
23
28
  useSettings,
24
29
  useTerminalSize
25
- } from "./chunk-NDY7OENU.js";
30
+ } from "./chunk-KB4ICCA5.js";
26
31
  import {
27
32
  buildResumedHistoryItems,
28
33
  calculateAverageLatency,
@@ -35,17 +40,17 @@ import {
35
40
  levelLabel,
36
41
  useKeypress,
37
42
  wrapForMultiplexer
38
- } from "./chunk-UJT42DB6.js";
43
+ } from "./chunk-DFH4T5IQ.js";
39
44
  import {
40
45
  isTerminalGoalStatusKind
41
46
  } from "./chunk-KSPVDFE4.js";
42
47
  import {
43
48
  MINIMUM_MAX_HEIGHT,
44
49
  MaxSizedBox
45
- } from "./chunk-CBJE2PLG.js";
50
+ } from "./chunk-MLB5AB2I.js";
46
51
  import {
47
52
  theme
48
- } from "./chunk-VXGPYF7U.js";
53
+ } from "./chunk-IFEWJXFS.js";
49
54
  import {
50
55
  Box_default,
51
56
  Static,
@@ -54,14 +59,18 @@ import {
54
59
  require_jsx_runtime,
55
60
  use_is_screen_reader_enabled_default,
56
61
  use_stdin_default
57
- } from "./chunk-XKZXGIRM.js";
62
+ } from "./chunk-YZ2LNTHO.js";
58
63
  import {
59
64
  require_react
60
65
  } from "./chunk-KYMBIKIW.js";
61
66
  import {
62
67
  resolveColor,
63
68
  themeManager
64
- } from "./chunk-HTWHAN44.js";
69
+ } from "./chunk-PC4ZXHU2.js";
70
+ import {
71
+ require_has_flag,
72
+ require_source
73
+ } from "./chunk-3GONHQOA.js";
65
74
  import {
66
75
  cpLen,
67
76
  cpSlice,
@@ -73,31 +82,27 @@ import {
73
82
  stripUnsafeCharacters,
74
83
  toCodePoints,
75
84
  wrapToVisualLines
76
- } from "./chunk-2CAII5HD.js";
77
- import {
78
- require_has_flag,
79
- require_source
80
- } from "./chunk-3GONHQOA.js";
81
- import {
82
- createLoadedSettingsAdapter
83
- } from "./chunk-R3UWLLRQ.js";
85
+ } from "./chunk-J7XUJALJ.js";
84
86
  import {
85
87
  formatDuration,
86
88
  formatMemoryUsage,
87
89
  formatRelativeTime,
88
90
  formatTokenCount
89
91
  } from "./chunk-KHDZHZMH.js";
92
+ import {
93
+ createLoadedSettingsAdapter
94
+ } from "./chunk-M7AGQP5D.js";
90
95
  import {
91
96
  getPersistScopeForModelSelection
92
- } from "./chunk-BC4R5C5R.js";
97
+ } from "./chunk-NLD2WKE3.js";
93
98
  import {
94
99
  getCurrentLanguage,
95
100
  localizeToolDisplayName,
96
101
  t
97
- } from "./chunk-DM4E337C.js";
102
+ } from "./chunk-WNTS5A2R.js";
98
103
  import {
99
104
  isWorkspaceTrusted
100
- } from "./chunk-Z7XNVNPM.js";
105
+ } from "./chunk-YZ5ANQMR.js";
101
106
  import {
102
107
  ALL_PROVIDERS,
103
108
  IdeClient,
@@ -118,20 +123,21 @@ import {
118
123
  resolveMetadataKey,
119
124
  resolveOwnsModel,
120
125
  stripAnsi
121
- } from "./chunk-6QTCOQX7.js";
126
+ } from "./chunk-WOG7QWIT.js";
122
127
  import {
123
128
  MAIN_SOURCE,
124
129
  getMCPServerStatus
125
- } from "./chunk-CHY5C5T4.js";
130
+ } from "./chunk-SJ2CTIYH.js";
126
131
  import {
127
132
  ToolDisplayNames,
128
- ToolNames
129
- } from "./chunk-MTNTVOJR.js";
133
+ ToolNames,
134
+ ToolNamesMigration
135
+ } from "./chunk-X3YGAX7V.js";
130
136
  import {
131
137
  createDebugLogger,
132
138
  escapePath,
133
139
  unescapePath
134
- } from "./chunk-AVQDCKNF.js";
140
+ } from "./chunk-22MNNNXE.js";
135
141
  import {
136
142
  init_esbuild_shims
137
143
  } from "./chunk-A4BMJM77.js";
@@ -5489,12 +5495,21 @@ var TableRenderer = /* @__PURE__ */ __name(({
5489
5495
  rows,
5490
5496
  contentWidth,
5491
5497
  aligns,
5492
- enableInlineMath = false
5498
+ enableInlineMath = false,
5499
+ maxHeight
5493
5500
  }) => {
5494
5501
  const colCount = headers.length;
5495
5502
  if (colCount === 0) {
5496
5503
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Box_default, {});
5497
5504
  }
5505
+ const clampToMaxHeight = /* @__PURE__ */ __name((text) => {
5506
+ if (maxHeight === void 0) return text;
5507
+ const all = text.split("\n");
5508
+ if (all.length <= maxHeight) return text;
5509
+ const kept = all.slice(0, Math.max(1, maxHeight - 1));
5510
+ kept.push(applyColor("\u2026 more rows streaming \u2026", theme.text.secondary));
5511
+ return kept.join("\n");
5512
+ }, "clampToMaxHeight");
5498
5513
  const computeMetrics = /* @__PURE__ */ __name((text) => {
5499
5514
  const rendered = renderMarkdownToAnsi(text, enableInlineMath);
5500
5515
  const visible = stripAnsi(rendered);
@@ -5674,7 +5689,7 @@ var TableRenderer = /* @__PURE__ */ __name(({
5674
5689
  }
5675
5690
  __name(renderVerticalFormat, "renderVerticalFormat");
5676
5691
  if (useVerticalFormat) {
5677
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Box_default, { marginY: 1, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Text, { children: renderVerticalFormat() }) });
5692
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Box_default, { marginY: 1, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Text, { children: clampToMaxHeight(renderVerticalFormat()) }) });
5678
5693
  }
5679
5694
  const headerRendered = headerMetrics.map((m) => m.rendered);
5680
5695
  const tableLines = [];
@@ -5697,9 +5712,9 @@ var TableRenderer = /* @__PURE__ */ __name(({
5697
5712
  ...tableLines.map((line) => getCachedStringWidth(stripAnsi(line)))
5698
5713
  );
5699
5714
  if (maxLineWidth > contentWidth - SAFETY_MARGIN) {
5700
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Box_default, { marginY: 1, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Text, { children: renderVerticalFormat() }) });
5715
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Box_default, { marginY: 1, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Text, { children: clampToMaxHeight(renderVerticalFormat()) }) });
5701
5716
  }
5702
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Box_default, { flexDirection: "column", marginY: 1, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Text, { children: tableLines.join("\n") }) });
5717
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Box_default, { flexDirection: "column", marginY: 1, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Text, { children: clampToMaxHeight(tableLines.join("\n")) }) });
5703
5718
  }, "TableRenderer");
5704
5719
 
5705
5720
  // packages/cli/src/ui/utils/InlineMarkdownRenderer.tsx
@@ -8043,7 +8058,7 @@ var MIN_PENDING_CONTENT_LINES = 1;
8043
8058
  function countMarkdownSourceBlocks(text) {
8044
8059
  const codeBlockLanguageCounts = /* @__PURE__ */ new Map();
8045
8060
  const lines = text.split(/\r?\n/);
8046
- const codeFenceRegex = /^ *(`{3,}|~{3,}) *([^`]*)$/;
8061
+ const codeFenceRegex = CODE_FENCE_RE;
8047
8062
  const mathFenceRegex = /^ *\$\$ *$/;
8048
8063
  let activeCodeFence = null;
8049
8064
  let inMathBlock = false;
@@ -8087,65 +8102,6 @@ var LIST_ITEM_PREFIX_PADDING = 1;
8087
8102
  var LIST_ITEM_TEXT_FLEX_GROW = 1;
8088
8103
  var BLOCKQUOTE_PREFIX_PADDING = 1;
8089
8104
  var MATH_BLOCK_PREFIX_PADDING = 1;
8090
- var INLINE_MATH_MAX_CHARS3 = 1024;
8091
- var TABLE_INLINE_MATH_SPAN_RE = new RegExp(
8092
- String.raw`(?<![\w$])\$(?![\s\d$])(?=[^$\n]{1,${INLINE_MATH_MAX_CHARS3}}\S\$)[^$\n]{1,${INLINE_MATH_MAX_CHARS3}}\$(?![\w$])`,
8093
- "y"
8094
- );
8095
- function readTableInlineMathSpan(row, index) {
8096
- TABLE_INLINE_MATH_SPAN_RE.lastIndex = index;
8097
- return TABLE_INLINE_MATH_SPAN_RE.exec(row)?.[0] ?? null;
8098
- }
8099
- __name(readTableInlineMathSpan, "readTableInlineMathSpan");
8100
- function splitMarkdownTableRow(row) {
8101
- const cells = [];
8102
- let current = "";
8103
- let activeCodeFenceLength = 0;
8104
- for (let index = 0; index < row.length; index++) {
8105
- const char = row[index];
8106
- if (char === "\\") {
8107
- const next = row[index + 1];
8108
- if (next === "|") {
8109
- current += "|";
8110
- index += 1;
8111
- continue;
8112
- }
8113
- current += char;
8114
- continue;
8115
- }
8116
- if (char === "`") {
8117
- let runLength = 1;
8118
- while (row[index + runLength] === "`") {
8119
- runLength += 1;
8120
- }
8121
- if (activeCodeFenceLength === 0) {
8122
- activeCodeFenceLength = runLength;
8123
- } else if (runLength === activeCodeFenceLength) {
8124
- activeCodeFenceLength = 0;
8125
- }
8126
- current += "`".repeat(runLength);
8127
- index += runLength - 1;
8128
- continue;
8129
- }
8130
- if (char === "$" && activeCodeFenceLength === 0) {
8131
- const mathSpan = readTableInlineMathSpan(row, index);
8132
- if (mathSpan) {
8133
- current += mathSpan;
8134
- index += mathSpan.length - 1;
8135
- continue;
8136
- }
8137
- }
8138
- if (char === "|" && activeCodeFenceLength === 0) {
8139
- cells.push(current.trim());
8140
- current = "";
8141
- continue;
8142
- }
8143
- current += char;
8144
- }
8145
- cells.push(current.trim());
8146
- return cells;
8147
- }
8148
- __name(splitMarkdownTableRow, "splitMarkdownTableRow");
8149
8105
  var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
8150
8106
  text,
8151
8107
  isPending,
@@ -8159,18 +8115,31 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
8159
8115
  const renderVisualBlocks = renderMode === "render";
8160
8116
  const displayText = isPending ? text.trimEnd() : text;
8161
8117
  const allLines = displayText.split(/\r?\n/);
8162
- const pendingLineBudget = isPending && availableTerminalHeight !== void 0 ? Math.max(MIN_PENDING_CONTENT_LINES, availableTerminalHeight - 2) : void 0;
8163
- const pendingClipped = pendingLineBudget !== void 0 && allLines.length > pendingLineBudget;
8164
- const lines = pendingClipped ? allLines.slice(0, pendingLineBudget) : allLines;
8118
+ const pendingRenderedBudget = isPending && availableTerminalHeight !== void 0 ? Math.max(MIN_PENDING_CONTENT_LINES, availableTerminalHeight - 2) : void 0;
8165
8119
  const headerRegex = /^ *(#{1,4}) +(.*)/;
8166
- const codeFenceRegex = /^ *(`{3,}|~{3,}) *([^`]*)$/;
8120
+ const codeFenceRegex = CODE_FENCE_RE;
8167
8121
  const ulItemRegex = /^([ \t]*)([-*+]) +(.*)/;
8168
8122
  const olItemRegex = /^([ \t]*)(\d+)\. +(.*)/;
8169
8123
  const hrRegex = /^ *([-*_] *){3,} *$/;
8170
8124
  const blockquoteRegex = /^ *> ?(.*)$/;
8171
8125
  const mathFenceRegex = /^ *\$\$ *$/;
8172
- const tableRowRegex = /^\s*\|(.+)\|\s*$/;
8173
- const tableSeparatorRegex = /^(?=.*\|)\s*\|?\s*(:?-+:?)\s*(\|\s*(:?-+:?)\s*)*\|?\s*$/;
8126
+ const tableRowRegex = TABLE_ROW_RE;
8127
+ const tableSeparatorRegex = TABLE_SEPARATOR_RE;
8128
+ let lines = allLines;
8129
+ let pendingClipped = false;
8130
+ if (pendingRenderedBudget !== void 0) {
8131
+ const tableClampRows = availableTerminalHeight !== void 0 ? Math.max(2, availableTerminalHeight - 3) : Number.MAX_SAFE_INTEGER;
8132
+ const { keptLines, clipped } = fitPendingSlice(
8133
+ allLines,
8134
+ contentWidth,
8135
+ pendingRenderedBudget,
8136
+ tableClampRows
8137
+ );
8138
+ if (clipped) {
8139
+ pendingClipped = true;
8140
+ lines = allLines.slice(0, keptLines);
8141
+ }
8142
+ }
8174
8143
  const parseTableAligns = /* @__PURE__ */ __name((line) => splitMarkdownTableRow(line).filter((cell) => cell.length > 0).map((cell) => {
8175
8144
  const startsWithColon = cell.startsWith(":");
8176
8145
  const endsWithColon = cell.endsWith(":");
@@ -8329,7 +8298,9 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
8329
8298
  rows: tableRows,
8330
8299
  contentWidth,
8331
8300
  aligns: tableAligns,
8332
- enableInlineMath: renderVisualBlocks
8301
+ enableInlineMath: renderVisualBlocks,
8302
+ isPending,
8303
+ availableTerminalHeight
8333
8304
  },
8334
8305
  `table-${contentBlocks.length}`
8335
8306
  )
@@ -8523,7 +8494,9 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
8523
8494
  rows: tableRows,
8524
8495
  contentWidth,
8525
8496
  aligns: tableAligns,
8526
- enableInlineMath: renderVisualBlocks
8497
+ enableInlineMath: renderVisualBlocks,
8498
+ isPending,
8499
+ availableTerminalHeight
8527
8500
  },
8528
8501
  `table-${contentBlocks.length}`
8529
8502
  )
@@ -8740,22 +8713,29 @@ var RenderListItemInternal = /* @__PURE__ */ __name(({
8740
8713
  );
8741
8714
  }, "RenderListItemInternal");
8742
8715
  var RenderListItem = import_react9.default.memo(RenderListItemInternal);
8716
+ var TABLE_PENDING_RESERVED_ROWS = 3;
8743
8717
  var RenderTableInternal = /* @__PURE__ */ __name(({
8744
8718
  headers,
8745
8719
  rows,
8746
8720
  contentWidth,
8747
8721
  aligns,
8748
- enableInlineMath = false
8749
- }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
8750
- TableRenderer,
8751
- {
8752
- headers,
8753
- rows,
8754
- contentWidth,
8755
- aligns,
8756
- enableInlineMath
8757
- }
8758
- ), "RenderTableInternal");
8722
+ enableInlineMath = false,
8723
+ isPending = false,
8724
+ availableTerminalHeight
8725
+ }) => {
8726
+ const maxHeight = isPending && availableTerminalHeight !== void 0 ? Math.max(2, availableTerminalHeight - TABLE_PENDING_RESERVED_ROWS) : void 0;
8727
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
8728
+ TableRenderer,
8729
+ {
8730
+ headers,
8731
+ rows,
8732
+ contentWidth,
8733
+ aligns,
8734
+ enableInlineMath,
8735
+ maxHeight
8736
+ }
8737
+ );
8738
+ }, "RenderTableInternal");
8759
8739
  var RenderTable = import_react9.default.memo(RenderTableInternal);
8760
8740
  var MarkdownDisplay = import_react9.default.memo(MarkdownDisplayInternal);
8761
8741
 
@@ -14231,6 +14211,10 @@ var CompactToolGroupDisplay = /* @__PURE__ */ __name(({ toolCalls, contentWidth
14231
14211
 
14232
14212
  // packages/cli/src/ui/components/messages/ToolMessage.tsx
14233
14213
  var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
14214
+ var AGENT_TOOL_NAMES = /* @__PURE__ */ new Set([
14215
+ ToolNames.AGENT,
14216
+ ...Object.entries(ToolNamesMigration).filter(([, canonical]) => canonical === ToolNames.AGENT).map(([legacy]) => legacy)
14217
+ ]);
14234
14218
  var STATIC_HEIGHT = 1;
14235
14219
  var RESERVED_LINE_COUNT = 5;
14236
14220
  var MIN_LINES_SHOWN = 2;
@@ -14406,6 +14390,10 @@ var SubagentScrollbackSummary = /* @__PURE__ */ __name(({ data }) => {
14406
14390
  `${stats.totalToolCalls} tool${stats.totalToolCalls === 1 ? "" : "s"}`
14407
14391
  );
14408
14392
  }
14393
+ const subagentSpawns = (stats?.toolUsage ?? []).filter((tu) => AGENT_TOOL_NAMES.has(tu.name)).reduce((sum, tu) => sum + tu.success, 0);
14394
+ if (subagentSpawns > 0) {
14395
+ parts.push(`${subagentSpawns} sub-agent${subagentSpawns === 1 ? "" : "s"}`);
14396
+ }
14409
14397
  if (stats?.totalDurationMs !== void 0) {
14410
14398
  parts.push(
14411
14399
  formatDuration(stats.totalDurationMs, { hideTrailingZeros: true })
@@ -4,17 +4,17 @@ import {
4
4
  disableMouseEvents,
5
5
  enableMouseEvents,
6
6
  useKeypressContext
7
- } from "./chunk-UJT42DB6.js";
7
+ } from "./chunk-DFH4T5IQ.js";
8
8
  import {
9
9
  use_stdin_default,
10
10
  use_stdout_default
11
- } from "./chunk-XKZXGIRM.js";
11
+ } from "./chunk-YZ2LNTHO.js";
12
12
  import {
13
13
  require_react
14
14
  } from "./chunk-KYMBIKIW.js";
15
15
  import {
16
16
  themeManager
17
- } from "./chunk-HTWHAN44.js";
17
+ } from "./chunk-PC4ZXHU2.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-A4BMJM77.js";
@@ -5,14 +5,14 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-Y4UQT3PM.js";
8
+ } from "./chunk-FV5SBNNC.js";
9
9
  import {
10
10
  resolvePath
11
- } from "./chunk-NIOPRZNN.js";
11
+ } from "./chunk-E7KNELIZ.js";
12
12
  import {
13
13
  createDebugLogger,
14
14
  isSubpath
15
- } from "./chunk-AVQDCKNF.js";
15
+ } from "./chunk-22MNNNXE.js";
16
16
  import {
17
17
  init_esbuild_shims
18
18
  } from "./chunk-A4BMJM77.js";
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  functionResponsePartsToString
5
- } from "./chunk-4MCC4XHH.js";
5
+ } from "./chunk-Z7EYROOJ.js";
6
6
  import {
7
7
  parseAndFormatApiError
8
- } from "./chunk-6QTCOQX7.js";
8
+ } from "./chunk-WOG7QWIT.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-A4BMJM77.js";
@@ -6,7 +6,7 @@ import {
6
6
  getNestedProperty,
7
7
  getPersistScopeForModelSelection,
8
8
  restoreSettingsFromBackup
9
- } from "./chunk-BC4R5C5R.js";
9
+ } from "./chunk-NLD2WKE3.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-A4BMJM77.js";
@@ -2,22 +2,22 @@
2
2
  "use strict";
3
3
  import {
4
4
  theme
5
- } from "./chunk-VXGPYF7U.js";
5
+ } from "./chunk-IFEWJXFS.js";
6
6
  import {
7
7
  Box_default,
8
8
  Text,
9
9
  require_jsx_runtime
10
- } from "./chunk-XKZXGIRM.js";
10
+ } from "./chunk-YZ2LNTHO.js";
11
11
  import {
12
12
  require_react
13
13
  } from "./chunk-KYMBIKIW.js";
14
14
  import {
15
15
  stringWidth,
16
16
  toCodePoints
17
- } from "./chunk-2CAII5HD.js";
17
+ } from "./chunk-J7XUJALJ.js";
18
18
  import {
19
19
  createDebugLogger
20
- } from "./chunk-AVQDCKNF.js";
20
+ } from "./chunk-22MNNNXE.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-A4BMJM77.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  Storage
5
- } from "./chunk-AVQDCKNF.js";
5
+ } from "./chunk-22MNNNXE.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -5,11 +5,11 @@ import {
5
5
  } from "./chunk-OMX7CUOE.js";
6
6
  import {
7
7
  atomicWriteJSON
8
- } from "./chunk-T42ACHFI.js";
8
+ } from "./chunk-7LTB54MK.js";
9
9
  import {
10
10
  Storage,
11
11
  getProjectHash
12
- } from "./chunk-AVQDCKNF.js";
12
+ } from "./chunk-22MNNNXE.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-A4BMJM77.js";
@@ -160,10 +160,14 @@ async function removeCronTasks(projectRoot, ids) {
160
160
  return removed;
161
161
  }
162
162
  __name(removeCronTasks, "removeCronTasks");
163
+ function isFiniteTimestamp(value) {
164
+ return typeof value === "number" && Number.isFinite(value);
165
+ }
166
+ __name(isFiniteTimestamp, "isFiniteTimestamp");
163
167
  function isValidTask(value) {
164
168
  if (typeof value !== "object" || value === null) return false;
165
169
  const obj = value;
166
- return typeof obj["id"] === "string" && typeof obj["cron"] === "string" && typeof obj["prompt"] === "string" && typeof obj["recurring"] === "boolean" && typeof obj["createdAt"] === "number" && (obj["lastFiredAt"] === null || typeof obj["lastFiredAt"] === "number");
170
+ return typeof obj["id"] === "string" && typeof obj["cron"] === "string" && typeof obj["prompt"] === "string" && typeof obj["recurring"] === "boolean" && isFiniteTimestamp(obj["createdAt"]) && (obj["lastFiredAt"] === null || isFiniteTimestamp(obj["lastFiredAt"]));
167
171
  }
168
172
  __name(isValidTask, "isValidTask");
169
173
 
@@ -6,7 +6,7 @@ import {
6
6
  getLanguageNameFromLocale,
7
7
  getLanguageSettingsOptions,
8
8
  t
9
- } from "./chunk-DM4E337C.js";
9
+ } from "./chunk-WNTS5A2R.js";
10
10
  import {
11
11
  DEFAULT_DARK_THEME_NAME,
12
12
  DEFAULT_LIGHT_THEME_NAME
@@ -25,39 +25,41 @@ import {
25
25
  getSystemDefaultsPath,
26
26
  getSystemSettingsPath,
27
27
  resolveEnvVarsInObject
28
- } from "./chunk-PPFWEV7G.js";
28
+ } from "./chunk-4RQIB5UZ.js";
29
29
  import {
30
30
  isWorkspaceTrusted,
31
31
  updateSettingsFilePreservingFormat
32
- } from "./chunk-Z7XNVNPM.js";
32
+ } from "./chunk-YZ5ANQMR.js";
33
33
  import {
34
34
  require_strip_json_comments
35
35
  } from "./chunk-QYUE6W3T.js";
36
36
  import {
37
+ DEFAULT_MAX_SUBAGENT_DEPTH,
38
+ DEFAULT_MAX_TOOL_CALLS_PER_TURN,
37
39
  DEFAULT_STOP_HOOK_BLOCK_CAP,
38
40
  DEFAULT_TOOL_OUTPUT_BATCH_BUDGET,
39
41
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
40
42
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
41
43
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
42
44
  stripRuntimeSnapshotPrefix
43
- } from "./chunk-6QTCOQX7.js";
45
+ } from "./chunk-WOG7QWIT.js";
44
46
  import {
45
47
  require_main
46
48
  } from "./chunk-SKAZWEV5.js";
47
49
  import {
48
50
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
49
- } from "./chunk-TOAUDIS7.js";
51
+ } from "./chunk-TLWA7TPR.js";
50
52
  import {
51
53
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
52
54
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
53
- } from "./chunk-CHY5C5T4.js";
55
+ } from "./chunk-SJ2CTIYH.js";
54
56
  import {
55
57
  FatalConfigError,
56
58
  QWEN_DIR,
57
59
  Storage,
58
60
  createDebugLogger,
59
61
  getErrorMessage
60
- } from "./chunk-AVQDCKNF.js";
62
+ } from "./chunk-22MNNNXE.js";
61
63
  import {
62
64
  init_esbuild_shims
63
65
  } from "./chunk-A4BMJM77.js";
@@ -1170,6 +1172,15 @@ var SETTINGS_SCHEMA = {
1170
1172
  description: 'Cumulative tool-call budget for a run (counts every executed tool, success or failure; structured_output under --json-schema is exempt). -1 means unlimited; 0 means "no tool calls allowed" (first call aborts). Capped at 1,000,000 to catch typos. Overridable via --max-tool-calls.',
1171
1173
  showInDialog: false
1172
1174
  },
1175
+ maxSubagentDepth: {
1176
+ type: "number",
1177
+ label: "Max Sub-agent Nesting Depth",
1178
+ category: "Model",
1179
+ requiresRestart: false,
1180
+ default: DEFAULT_MAX_SUBAGENT_DEPTH,
1181
+ description: "Maximum sub-agent nesting depth (1-based levels: a top-level sub-agent is level 1). 1 keeps sub-agents available but disables nesting; the default 5 allows nesting up to five levels deep. Values clamp to the range 1-100; non-finite values fall back to the default. Teammates, forks, and workflow-spawned agents never nest regardless of this setting. Overridable via --max-subagent-depth.",
1182
+ showInDialog: false
1183
+ },
1173
1184
  chatCompression: {
1174
1185
  type: "object",
1175
1186
  label: "Chat Compression",
@@ -1212,7 +1223,16 @@ var SETTINGS_SCHEMA = {
1212
1223
  category: "Model",
1213
1224
  requiresRestart: false,
1214
1225
  default: true,
1215
- description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail. A minimal always-on guard (consecutive identical tool calls plus a per-turn tool-call cap) still runs regardless of this setting.",
1226
+ description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail. A minimal always-on guard (consecutive identical tool calls plus a per-turn tool-call cap, see model.maxToolCallsPerTurn) still runs regardless of this setting.",
1227
+ showInDialog: false
1228
+ },
1229
+ maxToolCallsPerTurn: {
1230
+ type: "number",
1231
+ label: "Max Tool Calls Per Turn",
1232
+ category: "Model",
1233
+ requiresRestart: false,
1234
+ default: DEFAULT_MAX_TOOL_CALLS_PER_TURN,
1235
+ description: "Hard cap on tool calls within a single turn (one model turn plus its tool-result continuations; blocking Stop-hook continuations such as /goal iterations start a fresh budget). An always-on circuit breaker against runaway turns, independent of model.skipLoopDetection. Set to 0 or a negative value to disable the cap.",
1216
1236
  showInDialog: false
1217
1237
  },
1218
1238
  skipStartupContext: {
@@ -2623,6 +2643,22 @@ var SETTINGS_SCHEMA = {
2623
2643
  description: "Enable in-session cron/loop tools. When enabled, the model can create recurring prompts using cron_create, cron_list, and cron_delete tools. Can be disabled via QWEN_CODE_DISABLE_CRON=1 environment variable.",
2624
2644
  showInDialog: true
2625
2645
  },
2646
+ cronRecurringMaxAgeDays: {
2647
+ type: "number",
2648
+ label: "Recurring Cron Max Age (Days)",
2649
+ category: "Experimental",
2650
+ requiresRestart: true,
2651
+ default: 7,
2652
+ description: "Days a recurring cron/loop job lives before auto-expiring (it fires one final time, then is deleted). Set to 0 to disable expiry so jobs run until deleted \u2014 useful for long-running daemon deployments. Can be overridden via the QWEN_CODE_CRON_MAX_AGE_DAYS environment variable.",
2653
+ // A deployment-time knob (cloud daemons, containers), not a common
2654
+ // interactive preference.
2655
+ showInDialog: false,
2656
+ jsonSchemaOverride: {
2657
+ type: "number",
2658
+ minimum: 0,
2659
+ default: 7
2660
+ }
2661
+ },
2626
2662
  agentTeam: {
2627
2663
  type: "boolean",
2628
2664
  label: "Enable Agent Team",
@@ -2638,7 +2674,7 @@ var SETTINGS_SCHEMA = {
2638
2674
  category: "Experimental",
2639
2675
  requiresRestart: true,
2640
2676
  default: false,
2641
- description: "Enable the Artifact tool (experimental). When enabled, the model can publish a self-contained HTML page as an interactive Artifact and open it in the browser. Interactive, non-SDK sessions only. Can also be enabled via QWEN_CODE_ENABLE_ARTIFACT=1, or hard-disabled via QWEN_CODE_DISABLE_ARTIFACT=1.",
2677
+ description: "Enable the Artifact tool (experimental). When enabled, the model can publish a self-contained HTML page as an interactive Artifact and open it in the browser. Interactive, non-SDK sessions only. QWEN_CODE_ENABLE_ARTIFACT=1 enables the metadata-only record_artifact tool for non-SDK daemon sessions, and also enables the Artifact tool in interactive sessions. QWEN_CODE_DISABLE_ARTIFACT=1 hard-disables both.",
2642
2678
  showInDialog: true
2643
2679
  },
2644
2680
  emitToolUseSummaries: {
@@ -4122,7 +4158,9 @@ function loadEnvironment(settings, startDir = process.cwd()) {
4122
4158
  if (!isQwenScopedEnvFile && excludedVars.includes(key)) {
4123
4159
  continue;
4124
4160
  }
4125
- if (!Object.hasOwn(process.env, key)) {
4161
+ const existingValue = process.env[key];
4162
+ const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
4163
+ if (isEffectivelyUnset) {
4126
4164
  process.env[key] = parsedEnv[key];
4127
4165
  dotEnvSourcedKeys.add(key);
4128
4166
  }
@@ -4139,7 +4177,9 @@ function loadEnvironment(settings, startDir = process.cwd()) {
4139
4177
  if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
4140
4178
  continue;
4141
4179
  }
4142
- if (!Object.hasOwn(process.env, key) && typeof value === "string") {
4180
+ const existingValue = process.env[key];
4181
+ const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
4182
+ if (isEffectivelyUnset && typeof value === "string") {
4143
4183
  process.env[key] = value;
4144
4184
  settingsEnvSourcedKeys.add(key);
4145
4185
  }
@@ -4188,7 +4228,8 @@ function reloadEnvironment(settings, workspaceCwd) {
4188
4228
  if (RELOAD_EXCLUDED_KEYS.has(key)) continue;
4189
4229
  if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) continue;
4190
4230
  if (typeof value !== "string") continue;
4191
- if (newDotEnvKeys.has(key)) continue;
4231
+ const dotEnvValue = newDotEnvKeys.get(key);
4232
+ if (dotEnvValue !== void 0 && dotEnvValue !== "") continue;
4192
4233
  if (dotEnvReadFailed && lastReloadSnapshot.has(key)) continue;
4193
4234
  newSettingsEnvKeys.set(key, value);
4194
4235
  }
@@ -4213,6 +4254,7 @@ function reloadEnvironment(settings, workspaceCwd) {
4213
4254
  }
4214
4255
  }
4215
4256
  for (const [key, value] of newDotEnvKeys) {
4257
+ if (value === "" && newSettingsEnvKeys.has(key)) continue;
4216
4258
  if (process.env[key] !== value) {
4217
4259
  updatedKeys.push(key);
4218
4260
  }
@@ -4940,6 +4982,7 @@ export {
4940
4982
  resetHomeEnvBootstrapForTesting,
4941
4983
  resetEnvironmentTrackingForTesting,
4942
4984
  getHomeEnvFallbackVars,
4985
+ findEnvFiles,
4943
4986
  setUpCloudShellEnvironment,
4944
4987
  loadEnvironment,
4945
4988
  reloadEnvironment,