@qwen-code/qwen-code 0.19.5 → 0.19.6

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 (233) 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 +9 -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/chunks/{MaxSizedBox-5JV77KRA.js → MaxSizedBox-SK7CUWZQ.js} +14 -14
  12. package/chunks/{StandaloneSessionPicker-MGUGB6PH.js → StandaloneSessionPicker-G44HGSAP.js} +25 -25
  13. package/chunks/{acpAgent-4F36XM3X.js → acpAgent-PKCTYWJV.js} +346 -131
  14. package/chunks/{agent-IWBUZI6A.js → agent-IYMHUXWB.js} +11 -11
  15. package/chunks/{agent-headless-JUTICAYO.js → agent-headless-L2DAW6I5.js} +11 -11
  16. package/chunks/{anthropicContentGenerator-WL3LJOUB.js → anthropicContentGenerator-H5ZOEENQ.js} +2 -2
  17. package/chunks/{artifact-tool-W76WC2JX.js → artifact-tool-SLYPWG3C.js} +15 -2
  18. package/chunks/{askUserQuestion-J3P6TH3V.js → askUserQuestion-OKPTECON.js} +1 -1
  19. package/chunks/{bridge-DHZHQ4UV.js → bridge-DF3IJQ5V.js} +17 -16
  20. package/chunks/{channel-worker-supervisor-EVPAYNZ5.js → channel-worker-supervisor-JUYQ5Z4R.js} +5 -5
  21. package/chunks/chunk-2INJBYLJ.js +949 -0
  22. package/chunks/chunk-3RW4AZJV.js +5063 -0
  23. package/chunks/{chunk-NSSVORTQ.js → chunk-3UC7ZC43.js} +16 -12
  24. package/chunks/chunk-3VJ7MT3N.js +111 -0
  25. package/chunks/{chunk-DRS2HTNT.js → chunk-3X76L4UF.js} +5 -5
  26. package/chunks/{chunk-PPFWEV7G.js → chunk-4RQIB5UZ.js} +62 -62
  27. package/chunks/{chunk-EROWZQN7.js → chunk-57NRQM3P.js} +6 -6
  28. package/chunks/{chunk-L7OJ3ZO3.js → chunk-5ES5YPED.js} +1 -1
  29. package/chunks/{chunk-RNGAT2Y2.js → chunk-5WQF27GW.js} +1 -1
  30. package/chunks/{chunk-7DMQRPC7.js → chunk-6BEOH4KK.js} +1 -1
  31. package/chunks/{chunk-CXBG27SF.js → chunk-6IAWPIQ6.js} +3 -2
  32. package/chunks/{chunk-DM4E337C.js → chunk-6QVRLKTZ.js} +4 -4
  33. package/chunks/{chunk-RM3PGSGL.js → chunk-6SHO7WFF.js} +15 -2
  34. package/chunks/{chunk-LHMZCIKL.js → chunk-7Z6UEJA4.js} +3 -1
  35. package/chunks/{chunk-SBMHB6N5.js → chunk-A34EPIUV.js} +12 -12
  36. package/chunks/{chunk-6QTCOQX7.js → chunk-AGZF43UV.js} +1967 -1399
  37. package/chunks/{chunk-QHYITL6P.js → chunk-BOAWGUY6.js} +5 -11
  38. package/chunks/{chunk-TN6RT6EJ.js → chunk-C2QKQZEQ.js} +16 -4
  39. package/chunks/{chunk-BC4R5C5R.js → chunk-CEYA7K7C.js} +32 -6
  40. package/chunks/{chunk-R6RI2HIC.js → chunk-CLQPBI4H.js} +40 -13
  41. package/chunks/{chunk-OQHLUA2Y.js → chunk-DBF3HTLT.js} +3 -3
  42. package/chunks/{chunk-SJBIFVD2.js → chunk-DMSNJDWG.js} +5 -1
  43. package/chunks/{chunk-KKQWC6WS.js → chunk-DNV4FSN5.js} +1 -1
  44. package/chunks/chunk-DXXNMPJH.js +5468 -0
  45. package/chunks/{chunk-CBJE2PLG.js → chunk-FDY3XOTM.js} +2 -2
  46. package/chunks/{chunk-NDY7OENU.js → chunk-FPHA7WIZ.js} +2 -2
  47. package/chunks/{chunk-MNOXKSM2.js → chunk-FZ5NVRVK.js} +1 -1
  48. package/chunks/{chunk-UJT42DB6.js → chunk-GQBRGBLS.js} +5 -5
  49. package/chunks/{chunk-Y4UQT3PM.js → chunk-HCFSKO6K.js} +1 -1
  50. package/chunks/{chunk-2Z43HUXT.js → chunk-HLKG6CZN.js} +3 -2
  51. package/chunks/{chunk-WALEWZ44.js → chunk-IUSKVKH5.js} +1 -1
  52. package/chunks/{chunk-XKSCTXPK.js → chunk-J6ABRKAB.js} +2 -1
  53. package/chunks/{chunk-DX3TKXNT.js → chunk-JA5KWZTJ.js} +1 -1
  54. package/chunks/{chunk-CHY5C5T4.js → chunk-JN2VJ33O.js} +171 -79
  55. package/chunks/{chunk-YTFBURQD.js → chunk-KYTQOCDE.js} +1 -1
  56. package/chunks/{chunk-BPFJQGY7.js → chunk-LM3YCCZJ.js} +164 -5
  57. package/chunks/{chunk-ZISMVA6U.js → chunk-LXFCHX4X.js} +1371 -24
  58. package/chunks/{chunk-6KPZJJ6U.js → chunk-MBWLP5OT.js} +9 -9
  59. package/chunks/{chunk-IMAMNLY6.js → chunk-MHQKYQDS.js} +3 -3
  60. package/chunks/{chunk-M5ITDKSM.js → chunk-MJKEQSZI.js} +1 -1
  61. package/chunks/{chunk-MTNTVOJR.js → chunk-MJKMIQMK.js} +5 -2
  62. package/chunks/{chunk-CSPSJU5R.js → chunk-MX7CTJHR.js} +16 -16
  63. package/chunks/{chunk-HISPEX42.js → chunk-N2IJLN2L.js} +7 -7
  64. package/chunks/{chunk-YCU7QV7Q.js → chunk-N4YJQTRL.js} +4 -0
  65. package/chunks/{chunk-R3UWLLRQ.js → chunk-NUK2PFSU.js} +1 -1
  66. package/chunks/{chunk-YXK4GPYO.js → chunk-NVFJSIAX.js} +29 -0
  67. package/chunks/{chunk-4MCC4XHH.js → chunk-O2RJARYU.js} +38 -37
  68. package/chunks/{chunk-JKGCBO3O.js → chunk-OAYOHSGP.js} +3 -3
  69. package/chunks/{chunk-G4M7FPNY.js → chunk-OBVBTAX5.js} +1 -1
  70. package/chunks/{chunk-JJ6B3ZD3.js → chunk-OIFSBXSP.js} +2 -2
  71. package/chunks/{chunk-NNEJEBCF.js → chunk-QOKV6AO4.js} +30 -21
  72. package/chunks/{chunk-DG573EOO.js → chunk-RZORUN6X.js} +1 -1
  73. package/chunks/{chunk-RSBQS6M4.js → chunk-SL2P3JUA.js} +1 -1
  74. package/chunks/{chunk-K4I4STSL.js → chunk-SOT7OMGL.js} +2 -2
  75. package/chunks/{chunk-MDBNFHIO.js → chunk-SRNPMG7J.js} +3 -3
  76. package/chunks/{chunk-SJVPSHXU.js → chunk-UNXGEDX2.js} +4 -4
  77. package/chunks/{chunk-WZ724G6K.js → chunk-UTL7KABL.js} +5 -5
  78. package/chunks/{chunk-UY2TCIZS.js → chunk-V5VTULL5.js} +2 -2
  79. package/chunks/{chunk-Z7XNVNPM.js → chunk-V6NH3CUC.js} +1 -1
  80. package/chunks/{chunk-J3ERRYYI.js → chunk-WXUDZHOJ.js} +2 -2
  81. package/chunks/{chunk-2CAII5HD.js → chunk-XH7H6YG4.js} +1 -1
  82. package/chunks/{chunk-XKZXGIRM.js → chunk-YSU33ACT.js} +2 -2
  83. package/chunks/{chunk-6QVQZAW6.js → chunk-YTWX5TT2.js} +1 -1
  84. package/chunks/{chunk-5B2WNM6V.js → chunk-ZI4MGBB5.js} +1 -1
  85. package/chunks/{chunk-2YH27UNF.js → chunk-ZO5EA3XJ.js} +1 -1
  86. package/chunks/{computer-use-ON3JQUHW.js → computer-use-5S3NVXRA.js} +11 -11
  87. package/chunks/{contextCommand-OGCG7W6N.js → contextCommand-DPBALZFK.js} +13 -13
  88. package/chunks/{cron-create-6YTCOX6P.js → cron-create-7JYUDTUY.js} +20 -5
  89. package/chunks/{cron-delete-E3NIFSUK.js → cron-delete-YPULQQAK.js} +2 -2
  90. package/chunks/{cron-list-Q64MNQNE.js → cron-list-HJIW5MHP.js} +2 -2
  91. package/chunks/{daemon-EEB2RYOL.js → daemon-7XYW4BC3.js} +102 -0
  92. package/chunks/{daemon-status-provider-P72STMLB.js → daemon-status-provider-2EWTHT7Y.js} +20 -19
  93. package/chunks/{dist-AP5V4WYU.js → dist-AAO65DPC.js} +2 -2
  94. package/chunks/{dist-X4ZDE726.js → dist-ABQ7VWRR.js} +3 -3
  95. package/chunks/{dist-SNXOUPYS.js → dist-AW5ZYMUI.js} +2 -2
  96. package/chunks/{dist-Z57Q4YF5.js → dist-BV56HW3W.js} +276 -95
  97. package/chunks/{dist-IZP2VV4C.js → dist-JPSVN367.js} +2 -2
  98. package/chunks/{earlyInputCapture-DAFHSGVW.js → earlyInputCapture-GGPV4IFT.js} +11 -11
  99. package/chunks/{edit-3QFNCSZH.js → edit-HJ7ISN4C.js} +12 -12
  100. package/chunks/{en-M4EBUBNU.js → en-XR3S5VWY.js} +1 -0
  101. package/chunks/{enter-worktree-62EQQMLD.js → enter-worktree-2BQT675D.js} +11 -11
  102. package/chunks/{enterPlanMode-VUQSE4EG.js → enterPlanMode-SJXHJ3WD.js} +11 -11
  103. package/chunks/{errors-PW75PZXE.js → errors-EVGER4AZ.js} +13 -13
  104. package/chunks/{exit-worktree-VVNH7OVY.js → exit-worktree-RPDDOSPM.js} +11 -11
  105. package/chunks/{exitPlanMode-RUYRCYZW.js → exitPlanMode-BQEROAJ7.js} +11 -11
  106. package/chunks/{fast-path-TFRJRTTR.js → fast-path-FX2ICJ2O.js} +3 -3
  107. package/chunks/{fast-path-settings-UQLRFDQP.js → fast-path-settings-RCRXH2JG.js} +2 -2
  108. package/chunks/{gemini-XW7ZDUVR.js → gemini-EHUXCOUI.js} +69 -64
  109. package/chunks/{geminiContentGenerator-MZDVHVZH.js → geminiContentGenerator-YDUUKAM2.js} +1 -1
  110. package/chunks/{glob-WAY2PUWA.js → glob-3VIGV2DL.js} +11 -11
  111. package/chunks/{grep-W6CBKSYC.js → grep-4D3S4NUC.js} +11 -11
  112. package/chunks/{initializer-HK2XE6P2.js → initializer-QZTZSSLW.js} +16 -16
  113. package/chunks/{list-RVLIIKKL.js → list-WQ24EAMK.js} +18 -18
  114. package/chunks/{loadedSettingsAdapter-C63OUYZC.js → loadedSettingsAdapter-XV74KOSR.js} +16 -16
  115. package/chunks/{loop-wakeup-G2EHBRGR.js → loop-wakeup-34YK7T7O.js} +3 -3
  116. package/chunks/{ls-IDHUVSAG.js → ls-MPD5OJUX.js} +1 -1
  117. package/chunks/{lsp-FSRYXGFT.js → lsp-72PWTDW7.js} +1 -1
  118. package/chunks/{workspace-skills-status-ONEPXJV6.js → mcp-CO3MKM7N.js} +20 -16
  119. package/chunks/{monitor-FOG36ABM.js → monitor-GB56T65A.js} +11 -11
  120. package/chunks/{nonInteractiveCli-6BYQSJTB.js → nonInteractiveCli-HNZRIM5I.js} +46 -44
  121. package/chunks/{notebook-edit-GC6NXRCX.js → notebook-edit-VMXAAE3R.js} +12 -12
  122. package/chunks/{openaiContentGenerator-EXR3ZL3Z.js → openaiContentGenerator-GM77FLII.js} +6 -6
  123. package/chunks/{pidfile-FNZM2DDH.js → pidfile-HFXSHR64.js} +11 -11
  124. package/chunks/{qwenContentGenerator-A7B6J4U7.js → qwenContentGenerator-QSCXQIKJ.js} +13 -13
  125. package/chunks/{read-file-6JL4ULMY.js → read-file-SVH6CGQY.js} +3 -3
  126. package/chunks/{read-mcp-resource-PIJF24RO.js → read-mcp-resource-OWOBJY72.js} +1 -1
  127. package/chunks/record-artifact-URK3YUDJ.js +343 -0
  128. package/chunks/{ripGrep-DIUGLJE5.js → ripGrep-JD5O2FLX.js} +11 -11
  129. package/chunks/{run-qwen-serve-CME3AKM4.js → run-qwen-serve-FADLRJUN.js} +67 -28
  130. package/chunks/{scheduler-L7F6GDDT.js → scheduler-Q65SB7DJ.js} +11 -11
  131. package/chunks/{send-message-33PYFMCT.js → send-message-L7OLQEKH.js} +2 -2
  132. package/chunks/{serve-SRCBOJGP.js → serve-6ZXAMQ4M.js} +18 -18
  133. package/chunks/{server-QSQ45QFR.js → server-WKDQA6XR.js} +1184 -490
  134. package/chunks/{session-5DG6NXHZ.js → session-STWOX7RA.js} +48 -46
  135. package/chunks/{settings-3EEQI4MN.js → settings-LC4CCWQQ.js} +15 -15
  136. package/chunks/{shell-B7FNYF5S.js → shell-FEG3RLPW.js} +11 -11
  137. package/chunks/{skill-AAOGHD5O.js → skill-XTXAMDAP.js} +4 -4
  138. package/chunks/{spawnChannel-3CBN3ZLK.js → spawnChannel-B6JJPBPV.js} +15 -15
  139. package/chunks/{src-T5A7P7FS.js → src-HITDGVRM.js} +47 -21
  140. package/chunks/{startInteractiveUI-2FGEQ6AS.js → startInteractiveUI-IT423PW4.js} +354 -152
  141. package/chunks/{syntheticOutput-YOSWIHDJ.js → syntheticOutput-J3MLCQAR.js} +2 -2
  142. package/chunks/{task-create-NHS2NGB3.js → task-create-ELEBZ7H2.js} +3 -3
  143. package/chunks/{task-list-5UIB564R.js → task-list-IEUZLF3Y.js} +1 -1
  144. package/chunks/{task-stop-HGXZ2VZ3.js → task-stop-QEZW3UDY.js} +1 -1
  145. package/chunks/{task-update-IYYWUILG.js → task-update-DW36J5P5.js} +3 -3
  146. package/chunks/{team-create-KDF6W6PV.js → team-create-DAG6SNHZ.js} +11 -11
  147. package/chunks/{team-delete-FEKJCU4P.js → team-delete-SVITIMBO.js} +1 -1
  148. package/chunks/{team-plan-approval-PSFKQX7M.js → team-plan-approval-DRDY5OPC.js} +11 -11
  149. package/chunks/{theme-manager-5XOA2AO7.js → theme-manager-N67EZC6B.js} +11 -11
  150. package/chunks/{todoWrite-TKMVZ2HT.js → todoWrite-SFFQHZYY.js} +2 -2
  151. package/chunks/{tool-search-LFRILZXC.js → tool-search-CMDJ5HGM.js} +4 -4
  152. package/chunks/{trustedFolders-7HQY6T6X.js → trustedFolders-JD4QX6UJ.js} +12 -12
  153. package/chunks/{validateNonInterActiveAuth-UC27B7BA.js → validateNonInterActiveAuth-ADDCGZ6A.js} +43 -41
  154. package/chunks/version-VAONYVE5.js +10 -0
  155. package/chunks/{web-fetch-J4PIW36Q.js → web-fetch-SXAXJHIO.js} +2 -2
  156. package/chunks/{workflow-KUTESS6L.js → workflow-DG2BR42M.js} +20 -13
  157. package/chunks/{workspace-providers-status-LJT5AQDS.js → workspace-providers-status-XGW5OZTD.js} +18 -18
  158. package/chunks/{workspace-service-YOBYVDXH.js → workspace-service-GX3GGZLU.js} +23 -23
  159. package/chunks/workspace-skills-status-LFK5WV2V.js +68 -0
  160. package/chunks/{write-file-FJYBZUHP.js → write-file-UR7FXWOU.js} +12 -12
  161. package/chunks/yargs-B64EYTCF.js +10 -0
  162. package/chunks/{zh-SLZNSSZB.js → zh-FSVJTXA4.js} +1 -0
  163. package/chunks/{zh-TW-P53C2SL5.js → zh-TW-66MG4LWL.js} +1 -0
  164. package/cli-entry.js +81 -8
  165. package/cli.js +348 -55
  166. package/locales/en.js +1 -0
  167. package/locales/zh-TW.js +1 -0
  168. package/locales/zh.js +1 -0
  169. package/node_modules/@qwen-code/audio-capture/package.json +1 -1
  170. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  171. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  172. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  173. package/package.json +3 -3
  174. package/web-shell/assets/{arc-D_rAuMDd.js → arc-CUpe0ibu.js} +1 -1
  175. package/web-shell/assets/{architectureDiagram-3BPJPVTR-DUCzbHVo.js → architectureDiagram-3BPJPVTR-JvyrY_mK.js} +1 -1
  176. package/web-shell/assets/{blockDiagram-GPEHLZMM-BEEBt1LL.js → blockDiagram-GPEHLZMM-CK3Y_vom.js} +1 -1
  177. package/web-shell/assets/{c4Diagram-AAUBKEIU-5ZJ_DeFL.js → c4Diagram-AAUBKEIU-DprSnyrf.js} +1 -1
  178. package/web-shell/assets/channel-BAxQ2-aZ.js +1 -0
  179. package/web-shell/assets/{chunk-2J33WTMH-Cfw7EiLn.js → chunk-2J33WTMH-DJtRJPmu.js} +1 -1
  180. package/web-shell/assets/{chunk-4BX2VUAB-FGuZNCZY.js → chunk-4BX2VUAB-ON6Q2-BG.js} +1 -1
  181. package/web-shell/assets/{chunk-55IACEB6-CaBwYPBF.js → chunk-55IACEB6-c60ou5HZ.js} +1 -1
  182. package/web-shell/assets/{chunk-727SXJPM-BlR04OFz.js → chunk-727SXJPM-BamtPKxx.js} +1 -1
  183. package/web-shell/assets/{chunk-AQP2D5EJ-D3_mYJH5.js → chunk-AQP2D5EJ-CsVgpu-T.js} +1 -1
  184. package/web-shell/assets/{chunk-FMBD7UC4-7D4q4SbB.js → chunk-FMBD7UC4-vZrpjAx4.js} +1 -1
  185. package/web-shell/assets/{chunk-ND2GUHAM-BjX_Iwmr.js → chunk-ND2GUHAM-qxyNOd5t.js} +1 -1
  186. package/web-shell/assets/{chunk-QZHKN3VN-C3Hz_ZQh.js → chunk-QZHKN3VN-BvTJSM_S.js} +1 -1
  187. package/web-shell/assets/classDiagram-4FO5ZUOK-Cvd_xhZI.js +1 -0
  188. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvd_xhZI.js +1 -0
  189. package/web-shell/assets/{cose-bilkent-S5V4N54A-Ax4UycaT.js → cose-bilkent-S5V4N54A-1tXB4pju.js} +1 -1
  190. package/web-shell/assets/{dagre-BM42HDAG-C6hmPtGt.js → dagre-BM42HDAG-DglBzme8.js} +1 -1
  191. package/web-shell/assets/{diagram-2AECGRRQ-tXZnxjmw.js → diagram-2AECGRRQ-DEJpqsWz.js} +1 -1
  192. package/web-shell/assets/{diagram-5GNKFQAL-99dwIzQG.js → diagram-5GNKFQAL-CsQ1NrMG.js} +1 -1
  193. package/web-shell/assets/{diagram-KO2AKTUF-Bqhn0-2s.js → diagram-KO2AKTUF-Z-3codAi.js} +1 -1
  194. package/web-shell/assets/{diagram-LMA3HP47-DzThVSvo.js → diagram-LMA3HP47-mBuPTA2i.js} +1 -1
  195. package/web-shell/assets/{diagram-OG6HWLK6-DPE8vjln.js → diagram-OG6HWLK6-tcA3K3s9.js} +1 -1
  196. package/web-shell/assets/{erDiagram-TEJ5UH35-KzUKgQCV.js → erDiagram-TEJ5UH35-D9bXFRyZ.js} +1 -1
  197. package/web-shell/assets/{flowDiagram-I6XJVG4X-DBN-DXw5.js → flowDiagram-I6XJVG4X-Ck0Py04s.js} +1 -1
  198. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DuBsP9u8.js → ganttDiagram-6RSMTGT7-rOevCekE.js} +1 -1
  199. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BjWHMyKR.js → gitGraphDiagram-PVQCEYII-CoPQaLj0.js} +1 -1
  200. package/web-shell/assets/index-Cr7MYW6T.css +5 -0
  201. package/web-shell/assets/index-DCHPAUp3.js +730 -0
  202. package/web-shell/assets/{infoDiagram-5YYISTIA-BVux0vP6.js → infoDiagram-5YYISTIA-a77CUKoI.js} +1 -1
  203. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-2qzw7f--.js → ishikawaDiagram-YF4QCWOH-DlLgUAO-.js} +1 -1
  204. package/web-shell/assets/{journeyDiagram-JHISSGLW-Dnl65sxL.js → journeyDiagram-JHISSGLW-BXR5kVAZ.js} +1 -1
  205. package/web-shell/assets/{kanban-definition-UN3LZRKU-BElSQYtY.js → kanban-definition-UN3LZRKU-h5CoHZg7.js} +1 -1
  206. package/web-shell/assets/{linear-BjoycSSY.js → linear-BkaREbyD.js} +1 -1
  207. package/web-shell/assets/{mermaid.core-xe6bvMRz.js → mermaid.core-Bkagz0ng.js} +5 -5
  208. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D8DQgI4U.js → mindmap-definition-RKZ34NQL-D7EMKR_5.js} +1 -1
  209. package/web-shell/assets/{pieDiagram-4H26LBE5-Dwh7Gp7c.js → pieDiagram-4H26LBE5-DAmPOjsL.js} +1 -1
  210. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BXKNBln2.js → quadrantDiagram-W4KKPZXB-e4WFQkQu.js} +1 -1
  211. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BzaC3cIA.js → requirementDiagram-4Y6WPE33-v1zo7OiV.js} +1 -1
  212. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DP2t7eZk.js → sankeyDiagram-5OEKKPKP-Bstm4aW_.js} +1 -1
  213. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-XlFiWEYv.js → sequenceDiagram-3UESZ5HK-DzcZy6xN.js} +1 -1
  214. package/web-shell/assets/{stateDiagram-AJRCARHV-CupgUMJO.js → stateDiagram-AJRCARHV-BEJH6YbH.js} +1 -1
  215. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BopifCBI.js +1 -0
  216. package/web-shell/assets/{timeline-definition-PNZ67QCA-DstuGywa.js → timeline-definition-PNZ67QCA-TI1wH-Pm.js} +1 -1
  217. package/web-shell/assets/{vennDiagram-CIIHVFJN-CnbNp6zu.js → vennDiagram-CIIHVFJN-YaH8VDMS.js} +1 -1
  218. package/web-shell/assets/{wardley-L42UT6IY-DnvoHq6R.js → wardley-L42UT6IY-B80co7OP.js} +1 -1
  219. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cz0xHEWB.js → wardleyDiagram-YWT4CUSO-4fHNDEMl.js} +1 -1
  220. package/web-shell/assets/{xychartDiagram-2RQKCTM6-p36gfo88.js → xychartDiagram-2RQKCTM6-DT3q4Z3J.js} +1 -1
  221. package/web-shell/index.html +2 -2
  222. package/bundled/loop/SKILL.test.ts +0 -119
  223. package/bundled/loop/autonomous-loop.test.ts +0 -59
  224. package/bundled/loop/loop-task-file.test.ts +0 -1064
  225. package/bundled/loop/loop-tick-resolver.test.ts +0 -906
  226. package/chunks/chunk-EJ7BN3EN.js +0 -11396
  227. package/web-shell/assets/channel-B5ynH0q8.js +0 -1
  228. package/web-shell/assets/classDiagram-4FO5ZUOK-CK3ibywp.js +0 -1
  229. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CK3ibywp.js +0 -1
  230. package/web-shell/assets/index-9qfvU0_r.css +0 -5
  231. package/web-shell/assets/index-CWzDaQT5.js +0 -717
  232. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-By3E4QwN.js +0 -1
  233. package/chunks/{chunk-UFC57OYT.js → chunk-VRDMOSQS.js} +54 -54
