@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
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
TUI_CHAT_RECORDING_FAILURE_MESSAGE,
|
|
12
12
|
reportChatRecordingFailureToAdapter
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-I7NTHW4C.js";
|
|
14
14
|
import {
|
|
15
15
|
MAX_SUGGESTIONS_TO_SHOW,
|
|
16
16
|
SESSION_MENTION_PREFIX,
|
|
@@ -22,10 +22,10 @@ import {
|
|
|
22
22
|
matchMcpServerPrefix,
|
|
23
23
|
resolveAtCommandQuery,
|
|
24
24
|
sanitizeDisplayText
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-NV6LW6FT.js";
|
|
26
26
|
import {
|
|
27
27
|
StreamJsonOutputAdapter
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-6VDPDHIP.js";
|
|
29
29
|
import {
|
|
30
30
|
BuiltinCommandLoader,
|
|
31
31
|
BundledSkillLoader,
|
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
FileCommandLoader,
|
|
35
35
|
MAX_STACKED_SKILLS,
|
|
36
36
|
McpPromptLoader,
|
|
37
|
+
SLASH_COMMANDS_SKIP_RECORDING,
|
|
37
38
|
SavedWorkflowLoader,
|
|
38
39
|
SkillCommandLoader,
|
|
39
40
|
addConfigToMatcherGroup,
|
|
@@ -69,18 +70,18 @@ import {
|
|
|
69
70
|
resetBackgroundStateForSessionSwitch,
|
|
70
71
|
serializeUserPromptExpansionPrompt,
|
|
71
72
|
supportsMatchers
|
|
72
|
-
} from "./chunk-
|
|
73
|
-
import "./chunk-
|
|
73
|
+
} from "./chunk-XO24LIZC.js";
|
|
74
|
+
import "./chunk-X3YA3YGG.js";
|
|
74
75
|
import {
|
|
75
76
|
startPostRenderPrefetches
|
|
76
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-AQBHJ2IG.js";
|
|
77
78
|
import {
|
|
78
79
|
EXTENSION_RELOAD_FAILED_REASON,
|
|
79
80
|
ExtensionRefreshState,
|
|
80
81
|
appEvents,
|
|
81
82
|
cleanupReviewWorktreeLeases,
|
|
82
83
|
loadHierarchicalGeminiMemory
|
|
83
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-KSGWAYNE.js";
|
|
84
85
|
import {
|
|
85
86
|
AboutBox,
|
|
86
87
|
BaseSelectionList,
|
|
@@ -158,21 +159,21 @@ import {
|
|
|
158
159
|
useUIActions,
|
|
159
160
|
useUIState,
|
|
160
161
|
useVirtualViewport
|
|
161
|
-
} from "./chunk-
|
|
162
|
+
} from "./chunk-U6RZRKNM.js";
|
|
162
163
|
import {
|
|
163
164
|
getCommandDisplayName,
|
|
164
165
|
getCommandSourceBadge
|
|
165
|
-
} from "./chunk-
|
|
166
|
+
} from "./chunk-PMS7O6SA.js";
|
|
166
167
|
import {
|
|
167
168
|
computeSessionStats,
|
|
168
169
|
levelLabel
|
|
169
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-73G3Z7QS.js";
|
|
170
171
|
import "./chunk-4WGODMVR.js";
|
|
171
172
|
import {
|
|
172
173
|
MaxSizedBox,
|
|
173
174
|
OverflowProvider,
|
|
174
175
|
useOverflowState
|
|
175
|
-
} from "./chunk-
|
|
176
|
+
} from "./chunk-J63PKMYA.js";
|
|
176
177
|
import {
|
|
177
178
|
GeminiRespondingSpinner,
|
|
178
179
|
GeminiSpinner,
|
|
@@ -189,7 +190,7 @@ import {
|
|
|
189
190
|
useStreamingContext,
|
|
190
191
|
waitForGoalRuntime,
|
|
191
192
|
wrapAnsi
|
|
192
|
-
} from "./chunk-
|
|
193
|
+
} from "./chunk-LLR424CQ.js";
|
|
193
194
|
import {
|
|
194
195
|
formatDuration,
|
|
195
196
|
formatRelativeTime,
|
|
@@ -209,13 +210,13 @@ import {
|
|
|
209
210
|
} from "./chunk-NYX53SV4.js";
|
|
210
211
|
import {
|
|
211
212
|
useAutoAcceptIndicator
|
|
212
|
-
} from "./chunk-
|
|
213
|
+
} from "./chunk-DZCV3ZYU.js";
|
|
213
214
|
import {
|
|
214
215
|
KeypressProvider,
|
|
215
216
|
useFocus,
|
|
216
217
|
useKeypress,
|
|
217
218
|
useKeypressContext
|
|
218
|
-
} from "./chunk-
|
|
219
|
+
} from "./chunk-RXHBTKMG.js";
|
|
219
220
|
import {
|
|
220
221
|
BEL,
|
|
221
222
|
OSC_PREFIX,
|
|
@@ -228,7 +229,7 @@ import {
|
|
|
228
229
|
oscKittyNotify,
|
|
229
230
|
saveClipboardImage,
|
|
230
231
|
writeOsc52
|
|
231
|
-
} from "./chunk-
|
|
232
|
+
} from "./chunk-SNQZZ765.js";
|
|
232
233
|
import {
|
|
233
234
|
require_jsx_runtime
|
|
234
235
|
} from "./chunk-SV5PQVQE.js";
|
|
@@ -248,14 +249,14 @@ import {
|
|
|
248
249
|
} from "./chunk-2IIJTXYF.js";
|
|
249
250
|
import {
|
|
250
251
|
relaunchApp
|
|
251
|
-
} from "./chunk-
|
|
252
|
+
} from "./chunk-MCG53LWC.js";
|
|
252
253
|
import {
|
|
253
254
|
setUpdateHandler
|
|
254
|
-
} from "./chunk-
|
|
255
|
+
} from "./chunk-VHPMDDPT.js";
|
|
255
256
|
import {
|
|
256
257
|
isHistoryItemVisibleAfterRestore
|
|
257
258
|
} from "./chunk-EKTCKZV5.js";
|
|
258
|
-
import "./chunk-
|
|
259
|
+
import "./chunk-2OA3JMRD.js";
|
|
259
260
|
import {
|
|
260
261
|
AUTO_THEME_NAME,
|
|
261
262
|
DEFAULT_THEME,
|
|
@@ -265,12 +266,12 @@ import "./chunk-KW7NOTN6.js";
|
|
|
265
266
|
import {
|
|
266
267
|
require_react
|
|
267
268
|
} from "./chunk-5QWWOFGG.js";
|
|
268
|
-
import "./chunk-
|
|
269
|
+
import "./chunk-K3CECR5C.js";
|
|
269
270
|
import {
|
|
270
271
|
getErrorMessage as getErrorMessage2
|
|
271
|
-
} from "./chunk-
|
|
272
|
-
import "./chunk-
|
|
273
|
-
import "./chunk-
|
|
272
|
+
} from "./chunk-LRDB2OLB.js";
|
|
273
|
+
import "./chunk-4KQ2TI2K.js";
|
|
274
|
+
import "./chunk-4V4DFJBS.js";
|
|
274
275
|
import "./chunk-YAF2MQZ6.js";
|
|
275
276
|
import "./chunk-IA2K2HJE.js";
|
|
276
277
|
import {
|
|
@@ -278,15 +279,15 @@ import {
|
|
|
278
279
|
collectInlineImages,
|
|
279
280
|
getInlineImageData
|
|
280
281
|
} from "./chunk-SXCOEJO4.js";
|
|
281
|
-
import "./chunk-
|
|
282
|
+
import "./chunk-RAQBBGS6.js";
|
|
282
283
|
import "./chunk-6H67XLET.js";
|
|
283
284
|
import {
|
|
284
285
|
openQwenAsrRealtimeStream,
|
|
285
286
|
openVoiceStream,
|
|
286
287
|
openVoiceStreamWithRetry
|
|
287
|
-
} from "./chunk-
|
|
288
|
-
import "./chunk-
|
|
289
|
-
import "./chunk-
|
|
288
|
+
} from "./chunk-WSSH2BNO.js";
|
|
289
|
+
import "./chunk-EOCQCNV4.js";
|
|
290
|
+
import "./chunk-OVY67CYC.js";
|
|
290
291
|
import {
|
|
291
292
|
cpLen,
|
|
292
293
|
cpSlice,
|
|
@@ -298,8 +299,8 @@ import {
|
|
|
298
299
|
sanitizeTerminalText,
|
|
299
300
|
stripUnsafeCharacters,
|
|
300
301
|
toCodePoints
|
|
301
|
-
} from "./chunk-
|
|
302
|
-
import "./chunk-
|
|
302
|
+
} from "./chunk-E7REAOTN.js";
|
|
303
|
+
import "./chunk-57KOJ2KZ.js";
|
|
303
304
|
import {
|
|
304
305
|
stringWidth
|
|
305
306
|
} from "./chunk-2MIN6GRR.js";
|
|
@@ -315,41 +316,42 @@ import {
|
|
|
315
316
|
isStreamingVoiceModel,
|
|
316
317
|
resolveVoiceStreamConfig,
|
|
317
318
|
transcribeVoiceAudio
|
|
318
|
-
} from "./chunk-
|
|
319
|
+
} from "./chunk-PPTM4O4R.js";
|
|
319
320
|
import {
|
|
320
321
|
formatUnsupportedVoiceModelMessage,
|
|
321
322
|
isSelectableVoiceModel
|
|
322
|
-
} from "./chunk-
|
|
323
|
+
} from "./chunk-7OCSX7FC.js";
|
|
323
324
|
import "./chunk-WGHHA7ZH.js";
|
|
324
325
|
import {
|
|
325
326
|
getExtendedSystemInfo
|
|
326
|
-
} from "./chunk-
|
|
327
|
+
} from "./chunk-G6FFFICU.js";
|
|
327
328
|
import "./chunk-7U5G6JXI.js";
|
|
328
329
|
import "./chunk-WCCLLK7X.js";
|
|
329
330
|
import {
|
|
330
331
|
isInlineModelOverrideAllowed
|
|
331
|
-
} from "./chunk-
|
|
332
|
+
} from "./chunk-ISRHAMNL.js";
|
|
332
333
|
import {
|
|
333
334
|
computeWorkspaceSkillListUpdates,
|
|
334
335
|
resolveSkillSettings,
|
|
335
336
|
skillSettingStrings
|
|
336
337
|
} from "./chunk-Z4X5MTRT.js";
|
|
337
|
-
import "./chunk-
|
|
338
|
+
import "./chunk-2JXDFSVE.js";
|
|
338
339
|
import {
|
|
339
340
|
requestConsentInteractive,
|
|
340
341
|
requestConsentOrFail
|
|
341
|
-
} from "./chunk-
|
|
342
|
+
} from "./chunk-HGPMOXLZ.js";
|
|
342
343
|
import "./chunk-57OAHC2Y.js";
|
|
343
|
-
import "./chunk-
|
|
344
|
+
import "./chunk-NRPXRNN4.js";
|
|
344
345
|
import "./chunk-45NQKMYB.js";
|
|
345
|
-
import "./chunk-
|
|
346
|
+
import "./chunk-5IYS4WWR.js";
|
|
346
347
|
import "./chunk-V6WHFGST.js";
|
|
347
348
|
import {
|
|
348
349
|
createLoadedSettingsAdapter
|
|
349
|
-
} from "./chunk-
|
|
350
|
+
} from "./chunk-FCTLOVYW.js";
|
|
350
351
|
import "./chunk-ZLCT4C5A.js";
|
|
351
352
|
import "./chunk-2AUM35J5.js";
|
|
352
|
-
import "./chunk-
|
|
353
|
+
import "./chunk-DRKYT2TR.js";
|
|
354
|
+
import "./chunk-WP4WIUOJ.js";
|
|
353
355
|
import "./chunk-6PLDPT2C.js";
|
|
354
356
|
import "./chunk-FYJ7W2PI.js";
|
|
355
357
|
import "./chunk-YP5KH5Y7.js";
|
|
@@ -363,7 +365,7 @@ import "./chunk-IW6RQPQB.js";
|
|
|
363
365
|
import "./chunk-H4A72DE5.js";
|
|
364
366
|
import {
|
|
365
367
|
loadMcpApprovals
|
|
366
|
-
} from "./chunk-
|
|
368
|
+
} from "./chunk-QECSDJET.js";
|
|
367
369
|
import {
|
|
368
370
|
CORRUPTED_SUFFIX,
|
|
369
371
|
SettingScope,
|
|
@@ -385,11 +387,11 @@ import {
|
|
|
385
387
|
settingExistsInScope,
|
|
386
388
|
validateSettingValue,
|
|
387
389
|
writeOutputLanguageAndRegisterPath
|
|
388
|
-
} from "./chunk-
|
|
390
|
+
} from "./chunk-OLZSWUZR.js";
|
|
389
391
|
import "./chunk-RKUWKYED.js";
|
|
390
392
|
import {
|
|
391
393
|
TOGGLE_TYPES
|
|
392
|
-
} from "./chunk-
|
|
394
|
+
} from "./chunk-YFPZ3NNC.js";
|
|
393
395
|
import "./chunk-GOXKNSDZ.js";
|
|
394
396
|
import "./chunk-IDS7MSUP.js";
|
|
395
397
|
import {
|
|
@@ -397,19 +399,19 @@ import {
|
|
|
397
399
|
localizeToolDisplayName,
|
|
398
400
|
t,
|
|
399
401
|
ta
|
|
400
|
-
} from "./chunk-
|
|
402
|
+
} from "./chunk-IOTPI425.js";
|
|
401
403
|
import "./chunk-5EJZE3FP.js";
|
|
402
|
-
import "./chunk-
|
|
403
|
-
import "./chunk-
|
|
404
|
+
import "./chunk-SGLPDKRT.js";
|
|
405
|
+
import "./chunk-CXJHQVEK.js";
|
|
404
406
|
import "./chunk-NF5J2WFA.js";
|
|
405
407
|
import {
|
|
406
408
|
getCliVersion
|
|
407
|
-
} from "./chunk-
|
|
409
|
+
} from "./chunk-6DFPR7CS.js";
|
|
408
410
|
import "./chunk-WZMH7II3.js";
|
|
409
411
|
import {
|
|
410
412
|
isWorkspaceTrusted,
|
|
411
413
|
loadTrustedFolders
|
|
412
|
-
} from "./chunk-
|
|
414
|
+
} from "./chunk-YXC7JYUI.js";
|
|
413
415
|
import {
|
|
414
416
|
require_strip_json_comments
|
|
415
417
|
} from "./chunk-NPQ5ZKRP.js";
|
|
@@ -507,6 +509,7 @@ import {
|
|
|
507
509
|
readWorktreeSessionMarker,
|
|
508
510
|
refreshMemoryAfterManagedWrite,
|
|
509
511
|
refreshMemoryInstruction,
|
|
512
|
+
registerSession,
|
|
510
513
|
resolveBaseUrl,
|
|
511
514
|
resolveBranchName,
|
|
512
515
|
resolveMetadataKey,
|
|
@@ -520,25 +523,25 @@ import {
|
|
|
520
523
|
validateWorkflowName,
|
|
521
524
|
watchRepoBranch,
|
|
522
525
|
writeRuntimeStatus
|
|
523
|
-
} from "./chunk-
|
|
526
|
+
} from "./chunk-XC377TLN.js";
|
|
524
527
|
import "./chunk-GOFAQQZA.js";
|
|
525
528
|
import "./chunk-5M6IDOMF.js";
|
|
526
529
|
import {
|
|
527
530
|
stripAnsi
|
|
528
531
|
} from "./chunk-TWPJO254.js";
|
|
529
532
|
import "./chunk-CQ35AJ4Z.js";
|
|
530
|
-
import "./chunk-
|
|
531
|
-
import "./chunk-
|
|
532
|
-
import "./chunk-
|
|
533
|
-
import "./chunk-
|
|
533
|
+
import "./chunk-FS5NGKWC.js";
|
|
534
|
+
import "./chunk-SLILKYV2.js";
|
|
535
|
+
import "./chunk-NVRMCWTP.js";
|
|
536
|
+
import "./chunk-AKBOLMUF.js";
|
|
534
537
|
import "./chunk-6PVPNMXU.js";
|
|
535
538
|
import {
|
|
536
539
|
resolveModelId
|
|
537
|
-
} from "./chunk-
|
|
540
|
+
} from "./chunk-SR2LYSMT.js";
|
|
538
541
|
import "./chunk-IRH27ZC2.js";
|
|
539
542
|
import "./chunk-QHWCP53L.js";
|
|
540
|
-
import "./chunk-
|
|
541
|
-
import "./chunk-
|
|
543
|
+
import "./chunk-OBJYN4MX.js";
|
|
544
|
+
import "./chunk-2C6HJMG3.js";
|
|
542
545
|
import {
|
|
543
546
|
promptIdContext
|
|
544
547
|
} from "./chunk-O6GEWCJA.js";
|
|
@@ -548,7 +551,7 @@ import "./chunk-CPBF7KYF.js";
|
|
|
548
551
|
import {
|
|
549
552
|
APPROVAL_MODES
|
|
550
553
|
} from "./chunk-RWDNJBWN.js";
|
|
551
|
-
import "./chunk-
|
|
554
|
+
import "./chunk-WPVUOVYX.js";
|
|
552
555
|
import {
|
|
553
556
|
HOOKS_CONFIG_FIELDS
|
|
554
557
|
} from "./chunk-MIPFDQAF.js";
|
|
@@ -558,9 +561,9 @@ import "./chunk-E3DYKPYZ.js";
|
|
|
558
561
|
import {
|
|
559
562
|
elapsedActiveTime,
|
|
560
563
|
goalRequiresExactPermit
|
|
561
|
-
} from "./chunk-
|
|
562
|
-
import "./chunk-
|
|
563
|
-
import "./chunk-
|
|
564
|
+
} from "./chunk-4ZMS3JCR.js";
|
|
565
|
+
import "./chunk-DGJ7O55J.js";
|
|
566
|
+
import "./chunk-OO4FKHLO.js";
|
|
564
567
|
import "./chunk-SAH4BD2J.js";
|
|
565
568
|
import "./chunk-XLLKYULU.js";
|
|
566
569
|
import {
|
|
@@ -583,7 +586,7 @@ import {
|
|
|
583
586
|
sanitizeForOsc,
|
|
584
587
|
supportsHyperlinks,
|
|
585
588
|
wrapForMultiplexer
|
|
586
|
-
} from "./chunk-
|
|
589
|
+
} from "./chunk-I3N2Z25H.js";
|
|
587
590
|
import "./chunk-NAVJD2PQ.js";
|
|
588
591
|
import "./chunk-ROIYNTHJ.js";
|
|
589
592
|
import "./chunk-2B2BF7P7.js";
|
|
@@ -594,10 +597,6 @@ import {
|
|
|
594
597
|
REASONING_EFFORT_TIERS,
|
|
595
598
|
applyReasoningEffort
|
|
596
599
|
} from "./chunk-KM73TBQ4.js";
|
|
597
|
-
import {
|
|
598
|
-
getUnsupportedImageFormatWarning,
|
|
599
|
-
isSupportedImageMimeType
|
|
600
|
-
} from "./chunk-MPHPFVKK.js";
|
|
601
600
|
import "./chunk-AXMWHKXA.js";
|
|
602
601
|
import "./chunk-GLCZKT5V.js";
|
|
603
602
|
import "./chunk-DJ2GSRLV.js";
|
|
@@ -617,7 +616,6 @@ import {
|
|
|
617
616
|
addMCPStatusChangeListener,
|
|
618
617
|
formatFullTurnVisionNotice,
|
|
619
618
|
formatVisionBridgeNotice,
|
|
620
|
-
getAllGeminiMdFilenames,
|
|
621
619
|
getAllMCPServerStatuses,
|
|
622
620
|
getFullTurnVisionModelSelector,
|
|
623
621
|
getMCPServerStatus,
|
|
@@ -641,9 +639,12 @@ import {
|
|
|
641
639
|
runVisionBridge,
|
|
642
640
|
shouldRunVisionBridge,
|
|
643
641
|
splitImageParts
|
|
644
|
-
} from "./chunk-
|
|
642
|
+
} from "./chunk-KC4WMLZO.js";
|
|
645
643
|
import "./chunk-YRLW2MSX.js";
|
|
646
644
|
import "./chunk-VGC4I5JJ.js";
|
|
645
|
+
import {
|
|
646
|
+
getAllGeminiMdFilenames
|
|
647
|
+
} from "./chunk-3PWCMXIR.js";
|
|
647
648
|
import {
|
|
648
649
|
AUTO_MEMORY_INDEX_FILENAME,
|
|
649
650
|
getAutoMemoryProjectStateDir,
|
|
@@ -659,27 +660,31 @@ import {
|
|
|
659
660
|
ToolNames,
|
|
660
661
|
isShellProgressData
|
|
661
662
|
} from "./chunk-6HY6IF3Z.js";
|
|
662
|
-
import "./chunk-
|
|
663
|
+
import "./chunk-QIHHJKXT.js";
|
|
663
664
|
import {
|
|
664
665
|
MAINLINE_CODER_MODEL
|
|
665
666
|
} from "./chunk-F6WFNA7U.js";
|
|
666
|
-
import "./chunk-
|
|
667
|
+
import "./chunk-WZAD4ZNJ.js";
|
|
667
668
|
import {
|
|
668
669
|
DEFAULT_TOKEN_LIMIT
|
|
669
670
|
} from "./chunk-FPGTNKCP.js";
|
|
671
|
+
import {
|
|
672
|
+
getUnsupportedImageFormatWarning,
|
|
673
|
+
isSupportedImageMimeType
|
|
674
|
+
} from "./chunk-YHC2EYYG.js";
|
|
670
675
|
import "./chunk-CPHEPGAO.js";
|
|
671
|
-
import "./chunk-
|
|
676
|
+
import "./chunk-DVR7XKO5.js";
|
|
672
677
|
import {
|
|
673
678
|
atomicWriteFileSync
|
|
674
|
-
} from "./chunk-
|
|
679
|
+
} from "./chunk-YECDICIO.js";
|
|
675
680
|
import {
|
|
676
681
|
endInteractionSpan,
|
|
677
682
|
getActiveInteractionSpan,
|
|
678
683
|
isBinary,
|
|
679
684
|
redactUrlCredentials
|
|
680
|
-
} from "./chunk-
|
|
685
|
+
} from "./chunk-XT4RKHVE.js";
|
|
681
686
|
import "./chunk-HHJLM3WQ.js";
|
|
682
|
-
import "./chunk-
|
|
687
|
+
import "./chunk-D34RDOLP.js";
|
|
683
688
|
import {
|
|
684
689
|
Storage,
|
|
685
690
|
UnauthorizedError,
|
|
@@ -693,11 +698,11 @@ import {
|
|
|
693
698
|
tildeifyPath
|
|
694
699
|
} from "./chunk-BUQDLC2G.js";
|
|
695
700
|
import "./chunk-VOQXFAY5.js";
|
|
696
|
-
import "./chunk-
|
|
701
|
+
import "./chunk-TNPWODIZ.js";
|
|
697
702
|
import {
|
|
698
703
|
registerCleanup,
|
|
699
704
|
runExitCleanup
|
|
700
|
-
} from "./chunk-
|
|
705
|
+
} from "./chunk-L6CCLB3G.js";
|
|
701
706
|
import {
|
|
702
707
|
finalizeStartupProfile,
|
|
703
708
|
profileCheckpoint
|
|
@@ -2376,6 +2381,7 @@ function isSyntheticHistoryItem(item) {
|
|
|
2376
2381
|
case "gemini_content":
|
|
2377
2382
|
case "tool_group":
|
|
2378
2383
|
case "btw":
|
|
2384
|
+
case "advisor":
|
|
2379
2385
|
case "memory_saved":
|
|
2380
2386
|
case "about":
|
|
2381
2387
|
case "help":
|
|
@@ -27867,6 +27873,7 @@ function AgentViewProvider({
|
|
|
27867
27873
|
const switchToAgent = (0, import_react94.useCallback)(
|
|
27868
27874
|
(agentId) => {
|
|
27869
27875
|
if (agents.has(agentId)) {
|
|
27876
|
+
setAgentShellFocused(false);
|
|
27870
27877
|
setActiveView(agentId);
|
|
27871
27878
|
}
|
|
27872
27879
|
},
|
|
@@ -27876,14 +27883,24 @@ function AgentViewProvider({
|
|
|
27876
27883
|
const ids = ["main", ...agents.keys()];
|
|
27877
27884
|
const currentIndex = ids.indexOf(activeView);
|
|
27878
27885
|
const nextIndex = (currentIndex + 1) % ids.length;
|
|
27886
|
+
setAgentShellFocused(false);
|
|
27879
27887
|
setActiveView(ids[nextIndex]);
|
|
27880
27888
|
}, [agents, activeView]);
|
|
27881
27889
|
const switchToPrevious = (0, import_react94.useCallback)(() => {
|
|
27882
27890
|
const ids = ["main", ...agents.keys()];
|
|
27883
27891
|
const currentIndex = ids.indexOf(activeView);
|
|
27884
27892
|
const prevIndex = (currentIndex - 1 + ids.length) % ids.length;
|
|
27893
|
+
setAgentShellFocused(false);
|
|
27885
27894
|
setActiveView(ids[prevIndex]);
|
|
27886
27895
|
}, [agents, activeView]);
|
|
27896
|
+
const initialViewRef = (0, import_react94.useRef)(true);
|
|
27897
|
+
(0, import_react94.useEffect)(() => {
|
|
27898
|
+
if (initialViewRef.current) {
|
|
27899
|
+
initialViewRef.current = false;
|
|
27900
|
+
return;
|
|
27901
|
+
}
|
|
27902
|
+
setAgentShellFocused(false);
|
|
27903
|
+
}, [activeView]);
|
|
27887
27904
|
const registerAgent = (0, import_react94.useCallback)(
|
|
27888
27905
|
(agentId, interactiveAgent, modelId, color, modelName) => {
|
|
27889
27906
|
setAgents((prev) => {
|
|
@@ -33015,22 +33032,54 @@ var AgentChatMissing = /* @__PURE__ */ __name(({ label }) => /* @__PURE__ */ (0,
|
|
|
33015
33032
|
|
|
33016
33033
|
// packages/cli/src/ui/components/agent-view/AgentChatView.tsx
|
|
33017
33034
|
var import_jsx_runtime126 = __toESM(require_jsx_runtime(), 1);
|
|
33035
|
+
var debugLogger31 = createDebugLogger("AGENT_TAB_RENDER");
|
|
33018
33036
|
var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
|
|
33019
33037
|
const { agents } = useAgentViewState();
|
|
33038
|
+
const { setAgentShellFocused } = useAgentViewActions();
|
|
33020
33039
|
const agent = agents.get(agentId);
|
|
33021
33040
|
const interactiveAgent = agent?.interactiveAgent;
|
|
33022
33041
|
const core = interactiveAgent?.getCore();
|
|
33023
33042
|
if (!agent || !interactiveAgent || !core) {
|
|
33024
33043
|
return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(AgentChatMissing, { label: `Agent "${agentId}" not found.` });
|
|
33025
33044
|
}
|
|
33026
|
-
return
|
|
33027
|
-
|
|
33028
|
-
|
|
33029
|
-
|
|
33030
|
-
|
|
33031
|
-
|
|
33032
|
-
|
|
33033
|
-
|
|
33045
|
+
return (
|
|
33046
|
+
// Non-fatal per-tab containment (#9290): the app-level boundary is
|
|
33047
|
+
// FATAL — a render error that reaches it logs [FATAL_RENDER_ERROR]
|
|
33048
|
+
// and exits the whole session. An errored or incomplete teammate
|
|
33049
|
+
// whose transcript throws during render must degrade THIS tab only,
|
|
33050
|
+
// keeping the session and the other tabs alive. Keyed by agentId so
|
|
33051
|
+
// switching tabs starts from fresh boundary state: one crashed tab
|
|
33052
|
+
// must not strand every later tab in its fallback.
|
|
33053
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
|
|
33054
|
+
ErrorBoundary,
|
|
33055
|
+
{
|
|
33056
|
+
fallback: (error) => /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, children: [
|
|
33057
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: theme.status.error, bold: true, children: "Something went wrong while rendering this agent tab." }),
|
|
33058
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: theme.text.secondary, children: sanitizeTerminalText(error.message) }),
|
|
33059
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "The session is still running; other tabs are unaffected." }),
|
|
33060
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "Switch to another tab and back to retry rendering this tab." }),
|
|
33061
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "Set QWEN_DEBUG_LOG_FILE=1 and reproduce for a full log." })
|
|
33062
|
+
] }),
|
|
33063
|
+
onError: (error, info) => {
|
|
33064
|
+
setAgentShellFocused(false);
|
|
33065
|
+
debugLogger31.error(
|
|
33066
|
+
`[AGENT_TAB_RENDER_ERROR] agentId=${agentId} ${error.message}
|
|
33067
|
+
${info.componentStack ?? ""}
|
|
33068
|
+
${error.stack ?? ""}`
|
|
33069
|
+
);
|
|
33070
|
+
},
|
|
33071
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
|
|
33072
|
+
AgentChatContent,
|
|
33073
|
+
{
|
|
33074
|
+
core,
|
|
33075
|
+
interactiveAgent,
|
|
33076
|
+
instanceKey: agentId,
|
|
33077
|
+
modelName: agent.modelName
|
|
33078
|
+
}
|
|
33079
|
+
)
|
|
33080
|
+
},
|
|
33081
|
+
agentId
|
|
33082
|
+
)
|
|
33034
33083
|
);
|
|
33035
33084
|
}, "AgentChatView");
|
|
33036
33085
|
|
|
@@ -33857,7 +33906,7 @@ function installTerminalRedrawOptimizer(stdout) {
|
|
|
33857
33906
|
__name(installTerminalRedrawOptimizer, "installTerminalRedrawOptimizer");
|
|
33858
33907
|
|
|
33859
33908
|
// packages/cli/src/ui/utils/terminal-resize-reflow.ts
|
|
33860
|
-
var
|
|
33909
|
+
var debugLogger32 = createDebugLogger("RESIZE_REFLOW");
|
|
33861
33910
|
var CLEAR_VIEWPORT = base_exports.clearViewport;
|
|
33862
33911
|
var ESC2 = "\x1B[";
|
|
33863
33912
|
var CLEAR_TERMINAL = base_exports.clearTerminal;
|
|
@@ -33935,7 +33984,7 @@ function installTerminalResizeReflow(stdout, options = {}) {
|
|
|
33935
33984
|
let barePrintableCount = 0;
|
|
33936
33985
|
let handoffUntil = 0;
|
|
33937
33986
|
let clearUntil = 0;
|
|
33938
|
-
|
|
33987
|
+
debugLogger32.debug("installed", { width: lastWidth, isVP });
|
|
33939
33988
|
const modelFrame = /* @__PURE__ */ __name((content, bypassMin = false) => {
|
|
33940
33989
|
if (!bypassMin && content.split("\n").length < MIN_FRAME_LINES) return;
|
|
33941
33990
|
model.content = content;
|
|
@@ -33944,7 +33993,7 @@ function installTerminalResizeReflow(stdout, options = {}) {
|
|
|
33944
33993
|
}, "modelFrame");
|
|
33945
33994
|
const onResize = /* @__PURE__ */ __name(() => {
|
|
33946
33995
|
const width = stdout.columns ?? lastWidth;
|
|
33947
|
-
|
|
33996
|
+
debugLogger32.debug("resize-event", {
|
|
33948
33997
|
width,
|
|
33949
33998
|
lastWidth,
|
|
33950
33999
|
modeled: model.content.length > 0
|
|
@@ -33955,7 +34004,7 @@ function installTerminalResizeReflow(stdout, options = {}) {
|
|
|
33955
34004
|
} else {
|
|
33956
34005
|
pendingAmplify = reflowModel(model, width);
|
|
33957
34006
|
}
|
|
33958
|
-
|
|
34007
|
+
debugLogger32.debug("shrink", {
|
|
33959
34008
|
from: lastWidth,
|
|
33960
34009
|
to: width,
|
|
33961
34010
|
pendingAmplify,
|
|
@@ -33983,9 +34032,9 @@ function installTerminalResizeReflow(stdout, options = {}) {
|
|
|
33983
34032
|
barePrintableCount = 0;
|
|
33984
34033
|
handoffUntil = Date.now() + HANDOFF_WINDOW_MS;
|
|
33985
34034
|
}
|
|
33986
|
-
|
|
34035
|
+
debugLogger32.debug("match", { printable });
|
|
33987
34036
|
if (isVP && Date.now() < clearUntil) {
|
|
33988
|
-
|
|
34037
|
+
debugLogger32.debug("clear-viewport");
|
|
33989
34038
|
chunk = chunk.slice(0, match.index) + CLEAR_VIEWPORT + chunk.slice(match.index + match[0].length);
|
|
33990
34039
|
} else if (pendingAmplify > 0) {
|
|
33991
34040
|
const count = countOccurrences(match[0], ERASE_LINE);
|
|
@@ -33997,7 +34046,7 @@ function installTerminalResizeReflow(stdout, options = {}) {
|
|
|
33997
34046
|
CURSOR_DOWN_PATTERN,
|
|
33998
34047
|
(_m, n) => `${ESC2}${Number(n) + delta}B`
|
|
33999
34048
|
);
|
|
34000
|
-
|
|
34049
|
+
debugLogger32.debug("amplify", { original: count, target });
|
|
34001
34050
|
chunk = prefix + base_exports.eraseLines(target) + chunk.slice(match.index + match[0].length);
|
|
34002
34051
|
}
|
|
34003
34052
|
}
|
|
@@ -34050,7 +34099,7 @@ var import_react117 = __toESM(require_react(), 1);
|
|
|
34050
34099
|
import process12 from "node:process";
|
|
34051
34100
|
import os4 from "node:os";
|
|
34052
34101
|
import v8 from "v8";
|
|
34053
|
-
var
|
|
34102
|
+
var debugLogger33 = createDebugLogger("MEMORY_MONITOR");
|
|
34054
34103
|
var MEMORY_WARNING_THRESHOLD = Math.min(
|
|
34055
34104
|
7 * 1024 * 1024 * 1024,
|
|
34056
34105
|
Math.floor(os4.totalmem() * 0.85)
|
|
@@ -34072,23 +34121,23 @@ var useMemoryMonitor = /* @__PURE__ */ __name(({
|
|
|
34072
34121
|
const rss = memUsage.rss / 1024 / 1024;
|
|
34073
34122
|
const external = memUsage.external / 1024 / 1024;
|
|
34074
34123
|
const arrayBuffers = memUsage.arrayBuffers / 1024 / 1024;
|
|
34075
|
-
if (
|
|
34076
|
-
|
|
34124
|
+
if (debugLogger33.isEnabled()) {
|
|
34125
|
+
debugLogger33.debug(
|
|
34077
34126
|
`[MEMORY_USAGE] heapUsed=${heapUsed.toFixed(1)}MB, heapTotal=${heapTotal.toFixed(1)}MB, rss=${rss.toFixed(1)}MB, external=${external.toFixed(1)}MB, arrayBuffers=${arrayBuffers.toFixed(1)}MB, heapUtilization=${(heapUsed / heapTotal * 100).toFixed(1)}%`
|
|
34078
34127
|
);
|
|
34079
34128
|
}
|
|
34080
34129
|
const now = Date.now();
|
|
34081
34130
|
if (compactOldItems && memUsage.heapUsed > MEMORY_UI_COMPACT_THRESHOLD() && now - lastCompactRef.current > UI_COMPACT_COOLDOWN_MS) {
|
|
34082
34131
|
lastCompactRef.current = now;
|
|
34083
|
-
if (
|
|
34084
|
-
|
|
34132
|
+
if (debugLogger33.isEnabled()) {
|
|
34133
|
+
debugLogger33.debug(
|
|
34085
34134
|
`[UI_COMPACT] heapUsed=${heapUsed.toFixed(1)}MB exceeds ${(MEMORY_UI_COMPACT_THRESHOLD() / 1024 / 1024).toFixed(0)}MB threshold, compacting UI history`
|
|
34086
34135
|
);
|
|
34087
34136
|
}
|
|
34088
34137
|
try {
|
|
34089
34138
|
compactOldItems();
|
|
34090
34139
|
} catch (err) {
|
|
34091
|
-
|
|
34140
|
+
debugLogger33.error(
|
|
34092
34141
|
`[UI_COMPACT] compactOldItems failed: ${err instanceof Error ? err.message : String(err)}`
|
|
34093
34142
|
);
|
|
34094
34143
|
}
|
|
@@ -34097,7 +34146,7 @@ var useMemoryMonitor = /* @__PURE__ */ __name(({
|
|
|
34097
34146
|
const warningIntervalId = setInterval(() => {
|
|
34098
34147
|
const usage = process12.memoryUsage();
|
|
34099
34148
|
if (usage.rss > MEMORY_WARNING_THRESHOLD) {
|
|
34100
|
-
|
|
34149
|
+
debugLogger33.warn(
|
|
34101
34150
|
`[MEMORY_WARNING] High memory usage detected: ${(usage.rss / (1024 * 1024 * 1024)).toFixed(2)} GB`
|
|
34102
34151
|
);
|
|
34103
34152
|
addItem(
|
|
@@ -34250,7 +34299,7 @@ var FEEDBACK_SHOW_PROBABILITY = 0.25;
|
|
|
34250
34299
|
var MIN_TOOL_CALLS = 10;
|
|
34251
34300
|
var MIN_USER_MESSAGES = 5;
|
|
34252
34301
|
var FEEDBACK_COOLDOWN_HOURS = 24;
|
|
34253
|
-
var
|
|
34302
|
+
var debugLogger34 = createDebugLogger("FEEDBACK_DIALOG");
|
|
34254
34303
|
var lastMessageIsAIResponse = /* @__PURE__ */ __name((history) => history.length > 0 && history[history.length - 1].type === "gemini" /* GEMINI */, "lastMessageIsAIResponse");
|
|
34255
34304
|
var getFeedbackLastShownTimestampFromFile = /* @__PURE__ */ __name(() => {
|
|
34256
34305
|
try {
|
|
@@ -34262,7 +34311,7 @@ var getFeedbackLastShownTimestampFromFile = /* @__PURE__ */ __name(() => {
|
|
|
34262
34311
|
}
|
|
34263
34312
|
} catch (error) {
|
|
34264
34313
|
if (isNodeError(error) && error.code !== "ENOENT") {
|
|
34265
|
-
|
|
34314
|
+
debugLogger34.warn(
|
|
34266
34315
|
"Failed to read feedbackLastShownTimestamp from settings file:",
|
|
34267
34316
|
error
|
|
34268
34317
|
);
|
|
@@ -35111,7 +35160,7 @@ __name(useDeleteCommand, "useDeleteCommand");
|
|
|
35111
35160
|
init_esbuild_shims();
|
|
35112
35161
|
var import_react129 = __toESM(require_react(), 1);
|
|
35113
35162
|
import process15 from "node:process";
|
|
35114
|
-
var
|
|
35163
|
+
var debugLogger35 = createDebugLogger("SLASH_COMMAND_PROCESSOR");
|
|
35115
35164
|
function hasUserPromptExpansionHooks(config) {
|
|
35116
35165
|
return !!config && !config.getDisableAllHooks?.() && (config.hasHooksForEvent?.("UserPromptExpansion") ?? false);
|
|
35117
35166
|
}
|
|
@@ -35124,18 +35173,6 @@ function serializeHistoryItemForRecording(item) {
|
|
|
35124
35173
|
return clone;
|
|
35125
35174
|
}
|
|
35126
35175
|
__name(serializeHistoryItemForRecording, "serializeHistoryItemForRecording");
|
|
35127
|
-
var SLASH_COMMANDS_SKIP_RECORDING = /* @__PURE__ */ new Set([
|
|
35128
|
-
"quit",
|
|
35129
|
-
"exit",
|
|
35130
|
-
"clear",
|
|
35131
|
-
"reset",
|
|
35132
|
-
"new",
|
|
35133
|
-
"resume",
|
|
35134
|
-
"delete",
|
|
35135
|
-
"branch",
|
|
35136
|
-
"btw",
|
|
35137
|
-
"history"
|
|
35138
|
-
]);
|
|
35139
35176
|
var SLASH_COMMAND_ROOTS_HIDE_INVOCATION = /* @__PURE__ */ new Set([
|
|
35140
35177
|
"auth",
|
|
35141
35178
|
"diff",
|
|
@@ -35694,7 +35731,7 @@ var useSlashCommandProcessor = /* @__PURE__ */ __name((config, settings, history
|
|
|
35694
35731
|
}
|
|
35695
35732
|
setCommands(commandService.getCommandsForMode("interactive"));
|
|
35696
35733
|
} catch (error) {
|
|
35697
|
-
|
|
35734
|
+
debugLogger35.error("Failed to load slash commands:", error);
|
|
35698
35735
|
} finally {
|
|
35699
35736
|
if (!controller.signal.aborted) {
|
|
35700
35737
|
resolveCommandReloads(reloadTrigger);
|
|
@@ -36126,7 +36163,7 @@ var useSlashCommandProcessor = /* @__PURE__ */ __name((config, settings, history
|
|
|
36126
36163
|
}
|
|
36127
36164
|
invocationSentToModel = true;
|
|
36128
36165
|
if (invocationItemId !== void 0) {
|
|
36129
|
-
|
|
36166
|
+
debugLogger35.debug(
|
|
36130
36167
|
`Marked slash command invocation as model-sent: /${resolvedCommandPath.join(
|
|
36131
36168
|
" "
|
|
36132
36169
|
)}`
|
|
@@ -36258,7 +36295,8 @@ ${commandToExecute.subCommands.map((sc) => ` - ${sc.name}: ${sc.description ||
|
|
|
36258
36295
|
if (config?.getChatRecordingService) {
|
|
36259
36296
|
const chatRecorder = config.getChatRecordingService();
|
|
36260
36297
|
const primaryCommand = resolvedCommandPath[0] || trimmed.replace(/^[/?]/, "").split(/\s+/u)[0] || trimmed;
|
|
36261
|
-
const
|
|
36298
|
+
const isBuiltInAdvisor = primaryCommand === "advisor" && commandToExecute?.kind === "built-in" /* BUILT_IN */;
|
|
36299
|
+
const shouldRecord = !delegatedToRecursiveInvocation && !isBuiltInAdvisor && !SLASH_COMMANDS_SKIP_RECORDING.has(primaryCommand);
|
|
36262
36300
|
try {
|
|
36263
36301
|
if (shouldRecord) {
|
|
36264
36302
|
chatRecorder?.recordSlashCommand({
|
|
@@ -36275,7 +36313,7 @@ ${commandToExecute.subCommands.map((sc) => ` - ${sc.name}: ${sc.description ||
|
|
|
36275
36313
|
});
|
|
36276
36314
|
}
|
|
36277
36315
|
} catch (recordError) {
|
|
36278
|
-
|
|
36316
|
+
debugLogger35.error(
|
|
36279
36317
|
"[slashCommand] Failed to record slash command:",
|
|
36280
36318
|
recordError
|
|
36281
36319
|
);
|
|
@@ -36452,7 +36490,7 @@ import os5 from "node:os";
|
|
|
36452
36490
|
import fs16 from "node:fs";
|
|
36453
36491
|
var OUTPUT_UPDATE_INTERVAL_MS = 1e3;
|
|
36454
36492
|
var MAX_OUTPUT_LENGTH = 1e4;
|
|
36455
|
-
var
|
|
36493
|
+
var debugLogger36 = createDebugLogger("SHELL_COMMAND_PROCESSOR");
|
|
36456
36494
|
function copyString(value) {
|
|
36457
36495
|
return value.split("").join("");
|
|
36458
36496
|
}
|
|
@@ -36603,7 +36641,7 @@ var useShellCommandProcessor = /* @__PURE__ */ __name((addItemToHistory, setPend
|
|
|
36603
36641
|
config.getShouldUseNodePtyShell(),
|
|
36604
36642
|
shellExecutionConfig
|
|
36605
36643
|
);
|
|
36606
|
-
|
|
36644
|
+
debugLogger36.debug(terminalHeight, terminalWidth);
|
|
36607
36645
|
executionPid = pid;
|
|
36608
36646
|
if (pid) {
|
|
36609
36647
|
setActiveShellPtyId(pid);
|
|
@@ -36757,7 +36795,7 @@ var useStateAndRef = /* @__PURE__ */ __name((initialValue) => {
|
|
|
36757
36795
|
init_esbuild_shims();
|
|
36758
36796
|
var import_react134 = __toESM(require_react(), 1);
|
|
36759
36797
|
import * as path11 from "node:path";
|
|
36760
|
-
var
|
|
36798
|
+
var debugLogger37 = createDebugLogger("REACT_TOOL_SCHEDULER");
|
|
36761
36799
|
function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorClose, onToolResultFullTurnModel) {
|
|
36762
36800
|
const [toolCallsForDisplay, setToolCallsForDisplay] = (0, import_react134.useState)([]);
|
|
36763
36801
|
const outputUpdateHandler = (0, import_react134.useCallback)(
|
|
@@ -36836,7 +36874,7 @@ function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorC
|
|
|
36836
36874
|
if (!modelOverride?.endsWith("\0")) {
|
|
36837
36875
|
void scheduler.schedule(request, signal).catch((error) => {
|
|
36838
36876
|
if (signal.aborted) return;
|
|
36839
|
-
|
|
36877
|
+
debugLogger37.error(
|
|
36840
36878
|
`Tool scheduling failed: ${error instanceof Error ? error.message : String(error)}`
|
|
36841
36879
|
);
|
|
36842
36880
|
});
|
|
@@ -36849,7 +36887,7 @@ function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorC
|
|
|
36849
36887
|
});
|
|
36850
36888
|
await scheduler.schedule(request, signal, runtimeView);
|
|
36851
36889
|
} catch (error) {
|
|
36852
|
-
|
|
36890
|
+
debugLogger37.error(
|
|
36853
36891
|
`Full-turn tool scheduling failed: ${error instanceof Error ? error.message : String(error)}`
|
|
36854
36892
|
);
|
|
36855
36893
|
const message = "Full-turn tool scheduling failed. The tool was not executed.";
|
|
@@ -36917,7 +36955,7 @@ function mapCoreStatusToDisplayStatus(coreStatus) {
|
|
|
36917
36955
|
return "Pending" /* Pending */;
|
|
36918
36956
|
default: {
|
|
36919
36957
|
const exhaustiveCheck = coreStatus;
|
|
36920
|
-
|
|
36958
|
+
debugLogger37.warn(`Unknown core status encountered: ${exhaustiveCheck}`);
|
|
36921
36959
|
return "Error" /* Error */;
|
|
36922
36960
|
}
|
|
36923
36961
|
}
|
|
@@ -37265,11 +37303,11 @@ function useMessageQueue() {
|
|
|
37265
37303
|
__name(useMessageQueue, "useMessageQueue");
|
|
37266
37304
|
|
|
37267
37305
|
// packages/cli/src/ui/hooks/useGeminiStream.ts
|
|
37268
|
-
var
|
|
37306
|
+
var debugLogger38 = createDebugLogger("GEMINI_STREAM");
|
|
37269
37307
|
function applyModelOverride(modelOverrideRef, inlineActiveRef, value, isInline) {
|
|
37270
37308
|
modelOverrideRef.current = value;
|
|
37271
37309
|
inlineActiveRef.current = isInline;
|
|
37272
|
-
|
|
37310
|
+
debugLogger38.debug(
|
|
37273
37311
|
`model override ${value === void 0 ? "cleared" : `set to ${value}`} (inline=${isInline})`
|
|
37274
37312
|
);
|
|
37275
37313
|
}
|
|
@@ -37478,20 +37516,20 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
37478
37516
|
expectedRevision: binding.permit.revision
|
|
37479
37517
|
});
|
|
37480
37518
|
} catch (error) {
|
|
37481
|
-
|
|
37519
|
+
debugLogger38.warn("Failed to pause invalid Goal tool batch", error);
|
|
37482
37520
|
}
|
|
37483
37521
|
}
|
|
37484
37522
|
try {
|
|
37485
37523
|
await config.getChatRecordingService()?.flush();
|
|
37486
37524
|
} catch (error) {
|
|
37487
|
-
|
|
37525
|
+
debugLogger38.warn("Failed to flush invalid Goal tool batch", error);
|
|
37488
37526
|
}
|
|
37489
37527
|
const currentPermit = runtime.permitForTurn(binding.turnKey);
|
|
37490
37528
|
if (currentPermit && sameGoalPermit(currentPermit, binding.permit)) {
|
|
37491
37529
|
await runtime.finishTurn(binding.permit);
|
|
37492
37530
|
}
|
|
37493
37531
|
} catch (error) {
|
|
37494
|
-
|
|
37532
|
+
debugLogger38.warn("Failed to close invalid Goal tool batch", error);
|
|
37495
37533
|
} finally {
|
|
37496
37534
|
releaseGoalTurn(binding);
|
|
37497
37535
|
}
|
|
@@ -37505,7 +37543,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
37505
37543
|
const runtime = await config.getGoalRuntimeReady();
|
|
37506
37544
|
await runtime.releaseTurn(turnKey);
|
|
37507
37545
|
} catch (error) {
|
|
37508
|
-
|
|
37546
|
+
debugLogger38.warn(
|
|
37509
37547
|
`Failed to release undelivered Goal turn ${turnKey}`,
|
|
37510
37548
|
error
|
|
37511
37549
|
);
|
|
@@ -37944,7 +37982,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
37944
37982
|
if (signal.aborted) {
|
|
37945
37983
|
return { parts: null, shouldProceed: false };
|
|
37946
37984
|
}
|
|
37947
|
-
|
|
37985
|
+
debugLogger38.debug("vision bridge: gate matched, running conversion");
|
|
37948
37986
|
const fullTurnModel = config.getDefaultVisionBridgeModel();
|
|
37949
37987
|
if (fullTurnModel?.agentCapable) {
|
|
37950
37988
|
const fullTurnParts = (Array.isArray(parts) ? parts : [parts]).map(
|
|
@@ -37969,7 +38007,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
37969
38007
|
return { parts: fullTurnParts, shouldProceed: true };
|
|
37970
38008
|
}
|
|
37971
38009
|
const bridgeResult = await runVisionBridge({ config, parts, signal });
|
|
37972
|
-
|
|
38010
|
+
debugLogger38.debug(
|
|
37973
38011
|
`vision bridge: status=${bridgeResult.status} applied=${bridgeResult.applied} model=${bridgeResult.modelId ?? "(none)"}`
|
|
37974
38012
|
);
|
|
37975
38013
|
if (bridgeResult.status !== "skipped" || bridgeResult.egressOccurred) {
|
|
@@ -38058,7 +38096,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
38058
38096
|
true
|
|
38059
38097
|
);
|
|
38060
38098
|
} else {
|
|
38061
|
-
|
|
38099
|
+
debugLogger38.warn(
|
|
38062
38100
|
`ignoring model override '${slashCommandResult.modelOverride}': not a model on the active provider`
|
|
38063
38101
|
);
|
|
38064
38102
|
}
|
|
@@ -38295,8 +38333,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
38295
38333
|
setThought((prev) => {
|
|
38296
38334
|
const incomingDescription = incoming.description ? clampLoadingThoughtDescription(incoming.description) : incoming.description;
|
|
38297
38335
|
if (!prev) {
|
|
38298
|
-
if (
|
|
38299
|
-
|
|
38336
|
+
if (debugLogger38.isEnabled()) {
|
|
38337
|
+
debugLogger38.debug(
|
|
38300
38338
|
`[THOUGHT_MERGE] New thought: subjectLength=${incoming.subject?.length ?? 0}, description length=${incomingDescription?.length ?? 0}`
|
|
38301
38339
|
);
|
|
38302
38340
|
}
|
|
@@ -38309,8 +38347,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
38309
38347
|
const description = clampLoadingThoughtDescription(
|
|
38310
38348
|
`${prev.description ?? ""}${incomingDescription ?? ""}`
|
|
38311
38349
|
);
|
|
38312
|
-
if (
|
|
38313
|
-
|
|
38350
|
+
if (debugLogger38.isEnabled()) {
|
|
38351
|
+
debugLogger38.debug(
|
|
38314
38352
|
`[THOUGHT_MERGE] Accumulating thought: prev length=${prev.description?.length ?? 0}, incoming length=${incomingDescription?.length ?? 0}, total length=${description.length}`
|
|
38315
38353
|
);
|
|
38316
38354
|
}
|
|
@@ -38471,7 +38509,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
38471
38509
|
eventValue.error.message,
|
|
38472
38510
|
formattedErrorText
|
|
38473
38511
|
).catch((err) => {
|
|
38474
|
-
|
|
38512
|
+
debugLogger38.warn(`StopFailure hook failed: ${err}`);
|
|
38475
38513
|
});
|
|
38476
38514
|
},
|
|
38477
38515
|
[
|
|
@@ -39077,7 +39115,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
39077
39115
|
duplicateProviderToolCallResponseIdsRef.current
|
|
39078
39116
|
);
|
|
39079
39117
|
if (repeatedDuplicateRequest?.providerCallId) {
|
|
39080
|
-
|
|
39118
|
+
debugLogger38.debug(
|
|
39081
39119
|
`[processGeminiStreamEvents] Dropping batch after repeated duplicate provider tool-call id: ${repeatedDuplicateRequest.providerCallId} (tool: ${repeatedDuplicateRequest.name})`
|
|
39082
39120
|
);
|
|
39083
39121
|
loopDetectedRef.current = true;
|
|
@@ -39098,7 +39136,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
39098
39136
|
duplicateProviderToolCallResponseIdsRef.current
|
|
39099
39137
|
);
|
|
39100
39138
|
const response = createDuplicateProviderToolCallResponse(request);
|
|
39101
|
-
|
|
39139
|
+
debugLogger38.debug(
|
|
39102
39140
|
`[processGeminiStreamEvents] Suppressing duplicate provider tool-call id: ${providerCallId} (tool: ${request.name})`
|
|
39103
39141
|
);
|
|
39104
39142
|
dualOutput?.emitToolResult(request, response);
|
|
@@ -39738,8 +39776,17 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
39738
39776
|
callId: request.callId,
|
|
39739
39777
|
toolName: request.name,
|
|
39740
39778
|
responseParts: response.responseParts,
|
|
39741
|
-
persistedOutputFiles: response.persistedOutputFiles
|
|
39779
|
+
persistedOutputFiles: response.persistedOutputFiles,
|
|
39780
|
+
artifacts: response.artifacts
|
|
39742
39781
|
})
|
|
39782
|
+
),
|
|
39783
|
+
new Map(
|
|
39784
|
+
immediateDuplicateToolResponses.responses.flatMap(
|
|
39785
|
+
({ request }) => {
|
|
39786
|
+
const promptId = request.prompt_id ?? immediateDuplicateToolResponses.promptId;
|
|
39787
|
+
return promptId ? [[request.callId, promptId]] : [];
|
|
39788
|
+
}
|
|
39789
|
+
)
|
|
39743
39790
|
)
|
|
39744
39791
|
);
|
|
39745
39792
|
const responseParts = finalized.flatMap(
|
|
@@ -39754,6 +39801,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
39754
39801
|
callId: request.callId,
|
|
39755
39802
|
status: response.error ? "error" : "success",
|
|
39756
39803
|
resultDisplay: response.resultDisplay,
|
|
39804
|
+
persistedOutputFiles: finalized[index].persistedOutputFiles,
|
|
39805
|
+
artifacts: finalized[index].artifacts,
|
|
39757
39806
|
error: response.error,
|
|
39758
39807
|
errorType: response.errorType,
|
|
39759
39808
|
executionStatus: response.executionStatus
|
|
@@ -39795,7 +39844,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
39795
39844
|
if (onComplete) {
|
|
39796
39845
|
submitPromptOnCompleteRef.current = null;
|
|
39797
39846
|
void onComplete().catch((err) => {
|
|
39798
|
-
|
|
39847
|
+
debugLogger38.error("onComplete callback failed:", err);
|
|
39799
39848
|
});
|
|
39800
39849
|
}
|
|
39801
39850
|
if (geminiClient) {
|
|
@@ -39982,7 +40031,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
39982
40031
|
"proceed_once" /* ProceedOnce */
|
|
39983
40032
|
);
|
|
39984
40033
|
} catch (error) {
|
|
39985
|
-
|
|
40034
|
+
debugLogger38.error(
|
|
39986
40035
|
`Failed to auto-approve tool call ${call.request.callId}:`,
|
|
39987
40036
|
error
|
|
39988
40037
|
);
|
|
@@ -40011,7 +40060,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
40011
40060
|
);
|
|
40012
40061
|
const dedupedCallIds = dedupedTools.map((tc) => tc.request.callId);
|
|
40013
40062
|
if (dedupedCallIds.length > 0) {
|
|
40014
|
-
|
|
40063
|
+
debugLogger38.warn(
|
|
40015
40064
|
`[REPAIR] Dropping ${dedupedCallIds.length} late tool result(s) whose callId already has a functionResponse in history: ${dedupedCallIds.join(", ")}`
|
|
40016
40065
|
);
|
|
40017
40066
|
for (const tc of dedupedTools) {
|
|
@@ -40289,11 +40338,11 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
40289
40338
|
memoryWriteCandidates,
|
|
40290
40339
|
config.getProjectRoot()
|
|
40291
40340
|
);
|
|
40292
|
-
|
|
40341
|
+
debugLogger38.debug(
|
|
40293
40342
|
`Checked marked context-file memory tool batch; matched=${matchedContextFileWrite}`
|
|
40294
40343
|
);
|
|
40295
40344
|
if (matchedContextFileWrite) {
|
|
40296
|
-
|
|
40345
|
+
debugLogger38.debug(
|
|
40297
40346
|
"Refreshing memory after context-file memory write"
|
|
40298
40347
|
);
|
|
40299
40348
|
await refreshMemoryInstruction(config, {
|
|
@@ -40304,7 +40353,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
40304
40353
|
if (newSuccessfulMemorySaves.length > 0) {
|
|
40305
40354
|
if (!didRefreshManagedMemory) {
|
|
40306
40355
|
void performMemoryRefresh().catch((err) => {
|
|
40307
|
-
|
|
40356
|
+
debugLogger38.warn(`save_memory refresh failed: ${err}`);
|
|
40308
40357
|
});
|
|
40309
40358
|
}
|
|
40310
40359
|
newSuccessfulMemorySaves.forEach(
|
|
@@ -40413,8 +40462,14 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
40413
40462
|
callId: request.callId,
|
|
40414
40463
|
toolName: request.name,
|
|
40415
40464
|
responseParts: response.responseParts,
|
|
40416
|
-
persistedOutputFiles: response.persistedOutputFiles
|
|
40417
|
-
|
|
40465
|
+
persistedOutputFiles: response.persistedOutputFiles,
|
|
40466
|
+
artifacts: response.artifacts
|
|
40467
|
+
})),
|
|
40468
|
+
new Map(
|
|
40469
|
+
orderedResponses.flatMap(
|
|
40470
|
+
({ request }) => request.prompt_id ? [[request.callId, request.prompt_id]] : []
|
|
40471
|
+
)
|
|
40472
|
+
)
|
|
40418
40473
|
);
|
|
40419
40474
|
const responsesToSend = finalizedResponses.flatMap(
|
|
40420
40475
|
(entry) => entry.responseParts
|
|
@@ -40427,6 +40482,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
40427
40482
|
callId: request.callId,
|
|
40428
40483
|
status,
|
|
40429
40484
|
resultDisplay: response.resultDisplay,
|
|
40485
|
+
persistedOutputFiles: finalizedResponses[index].persistedOutputFiles,
|
|
40486
|
+
artifacts: finalizedResponses[index].artifacts,
|
|
40430
40487
|
error: response.error,
|
|
40431
40488
|
errorType: response.errorType,
|
|
40432
40489
|
executionStatus: response.executionStatus
|
|
@@ -40480,7 +40537,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
40480
40537
|
for (const toolCall of geminiTools) {
|
|
40481
40538
|
if ("modelOverride" in toolCall.response) {
|
|
40482
40539
|
if (inlineModelOverrideActiveRef.current || modelOverrideRef.current?.endsWith("\0")) {
|
|
40483
|
-
|
|
40540
|
+
debugLogger38.debug(
|
|
40484
40541
|
`skill-tool model override (${String(
|
|
40485
40542
|
toolCall.response.modelOverride
|
|
40486
40543
|
)}) blocked: ${inlineModelOverrideActiveRef.current ? "inline override active" : "full-turn override active"}`
|
|
@@ -40853,7 +40910,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
40853
40910
|
try {
|
|
40854
40911
|
await scheduler.enableDurable(cronSessionIdRef.current);
|
|
40855
40912
|
} catch (err) {
|
|
40856
|
-
|
|
40913
|
+
debugLogger38.warn(
|
|
40857
40914
|
`Durable cron init failed \u2014 persistent tasks will not fire in this session: ${err}`
|
|
40858
40915
|
);
|
|
40859
40916
|
}
|
|
@@ -41004,7 +41061,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
41004
41061
|
setNotificationTrigger((n) => n + 1);
|
|
41005
41062
|
}, "onGoalClaimDeferred")
|
|
41006
41063
|
}).catch((error) => {
|
|
41007
|
-
|
|
41064
|
+
debugLogger38.warn("Failed to admit cron notification", error);
|
|
41008
41065
|
});
|
|
41009
41066
|
return;
|
|
41010
41067
|
}
|
|
@@ -41037,7 +41094,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
41037
41094
|
setNotificationTrigger((n) => n + 1);
|
|
41038
41095
|
}, "onGoalClaimDeferred")
|
|
41039
41096
|
}).catch((error) => {
|
|
41040
|
-
|
|
41097
|
+
debugLogger38.warn("Failed to admit background notification", error);
|
|
41041
41098
|
});
|
|
41042
41099
|
});
|
|
41043
41100
|
}
|
|
@@ -41110,7 +41167,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
41110
41167
|
setTeammateTrigger((n) => n + 1);
|
|
41111
41168
|
}, "onGoalClaimDeferred")
|
|
41112
41169
|
}).catch((error) => {
|
|
41113
|
-
|
|
41170
|
+
debugLogger38.warn("Failed to admit teammate notification", error);
|
|
41114
41171
|
});
|
|
41115
41172
|
});
|
|
41116
41173
|
}
|
|
@@ -41149,7 +41206,7 @@ var DIGIT_MULTIPLIER = 10;
|
|
|
41149
41206
|
var DEFAULT_COUNT = 1;
|
|
41150
41207
|
var MAX_COUNT = 9999;
|
|
41151
41208
|
var DIGIT_1_TO_9 = /^[1-9]$/;
|
|
41152
|
-
var
|
|
41209
|
+
var debugLogger39 = createDebugLogger("VIM_MODE");
|
|
41153
41210
|
var CMD_TYPES = {
|
|
41154
41211
|
DELETE_WORD_FORWARD: "dw",
|
|
41155
41212
|
DELETE_WORD_BACKWARD: "db",
|
|
@@ -41292,7 +41349,7 @@ function readClipboard() {
|
|
|
41292
41349
|
}
|
|
41293
41350
|
return "";
|
|
41294
41351
|
} catch (e) {
|
|
41295
|
-
|
|
41352
|
+
debugLogger39.warn("readClipboard failed:", e);
|
|
41296
41353
|
return "";
|
|
41297
41354
|
}
|
|
41298
41355
|
}
|
|
@@ -41338,7 +41395,7 @@ function writeClipboard(text) {
|
|
|
41338
41395
|
const [bin, ...args] = linuxWriteCmd;
|
|
41339
41396
|
const child = execFile7(bin, args, { timeout: 500 }, (err) => {
|
|
41340
41397
|
if (err && !writeOsc52(text)) {
|
|
41341
|
-
|
|
41398
|
+
debugLogger39.warn(
|
|
41342
41399
|
"writeClipboard: cached tool and OSC 52 both failed"
|
|
41343
41400
|
);
|
|
41344
41401
|
}
|
|
@@ -41347,11 +41404,11 @@ function writeClipboard(text) {
|
|
|
41347
41404
|
child.unref();
|
|
41348
41405
|
} else {
|
|
41349
41406
|
if (!writeOsc52(text)) {
|
|
41350
|
-
|
|
41407
|
+
debugLogger39.warn("OSC 52 clipboard write failed - no TTY available");
|
|
41351
41408
|
}
|
|
41352
41409
|
}
|
|
41353
41410
|
} catch (e) {
|
|
41354
|
-
|
|
41411
|
+
debugLogger39.warn("writeClipboard failed:", e);
|
|
41355
41412
|
}
|
|
41356
41413
|
}
|
|
41357
41414
|
__name(writeClipboard, "writeClipboard");
|
|
@@ -42066,7 +42123,7 @@ function useVim(buffer, onSubmit) {
|
|
|
42066
42123
|
try {
|
|
42067
42124
|
normalizedKey = normalizeKey(key);
|
|
42068
42125
|
} catch (error) {
|
|
42069
|
-
|
|
42126
|
+
debugLogger39.warn("Malformed key input in vim mode:", key, error);
|
|
42070
42127
|
return false;
|
|
42071
42128
|
}
|
|
42072
42129
|
const s = stateRef.current;
|
|
@@ -43399,7 +43456,7 @@ __name(useCommandMigration, "useCommandMigration");
|
|
|
43399
43456
|
|
|
43400
43457
|
// packages/cli/src/services/notificationService.ts
|
|
43401
43458
|
init_esbuild_shims();
|
|
43402
|
-
var
|
|
43459
|
+
var debugLogger40 = createDebugLogger("NOTIFICATION_SERVICE");
|
|
43403
43460
|
var DEFAULT_TITLE = "Qwen Code";
|
|
43404
43461
|
function sendNotification(opts, terminal, enabled) {
|
|
43405
43462
|
if (!enabled) {
|
|
@@ -43427,7 +43484,7 @@ function sendNotification(opts, terminal, enabled) {
|
|
|
43427
43484
|
return "terminal_bell";
|
|
43428
43485
|
}
|
|
43429
43486
|
} catch (error) {
|
|
43430
|
-
|
|
43487
|
+
debugLogger40.warn("Failed to send notification:", error);
|
|
43431
43488
|
return "error";
|
|
43432
43489
|
}
|
|
43433
43490
|
}
|
|
@@ -44379,7 +44436,7 @@ var import_jsx_runtime132 = __toESM(require_jsx_runtime(), 1);
|
|
|
44379
44436
|
var MCP_BATCH_FLUSH_MS = 16;
|
|
44380
44437
|
var STARTUP_PROFILE_FINALIZE_CAP_MS = 35e3;
|
|
44381
44438
|
var CTRL_EXIT_PROMPT_DURATION_MS = 1e3;
|
|
44382
|
-
var
|
|
44439
|
+
var debugLogger41 = createDebugLogger("APP_CONTAINER");
|
|
44383
44440
|
function isRenderModeToggleKey(key) {
|
|
44384
44441
|
return keyMatchers["toggleRenderMode" /* TOGGLE_RENDER_MODE */](key) || key.name === "m" && key.meta && !key.ctrl && !key.paste;
|
|
44385
44442
|
}
|
|
@@ -44531,7 +44588,7 @@ function useQueuedSubmissionDrain({
|
|
|
44531
44588
|
}
|
|
44532
44589
|
);
|
|
44533
44590
|
void Promise.resolve(request).catch((error) => {
|
|
44534
|
-
|
|
44591
|
+
debugLogger41.warn("Queued submission failed during admission", error);
|
|
44535
44592
|
}).finally(() => {
|
|
44536
44593
|
queueDrainingRef.current = false;
|
|
44537
44594
|
if (!admissionFailed) {
|
|
@@ -44773,7 +44830,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
44773
44830
|
const staticExtraHeight = 3;
|
|
44774
44831
|
(0, import_react162.useEffect)(() => {
|
|
44775
44832
|
void loadLowlight().catch((err) => {
|
|
44776
|
-
|
|
44833
|
+
debugLogger41.warn(
|
|
44777
44834
|
`Failed to load lowlight chunk; code blocks will render as plain text: ${err instanceof Error ? err.message : String(err)}`
|
|
44778
44835
|
);
|
|
44779
44836
|
});
|
|
@@ -44855,9 +44912,9 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
44855
44912
|
registerCleanup(async () => {
|
|
44856
44913
|
try {
|
|
44857
44914
|
await config.getHookSystem()?.fireSessionEndEvent("prompt_input_exit" /* PromptInputExit */);
|
|
44858
|
-
|
|
44915
|
+
debugLogger41.debug("SessionEnd event completed successfully!!!");
|
|
44859
44916
|
} catch (err) {
|
|
44860
|
-
|
|
44917
|
+
debugLogger41.error(`SessionEnd hook failed: ${err}`);
|
|
44861
44918
|
}
|
|
44862
44919
|
});
|
|
44863
44920
|
registerCleanup(async () => {
|
|
@@ -44883,7 +44940,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
44883
44940
|
flushTimer = null;
|
|
44884
44941
|
}
|
|
44885
44942
|
return geminiClient2.setTools().catch((err) => {
|
|
44886
|
-
|
|
44943
|
+
debugLogger41.error(
|
|
44887
44944
|
`setTools() batch-flush failed: ${err instanceof Error ? err.message : String(err)}`
|
|
44888
44945
|
);
|
|
44889
44946
|
});
|
|
@@ -44901,7 +44958,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
44901
44958
|
failureSurfaced = true;
|
|
44902
44959
|
const failedNames = typeof config.getFailedMcpServerNames === "function" ? config.getFailedMcpServerNames() : [];
|
|
44903
44960
|
if (failedNames.length > 0) {
|
|
44904
|
-
|
|
44961
|
+
debugLogger41.warn(
|
|
44905
44962
|
`MCP server(s) failed to start: ${failedNames.join(", ")}. Continuing with built-in tools and any servers that did connect.`
|
|
44906
44963
|
);
|
|
44907
44964
|
}
|
|
@@ -45359,7 +45416,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
45359
45416
|
try {
|
|
45360
45417
|
cancelOngoingRequestRef.current();
|
|
45361
45418
|
} catch (error) {
|
|
45362
|
-
|
|
45419
|
+
debugLogger41.debug("Failed to cancel request while quitting:", error);
|
|
45363
45420
|
}
|
|
45364
45421
|
setQuittingMessages(messages);
|
|
45365
45422
|
config.getGeminiClient()?.requestShutdown();
|
|
@@ -45577,7 +45634,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
45577
45634
|
},
|
|
45578
45635
|
Date.now()
|
|
45579
45636
|
);
|
|
45580
|
-
|
|
45637
|
+
debugLogger41.debug(
|
|
45581
45638
|
`[DEBUG] Refreshed memory content in config: ${memoryContent.substring(
|
|
45582
45639
|
0,
|
|
45583
45640
|
200
|
|
@@ -45592,7 +45649,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
45592
45649
|
},
|
|
45593
45650
|
Date.now()
|
|
45594
45651
|
);
|
|
45595
|
-
|
|
45652
|
+
debugLogger41.error("Error refreshing memory:", error);
|
|
45596
45653
|
}
|
|
45597
45654
|
}, [config, historyManager, settings.merged]);
|
|
45598
45655
|
const cancelHandlerRef = (0, import_react162.useRef)(() => {
|
|
@@ -45762,7 +45819,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
45762
45819
|
);
|
|
45763
45820
|
});
|
|
45764
45821
|
goalReservationSettlementRef.current = settlement.catch((error) => {
|
|
45765
|
-
|
|
45822
|
+
debugLogger41.warn(
|
|
45766
45823
|
`Failed to release queued Goal turns: ${getErrorMessage(error)}`
|
|
45767
45824
|
);
|
|
45768
45825
|
});
|
|
@@ -45960,7 +46017,7 @@ ${buildWorkflowSteeringNotice()}
|
|
|
45960
46017
|
}, "onAdmissionFailed")
|
|
45961
46018
|
})
|
|
45962
46019
|
).catch((error) => {
|
|
45963
|
-
|
|
46020
|
+
debugLogger41.warn("Failed to admit /btw submission", error);
|
|
45964
46021
|
});
|
|
45965
46022
|
return;
|
|
45966
46023
|
}
|
|
@@ -46054,7 +46111,7 @@ ${buildWorkflowSteeringNotice()}
|
|
|
46054
46111
|
submittedPrompt === void 0 ? void 0 : { submittedPrompt }
|
|
46055
46112
|
)
|
|
46056
46113
|
).catch((error) => {
|
|
46057
|
-
|
|
46114
|
+
debugLogger41.warn("Failed to admit slash command", error);
|
|
46058
46115
|
});
|
|
46059
46116
|
return;
|
|
46060
46117
|
}
|
|
@@ -46131,18 +46188,18 @@ ${currentText}` : popped.modelText
|
|
|
46131
46188
|
geminiClient?.stripOrphanedUserEntriesFromHistory?.();
|
|
46132
46189
|
}
|
|
46133
46190
|
if (!draftWasEmpty) {
|
|
46134
|
-
|
|
46191
|
+
debugLogger41.debug("auto-restore bail: buffer was non-empty");
|
|
46135
46192
|
return;
|
|
46136
46193
|
}
|
|
46137
46194
|
if (popped !== null) {
|
|
46138
|
-
|
|
46195
|
+
debugLogger41.debug(
|
|
46139
46196
|
"auto-restore bail: queue had items (drained to buffer)"
|
|
46140
46197
|
);
|
|
46141
46198
|
return;
|
|
46142
46199
|
}
|
|
46143
46200
|
const cancelledTurnUserItem = info?.lastTurnUserItem;
|
|
46144
46201
|
if (cancelledTurnUserItem == null) {
|
|
46145
|
-
|
|
46202
|
+
debugLogger41.debug(
|
|
46146
46203
|
"auto-restore bail: cancelled turn did not add a user history item"
|
|
46147
46204
|
);
|
|
46148
46205
|
return;
|
|
@@ -46156,20 +46213,20 @@ ${currentText}` : popped.modelText
|
|
|
46156
46213
|
buffer.setText(cancelledTurnUserItem.text);
|
|
46157
46214
|
}, "restoreCancelledPrompt");
|
|
46158
46215
|
if (pendingHistoryItems2.some((item) => item.type === "tool_group")) {
|
|
46159
|
-
|
|
46216
|
+
debugLogger41.debug(
|
|
46160
46217
|
"auto-restore bail: tool execution is pending or committed"
|
|
46161
46218
|
);
|
|
46162
46219
|
return;
|
|
46163
46220
|
}
|
|
46164
46221
|
if (info?.turnProducedMeaningfulContent) {
|
|
46165
|
-
|
|
46222
|
+
debugLogger41.debug(
|
|
46166
46223
|
"auto-restore: preserving streamed output and restoring prompt text"
|
|
46167
46224
|
);
|
|
46168
46225
|
restoreCancelledPrompt();
|
|
46169
46226
|
return;
|
|
46170
46227
|
}
|
|
46171
46228
|
if (pendingHistoryItems2.some((item) => !isSyntheticHistoryItem(item))) {
|
|
46172
|
-
|
|
46229
|
+
debugLogger41.debug(
|
|
46173
46230
|
"auto-restore bail: pending stream item has meaningful content"
|
|
46174
46231
|
);
|
|
46175
46232
|
return;
|
|
@@ -46177,11 +46234,11 @@ ${currentText}` : popped.modelText
|
|
|
46177
46234
|
const history = historyRef.current;
|
|
46178
46235
|
const lastUserIdx = findLastUserItemIndex(history);
|
|
46179
46236
|
if (lastUserIdx === -1) {
|
|
46180
|
-
|
|
46237
|
+
debugLogger41.debug("auto-restore bail: no user item in history");
|
|
46181
46238
|
return;
|
|
46182
46239
|
}
|
|
46183
46240
|
if (!itemsAfterAreOnlySynthetic(history, lastUserIdx)) {
|
|
46184
|
-
|
|
46241
|
+
debugLogger41.debug(
|
|
46185
46242
|
"auto-restore: preserving committed output and restoring prompt text"
|
|
46186
46243
|
);
|
|
46187
46244
|
restoreCancelledPrompt();
|
|
@@ -46189,18 +46246,18 @@ ${currentText}` : popped.modelText
|
|
|
46189
46246
|
}
|
|
46190
46247
|
const lastUserItem = history[lastUserIdx];
|
|
46191
46248
|
if (lastUserItem.type !== "user") {
|
|
46192
|
-
|
|
46249
|
+
debugLogger41.debug(
|
|
46193
46250
|
"auto-restore bail: lastUserItem type narrowing failed (unexpected)"
|
|
46194
46251
|
);
|
|
46195
46252
|
return;
|
|
46196
46253
|
}
|
|
46197
46254
|
if (lastUserItem.id !== cancelledTurnUserItem.id || lastUserItem.text !== cancelledTurnUserItem.text) {
|
|
46198
|
-
|
|
46255
|
+
debugLogger41.debug(
|
|
46199
46256
|
"auto-restore bail: lastUserItem identity does not match cancelled-turn user item"
|
|
46200
46257
|
);
|
|
46201
46258
|
return;
|
|
46202
46259
|
}
|
|
46203
|
-
|
|
46260
|
+
debugLogger41.debug(
|
|
46204
46261
|
"auto-restore: rewinding cancelled turn and restoring prompt"
|
|
46205
46262
|
);
|
|
46206
46263
|
historyManager.truncateToItem(lastUserItem.id);
|
|
@@ -46209,7 +46266,7 @@ ${currentText}` : popped.modelText
|
|
|
46209
46266
|
geminiClient?.stripOrphanedUserEntriesFromHistory?.();
|
|
46210
46267
|
if (info?.canUndoLastLoggedUserMessage) {
|
|
46211
46268
|
void logger?.removeLastUserMessage().catch((err) => {
|
|
46212
|
-
|
|
46269
|
+
debugLogger41.debug("Failed to undo cancelled prompt from log:", err);
|
|
46213
46270
|
});
|
|
46214
46271
|
}
|
|
46215
46272
|
},
|
|
@@ -46300,7 +46357,13 @@ ${currentText}` : popped.modelText
|
|
|
46300
46357
|
suggestionAbortRef.current = ac;
|
|
46301
46358
|
const conversationHistory = geminiClient.getHistoryTail(40, true);
|
|
46302
46359
|
generatePromptSuggestion(config, conversationHistory, ac.signal, {
|
|
46303
|
-
|
|
46360
|
+
// On by default: the schema declares `default: true`, but
|
|
46361
|
+
// `mergeSettings` doesn't apply schema defaults, so an unset value is
|
|
46362
|
+
// `undefined` and a `=== true` gate left the cache-aware fork as dead
|
|
46363
|
+
// code unless the flag was explicitly set (#9230). Same treatment as
|
|
46364
|
+
// `enableFollowupSuggestions` above — only an explicit `false` opts
|
|
46365
|
+
// out.
|
|
46366
|
+
enableCacheSharing: settings.merged.ui?.enableCacheSharing !== false
|
|
46304
46367
|
}).then((result) => {
|
|
46305
46368
|
if (ac.signal.aborted) return;
|
|
46306
46369
|
if (result.suggestion) {
|
|
@@ -46925,7 +46988,7 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
46925
46988
|
const handleGlobalKeypress = (0, import_react162.useCallback)(
|
|
46926
46989
|
(key) => {
|
|
46927
46990
|
if (settings.merged.general?.debugKeystrokeLogging) {
|
|
46928
|
-
|
|
46991
|
+
debugLogger41.debug("[DEBUG] Keystroke:", JSON.stringify(key));
|
|
46929
46992
|
}
|
|
46930
46993
|
if (keyMatchers["toggleThinkingExpanded" /* TOGGLE_THINKING_EXPANDED */](key)) {
|
|
46931
46994
|
setThoughtExpanded((prev) => !prev);
|
|
@@ -47043,7 +47106,7 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
47043
47106
|
);
|
|
47044
47107
|
if (promotableShells.length === 1) {
|
|
47045
47108
|
const executingShell = promotableShells[0];
|
|
47046
|
-
|
|
47109
|
+
debugLogger41.debug(
|
|
47047
47110
|
`Ctrl+B promote: matched executing shell tool call ${executingShell.request.callId}`
|
|
47048
47111
|
);
|
|
47049
47112
|
executingShell.promoteAbortController.abort({
|
|
@@ -47051,7 +47114,7 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
47051
47114
|
});
|
|
47052
47115
|
return;
|
|
47053
47116
|
}
|
|
47054
|
-
|
|
47117
|
+
debugLogger41.debug(
|
|
47055
47118
|
`Ctrl+B promote: expected exactly one executing shell tool call; falling through (streamingState=${streamingState}, pendingToolCalls=${pendingToolCallsRef.current.length}, promotableShells=${promotableShells.length})`
|
|
47056
47119
|
);
|
|
47057
47120
|
}
|
|
@@ -47742,7 +47805,7 @@ __name(installSynchronizedOutput, "installSynchronizedOutput");
|
|
|
47742
47805
|
|
|
47743
47806
|
// packages/cli/src/ui/startInteractiveUI.tsx
|
|
47744
47807
|
var import_jsx_runtime133 = __toESM(require_jsx_runtime(), 1);
|
|
47745
|
-
var
|
|
47808
|
+
var debugLogger42 = createDebugLogger("STARTUP");
|
|
47746
47809
|
var PRESSURE_CHECK_INTERVAL_MS = 3e4;
|
|
47747
47810
|
async function startInteractiveUI(config, settings, startupWarnings, workspaceRoot = process.cwd(), initializationResult, options = {}) {
|
|
47748
47811
|
const version = await getCliVersion();
|
|
@@ -47780,7 +47843,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
47780
47843
|
);
|
|
47781
47844
|
}
|
|
47782
47845
|
} catch (err) {
|
|
47783
|
-
|
|
47846
|
+
debugLogger42.error("Failed to initialize dual output bridge:", err);
|
|
47784
47847
|
writeStderrLine(
|
|
47785
47848
|
`Warning: dual output disabled \u2014 ${err instanceof Error ? err.message : String(err)}`
|
|
47786
47849
|
);
|
|
@@ -47791,7 +47854,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
47791
47854
|
try {
|
|
47792
47855
|
remoteInputWatcher = new RemoteInputWatcher(inputFile);
|
|
47793
47856
|
} catch (err) {
|
|
47794
|
-
|
|
47857
|
+
debugLogger42.error("Failed to initialize remote input watcher:", err);
|
|
47795
47858
|
writeStderrLine(
|
|
47796
47859
|
`Warning: remote input disabled \u2014 ${err instanceof Error ? err.message : String(err)}`
|
|
47797
47860
|
);
|
|
@@ -47842,7 +47905,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
47842
47905
|
{
|
|
47843
47906
|
recordForExitEcho: true,
|
|
47844
47907
|
onError: (error, info) => {
|
|
47845
|
-
|
|
47908
|
+
debugLogger42.error(
|
|
47846
47909
|
`[FATAL_RENDER_ERROR] ${error.message}
|
|
47847
47910
|
${info.componentStack ?? ""}
|
|
47848
47911
|
${error.stack ?? ""}`
|
|
@@ -47920,6 +47983,14 @@ qwen --resume ${sessionId}`
|
|
|
47920
47983
|
} catch {
|
|
47921
47984
|
}
|
|
47922
47985
|
});
|
|
47986
|
+
config.trackSessionRegistration(
|
|
47987
|
+
registerSession({
|
|
47988
|
+
sessionId: config.getSessionId(),
|
|
47989
|
+
cwd: config.getTargetDir(),
|
|
47990
|
+
qwenVersion: version
|
|
47991
|
+
})
|
|
47992
|
+
);
|
|
47993
|
+
registerCleanup(() => config.unregisterSessionRegistry());
|
|
47923
47994
|
}
|
|
47924
47995
|
__name(startInteractiveUI, "startInteractiveUI");
|
|
47925
47996
|
function setWindowTitle(settings, folderName) {
|