@qwen-code/qwen-code 0.21.13 → 0.21.14-preview.0
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.
- package/bundled/qc-helper/docs/configuration/settings.md +13 -7
- package/bundled/qc-helper/docs/features/code-review.md +5 -1
- package/bundled/qc-helper/docs/features/commands.md +120 -8
- package/bundled/qc-helper/docs/features/sub-agents.md +2 -2
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +20 -3
- package/bundled/review/SKILL.md +50 -30
- package/chunks/{MaxSizedBox-UQALOVVT.js → MaxSizedBox-3PZITE2Y.js} +24 -23
- package/chunks/{StandaloneSessionPicker-KEGXNUG6.js → StandaloneSessionPicker-2C34PNGO.js} +41 -40
- package/chunks/{acp-startup-profiler-NMDXYGDN.js → acp-startup-profiler-HUYGO57H.js} +2 -2
- package/chunks/{acpAgent-XPES32S7.js → acpAgent-3J4NHAYT.js} +626 -141
- package/chunks/{agent-DPTOZFEM.js → agent-VFX4RPP5.js} +22 -21
- package/chunks/{agent-headless-GJCQMURW.js → agent-headless-6WCF4J6N.js} +22 -21
- package/chunks/{anthropicContentGenerator-G7BVXTKN.js → anthropicContentGenerator-M7XRJMSK.js} +3 -3
- package/chunks/{bridge-YNQBAA4Z.js → bridge-XR5ZSR7U.js} +26 -25
- package/chunks/{ca-4CQ6MYNQ.js → ca-SLZJD6QH.js} +8 -0
- package/chunks/{channel-management-service-GWY2GAIC.js → channel-management-service-X6LCQUAD.js} +1 -1
- package/chunks/{channel-settings-store-WNWYFHG7.js → channel-settings-store-Z7BUEUJE.js} +30 -29
- package/chunks/{channel-worker-group-7LXCMZ77.js → channel-worker-group-TJ35JDPE.js} +2 -2
- package/chunks/{channel-worker-manager-RYEME4ZZ.js → channel-worker-manager-G5LKWGOG.js} +2 -2
- package/chunks/{chunk-MLPXSYXR.js → chunk-25GHLMQQ.js} +25 -16
- package/chunks/chunk-2C6HJMG3.js +757 -0
- package/chunks/{chunk-TUGSVUJB.js → chunk-2JXDFSVE.js} +5 -5
- package/chunks/{chunk-AS5IN4GK.js → chunk-2OA3JMRD.js} +3 -3
- package/chunks/chunk-3PWCMXIR.js +9169 -0
- package/chunks/{chunk-U3VNBPUO.js → chunk-4KQ2TI2K.js} +2 -2
- package/chunks/{chunk-NEFOOD54.js → chunk-4V4DFJBS.js} +2 -2
- package/chunks/{chunk-OMLJNPBE.js → chunk-4ZMS3JCR.js} +1 -0
- package/chunks/{chunk-PP4FUZNV.js → chunk-55PIFSP2.js} +2 -2
- package/chunks/{chunk-3U3VAL47.js → chunk-57KOJ2KZ.js} +1 -1
- package/chunks/{chunk-A4QRWUDE.js → chunk-5IYS4WWR.js} +1 -1
- package/chunks/{chunk-TS6625XH.js → chunk-5MK45KZ3.js} +9 -5
- package/chunks/{chunk-CU6GJD55.js → chunk-6DFPR7CS.js} +1 -1
- package/chunks/{chunk-V57QC6WW.js → chunk-6LAPGPVA.js} +5 -3
- package/chunks/{chunk-OOQUVWIG.js → chunk-6PDOHRN6.js} +4 -4
- package/chunks/{chunk-UZPM4XHR.js → chunk-6VDPDHIP.js} +29 -8
- package/chunks/{chunk-O4D7SPJN.js → chunk-73G3Z7QS.js} +3 -3
- package/chunks/{chunk-QIH2HAEN.js → chunk-7OCSX7FC.js} +1 -1
- package/chunks/{chunk-OVZPVYZB.js → chunk-AKBOLMUF.js} +95 -17
- package/chunks/{chunk-DGK6P3BQ.js → chunk-AQBHJ2IG.js} +10 -10
- package/chunks/{chunk-JNDY2MDR.js → chunk-BOJNAPUE.js} +1 -1
- package/chunks/{chunk-NHDR76JX.js → chunk-BQWNIPTE.js} +1 -1
- package/chunks/{chunk-AA2BEKV3.js → chunk-CH5OFRV7.js} +1 -1
- package/chunks/{chunk-MS7GNABG.js → chunk-CXJHQVEK.js} +8 -0
- package/chunks/{chunk-K5IDV3PC.js → chunk-D34RDOLP.js} +12 -2
- package/chunks/{chunk-OXCMMLED.js → chunk-DGJ7O55J.js} +1 -1
- package/chunks/{chunk-BKPPWD33.js → chunk-DRKYT2TR.js} +1 -1
- package/chunks/{chunk-P7MPQI75.js → chunk-DVR7XKO5.js} +1 -1
- package/chunks/{chunk-MRMJCLIY.js → chunk-DZCV3ZYU.js} +2 -2
- package/chunks/{chunk-EZ5RP345.js → chunk-E5RS7LF4.js} +40 -9
- package/chunks/{chunk-4NFY2S7N.js → chunk-E7REAOTN.js} +15 -0
- package/chunks/chunk-EOCQCNV4.js +3887 -0
- package/chunks/{chunk-BVJS5BSP.js → chunk-FCTLOVYW.js} +1 -1
- package/chunks/{chunk-DGZEMW5R.js → chunk-FS5NGKWC.js} +1 -1
- package/chunks/{chunk-XHRY7BXD.js → chunk-G6FFFICU.js} +3 -3
- package/chunks/{chunk-NM5V5OVW.js → chunk-GV3OIADZ.js} +2 -2
- package/chunks/{chunk-QV5YN5YD.js → chunk-HGPMOXLZ.js} +5 -5
- package/chunks/{chunk-GMIEIY3Y.js → chunk-I3N2Z25H.js} +1 -1
- package/chunks/{chunk-RIAABG2K.js → chunk-I7NTHW4C.js} +1 -1
- package/chunks/{chunk-HUTNYWBG.js → chunk-IOTPI425.js} +18 -10
- package/chunks/{chunk-ZYYTZUI2.js → chunk-ISRHAMNL.js} +3 -3
- package/chunks/{chunk-BHILXOC3.js → chunk-J63PKMYA.js} +1 -1
- package/chunks/{chunk-KD5BOPLP.js → chunk-J6YS7Z25.js} +98 -4
- package/chunks/{chunk-GO7STP6N.js → chunk-K3CECR5C.js} +4 -4
- package/chunks/{chunk-RVOJ2FBP.js → chunk-KC4WMLZO.js} +1486 -10574
- package/chunks/{chunk-IGGGG5CX.js → chunk-KSGWAYNE.js} +4580 -1652
- package/chunks/{chunk-X26JYGTD.js → chunk-L6CCLB3G.js} +1 -1
- package/chunks/{chunk-M6NDLY2T.js → chunk-LD5VIJ7S.js} +1 -1
- package/chunks/{chunk-ZYBBISBY.js → chunk-LLR424CQ.js} +15 -12
- package/chunks/{chunk-JUEPY766.js → chunk-LRDB2OLB.js} +2 -2
- package/chunks/{chunk-PQ36L4F5.js → chunk-MCG53LWC.js} +1 -1
- package/chunks/{chunk-OD2WU5QY.js → chunk-NRPXRNN4.js} +1 -1
- package/chunks/{chunk-76J3IJ3M.js → chunk-NV6LW6FT.js} +3 -3
- package/chunks/{chunk-CKSJECTU.js → chunk-NVRMCWTP.js} +8 -4
- package/chunks/{chunk-Y3YCSWG5.js → chunk-OBJYN4MX.js} +1 -1
- package/chunks/{chunk-WFSTRPRO.js → chunk-OJOP26ET.js} +1 -1
- package/chunks/{chunk-A267JX7H.js → chunk-OLZSWUZR.js} +6 -6
- package/chunks/{chunk-TIGA2IVL.js → chunk-OO4FKHLO.js} +2 -2
- package/chunks/{chunk-OY5RNSV4.js → chunk-OSAFWBNR.js} +3 -3
- package/chunks/{chunk-BZ263IKX.js → chunk-OVY67CYC.js} +1 -1
- package/chunks/{chunk-YEYY7TEP.js → chunk-P425IVUK.js} +5 -5
- package/chunks/{chunk-AFSG32D5.js → chunk-PMS7O6SA.js} +1 -1
- package/chunks/{chunk-6ORZ2EDC.js → chunk-PPTM4O4R.js} +1 -1
- package/chunks/{chunk-JOOFMXGF.js → chunk-QECSDJET.js} +5 -5
- package/chunks/{chunk-CZBYX5MY.js → chunk-QEJZUXSK.js} +1 -1
- package/chunks/{chunk-4PKCUT7F.js → chunk-QIHHJKXT.js} +6 -6
- package/chunks/{chunk-QRCNA3SR.js → chunk-RAQBBGS6.js} +49 -69
- package/chunks/{chunk-M732YJPW.js → chunk-RXHBTKMG.js} +2 -2
- package/chunks/{chunk-XIT3GURH.js → chunk-S6CXQKDD.js} +3 -3
- package/chunks/{chunk-GGDBMYGZ.js → chunk-SA7GBPEA.js} +3 -3
- package/chunks/{chunk-7UXUJ5T3.js → chunk-SBRIBTYN.js} +1 -1
- package/chunks/{chunk-MC4TLKEI.js → chunk-SGLPDKRT.js} +2 -2
- package/chunks/{chunk-WSH6GRKG.js → chunk-SLILKYV2.js} +2 -2
- package/chunks/{chunk-DXIBNLBZ.js → chunk-SNQZZ765.js} +1 -1
- package/chunks/{chunk-5EYKMUUY.js → chunk-SR2LYSMT.js} +1 -1
- package/chunks/{chunk-AW4TRXOC.js → chunk-TNPWODIZ.js} +1 -1
- package/chunks/{chunk-QF2NHSPB.js → chunk-U6RZRKNM.js} +233 -184
- package/chunks/{chunk-QNQAPSN2.js → chunk-UC67T4SF.js} +3 -1
- package/chunks/{chunk-O565M6A4.js → chunk-UYDGFWIJ.js} +199 -14
- package/chunks/{chunk-LJQAUZMR.js → chunk-VGAAAMRD.js} +925 -92
- package/chunks/{chunk-UKMR3CKV.js → chunk-VHPMDDPT.js} +3 -3
- package/chunks/{chunk-S5DWMTHO.js → chunk-WP4WIUOJ.js} +2 -0
- package/chunks/{chunk-25EYDK42.js → chunk-WPVUOVYX.js} +1 -1
- package/chunks/{chunk-AXN7UPYQ.js → chunk-WSSH2BNO.js} +1 -1
- package/chunks/{chunk-6YKYPVDV.js → chunk-WVIABDXV.js} +3 -3
- package/chunks/chunk-WZAD4ZNJ.js +59 -0
- package/chunks/{chunk-N5YPT6PH.js → chunk-X3YA3YGG.js} +7 -4
- package/chunks/{chunk-4S5337WV.js → chunk-XC377TLN.js} +4312 -2704
- package/chunks/{chunk-NNHNLJ2X.js → chunk-XO24LIZC.js} +240 -42
- package/chunks/{chunk-EL5SXY3T.js → chunk-XT4RKHVE.js} +2 -2
- package/chunks/{chunk-FDGGZIYW.js → chunk-YECDICIO.js} +2 -2
- package/chunks/{chunk-E23IPNGS.js → chunk-YFPZ3NNC.js} +12 -3
- package/chunks/{chunk-46UV252V.js → chunk-YHC2EYYG.js} +35 -38
- package/chunks/{chunk-V26NVGAU.js → chunk-YIWH3MKK.js} +8 -3
- package/chunks/{chunk-IWPYVAO2.js → chunk-YXC7JYUI.js} +2 -2
- package/chunks/{chunk-A4MFR4C5.js → chunk-ZIGC3MUS.js} +2 -4
- package/chunks/{chunk-ZZO74WKW.js → chunk-ZXEAEZFN.js} +24 -18
- package/chunks/{computer-use-77C5FHMW.js → computer-use-ABECHPS5.js} +22 -21
- package/chunks/{config-utils-IVHRSXWI.js → config-utils-NJQA5YLJ.js} +2 -2
- package/chunks/{contextCommand-PJ77GBWL.js → contextCommand-4CD5HZQQ.js} +24 -23
- package/chunks/{core-runtime-7VMIKUTG.js → core-runtime-2MOVQ4VX.js} +22 -21
- package/chunks/{create-sub-session-2L5MQRN4.js → create-sub-session-L6NNHG5N.js} +26 -24
- package/chunks/{cron-create-H7UEPDSN.js → cron-create-NFRZEOQX.js} +2 -2
- package/chunks/{cron-delete-6SZK7YFM.js → cron-delete-GFVSVO7C.js} +2 -2
- package/chunks/{cron-list-H25JIHEZ.js → cron-list-NRW34CLU.js} +2 -2
- package/chunks/{daemon-2KTG7ZBN.js → daemon-XH76IXOC.js} +356 -21
- package/chunks/{daemon-git-worktree-guard-DXYIMWFT.js → daemon-git-worktree-guard-BLXFEG4Q.js} +24 -23
- package/chunks/{daemon-status-provider-ZDOYJCU6.js → daemon-status-provider-XGD3TPTO.js} +31 -30
- package/chunks/{daemon-trust-policy-E67OYUK2.js → daemon-trust-policy-THEGCWPO.js} +29 -28
- package/chunks/{daemon-trust-policy-monitor-RYYGCQ3J.js → daemon-trust-policy-monitor-L7L4ACWQ.js} +29 -28
- package/chunks/{de-UBEBKG6V.js → de-AH4LGCF5.js} +8 -0
- package/chunks/{deferred-core-runtime-3SGXFXEQ.js → deferred-core-runtime-YQLHDUGE.js} +22 -21
- package/chunks/{discovery-ORA5J7YP.js → discovery-X2NV535U.js} +1 -1
- package/chunks/{dist-WJ4BHIEW.js → dist-ESS34DHC.js} +72 -0
- package/chunks/{earlyInputCapture-KJMLFVQV.js → earlyInputCapture-PCTXNW7N.js} +22 -21
- package/chunks/{edit-I4LQFAEC.js → edit-QX2EGWYW.js} +25 -23
- package/chunks/{en-X6YV7GME.js → en-MD3GP5YL.js} +8 -0
- package/chunks/{enter-worktree-YNPOJSRH.js → enter-worktree-EM3ZZ2SB.js} +22 -21
- package/chunks/{enterPlanMode-XCPK62ER.js → enterPlanMode-ESCMVAKB.js} +22 -21
- package/chunks/{environment-S7CTIHMX.js → environment-TOJI56YV.js} +25 -24
- package/chunks/{errors-7HB2AIDS.js → errors-DZ5FWWEM.js} +24 -23
- package/chunks/{exit-worktree-AIIY7SR6.js → exit-worktree-KUIJ36XA.js} +22 -21
- package/chunks/{exitPlanMode-R4JY7V2O.js → exitPlanMode-NFVY54FV.js} +22 -21
- package/chunks/{fast-path-NDJV3ZFJ.js → fast-path-JLQXJSH6.js} +3 -3
- package/chunks/{fast-path-settings-LNOFM2YP.js → fast-path-settings-WHX3J3ZI.js} +2 -2
- package/chunks/{fr-VENTC2BS.js → fr-ZEML2JWS.js} +8 -0
- package/chunks/{gemini-RSUFP5OE.js → gemini-I7OT4FWL.js} +62 -61
- package/chunks/{geminiContentGenerator-SQ5XBPZ7.js → geminiContentGenerator-GRIS77NJ.js} +3 -3
- package/chunks/{glob-J4RUJAHX.js → glob-7TBUUV6R.js} +22 -21
- package/chunks/{goal-tools-VHTNVOKK.js → goal-tools-K5OHOJ6B.js} +1 -1
- package/chunks/{grep-VJWPLFOT.js → grep-743SYWCZ.js} +22 -21
- package/chunks/{handleAutoUpdate-POCX2MNB.js → handleAutoUpdate-GAOYUYOD.js} +26 -25
- package/chunks/{i18n-RM5YOICI.js → i18n-2ITURYX6.js} +23 -22
- package/chunks/{image-gen-EXECB5XM.js → image-gen-4OIWDZD6.js} +2 -2
- package/chunks/{initializer-Z2AFGBNR.js → initializer-OC7LWA6X.js} +29 -28
- package/chunks/{installationInfo-4I5FXNMH.js → installationInfo-CO47QX3Q.js} +23 -22
- package/chunks/{ja-QHT4EQTO.js → ja-UM5B2HMD.js} +8 -0
- package/chunks/{list-ZMBFIGZA.js → list-ATR2SFWT.js} +32 -31
- package/chunks/{loadedSettingsAdapter-T6TV4YJ7.js → loadedSettingsAdapter-NK4B7AGK.js} +29 -28
- package/chunks/{loggingContentGenerator-WF4ZOJEZ.js → loggingContentGenerator-3WXBU5TQ.js} +12 -10
- package/chunks/{loop-wakeup-WQS6JYAG.js → loop-wakeup-HWVUU5CF.js} +3 -3
- package/chunks/{managed-npm-update-E7IW6N7V.js → managed-npm-update-4SSBWI2D.js} +23 -22
- package/chunks/{mcp-6UNYX4HG.js → mcp-C62AE2QI.js} +29 -28
- package/chunks/{monitor-EE2UYMGE.js → monitor-FEYEGASA.js} +22 -21
- package/chunks/{nonInteractiveCli-WAY237O4.js → nonInteractiveCli-AJEV5ZWO.js} +59 -57
- package/chunks/{notebook-edit-NTDY4QDU.js → notebook-edit-SLLTEY4O.js} +26 -24
- package/chunks/{openaiContentGenerator-YNFVJMRJ.js → openaiContentGenerator-WLUGIAPX.js} +12 -11
- package/chunks/{pidfile-4XSFLYBZ.js → pidfile-TV2VWUMB.js} +22 -21
- package/chunks/{processUtils-WDA2MJFD.js → processUtils-3IN2ZR55.js} +2 -2
- package/chunks/{pt-VL3I5RNY.js → pt-5BMJ3XYH.js} +8 -0
- package/chunks/{qwenContentGenerator-434M7QKY.js → qwenContentGenerator-GSGRFPJE.js} +25 -24
- package/chunks/{qwenOAuth2-GMYZOO6A.js → qwenOAuth2-JLSTIS4Z.js} +3 -3
- package/chunks/{read-file-TAFBKMNI.js → read-file-6PZZRGZZ.js} +9 -7
- package/chunks/{record-artifact-SEYFJEJF.js → record-artifact-GLU3UWBV.js} +3 -1
- package/chunks/{resumeHistoryUtils-EVG3WYK2.js → resumeHistoryUtils-5GEWKOOO.js} +25 -24
- package/chunks/{ripGrep-WOEK2PXS.js → ripGrep-FX7GBGFN.js} +22 -21
- package/chunks/{ru-4RCKL4PY.js → ru-6GL66ORV.js} +8 -0
- package/chunks/{run-qwen-serve-3QSGRXAN.js → run-qwen-serve-7RHU3NSV.js} +49 -40
- package/chunks/{runtime-5MLLZ7DC.js → runtime-EPOXAMLP.js} +32 -31
- package/chunks/{scheduler-RPBJ63CH.js → scheduler-F4Y7ENVV.js} +24 -23
- package/chunks/{sdk-exporters-http-XUVP63H6.js → sdk-exporters-http-NC746HLT.js} +2 -2
- package/chunks/{sdk-impl-YXUEN2Z2.js → sdk-impl-YVL7BP6Y.js} +2 -2
- package/chunks/{send-message-VZENRWRH.js → send-message-TNBG5EVA.js} +1 -1
- package/chunks/{serve-HS3XLPXU.js → serve-LQV4TN5A.js} +29 -30
- package/chunks/{server-TC4A7AAZ.js → server-IZCKLIYQ.js} +1267 -165
- package/chunks/{session-UBOFXVMN.js → session-52ZGTDVB.js} +60 -58
- package/chunks/{settings-D5644OM5.js → settings-WCVB34HW.js} +28 -27
- package/chunks/{shell-3PZULQQV.js → shell-33BIUBLH.js} +22 -21
- package/chunks/{skill-PEVVXQ3L.js → skill-IYVQ2QNK.js} +11 -9
- package/chunks/{skill-settings-J65JKKES.js → skill-settings-YG4ZS4OZ.js} +28 -27
- package/chunks/{spawnChannel-IYGXRHSQ.js → spawnChannel-BLA4YT4W.js} +24 -23
- package/chunks/{standalone-update-IFM53PE7.js → standalone-update-ALRIPWSM.js} +24 -23
- package/chunks/{startInteractiveUI-3AVH7L6H.js → startInteractiveUI-PISBXWKA.js} +262 -191
- package/chunks/{task-create-FCBDX7UH.js → task-create-EILHJJB7.js} +4 -4
- package/chunks/{task-list-YIYIUFUA.js → task-list-WGJR6YL5.js} +18 -4
- package/chunks/{task-update-MYPFVOVM.js → task-update-XZAHVXJ5.js} +79 -8
- package/chunks/{team-create-ZAIA7KAV.js → team-create-CIQDCC6A.js} +23 -23
- package/chunks/{team-delete-6UMU4XLS.js → team-delete-UEP4QOOT.js} +3 -3
- package/chunks/{team-plan-approval-UNIUS7OD.js → team-plan-approval-664XCRB4.js} +22 -21
- package/chunks/{terminal-image-renderer-G343P2RV.js → terminal-image-renderer-TEBO6ONY.js} +22 -21
- package/chunks/{theme-manager-Z3RIT7DB.js → theme-manager-3CIFH2JV.js} +22 -21
- package/chunks/{todoWrite-U2R4NVF4.js → todoWrite-ATS62CAP.js} +1 -1
- package/chunks/{tool-search-5R2OE4C7.js → tool-search-IJX5JHJB.js} +9 -7
- package/chunks/{total-session-admission-4KBHMQQ2.js → total-session-admission-XBK2NVRV.js} +26 -25
- package/chunks/{trustedFolders-LK6T4XC7.js → trustedFolders-OOFNLRWK.js} +23 -22
- package/chunks/{update-relaunch-UBKROIC6.js → update-relaunch-EIG7EYAQ.js} +5 -5
- package/chunks/{updateCheck-W4Y2GFSD.js → updateCheck-KYDCBLSF.js} +25 -24
- package/chunks/{useAutoAcceptIndicator-C7BEICBF.js → useAutoAcceptIndicator-RFX3KNBN.js} +31 -30
- package/chunks/{validateNonInterActiveAuth-LTEI2TB6.js → validateNonInterActiveAuth-MZXSAITU.js} +56 -54
- package/chunks/{version-G5A5DGVS.js → version-PJC6ZNXV.js} +1 -1
- package/chunks/{web-fetch-RTEQTR5Z.js → web-fetch-XXICVGKQ.js} +11 -8
- package/chunks/{web-search-5OXHEZPV.js → web-search-LHPM6QWC.js} +2 -2
- package/chunks/{workflow-ISQJHPG2.js → workflow-4CUO2BV7.js} +139 -37
- package/chunks/{workspace-providers-status-2ZPZPUPZ.js → workspace-providers-status-G4MUGH3X.js} +32 -31
- package/chunks/{workspace-registration-store-CYNY6IP6.js → workspace-registration-store-QMDMFWBE.js} +1 -1
- package/chunks/{workspace-registry-34GTUUHB.js → workspace-registry-FKBB4MZK.js} +26 -25
- package/chunks/{workspace-service-XCDQLE2Y.js → workspace-service-TIDTTA65.js} +33 -32
- package/chunks/{workspace-skills-status-RS4O7AIJ.js → workspace-skills-status-LBC2TZKM.js} +30 -29
- package/chunks/{workspace-trust-reconciler-AYGXC7A3.js → workspace-trust-reconciler-4KJ567XP.js} +33 -32
- package/chunks/{write-file-EWXKVVXF.js → write-file-R6LAEER5.js} +22 -21
- package/chunks/{zh-TW-SQ4HTSCW.js → zh-TW-LVLBK4KF.js} +8 -0
- package/chunks/{zh-LMSTK4WD.js → zh-UBMWS2BJ.js} +8 -0
- package/chunks/{zoom-image-4BFYJ3HG.js → zoom-image-XLCK6DDK.js} +14 -11
- package/cli.js +13 -13
- package/locales/ca.js +13 -0
- package/locales/de.js +12 -0
- package/locales/en.js +11 -0
- package/locales/fr.js +13 -0
- package/locales/ja.js +13 -0
- package/locales/pt.js +12 -0
- package/locales/ru.js +12 -0
- package/locales/zh-TW.js +11 -0
- package/locales/zh.js +11 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-CgOpDKvm.js → arc-DItbX0DI.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-0Ag_m34F.js → architectureDiagram-3BPJPVTR-CmnIlH8y.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-IwTwFau0.js → blockDiagram-GPEHLZMM-pObnB9kw.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DLa5GUv8.js → c4Diagram-AAUBKEIU-BNBmMS0Y.js} +1 -1
- package/web-shell/assets/channel-hZnMfWA9.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DcYP-WFG.js → chunk-2J33WTMH-Dz4JBOO6.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-C8MVPMiQ.js → chunk-4BX2VUAB-Cz2GnvAR.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-BUi4Yfv3.js → chunk-55IACEB6-CC6kOQYx.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-Cy3Su2YY.js → chunk-727SXJPM-Z4lY4gbh.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-Dp8Teqv6.js → chunk-AQP2D5EJ-Yz0hZr3D.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-BDTDM-4j.js → chunk-FMBD7UC4-nKmTWTv9.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-7HfDt0r2.js → chunk-ND2GUHAM-CjZz0f6Y.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BIBU0uCF.js → chunk-QZHKN3VN-Bab3FpuS.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BRnxm8DX.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BRnxm8DX.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-DRLdcg9p.js → cose-bilkent-S5V4N54A-BuSAGFox.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-DCCgDwqW.js → dagre-BM42HDAG-CRZXTg3g.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CsBTBmk3.js → diagram-2AECGRRQ-BFx1Ayrz.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-C9qjH8Lt.js → diagram-5GNKFQAL-B2hMZ3gS.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-Brjs_lj2.js → diagram-KO2AKTUF-DKxAQLmc.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DtiWCl_F.js → diagram-LMA3HP47-Bo1xGqVY.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DmfKLkBT.js → diagram-OG6HWLK6-B9NG78d-.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-Bve_4deH.js → erDiagram-TEJ5UH35-DltQKiqQ.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-C2_kXCcV.js → flowDiagram-I6XJVG4X-5xXGmS4I.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BSBIjiTF.js → ganttDiagram-6RSMTGT7-bhGL5n0l.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CyebwI55.js → gitGraphDiagram-PVQCEYII-ZYnz9hgh.js} +1 -1
- package/web-shell/assets/{index-d0yfnV1M.js → index-CBBeUArD.js} +1 -1
- package/web-shell/assets/index-CbgU-jUo.css +5 -0
- package/web-shell/assets/index-_nhzXqab.js +1750 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CSDGnWxU.js → infoDiagram-5YYISTIA-Cg-jamQf.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BK4jU13p.js → ishikawaDiagram-YF4QCWOH-CcmvKlyq.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-D_W6j-oF.js → journeyDiagram-JHISSGLW-BRsOQZp1.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-C7xf-SdC.js → kanban-definition-UN3LZRKU-xW-dmEHK.js} +1 -1
- package/web-shell/assets/{linear-DQmzxpxd.js → linear-ClBfEZH2.js} +1 -1
- package/web-shell/assets/{mermaid.core-9P7AGOLG.js → mermaid.core-D65NDkzc.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DgcgMyPk.js → mindmap-definition-RKZ34NQL-CyvFslYa.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-3wWGb9eG.js → pieDiagram-4H26LBE5-BwSefMyG.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BeCXnQw9.js → quadrantDiagram-W4KKPZXB-GqBJspFS.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-Bi1UOHDz.js → requirementDiagram-4Y6WPE33-B137PlTJ.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-lrLUjjbb.js → sankeyDiagram-5OEKKPKP-maHkkt8i.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BFuqKz6Q.js → sequenceDiagram-3UESZ5HK-DJ1mRaG3.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-8DemQLhu.js → stateDiagram-AJRCARHV-aRmP7Q4i.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Db39gvZ_.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-uzEuVQXg.js → timeline-definition-PNZ67QCA-CIQ3BRPA.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BQTeZ_-o.js → vennDiagram-CIIHVFJN-DR9VPd5h.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-B6yM5Im7.js → wardley-L42UT6IY-ZcfIbT4D.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-ChM8bmgn.js → wardleyDiagram-YWT4CUSO-D0jgPi4T.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-oNG6HyB1.js → xychartDiagram-2RQKCTM6-BGWU4s5o.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-MPHPFVKK.js +0 -48
- package/chunks/chunk-RLKC46YT.js +0 -3582
- package/chunks/chunk-UPDOZBWO.js +0 -358
- package/web-shell/assets/channel-BrGVBa2L.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B5TUzJzI.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B5TUzJzI.js +0 -1
- package/web-shell/assets/index-CIDsgxTe.js +0 -1792
- package/web-shell/assets/index-DiQnWi_E.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DhM5ixYd.js +0 -1
- /package/chunks/{chunk-NTTBXH7U.js → chunk-UGK4K2N2.js} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
contextCommand
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-X3YA3YGG.js";
|
|
6
6
|
import {
|
|
7
7
|
ExtensionRefreshState,
|
|
8
8
|
clearSkillArgs,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
staleArgsWarning,
|
|
12
12
|
validateAuthMethod,
|
|
13
13
|
writeSkillArgs
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-KSGWAYNE.js";
|
|
15
15
|
import {
|
|
16
16
|
calculateCost,
|
|
17
17
|
computeSessionStats,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
findInlineMathExpressions,
|
|
21
21
|
getSystemInfoFields,
|
|
22
22
|
levelLabel
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-73G3Z7QS.js";
|
|
24
24
|
import {
|
|
25
25
|
formatDuration,
|
|
26
26
|
formatTokenCount
|
|
@@ -32,16 +32,16 @@ import {
|
|
|
32
32
|
VSCODE_SHIFT_ENTER_SEQUENCE,
|
|
33
33
|
isWaylandSession,
|
|
34
34
|
writeOsc52
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-SNQZZ765.js";
|
|
36
36
|
import {
|
|
37
37
|
themeManager
|
|
38
38
|
} from "./chunk-2M55OBEB.js";
|
|
39
39
|
import {
|
|
40
40
|
getErrorMessage as getErrorMessage2
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-LRDB2OLB.js";
|
|
42
42
|
import {
|
|
43
43
|
rollbackStandaloneUpdate
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-4V4DFJBS.js";
|
|
45
45
|
import {
|
|
46
46
|
GITHUB_WORKFLOW_PATHS,
|
|
47
47
|
INSIGHT_CSS,
|
|
@@ -54,12 +54,12 @@ import {
|
|
|
54
54
|
toJson,
|
|
55
55
|
toJsonl,
|
|
56
56
|
toMarkdown
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-EOCQCNV4.js";
|
|
58
58
|
import {
|
|
59
59
|
stripUnsafeCharacters,
|
|
60
60
|
toCodePoints,
|
|
61
61
|
truncateToWidth
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-E7REAOTN.js";
|
|
63
63
|
import {
|
|
64
64
|
isValidSessionId
|
|
65
65
|
} from "./chunk-TQOF5KBL.js";
|
|
@@ -70,19 +70,19 @@ import {
|
|
|
70
70
|
isVoiceEnabled,
|
|
71
71
|
readVoiceMode,
|
|
72
72
|
readVoiceModel
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-7OCSX7FC.js";
|
|
74
74
|
import {
|
|
75
75
|
getExtendedSystemInfo,
|
|
76
76
|
getGitVersion,
|
|
77
77
|
getNpmVersion
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-G6FFFICU.js";
|
|
79
79
|
import {
|
|
80
80
|
isInlineModelOverrideAllowed,
|
|
81
81
|
parseAcpModelOption
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-ISRHAMNL.js";
|
|
83
83
|
import {
|
|
84
84
|
getInstallationInfo
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-DRKYT2TR.js";
|
|
86
86
|
import {
|
|
87
87
|
OUTPUT_LANGUAGE_AUTO,
|
|
88
88
|
getAllSettingKeys,
|
|
@@ -94,12 +94,12 @@ import {
|
|
|
94
94
|
resolveOutputLanguageOrPreserveAuto,
|
|
95
95
|
validateSettingValue,
|
|
96
96
|
writeOutputLanguageAndRegisterPath
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-OLZSWUZR.js";
|
|
98
98
|
import {
|
|
99
99
|
getCurrentLanguage,
|
|
100
100
|
setLanguageAsync,
|
|
101
101
|
t
|
|
102
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-IOTPI425.js";
|
|
103
103
|
import {
|
|
104
104
|
SUPPORTED_LANGUAGES,
|
|
105
105
|
getSupportedLanguageIds,
|
|
@@ -108,7 +108,7 @@ import {
|
|
|
108
108
|
import {
|
|
109
109
|
isFolderTrustEnabled,
|
|
110
110
|
loadTrustedFolders
|
|
111
|
-
} from "./chunk-
|
|
111
|
+
} from "./chunk-YXC7JYUI.js";
|
|
112
112
|
import {
|
|
113
113
|
require_strip_json_comments
|
|
114
114
|
} from "./chunk-NPQ5ZKRP.js";
|
|
@@ -178,13 +178,13 @@ import {
|
|
|
178
178
|
resolveSlimmingConfig,
|
|
179
179
|
runForkedAgent,
|
|
180
180
|
tryGenerateSessionTitle
|
|
181
|
-
} from "./chunk-
|
|
181
|
+
} from "./chunk-XC377TLN.js";
|
|
182
182
|
import {
|
|
183
183
|
external_exports
|
|
184
184
|
} from "./chunk-CQ35AJ4Z.js";
|
|
185
185
|
import {
|
|
186
186
|
resolveModelId
|
|
187
|
-
} from "./chunk-
|
|
187
|
+
} from "./chunk-SR2LYSMT.js";
|
|
188
188
|
import {
|
|
189
189
|
APPROVAL_MODES
|
|
190
190
|
} from "./chunk-RWDNJBWN.js";
|
|
@@ -195,7 +195,7 @@ import {
|
|
|
195
195
|
restoreArchivedAutoSkill,
|
|
196
196
|
runAutoSkillCurator,
|
|
197
197
|
setAutoSkillPinned
|
|
198
|
-
} from "./chunk-
|
|
198
|
+
} from "./chunk-WPVUOVYX.js";
|
|
199
199
|
import {
|
|
200
200
|
HookEventName,
|
|
201
201
|
sanitizeUserPromptExpansionAdditionalContext
|
|
@@ -204,10 +204,10 @@ import {
|
|
|
204
204
|
GoalPersistenceUnavailableError,
|
|
205
205
|
emptyGoalSnapshot,
|
|
206
206
|
projectUserTranscriptForDisplay
|
|
207
|
-
} from "./chunk-
|
|
207
|
+
} from "./chunk-4ZMS3JCR.js";
|
|
208
208
|
import {
|
|
209
209
|
resolveOpenAILogDir
|
|
210
|
-
} from "./chunk-
|
|
210
|
+
} from "./chunk-DGJ7O55J.js";
|
|
211
211
|
import {
|
|
212
212
|
FORK_SUBAGENT_TYPE,
|
|
213
213
|
stripStartupContext
|
|
@@ -229,7 +229,6 @@ import {
|
|
|
229
229
|
IdeConnectionEvent,
|
|
230
230
|
formatTokenUsageSummaryAsCsv,
|
|
231
231
|
formatTokenUsageSummaryAsJson,
|
|
232
|
-
getCurrentGeminiMdFilename,
|
|
233
232
|
getMCPServerStatus,
|
|
234
233
|
isImageCapable,
|
|
235
234
|
logIdeConnection,
|
|
@@ -237,7 +236,10 @@ import {
|
|
|
237
236
|
read,
|
|
238
237
|
recordSkillInvocation,
|
|
239
238
|
uiTelemetryService
|
|
240
|
-
} from "./chunk-
|
|
239
|
+
} from "./chunk-KC4WMLZO.js";
|
|
240
|
+
import {
|
|
241
|
+
getCurrentGeminiMdFilename
|
|
242
|
+
} from "./chunk-3PWCMXIR.js";
|
|
241
243
|
import {
|
|
242
244
|
getAutoMemoryRoot
|
|
243
245
|
} from "./chunk-CHHABXPE.js";
|
|
@@ -253,7 +255,7 @@ import {
|
|
|
253
255
|
import {
|
|
254
256
|
normalizeContent,
|
|
255
257
|
redactUrlCredentials
|
|
256
|
-
} from "./chunk-
|
|
258
|
+
} from "./chunk-XT4RKHVE.js";
|
|
257
259
|
import {
|
|
258
260
|
Storage,
|
|
259
261
|
createDebugLogger,
|
|
@@ -267,7 +269,7 @@ import {
|
|
|
267
269
|
isCpuProfileRecording,
|
|
268
270
|
startCpuProfile,
|
|
269
271
|
stopCpuProfile
|
|
270
|
-
} from "./chunk-
|
|
272
|
+
} from "./chunk-TNPWODIZ.js";
|
|
271
273
|
import {
|
|
272
274
|
init_esbuild_shims
|
|
273
275
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -392,6 +394,18 @@ var isAtCommand = /* @__PURE__ */ __name((query) => (
|
|
|
392
394
|
query.startsWith("@") || /\s@/.test(query)
|
|
393
395
|
), "isAtCommand");
|
|
394
396
|
var SLASH_PATH_SEPARATOR_RE = /[/\\]/;
|
|
397
|
+
var SLASH_COMMANDS_SKIP_RECORDING = /* @__PURE__ */ new Set([
|
|
398
|
+
"quit",
|
|
399
|
+
"exit",
|
|
400
|
+
"clear",
|
|
401
|
+
"reset",
|
|
402
|
+
"new",
|
|
403
|
+
"resume",
|
|
404
|
+
"delete",
|
|
405
|
+
"branch",
|
|
406
|
+
"btw",
|
|
407
|
+
"history"
|
|
408
|
+
]);
|
|
395
409
|
var getSlashCommandFirstToken = /* @__PURE__ */ __name((query) => query.slice(1).trimStart().split(/\s+/u)[0] ?? "", "getSlashCommandFirstToken");
|
|
396
410
|
var hasSlashCommandPathSeparator = /* @__PURE__ */ __name((query) => SLASH_PATH_SEPARATOR_RE.test(getSlashCommandFirstToken(query)), "hasSlashCommandPathSeparator");
|
|
397
411
|
var isSlashCommand = /* @__PURE__ */ __name((query) => {
|
|
@@ -925,6 +939,174 @@ var aboutCommand = {
|
|
|
925
939
|
]
|
|
926
940
|
};
|
|
927
941
|
|
|
942
|
+
// packages/cli/src/ui/commands/advisor-command.ts
|
|
943
|
+
init_esbuild_shims();
|
|
944
|
+
var ADVISOR_SCHEMA = {
|
|
945
|
+
type: "object",
|
|
946
|
+
additionalProperties: false,
|
|
947
|
+
properties: {
|
|
948
|
+
verdict: { type: "string", minLength: 1 },
|
|
949
|
+
risks: { type: "string", minLength: 1 },
|
|
950
|
+
missingEvidence: { type: "string", minLength: 1 },
|
|
951
|
+
recommendation: { type: "string", minLength: 1 }
|
|
952
|
+
},
|
|
953
|
+
required: ["verdict", "risks", "missingEvidence", "recommendation"]
|
|
954
|
+
};
|
|
955
|
+
function buildAdvisorPrompt(focus) {
|
|
956
|
+
return [
|
|
957
|
+
"<system-reminder>",
|
|
958
|
+
"You are acting as an ADVISOR \u2014 an independent senior reviewer giving a second opinion on the conversation so far. The transcript above may be truncated to the most recent turns; treat what is shown as the evidence available to you.",
|
|
959
|
+
"",
|
|
960
|
+
"CRITICAL CONSTRAINTS:",
|
|
961
|
+
"- You have NO tools. Base every claim strictly on evidence present in the transcript; never claim to have verified something you could not observe.",
|
|
962
|
+
"- Do not perform the task or write the implementation. Review only.",
|
|
963
|
+
"- Be direct about problems: flawed assumptions, premature conclusions, unverified claims, risky next steps.",
|
|
964
|
+
"- The main conversation is NOT interrupted; your review is shown to the user only.",
|
|
965
|
+
"",
|
|
966
|
+
"Return exactly one JSON object with these string fields and no markdown fence, preamble, extra key, or commentary:",
|
|
967
|
+
"- verdict: one short paragraph stating whether the current approach or conclusion is sound.",
|
|
968
|
+
'- risks: concrete risks or flawed assumptions, each citing transcript evidence. Write "None found" if none.',
|
|
969
|
+
"- missingEvidence: claims asserted but not verified in the visible transcript (earlier verification may exist outside the shown window).",
|
|
970
|
+
"- recommendation: the single most valuable next action.",
|
|
971
|
+
"</system-reminder>",
|
|
972
|
+
"",
|
|
973
|
+
focus || "Review the conversation above."
|
|
974
|
+
].join("\n");
|
|
975
|
+
}
|
|
976
|
+
__name(buildAdvisorPrompt, "buildAdvisorPrompt");
|
|
977
|
+
function formatAdvisorReview(value) {
|
|
978
|
+
const fields = ["verdict", "risks", "missingEvidence", "recommendation"];
|
|
979
|
+
if (!value || Object.keys(value).length !== fields.length || fields.some((field) => {
|
|
980
|
+
const fieldValue = value[field];
|
|
981
|
+
return typeof fieldValue !== "string" || fieldValue.trim().length === 0;
|
|
982
|
+
})) {
|
|
983
|
+
throw new Error("Advisor returned invalid structured output.");
|
|
984
|
+
}
|
|
985
|
+
const review = value;
|
|
986
|
+
return [
|
|
987
|
+
"## Verdict",
|
|
988
|
+
review.verdict.trim(),
|
|
989
|
+
"## Risks",
|
|
990
|
+
review.risks.trim(),
|
|
991
|
+
"## Missing evidence",
|
|
992
|
+
review.missingEvidence.trim(),
|
|
993
|
+
"## Recommendation",
|
|
994
|
+
review.recommendation.trim()
|
|
995
|
+
].join("\n\n");
|
|
996
|
+
}
|
|
997
|
+
__name(formatAdvisorReview, "formatAdvisorReview");
|
|
998
|
+
function formatAdvisorError(error) {
|
|
999
|
+
return t("Advisor review failed: {{error}}", {
|
|
1000
|
+
error: error instanceof Error ? error.message : String(error || "Unknown error")
|
|
1001
|
+
});
|
|
1002
|
+
}
|
|
1003
|
+
__name(formatAdvisorError, "formatAdvisorError");
|
|
1004
|
+
async function askAdvisor(context, focus, abortSignal) {
|
|
1005
|
+
const { config } = context.services;
|
|
1006
|
+
if (!config) throw new Error(t("Config not loaded."));
|
|
1007
|
+
const cacheSafeParams = buildBtwCacheSafeParams(config);
|
|
1008
|
+
if (!cacheSafeParams || config.getGeminiClient().getHistoryForForkWindow().length === 0) {
|
|
1009
|
+
throw new Error(t("No conversation context available for /advisor"));
|
|
1010
|
+
}
|
|
1011
|
+
const advisorModel = context.services.settings.merged.advisorModel?.trim() || void 0;
|
|
1012
|
+
const result = await runForkedAgent({
|
|
1013
|
+
config,
|
|
1014
|
+
userMessage: buildAdvisorPrompt(focus),
|
|
1015
|
+
cacheSafeParams,
|
|
1016
|
+
jsonSchema: ADVISOR_SCHEMA,
|
|
1017
|
+
...advisorModel ? { model: advisorModel } : {},
|
|
1018
|
+
abortSignal,
|
|
1019
|
+
disableModelFallbacks: true
|
|
1020
|
+
});
|
|
1021
|
+
return {
|
|
1022
|
+
text: formatAdvisorReview(result.jsonResult),
|
|
1023
|
+
model: result.model
|
|
1024
|
+
};
|
|
1025
|
+
}
|
|
1026
|
+
__name(askAdvisor, "askAdvisor");
|
|
1027
|
+
var advisorCommand = {
|
|
1028
|
+
name: "advisor",
|
|
1029
|
+
get description() {
|
|
1030
|
+
return t(
|
|
1031
|
+
"Get a second opinion on the current conversation from a reviewer model"
|
|
1032
|
+
);
|
|
1033
|
+
},
|
|
1034
|
+
kind: "built-in" /* BUILT_IN */,
|
|
1035
|
+
supportedModes: ["interactive", "acp"],
|
|
1036
|
+
action: /* @__PURE__ */ __name(async (context, args) => {
|
|
1037
|
+
const focus = args.trim();
|
|
1038
|
+
if (focus.length > BTW_MAX_INPUT_LENGTH) {
|
|
1039
|
+
return {
|
|
1040
|
+
type: "message",
|
|
1041
|
+
messageType: "error",
|
|
1042
|
+
content: t("Focus too long (max {{max}} chars)", {
|
|
1043
|
+
max: String(BTW_MAX_INPUT_LENGTH)
|
|
1044
|
+
})
|
|
1045
|
+
};
|
|
1046
|
+
}
|
|
1047
|
+
const { config } = context.services;
|
|
1048
|
+
const { ui } = context;
|
|
1049
|
+
if (!config) {
|
|
1050
|
+
return {
|
|
1051
|
+
type: "message",
|
|
1052
|
+
messageType: "error",
|
|
1053
|
+
content: t("Config not loaded.")
|
|
1054
|
+
};
|
|
1055
|
+
}
|
|
1056
|
+
if (!config.getModel()) {
|
|
1057
|
+
return {
|
|
1058
|
+
type: "message",
|
|
1059
|
+
messageType: "error",
|
|
1060
|
+
content: t("No model configured.")
|
|
1061
|
+
};
|
|
1062
|
+
}
|
|
1063
|
+
const abortSignal = context.abortSignal ?? new AbortController().signal;
|
|
1064
|
+
const executionMode = context.executionMode ?? "interactive";
|
|
1065
|
+
if (executionMode !== "interactive") {
|
|
1066
|
+
try {
|
|
1067
|
+
const review = await askAdvisor(context, focus, abortSignal);
|
|
1068
|
+
return { type: "message", messageType: "info", content: review.text };
|
|
1069
|
+
} catch (error) {
|
|
1070
|
+
return {
|
|
1071
|
+
type: "message",
|
|
1072
|
+
messageType: "error",
|
|
1073
|
+
content: formatAdvisorError(error)
|
|
1074
|
+
};
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
const turnInFlight = !ui.isIdleRef.current || ui.pendingItem !== null;
|
|
1078
|
+
if (turnInFlight) {
|
|
1079
|
+
return {
|
|
1080
|
+
type: "message",
|
|
1081
|
+
messageType: "error",
|
|
1082
|
+
content: t(
|
|
1083
|
+
"Another operation is in progress, wait for it to complete before running /advisor"
|
|
1084
|
+
)
|
|
1085
|
+
};
|
|
1086
|
+
}
|
|
1087
|
+
try {
|
|
1088
|
+
ui.setPendingItem({
|
|
1089
|
+
type: "info" /* INFO */,
|
|
1090
|
+
text: t("Consulting advisor...")
|
|
1091
|
+
});
|
|
1092
|
+
const review = await askAdvisor(context, focus, abortSignal);
|
|
1093
|
+
if (abortSignal.aborted) return;
|
|
1094
|
+
ui.addItem(
|
|
1095
|
+
{ type: "advisor" /* ADVISOR */, text: review.text, model: review.model },
|
|
1096
|
+
Date.now()
|
|
1097
|
+
);
|
|
1098
|
+
} catch (error) {
|
|
1099
|
+
if (abortSignal.aborted) return;
|
|
1100
|
+
ui.addItem(
|
|
1101
|
+
{ type: "error" /* ERROR */, text: formatAdvisorError(error) },
|
|
1102
|
+
Date.now()
|
|
1103
|
+
);
|
|
1104
|
+
} finally {
|
|
1105
|
+
if (!abortSignal.aborted) ui.setPendingItem(null);
|
|
1106
|
+
}
|
|
1107
|
+
}, "action")
|
|
1108
|
+
};
|
|
1109
|
+
|
|
928
1110
|
// packages/cli/src/ui/commands/tasksCommand.ts
|
|
929
1111
|
init_esbuild_shims();
|
|
930
1112
|
function statusLabel(entry) {
|
|
@@ -2057,7 +2239,7 @@ var approvalModeCommand = {
|
|
|
2057
2239
|
};
|
|
2058
2240
|
}
|
|
2059
2241
|
}
|
|
2060
|
-
const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-
|
|
2242
|
+
const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-RFX3KNBN.js") : void 0;
|
|
2061
2243
|
if (config) {
|
|
2062
2244
|
try {
|
|
2063
2245
|
config.setApprovalMode(mode);
|
|
@@ -6848,7 +7030,7 @@ var expandNowCommand = {
|
|
|
6848
7030
|
content: t("History is already expanded in this session.")
|
|
6849
7031
|
};
|
|
6850
7032
|
}
|
|
6851
|
-
const { expandCollapsedHistory } = await import("./resumeHistoryUtils-
|
|
7033
|
+
const { expandCollapsedHistory } = await import("./resumeHistoryUtils-5GEWKOOO.js");
|
|
6852
7034
|
const updated = expandCollapsedHistory(history);
|
|
6853
7035
|
loadHistory(updated);
|
|
6854
7036
|
refreshStatic();
|
|
@@ -14119,10 +14301,10 @@ var updateCommand = {
|
|
|
14119
14301
|
{ performStandaloneUpdate },
|
|
14120
14302
|
installationInfo
|
|
14121
14303
|
] = await Promise.all([
|
|
14122
|
-
import("./updateCheck-
|
|
14123
|
-
import("./processUtils-
|
|
14124
|
-
import("./standalone-update-
|
|
14125
|
-
import("./installationInfo-
|
|
14304
|
+
import("./updateCheck-KYDCBLSF.js"),
|
|
14305
|
+
import("./processUtils-3IN2ZR55.js"),
|
|
14306
|
+
import("./standalone-update-ALRIPWSM.js"),
|
|
14307
|
+
import("./installationInfo-CO47QX3Q.js")
|
|
14126
14308
|
]);
|
|
14127
14309
|
const { formatUpdateInstructions, getInstallationInfo: getInstallationInfo2 } = installationInfo;
|
|
14128
14310
|
const settings = context.services.settings;
|
|
@@ -14270,6 +14452,7 @@ var BuiltinCommandLoader = class {
|
|
|
14270
14452
|
}
|
|
14271
14453
|
const allDefinitions = [
|
|
14272
14454
|
aboutCommand,
|
|
14455
|
+
advisorCommand,
|
|
14273
14456
|
agentsCommand,
|
|
14274
14457
|
tasksCommand,
|
|
14275
14458
|
// Gated behind isWorkflowsEnabled — feature flag honors
|
|
@@ -15968,6 +16151,10 @@ var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController
|
|
|
15968
16151
|
if (!commandToExecute.action) {
|
|
15969
16152
|
return { type: "no_command" };
|
|
15970
16153
|
}
|
|
16154
|
+
const resolvedCommand = {
|
|
16155
|
+
name: commandToExecute.name,
|
|
16156
|
+
kind: commandToExecute.kind
|
|
16157
|
+
};
|
|
15971
16158
|
const sessionStats = {
|
|
15972
16159
|
sessionId: config?.getSessionId(),
|
|
15973
16160
|
sessionStartTime: /* @__PURE__ */ new Date(),
|
|
@@ -15984,6 +16171,7 @@ var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController
|
|
|
15984
16171
|
};
|
|
15985
16172
|
const context = {
|
|
15986
16173
|
executionMode,
|
|
16174
|
+
abortSignal: commandToExecute.name === "advisor" ? abortController.signal : void 0,
|
|
15987
16175
|
services: {
|
|
15988
16176
|
config,
|
|
15989
16177
|
settings,
|
|
@@ -16024,7 +16212,8 @@ var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController
|
|
|
16024
16212
|
return {
|
|
16025
16213
|
type: "message",
|
|
16026
16214
|
messageType: "info",
|
|
16027
|
-
content: "Command executed successfully."
|
|
16215
|
+
content: "Command executed successfully.",
|
|
16216
|
+
resolvedCommand
|
|
16028
16217
|
};
|
|
16029
16218
|
}
|
|
16030
16219
|
if (result.type === "submit_prompt") {
|
|
@@ -16043,16 +16232,22 @@ var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController
|
|
|
16043
16232
|
}
|
|
16044
16233
|
if (hookResult.blockedResult) {
|
|
16045
16234
|
recordSkillCommandInvocation(false);
|
|
16046
|
-
return hookResult.blockedResult;
|
|
16235
|
+
return { ...hookResult.blockedResult, resolvedCommand };
|
|
16047
16236
|
}
|
|
16048
16237
|
recordSkillCommandInvocation(true);
|
|
16049
16238
|
void recordAutoSkillCommandUsage(config, commandToExecute);
|
|
16050
|
-
return
|
|
16051
|
-
|
|
16052
|
-
|
|
16053
|
-
|
|
16239
|
+
return {
|
|
16240
|
+
...handleCommandResult(
|
|
16241
|
+
{ ...result, content: hookResult.content },
|
|
16242
|
+
outputHistoryItems
|
|
16243
|
+
),
|
|
16244
|
+
resolvedCommand
|
|
16245
|
+
};
|
|
16054
16246
|
}
|
|
16055
|
-
return
|
|
16247
|
+
return {
|
|
16248
|
+
...handleCommandResult(result, outputHistoryItems),
|
|
16249
|
+
resolvedCommand
|
|
16250
|
+
};
|
|
16056
16251
|
}, "handleSlashCommand");
|
|
16057
16252
|
var getAvailableCommands = /* @__PURE__ */ __name(async (config, abortSignal, mode = "acp", settings) => {
|
|
16058
16253
|
try {
|
|
@@ -16257,7 +16452,8 @@ function createAgentToolProgressHandler(config, agentToolCallId, adapter) {
|
|
|
16257
16452
|
error: toolCall.status === "failed" ? new Error(toolCall.error || "Tool execution failed") : void 0,
|
|
16258
16453
|
errorType: toolCall.status === "failed" ? "execution_failed" /* EXECUTION_FAILED */ : void 0,
|
|
16259
16454
|
resultDisplay: toolCall.resultDisplay,
|
|
16260
|
-
responseParts: toolCall.responseParts || []
|
|
16455
|
+
responseParts: toolCall.responseParts || [],
|
|
16456
|
+
boundaryArtifact: toolCall.boundaryArtifact
|
|
16261
16457
|
}), "buildResponse");
|
|
16262
16458
|
const hasResultContent = /* @__PURE__ */ __name((toolCall) => {
|
|
16263
16459
|
if (typeof toolCall.resultDisplay === "string" && toolCall.resultDisplay.trim().length > 0) {
|
|
@@ -16382,6 +16578,8 @@ export {
|
|
|
16382
16578
|
resetBackgroundStateForSessionSwitch,
|
|
16383
16579
|
buildBackgroundWorkBlockedMessage,
|
|
16384
16580
|
isAtCommand,
|
|
16581
|
+
SLASH_COMMANDS_SKIP_RECORDING,
|
|
16582
|
+
getSlashCommandFirstToken,
|
|
16385
16583
|
hasSlashCommandPathSeparator,
|
|
16386
16584
|
isSlashCommand,
|
|
16387
16585
|
isBtwCommand,
|
|
@@ -16430,22 +16628,22 @@ export {
|
|
|
16430
16628
|
*/
|
|
16431
16629
|
/**
|
|
16432
16630
|
* @license
|
|
16433
|
-
* Copyright
|
|
16631
|
+
* Copyright 2025 Qwen Code
|
|
16434
16632
|
* SPDX-License-Identifier: Apache-2.0
|
|
16435
16633
|
*/
|
|
16436
16634
|
/**
|
|
16437
16635
|
* @license
|
|
16438
|
-
* Copyright
|
|
16636
|
+
* Copyright 2026 Qwen Team
|
|
16439
16637
|
* SPDX-License-Identifier: Apache-2.0
|
|
16440
16638
|
*/
|
|
16441
16639
|
/**
|
|
16442
16640
|
* @license
|
|
16443
|
-
* Copyright 2025 Qwen
|
|
16641
|
+
* Copyright 2025 Qwen
|
|
16444
16642
|
* SPDX-License-Identifier: Apache-2.0
|
|
16445
16643
|
*/
|
|
16446
16644
|
/**
|
|
16447
16645
|
* @license
|
|
16448
|
-
* Copyright 2025 Qwen
|
|
16646
|
+
* Copyright 2025 Qwen Team
|
|
16449
16647
|
* SPDX-License-Identifier: Apache-2.0
|
|
16450
16648
|
*/
|
|
16451
16649
|
/**
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
TOOL_FAILURE_KIND_CANCELLED,
|
|
17
17
|
require_src,
|
|
18
18
|
sessionIdContext
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-D34RDOLP.js";
|
|
20
20
|
import {
|
|
21
21
|
createDebugLogger,
|
|
22
22
|
getCurrentSessionId,
|
|
@@ -992,7 +992,7 @@ function initializeTelemetry(config) {
|
|
|
992
992
|
telemetryInitPromise ??= (async () => {
|
|
993
993
|
const debugLogger3 = createDebugLogger("OTEL");
|
|
994
994
|
try {
|
|
995
|
-
const { startTelemetrySdk } = await import("./sdk-impl-
|
|
995
|
+
const { startTelemetrySdk } = await import("./sdk-impl-YVL7BP6Y.js");
|
|
996
996
|
if (telemetryInitialized) return;
|
|
997
997
|
const started = await startTelemetrySdk(config);
|
|
998
998
|
if (!started) return;
|
|
@@ -82,7 +82,7 @@ async function atomicWriteFile(filePath, data, options, _testFs) {
|
|
|
82
82
|
});
|
|
83
83
|
let existingStat;
|
|
84
84
|
try {
|
|
85
|
-
existingStat = await fs.stat(targetPath);
|
|
85
|
+
existingStat = options?.noFollow ? await fs.lstat(targetPath) : await fs.stat(targetPath);
|
|
86
86
|
} catch (err) {
|
|
87
87
|
if (!isNodeError(err) || err.code !== "ENOENT") {
|
|
88
88
|
throw err;
|
|
@@ -90,7 +90,7 @@ async function atomicWriteFile(filePath, data, options, _testFs) {
|
|
|
90
90
|
}
|
|
91
91
|
let existingMode;
|
|
92
92
|
if (!options?.forceMode || options?.mode === void 0) {
|
|
93
|
-
existingMode = existingStat !== void 0 ? existingStat.mode & 4095 : void 0;
|
|
93
|
+
existingMode = existingStat !== void 0 && (!options?.noFollow || existingStat.isFile()) ? existingStat.mode & 4095 : void 0;
|
|
94
94
|
}
|
|
95
95
|
const desiredMode = existingMode ?? options?.mode;
|
|
96
96
|
const writeOptions = {};
|
|
@@ -11,14 +11,14 @@ import {
|
|
|
11
11
|
DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
|
|
12
12
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
|
|
13
13
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-XC377TLN.js";
|
|
15
15
|
import {
|
|
16
16
|
DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
|
|
17
17
|
} from "./chunk-KBXKR5R2.js";
|
|
18
18
|
import {
|
|
19
19
|
DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
|
|
20
20
|
SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-D34RDOLP.js";
|
|
22
22
|
import {
|
|
23
23
|
init_esbuild_shims
|
|
24
24
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -519,7 +519,7 @@ var SETTINGS_SCHEMA = {
|
|
|
519
519
|
category: "General",
|
|
520
520
|
requiresRestart: false,
|
|
521
521
|
default: true,
|
|
522
|
-
description:
|
|
522
|
+
description: `Append the attribution footer naming the model and CLI version (e.g. "_\u2014 qwen3-coder via Qwen Code /review (v0.21.2)_") to review bodies and inline comments posted to GitHub. Disable to post reviews without VISIBLE AI attribution: no footer, and no "**[Critical]**"/"**[Suggestion]**" severity markers on posted comments and body lists. Unattributed posts stay identifiable in the raw source: each posted comment carries an invisible severity marker ("<!-- qwen-review critical -->") and the review body carries a ledger marker ("<!-- qwen-review-ledger ... -->") \u2014 anything reading comment bodies (GitHub API automation, the workflows this setting couples to) still recognizes a /review artifact, and presubmit duplicate detection recognizes the reviewing account's earlier posts by the severity marker, though unattributed posts from other accounts escape it. Another consequence: qwen-autofix's Critical-only mode (engaged after round 5, or earlier when a counting window's diff-growth budget trips) no longer recognizes the posted findings as Critical and defers them. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored, so a repository cannot set review policy for its reviewers.`,
|
|
523
523
|
showInDialog: true
|
|
524
524
|
},
|
|
525
525
|
effort: {
|
|
@@ -1151,6 +1151,15 @@ var SETTINGS_SCHEMA = {
|
|
|
1151
1151
|
description: "Model used for generating prompt suggestions and speculative execution. Leave empty to use the main model. A smaller/faster model (e.g., qwen3-coder-flash) reduces latency and cost.",
|
|
1152
1152
|
showInDialog: true
|
|
1153
1153
|
},
|
|
1154
|
+
advisorModel: {
|
|
1155
|
+
type: "string",
|
|
1156
|
+
label: "Advisor Model",
|
|
1157
|
+
category: "Model",
|
|
1158
|
+
requiresRestart: false,
|
|
1159
|
+
default: "",
|
|
1160
|
+
description: "Model used by /advisor for second-opinion reviews of the conversation. Leave empty to use the main model. A model at least as capable as the main model is recommended. Setting this sends the recent conversation transcript to that model, even when it uses another provider.",
|
|
1161
|
+
showInDialog: true
|
|
1162
|
+
},
|
|
1154
1163
|
visionModel: {
|
|
1155
1164
|
type: "string",
|
|
1156
1165
|
label: "Vision Model",
|
|
@@ -72,54 +72,51 @@ var TextTokenizer = class {
|
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
// packages/core/src/utils/
|
|
75
|
+
// packages/core/src/utils/request-tokenizer/supportedImageFormats.ts
|
|
76
76
|
init_esbuild_shims();
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
77
|
+
var SUPPORTED_IMAGE_MIME_TYPES = [
|
|
78
|
+
"image/bmp",
|
|
79
|
+
"image/gif",
|
|
80
|
+
"image/jpeg",
|
|
81
|
+
"image/jpg",
|
|
82
|
+
// Alternative MIME type for JPEG
|
|
83
|
+
"image/png",
|
|
84
|
+
"image/tiff",
|
|
85
|
+
"image/webp",
|
|
86
|
+
"image/heic"
|
|
87
|
+
];
|
|
88
|
+
var PIPELINE_IMAGE_MIME_TYPES = [
|
|
89
|
+
"image/gif",
|
|
90
|
+
"image/jpeg",
|
|
91
|
+
"image/jpg",
|
|
92
|
+
"image/png",
|
|
93
|
+
"image/webp"
|
|
94
|
+
];
|
|
95
|
+
function isSupportedImageMimeType(mimeType) {
|
|
96
|
+
return SUPPORTED_IMAGE_MIME_TYPES.includes(
|
|
97
|
+
mimeType
|
|
98
|
+
);
|
|
91
99
|
}
|
|
92
|
-
__name(
|
|
93
|
-
function
|
|
94
|
-
return
|
|
100
|
+
__name(isSupportedImageMimeType, "isSupportedImageMimeType");
|
|
101
|
+
function getSupportedImageFormatsString() {
|
|
102
|
+
return PIPELINE_IMAGE_MIME_TYPES.map(
|
|
103
|
+
(type) => type.replace("image/", "").toUpperCase()
|
|
104
|
+
).join(", ");
|
|
95
105
|
}
|
|
96
|
-
__name(
|
|
97
|
-
function
|
|
98
|
-
|
|
99
|
-
if (legacyName.length > MAX_TOOL_NAME_LENGTH) {
|
|
100
|
-
legacyName = legacyName.slice(0, 28) + "___" + legacyName.slice(-32);
|
|
101
|
-
}
|
|
102
|
-
return legacyName;
|
|
103
|
-
}
|
|
104
|
-
__name(generateLegacyMcpToolName, "generateLegacyMcpToolName");
|
|
105
|
-
function stableToolNameHash(name) {
|
|
106
|
-
let hash = 2166136261;
|
|
107
|
-
for (let index = 0; index < name.length; index += 1) {
|
|
108
|
-
hash = Math.imul(hash ^ name.charCodeAt(index), 16777619);
|
|
109
|
-
}
|
|
110
|
-
return (hash >>> 0).toString(36).padStart(7, "0");
|
|
106
|
+
__name(getSupportedImageFormatsString, "getSupportedImageFormatsString");
|
|
107
|
+
function getUnsupportedImageFormatWarning() {
|
|
108
|
+
return `Only the following image formats are supported: ${getSupportedImageFormatsString()}. Other formats may not work as expected.`;
|
|
111
109
|
}
|
|
112
|
-
__name(
|
|
110
|
+
__name(getUnsupportedImageFormatWarning, "getUnsupportedImageFormatWarning");
|
|
113
111
|
|
|
114
112
|
export {
|
|
115
113
|
TOKEN_ESTIMATE_UNITS_PER_TOKEN,
|
|
116
114
|
estimateTextTokens,
|
|
117
115
|
estimateTextTokenUnits,
|
|
118
116
|
TextTokenizer,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
generateLegacyMcpToolName
|
|
117
|
+
PIPELINE_IMAGE_MIME_TYPES,
|
|
118
|
+
isSupportedImageMimeType,
|
|
119
|
+
getUnsupportedImageFormatWarning
|
|
123
120
|
};
|
|
124
121
|
/**
|
|
125
122
|
* @license
|