@@ -4,10 +4,10 @@ import {
4
4
  OpenAIContentConverter,
5
5
  TaggedThinkingParser,
6
6
  openaiRequestCaptureContext
7
- } from "./chunk-CHY5C5T4.js";
7
+ } from "./chunk-JN2VJ33O.js";
8
8
  import {
9
9
  RequestTokenizer
10
- } from "./chunk-DX3TKXNT.js";
10
+ } from "./chunk-JA5KWZTJ.js";
11
11
  import {
12
12
  DASHSCOPE_PROXY_BASE_URL,
13
13
  DEFAULT_DASHSCOPE_BASE_URL,
@@ -19,7 +19,7 @@ import {
19
19
  hasExplicitOutputLimit,
20
20
  parsePositiveIntegerEnvValue,
21
21
  tokenLimit
22
- } from "./chunk-YTFBURQD.js";
22
+ } from "./chunk-KYTQOCDE.js";
23
23
  import {
24
24
  runtimeDiagnostics,
25
25
  safeJsonParse
@@ -7263,12 +7263,6 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
7263
7263
  getDefaultGenerationConfig() {
7264
7264
  return {};
7265
7265
  }
7266
- getResponseParsingOptions(model) {
7267
- if (this.isGlmModel(model ?? this.contentGeneratorConfig.model)) {
7268
- return { taggedThinkingTags: true };
7269
- }
7270
- return {};
7271
- }
7272
7266
  /**
7273
7267
  * Add cache control flag to specified message(s) for DashScope providers
7274
7268
  */
@@ -8118,7 +8112,7 @@ var StreamContentError = class extends Error {
8118
8112
  var StreamInactivityTimeoutError = class extends Error {
8119
8113
  constructor(idleMs, chunksReceived, streamLifetimeMs) {
8120
8114
  super(
8121
- `No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms)`
8115
+ `No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms). Set ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV} to increase this window (or 0 to disable it).`
8122
8116
  );
8123
8117
  this.idleMs = idleMs;
8124
8118
  this.chunksReceived = chunksReceived;
@@ -8539,7 +8533,7 @@ var ContentGenerationPipeline = class {
8539
8533
  const effectiveModel = request.model || this.contentGeneratorConfig.model;
8540
8534
  const providerOverrides = this.config.provider.getRequestContextOverrides?.() ?? {};
8541
8535
  const toolCallParser = isStreaming ? new StreamingToolCallParser() : void 0;
8542
- const responseParsingOptions = this.config.provider.getResponseParsingOptions?.(effectiveModel);
8536
+ const responseParsingOptions = this.config.provider.getResponseParsingOptions?.();
8543
8537
  const taggedThinkingParser = isStreaming && responseParsingOptions?.taggedThinkingTags ? new TaggedThinkingParser() : void 0;
8544
8538
  return {
8545
8539
  model: effectiveModel,
@@ -2,17 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  mapSkillConfigToStatus
5
- } from "./chunk-CXBG27SF.js";
5
+ } from "./chunk-6IAWPIQ6.js";
6
+ import {
7
+ loadSettings
8
+ } from "./chunk-CEYA7K7C.js";
6
9
  import {
7
10
  STATUS_SCHEMA_VERSION
8
- } from "./chunk-LHMZCIKL.js";
11
+ } from "./chunk-7Z6UEJA4.js";
9
12
  import {
10
13
  writeStderrLine
11
14
  } from "./chunk-Y6Z2O3WR.js";
12
15
  import {
13
16
  SkillManager,
14
17
  isSafeModeEnv
15
- } from "./chunk-6QTCOQX7.js";
18
+ } from "./chunk-AGZF43UV.js";
16
19
  import {
17
20
  init_esbuild_shims
18
21
  } from "./chunk-A4BMJM77.js";
@@ -47,12 +50,13 @@ async function buildWorkspaceSkillsStatus(workspaceCwd, managers) {
47
50
  skillManager = new SkillManager(shim);
48
51
  managers.set(workspaceCwd, skillManager);
49
52
  }
53
+ const disabled = readDisabledSkillNames(workspaceCwd);
50
54
  const skills = await skillManager.listSkills();
51
55
  return {
52
56
  v: STATUS_SCHEMA_VERSION,
53
57
  workspaceCwd,
54
58
  initialized: true,
55
- skills: skills.map(mapSkillConfigToStatus)
59
+ skills: skills.map((skill) => mapSkillConfigToStatus(skill, disabled))
56
60
  };
57
61
  } catch (error) {
58
62
  const message = error instanceof Error ? error.message : String(error);
@@ -75,6 +79,14 @@ async function buildWorkspaceSkillsStatus(workspaceCwd, managers) {
75
79
  }
76
80
  }
77
81
  __name(buildWorkspaceSkillsStatus, "buildWorkspaceSkillsStatus");
82
+ function readDisabledSkillNames(workspaceCwd) {
83
+ const raw = loadSettings(workspaceCwd, false).merged.skills?.disabled;
84
+ if (!Array.isArray(raw)) return /* @__PURE__ */ new Set();
85
+ return new Set(
86
+ raw.filter((name) => typeof name === "string").map((name) => name.trim().toLowerCase()).filter(Boolean)
87
+ );
88
+ }
89
+ __name(readDisabledSkillNames, "readDisabledSkillNames");
78
90
 
79
91
  export {
80
92
  createWorkspaceSkillsStatusProvider
@@ -6,7 +6,7 @@ import {
6
6
  getLanguageNameFromLocale,
7
7
  getLanguageSettingsOptions,
8
8
  t
9
- } from "./chunk-DM4E337C.js";
9
+ } from "./chunk-6QVRLKTZ.js";
10
10
  import {
11
11
  DEFAULT_DARK_THEME_NAME,
12
12
  DEFAULT_LIGHT_THEME_NAME
@@ -25,22 +25,23 @@ 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-V6NH3CUC.js";
33
33
  import {
34
34
  require_strip_json_comments
35
35
  } from "./chunk-QYUE6W3T.js";
36
36
  import {
37
+ DEFAULT_MAX_SUBAGENT_DEPTH,
37
38
  DEFAULT_STOP_HOOK_BLOCK_CAP,
38
39
  DEFAULT_TOOL_OUTPUT_BATCH_BUDGET,
39
40
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
40
41
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
41
42
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
42
43
  stripRuntimeSnapshotPrefix
43
- } from "./chunk-6QTCOQX7.js";
44
+ } from "./chunk-AGZF43UV.js";
44
45
  import {
45
46
  require_main
46
47
  } from "./chunk-SKAZWEV5.js";
@@ -50,7 +51,7 @@ import {
50
51
  import {
51
52
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
52
53
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
53
- } from "./chunk-CHY5C5T4.js";
54
+ } from "./chunk-JN2VJ33O.js";
54
55
  import {
55
56
  FatalConfigError,
56
57
  QWEN_DIR,
@@ -1170,6 +1171,15 @@ var SETTINGS_SCHEMA = {
1170
1171
  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
1172
  showInDialog: false
1172
1173
  },
1174
+ maxSubagentDepth: {
1175
+ type: "number",
1176
+ label: "Max Sub-agent Nesting Depth",
1177
+ category: "Model",
1178
+ requiresRestart: false,
1179
+ default: DEFAULT_MAX_SUBAGENT_DEPTH,
1180
+ 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.",
1181
+ showInDialog: false
1182
+ },
1173
1183
  chatCompression: {
1174
1184
  type: "object",
1175
1185
  label: "Chat Compression",
@@ -2623,6 +2633,22 @@ var SETTINGS_SCHEMA = {
2623
2633
  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
2634
  showInDialog: true
2625
2635
  },
2636
+ cronRecurringMaxAgeDays: {
2637
+ type: "number",
2638
+ label: "Recurring Cron Max Age (Days)",
2639
+ category: "Experimental",
2640
+ requiresRestart: true,
2641
+ default: 7,
2642
+ 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.",
2643
+ // A deployment-time knob (cloud daemons, containers), not a common
2644
+ // interactive preference.
2645
+ showInDialog: false,
2646
+ jsonSchemaOverride: {
2647
+ type: "number",
2648
+ minimum: 0,
2649
+ default: 7
2650
+ }
2651
+ },
2626
2652
  agentTeam: {
2627
2653
  type: "boolean",
2628
2654
  label: "Enable Agent Team",
@@ -2638,7 +2664,7 @@ var SETTINGS_SCHEMA = {
2638
2664
  category: "Experimental",
2639
2665
  requiresRestart: true,
2640
2666
  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.",
2667
+ 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
2668
  showInDialog: true
2643
2669
  },
2644
2670
  emitToolUseSummaries: {
@@ -15,10 +15,10 @@ import {
15
15
  readCronTasks,
16
16
  removeCronTasks,
17
17
  updateCronTasks
18
- } from "./chunk-SJBIFVD2.js";
18
+ } from "./chunk-DMSNJDWG.js";
19
19
  import {
20
20
  ToolNames
21
- } from "./chunk-MTNTVOJR.js";
21
+ } from "./chunk-MJKMIQMK.js";
22
22
  import {
23
23
  Storage,
24
24
  createDebugLogger,
@@ -139,7 +139,13 @@ __name(releaseLock, "releaseLock");
139
139
  // packages/core/src/services/cronScheduler.ts
140
140
  var debugLogger = createDebugLogger("CRON_SCHEDULER");
141
141
  var MAX_JOBS = 50;
142
- var RECURRING_MAX_AGE_MS = 7 * 24 * 60 * 60 * 1e3;
142
+ var DEFAULT_RECURRING_MAX_AGE_DAYS = 7;
143
+ var DEFAULT_RECURRING_MAX_AGE_MS = DEFAULT_RECURRING_MAX_AGE_DAYS * 24 * 60 * 60 * 1e3;
144
+ function normalizeRecurringMaxAge(value, fallback) {
145
+ if (value === 0) return Infinity;
146
+ return value > 0 ? value : fallback;
147
+ }
148
+ __name(normalizeRecurringMaxAge, "normalizeRecurringMaxAge");
143
149
  var MAX_RECURRING_JITTER_MS = 15 * 60 * 1e3;
144
150
  var MAX_ONESHOT_JITTER_MS = 90 * 1e3;
145
151
  var LOCK_PROBE_INTERVAL_MS = 5e3;
@@ -218,9 +224,18 @@ __name(truncatePrompt, "truncatePrompt");
218
224
  var CronScheduler = class {
219
225
  /** `projectRoot` anchors durable storage; without it only session-only
220
226
  * jobs work. Production constructs via `Config.getCronScheduler()`,
221
- * which always supplies it. */
222
- constructor(projectRoot = null) {
227
+ * which always supplies it (and the configured `recurringMaxAgeMs`).
228
+ * `normalizeRecurringMaxAge` owns the expiry contract for both this
229
+ * constructor and the config layer: `0` and `Infinity` both mean
230
+ * "never expire" — so a direct caller passing `0` gets disabled
231
+ * expiry, not the default — while negative or NaN input falls back to
232
+ * the 7-day default rather than expiring everything at birth. */
233
+ constructor(projectRoot = null, recurringMaxAgeMs = DEFAULT_RECURRING_MAX_AGE_MS) {
223
234
  this.projectRoot = projectRoot;
235
+ this.recurringMaxAgeMs = normalizeRecurringMaxAge(
236
+ recurringMaxAgeMs,
237
+ DEFAULT_RECURRING_MAX_AGE_MS
238
+ );
224
239
  }
225
240
  static {
226
241
  __name(this, "CronScheduler");
@@ -284,6 +299,9 @@ var CronScheduler = class {
284
299
  // removals), chained so stop() can hold the lock until they land — a
285
300
  // successor reading the file pre-write would re-run the same work.
286
301
  pendingPersist = Promise.resolve();
302
+ /** Age after which recurring jobs expire, evaluated at fire time.
303
+ * Infinity = never expire. Guarded in the constructor. */
304
+ recurringMaxAgeMs;
287
305
  /**
288
306
  * Creates a new session-only cron job. Returns the created job.
289
307
  * Throws if the max job limit is reached.
@@ -303,7 +321,7 @@ var CronScheduler = class {
303
321
  prompt,
304
322
  recurring,
305
323
  createdAt: now,
306
- expiresAt: recurring ? now + RECURRING_MAX_AGE_MS : Infinity,
324
+ expiresAt: recurring ? now + this.recurringMaxAgeMs : Infinity,
307
325
  // Prevent the scheduler from firing during the creation minute
308
326
  lastFiredAt: now - now % 6e4,
309
327
  jitterMs
@@ -558,7 +576,12 @@ var CronScheduler = class {
558
576
  if (nextFire === null || nextFire >= now) continue;
559
577
  if (!t.recurring) {
560
578
  missedOneShots.push(t);
561
- } else if (now - t.createdAt >= RECURRING_MAX_AGE_MS) {
579
+ } else if (now - t.createdAt >= this.recurringMaxAgeMs) {
580
+ console.warn(
581
+ `Durable cron task ${t.id} (created ${new Date(
582
+ t.createdAt
583
+ ).toISOString()}) is past the recurring max age at load; it will fire one final time and be deleted.`
584
+ );
562
585
  finalTasks.push(t);
563
586
  } else {
564
587
  catchUpIds.push(t.id);
@@ -588,7 +611,7 @@ var CronScheduler = class {
588
611
  );
589
612
  continue;
590
613
  }
591
- const job = durableTaskToJob(task, existing);
614
+ const job = durableTaskToJob(task, this.recurringMaxAgeMs, existing);
592
615
  if (existing?.lastFiredAt !== void 0) {
593
616
  job.lastFiredAt = Math.max(existing.lastFiredAt, job.lastFiredAt ?? 0);
594
617
  }
@@ -610,7 +633,9 @@ var CronScheduler = class {
610
633
  if (finalTasks.length > 0) {
611
634
  this.fireOrBuffer({
612
635
  kind: "final",
613
- jobs: finalTasks.map((t) => durableTaskToJob(t))
636
+ jobs: finalTasks.map(
637
+ (t) => durableTaskToJob(t, this.recurringMaxAgeMs)
638
+ )
614
639
  });
615
640
  }
616
641
  }
@@ -633,7 +658,7 @@ var CronScheduler = class {
633
658
  case "missed": {
634
659
  const skipped = [];
635
660
  const runnable = pending.tasks.filter((t) => {
636
- const job = durableTaskToJob(t);
661
+ const job = durableTaskToJob(t, this.recurringMaxAgeMs);
637
662
  if (job.durable && this.skipDurableFire?.(job)) {
638
663
  debugLogger.debug(
639
664
  `Skipping durable job ${t.id} (missed): consumer cannot run it`
@@ -646,7 +671,7 @@ var CronScheduler = class {
646
671
  for (const id of skipped) this.pendingRemoval.delete(id);
647
672
  if (runnable.length > 0) {
648
673
  onFire({
649
- ...durableTaskToJob(runnable[0]),
674
+ ...durableTaskToJob(runnable[0], this.recurringMaxAgeMs),
650
675
  prompt: buildMissedCronNotification(runnable),
651
676
  missed: true
652
677
  });
@@ -1034,7 +1059,7 @@ function hasParseableCron(task) {
1034
1059
  }
1035
1060
  }
1036
1061
  __name(hasParseableCron, "hasParseableCron");
1037
- function durableTaskToJob(task, existing) {
1062
+ function durableTaskToJob(task, recurringMaxAgeMs, existing) {
1038
1063
  const jitterMs = existing && existing.cronExpr === task.cron && existing.recurring === task.recurring ? existing.jitterMs : computeJitter(task.id, task.cron, task.recurring);
1039
1064
  return {
1040
1065
  id: task.id,
@@ -1042,7 +1067,7 @@ function durableTaskToJob(task, existing) {
1042
1067
  prompt: task.prompt,
1043
1068
  recurring: task.recurring,
1044
1069
  createdAt: task.createdAt,
1045
- expiresAt: task.recurring ? task.createdAt + RECURRING_MAX_AGE_MS : Infinity,
1070
+ expiresAt: task.recurring ? task.createdAt + recurringMaxAgeMs : Infinity,
1046
1071
  lastFiredAt: task.lastFiredAt ?? void 0,
1047
1072
  jitterMs,
1048
1073
  durable: true
@@ -1072,6 +1097,8 @@ function computeNextFireMs(cronExpr, afterMs, jitterMs) {
1072
1097
  __name(computeNextFireMs, "computeNextFireMs");
1073
1098
 
1074
1099
  export {
1100
+ DEFAULT_RECURRING_MAX_AGE_DAYS,
1101
+ normalizeRecurringMaxAge,
1075
1102
  WAKEUP_MIN_SECONDS,
1076
1103
  WAKEUP_MAX_SECONDS,
1077
1104
  clampWakeupSeconds,
@@ -3,14 +3,14 @@
3
3
  import {
4
4
  getGitVersion,
5
5
  getNpmVersion
6
- } from "./chunk-JKGCBO3O.js";
6
+ } from "./chunk-OAYOHSGP.js";
7
7
  import {
8
8
  STATUS_SCHEMA_VERSION,
9
9
  mapDomainErrorToErrorKind
10
- } from "./chunk-LHMZCIKL.js";
10
+ } from "./chunk-7Z6UEJA4.js";
11
11
  import {
12
12
  canUseRipgrep
13
- } from "./chunk-6QTCOQX7.js";
13
+ } from "./chunk-AGZF43UV.js";
14
14
  import {
15
15
  detectRuntime,
16
16
  redactProxyCredentials
@@ -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
 
@@ -10,7 +10,7 @@ import {
10
10
  getSystemDefaultsPath,
11
11
  getSystemSettingsPath,
12
12
  resolveEnvVarsInObject
13
- } from "./chunk-PPFWEV7G.js";
13
+ } from "./chunk-4RQIB5UZ.js";
14
14
  import {
15
15
  getPathComparisonVariants,
16
16
  isWithinRoot,