@qwen-code/qwen-code 0.21.10 → 0.21.11
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/coordinate/SKILL.md +52 -0
- package/bundled/qc-helper/docs/configuration/model-providers.md +10 -8
- package/bundled/qc-helper/docs/extension/_meta.ts +1 -0
- package/bundled/qc-helper/docs/extension/agent-plugins.md +50 -0
- package/bundled/qc-helper/docs/extension/extension-releasing.md +3 -3
- package/bundled/qc-helper/docs/extension/introduction.md +17 -3
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/arena.md +4 -3
- package/bundled/qc-helper/docs/features/commands.md +7 -6
- package/bundled/qc-helper/docs/features/dual-output.md +5 -0
- package/bundled/qc-helper/docs/features/headless.md +8 -0
- package/bundled/qc-helper/docs/features/multi-agent-coordination.md +30 -0
- package/bundled/qc-helper/docs/qwen-serve.md +7 -7
- package/bundled/review/SKILL.md +17 -7
- package/chunks/{MaxSizedBox-FKXYULMW.js → MaxSizedBox-G7QPSZTF.js} +45 -44
- package/chunks/{StandaloneSessionPicker-OQS3M7AY.js → StandaloneSessionPicker-3CTEPV7S.js} +65 -64
- package/chunks/{acp-startup-profiler-VNTFWYAC.js → acp-startup-profiler-JMJBZDVO.js} +2 -2
- package/chunks/{acpAgent-AGS6HLQQ.js → acpAgent-43JURWOW.js} +1107 -285
- package/chunks/{agent-4NCVO27U.js → agent-MIY4LJJJ.js} +42 -41
- package/chunks/agent-headless-LWVA6GR5.js +87 -0
- package/chunks/{anthropicContentGenerator-D3Y4RFT4.js → anthropicContentGenerator-7HEP7Q5D.js} +8 -8
- package/chunks/{artifact-tool-N652YE4L.js → artifact-tool-M7UAJ5NT.js} +2 -2
- package/chunks/{askUserQuestion-ONW74PKJ.js → askUserQuestion-7G3LI3IZ.js} +2 -2
- package/chunks/{bridge-FHINXZMN.js → bridge-PTTJEBNP.js} +47 -46
- package/chunks/{ca-ZLKAB4K3.js → ca-4CQ6MYNQ.js} +2 -1
- package/chunks/{channel-management-service-PHELKOW2.js → channel-management-service-PQ6SU56M.js} +6 -6
- package/chunks/channel-settings-store-IKK34GMH.js +102 -0
- package/chunks/{channel-worker-group-WQP4RCDO.js → channel-worker-group-WBRE33ZV.js} +8 -7
- package/chunks/{channel-worker-manager-MRDFAKIM.js → channel-worker-manager-V4LYVTPH.js} +8 -7
- package/chunks/{channel-worker-supervisor-IVSDIMI4.js → channel-worker-supervisor-YDAGW2RP.js} +6 -5
- package/chunks/{chunk-2PLNY5TN.js → chunk-23GFHEM3.js} +4 -4
- package/chunks/{chunk-IIJEYBNH.js → chunk-25OFRBH2.js} +188 -58
- package/chunks/{chunk-F24A2JBM.js → chunk-2AAFGCWP.js} +690 -151
- package/chunks/{chunk-J6SZID63.js → chunk-2AZMF6G5.js} +2 -2
- package/chunks/{chunk-6LP743KE.js → chunk-2R2HYSUQ.js} +21 -102
- package/chunks/{chunk-DZUO626D.js → chunk-2XZWO53E.js} +3 -3
- package/chunks/{chunk-VKJ4KTPJ.js → chunk-3GCU5O2E.js} +1 -1
- package/chunks/{chunk-AQAJJMRR.js → chunk-3LHYTQ2R.js} +1 -1
- package/chunks/{chunk-QJMOAMXT.js → chunk-3SOTXJNO.js} +8 -8
- package/chunks/{chunk-URKIBIFC.js → chunk-45HPDU3F.js} +3 -3
- package/chunks/{chunk-OWMAZHIX.js → chunk-47FQVRCO.js} +1 -1
- package/chunks/{chunk-Z4JX4NSH.js → chunk-4C4QSXE3.js} +23 -23
- package/chunks/{chunk-IRZ2ZH72.js → chunk-4EX3DBFH.js} +4 -4
- package/chunks/{chunk-MFDYOYZZ.js → chunk-4MHDNGAV.js} +25 -2
- package/chunks/{chunk-ABVRJU3D.js → chunk-4PFKN7CQ.js} +7 -7
- package/chunks/{chunk-HV76SFIA.js → chunk-5HBFERG5.js} +3 -3
- package/chunks/{chunk-WAUGQKUU.js → chunk-6LYDH7VT.js} +9 -5
- package/chunks/{chunk-S6HYI3MF.js → chunk-6S52N6PG.js} +2 -2
- package/chunks/{chunk-FVKHVJZQ.js → chunk-732MOPEM.js} +1 -1
- package/chunks/{chunk-OCSFNUU4.js → chunk-7QE3QFU3.js} +8 -8
- package/chunks/{chunk-WCG5O7IP.js → chunk-7SUQZ7QH.js} +2 -2
- package/chunks/{chunk-QG3FFJYU.js → chunk-AAOONL5N.js} +1 -1
- package/chunks/{chunk-VSFKIRRW.js → chunk-AKLY5M2C.js} +4 -4
- package/chunks/{chunk-UVX4Y6IN.js → chunk-AQHNAA7E.js} +1 -1
- package/chunks/{chunk-IBUGFUXC.js → chunk-BIXG46YI.js} +12 -12
- package/chunks/{chunk-4TRQPFDP.js → chunk-BJKREW56.js} +6 -8
- package/chunks/{chunk-D27I6YJT.js → chunk-BNRNVMOT.js} +27 -18
- package/chunks/{chunk-IWTMYQ32.js → chunk-BR6TUEKJ.js} +9 -8
- package/chunks/{chunk-Q3JQ7OSU.js → chunk-BTYS2JAY.js} +1 -1
- package/chunks/{chunk-H6XPXXMH.js → chunk-CQ35AJ4Z.js} +252 -254
- package/chunks/{chunk-COBO5EBO.js → chunk-CTQE2NB2.js} +1 -1
- package/chunks/{chunk-P3BJLFSZ.js → chunk-DEKY5Y7V.js} +3 -3
- package/chunks/{chunk-Y3OVRWRY.js → chunk-DM4C3OX5.js} +1 -1
- package/chunks/{chunk-YWPSGJFI.js → chunk-DSKLWQHC.js} +2 -2
- package/chunks/{chunk-KKBPOU75.js → chunk-EFIMD5VA.js} +1 -1
- package/chunks/{chunk-CTJLZLB5.js → chunk-EN2J77G7.js} +1 -1
- package/chunks/{chunk-67EWJE77.js → chunk-ENEEQMGM.js} +1 -1
- package/chunks/{chunk-AEL7KN2O.js → chunk-EOBM4T2Z.js} +1 -1
- package/chunks/{chunk-NDU63YLI.js → chunk-ESVSQKPY.js} +4 -4
- package/chunks/{chunk-CPG6P4GG.js → chunk-EYS3GGM3.js} +1 -1
- package/chunks/{chunk-4PYCZH2V.js → chunk-EYW54TBD.js} +3 -3
- package/chunks/{chunk-EBZ6BJTF.js → chunk-F4T5J34H.js} +1 -1
- package/chunks/{chunk-FOGU3LJX.js → chunk-F6AOBFUN.js} +1 -1
- package/chunks/{chunk-ZBVS26BY.js → chunk-FPGTNKCP.js} +7 -5
- package/chunks/{chunk-YF5MALI4.js → chunk-G64M7R2Y.js} +5 -5
- package/chunks/{chunk-EI3HZX6C.js → chunk-GJJQV4PY.js} +1 -1
- package/chunks/{chunk-CKASRHZI.js → chunk-GLWWPFTW.js} +1 -1
- package/chunks/{chunk-GM463R2B.js → chunk-GZGDJ4E6.js} +1 -1
- package/chunks/{chunk-W5UC37EE.js → chunk-HHGQGTJQ.js} +2 -0
- package/chunks/chunk-HHJLM3WQ.js +41 -0
- package/chunks/{chunk-ZRBMO3C7.js → chunk-HMCSRTDY.js} +1 -1
- package/chunks/{chunk-L2AFWWJE.js → chunk-HUE2M6VI.js} +50 -5
- package/chunks/{chunk-LLCWZQCU.js → chunk-HZV75ET2.js} +3 -3
- package/chunks/{chunk-6ZRFAKXK.js → chunk-IEP44U2R.js} +1 -1
- package/chunks/{chunk-AOHJKPKL.js → chunk-IQFYO5BF.js} +1 -1
- package/chunks/{chunk-UDXSXLER.js → chunk-IW6RQPQB.js} +14 -4
- package/chunks/{chunk-XCWO3SMQ.js → chunk-IX7CFQGA.js} +3 -3
- package/chunks/{chunk-O3EU6GMH.js → chunk-J4EVBAB3.js} +27 -4
- package/chunks/{chunk-ZZCWJWTF.js → chunk-JHMFKJEP.js} +1 -1
- package/chunks/{chunk-XVHYA33G.js → chunk-JKEO6OQY.js} +4 -4
- package/chunks/{chunk-6Q5ABMTU.js → chunk-JLYYGKRN.js} +23 -19
- package/chunks/{chunk-KID7K6H2.js → chunk-JOXXPM3X.js} +6 -6
- package/chunks/{chunk-E2FPSSKP.js → chunk-JPA7IDTE.js} +57 -13
- package/chunks/{chunk-OQTXYMKW.js → chunk-JS4Q5NG5.js} +3 -3
- package/chunks/{chunk-PBRVUF5B.js → chunk-K7JW6V5O.js} +1 -1
- package/chunks/{chunk-3P2LV43B.js → chunk-KCCODSAA.js} +3 -3
- package/chunks/{chunk-DREZZAZM.js → chunk-KCDQGIHS.js} +13 -5
- package/chunks/{chunk-UEOKWYGY.js → chunk-KFCTC5IJ.js} +11 -11
- package/chunks/{chunk-M6HMMKVG.js → chunk-KPVVWKF3.js} +1 -1
- package/chunks/{chunk-MVUQRLOH.js → chunk-KT4OWAAZ.js} +3 -3
- package/chunks/{chunk-W4RQUHY3.js → chunk-L2GTEEEU.js} +142 -23
- package/chunks/{chunk-Q3AL4JQ3.js → chunk-LA3FF7RO.js} +2 -2
- package/chunks/{chunk-DX3RGJMS.js → chunk-LT532KF4.js} +71 -12
- package/chunks/{chunk-JT7XS4YW.js → chunk-M2NMFAFR.js} +1 -1
- package/chunks/{chunk-YTFDX4PR.js → chunk-M6NDLY2T.js} +1 -1
- package/chunks/{chunk-MIKXJYZB.js → chunk-MCHGE3EC.js} +305 -291
- package/chunks/{chunk-Y4R47ZUH.js → chunk-MDQSCFAZ.js} +7 -7
- package/chunks/{chunk-EKPKKXY2.js → chunk-MLZCPGDX.js} +1 -1
- package/chunks/{chunk-OIVKILPI.js → chunk-MPBRV3UU.js} +3 -0
- package/chunks/{chunk-VFMASYQA.js → chunk-MS7GNABG.js} +3 -0
- package/chunks/{chunk-2FRY5CRX.js → chunk-MWZYNOCG.js} +3 -3
- package/chunks/{chunk-ONSZH6VM.js → chunk-MZQ4I4AP.js} +2 -2
- package/chunks/{chunk-UMD7WQTR.js → chunk-N3ZWGKXN.js} +10 -8
- package/chunks/{chunk-7MH4J33A.js → chunk-N7NBMAMW.js} +2 -2
- package/chunks/{chunk-EUNWC2VS.js → chunk-NC4O6UE6.js} +2 -2
- package/chunks/{chunk-A7XMDZRI.js → chunk-NFSSQDB5.js} +5 -5
- package/chunks/{chunk-DCZEPFB4.js → chunk-NM3E6GGL.js} +3 -3
- package/chunks/{chunk-26CXSA6V.js → chunk-NQPYPDOY.js} +2 -2
- package/chunks/{chunk-HUWENAHO.js → chunk-NWPO6I7V.js} +1 -1
- package/chunks/{chunk-SR7RZ4MS.js → chunk-O4BBDP2G.js} +2 -2
- package/chunks/{chunk-ECWR5LQR.js → chunk-OC5SKSNX.js} +3 -3
- package/chunks/{chunk-VWKER4ZH.js → chunk-OGQERNHD.js} +3 -3
- package/chunks/{chunk-DA4HRSBW.js → chunk-OPBATTFQ.js} +1 -1
- package/chunks/{chunk-OONWZLFK.js → chunk-P7KCJGBR.js} +4 -4
- package/chunks/{chunk-OJUQF2PL.js → chunk-PBYVS6QT.js} +3 -3
- package/chunks/{chunk-VNNWAZSI.js → chunk-QG2IEE2E.js} +3 -3
- package/chunks/{chunk-KZ22NXBY.js → chunk-QGZN4RYB.js} +4 -4
- package/chunks/{chunk-2UUMVNYT.js → chunk-QTI7SRXI.js} +3 -3
- package/chunks/{chunk-B2GJNDTV.js → chunk-QUESTNOP.js} +1 -1
- package/chunks/{chunk-AAE6SR4Q.js → chunk-RUKNJEJO.js} +1 -1
- package/chunks/{chunk-NV65ZUVM.js → chunk-RUVZZKDH.js} +1 -1
- package/chunks/{chunk-QUI267ZP.js → chunk-SAQHDAUJ.js} +42 -8
- package/chunks/{chunk-4MKXUHXY.js → chunk-SUTP6CZA.js} +5 -5
- package/chunks/{chunk-UBX6NL47.js → chunk-T4576UW4.js} +3 -3
- package/chunks/{chunk-TZEZYNYD.js → chunk-T4FTABSW.js} +1 -1
- package/chunks/{chunk-SEZ556DZ.js → chunk-T6W4KACQ.js} +1 -1
- package/chunks/chunk-TKAEODJR.js +1279 -0
- package/chunks/{chunk-NV3F44FL.js → chunk-TNQLAI6I.js} +2 -2
- package/chunks/{chunk-F6WDTQ3M.js → chunk-TNS2M7VL.js} +5 -5
- package/chunks/{chunk-7GTMV7UE.js → chunk-TTB6GBJ6.js} +8323 -2227
- package/chunks/{chunk-YGT2AUJ7.js → chunk-U2JLICUY.js} +33 -16
- package/chunks/{chunk-NEOXOWYH.js → chunk-U7QUDFPD.js} +7 -7
- package/chunks/{chunk-QGNOFE5E.js → chunk-UEUE6LJX.js} +1 -1
- package/chunks/{chunk-EI3NWELG.js → chunk-UIZGNLBP.js} +4427 -3806
- package/chunks/{chunk-ZJ4W6SUY.js → chunk-UM57UTTV.js} +3 -3
- package/chunks/{chunk-EQL65XGA.js → chunk-V3LXMASR.js} +47 -21
- package/chunks/{chunk-LHEC5V6G.js → chunk-VRWOMUZM.js} +2 -2
- package/chunks/{chunk-5MZCSWI4.js → chunk-W2ITCESM.js} +176 -477
- package/chunks/{chunk-KONVMRK7.js → chunk-W2PNY24B.js} +1 -1
- package/chunks/{chunk-4WL6SY4F.js → chunk-X5GLCWPX.js} +1 -1
- package/chunks/{chunk-BSI645OU.js → chunk-XBLYC4MI.js} +3 -3
- package/chunks/{chunk-GNPNYXJB.js → chunk-XLQS3VI6.js} +2 -2
- package/chunks/{chunk-TRRF5BSP.js → chunk-XT6TGJFD.js} +1 -1
- package/chunks/{chunk-PYQADEFD.js → chunk-XTH2OMDS.js} +1 -1
- package/chunks/{chunk-47PEPJO7.js → chunk-XUMBOJC2.js} +3 -3
- package/chunks/{chunk-GWVUR3QZ.js → chunk-YIKMBYMT.js} +3 -3
- package/chunks/{chunk-WOJZWRAZ.js → chunk-YRLW2MSX.js} +1 -1
- package/chunks/{chunk-NRLFZWCT.js → chunk-YVVIFFU4.js} +3 -3
- package/chunks/chunk-Z7B6SRPM.js +32 -0
- package/chunks/{chunk-IA7TGCN2.js → chunk-ZV4XVYL3.js} +4 -4
- package/chunks/{chunk-PJRW65JO.js → chunk-ZWPWQEF5.js} +1 -1
- package/chunks/{computer-use-WQFK33Z3.js → computer-use-7TIKEXBX.js} +42 -41
- package/chunks/{config-utils-ULCSRMWD.js → config-utils-6MVJ54TY.js} +6 -6
- package/chunks/{contextCommand-7EOZND7C.js → contextCommand-5QKI7MRY.js} +44 -43
- package/chunks/{core-runtime-FGMQRM6E.js → core-runtime-USS7ZF3H.js} +42 -41
- package/chunks/{create-sub-session-QIDZUOPU.js → create-sub-session-Y4WYDZGC.js} +2 -2
- package/chunks/{create-sub-session-QM2K5HLZ.js → create-sub-session-ZD2F3BH2.js} +42 -41
- package/chunks/{cron-create-VONA5JYY.js → cron-create-ZOVA3CC2.js} +4 -4
- package/chunks/{cron-delete-5JXSP2MI.js → cron-delete-7Z3H4LJY.js} +4 -4
- package/chunks/{cron-list-KE4F2CIR.js → cron-list-UHGX3IQG.js} +4 -4
- package/chunks/{daemon-GWD7BT6E.js → daemon-Y3NOHFKQ.js} +38 -7
- package/chunks/daemon-status-provider-PMP4J7BC.js +103 -0
- package/chunks/daemon-trust-policy-2252VKXI.js +99 -0
- package/chunks/{daemon-trust-policy-monitor-6UKEABN5.js → daemon-trust-policy-monitor-OSGGKJXT.js} +49 -48
- package/chunks/{de-LIW4XVLN.js → de-UBEBKG6V.js} +2 -1
- package/chunks/{deferred-core-runtime-67GJXHXS.js → deferred-core-runtime-3VD4V6YZ.js} +42 -41
- package/chunks/{display-image-NQRSIBXM.js → display-image-ZE3GZNIK.js} +4 -4
- package/chunks/{dist-Z3CS4OVP.js → dist-AVUYBK7L.js} +11 -5
- package/chunks/{dist-6BMOAE3Z.js → dist-BNWP6IZL.js} +4 -4
- package/chunks/{dist-3NTTUAHT.js → dist-EFJILGIS.js} +3 -3
- package/chunks/{dist-EZE3V3Q7.js → dist-MAIUUIWN.js} +3 -3
- package/chunks/{dist-B2CGTW6T.js → dist-NPS52B2V.js} +3 -3
- package/chunks/{dist-J47AXBZC.js → dist-PKSRQAR2.js} +3 -3
- package/chunks/{dist-OTUO3AS2.js → dist-Q2WJ2IZU.js} +13 -5
- package/chunks/{dist-EWW3J4HQ.js → dist-ZWDH5HLS.js} +3 -3
- package/chunks/{earlyInputCapture-IWMYR6OB.js → earlyInputCapture-ER4HGLJN.js} +43 -42
- package/chunks/{edit-ZFGROCAF.js → edit-B3MT7O53.js} +42 -41
- package/chunks/{en-SY5GTIGX.js → en-X6YV7GME.js} +2 -1
- package/chunks/{enter-worktree-TZZZCDM5.js → enter-worktree-WVIYVSDJ.js} +42 -41
- package/chunks/{enterPlanMode-U77BI3R6.js → enterPlanMode-DDCIM6HA.js} +42 -41
- package/chunks/{environment-HC37DS2I.js → environment-LITGMOUP.js} +45 -44
- package/chunks/{errors-6AG54JPD.js → errors-E5CIOR2I.js} +44 -43
- package/chunks/{exit-worktree-UYYWFPNK.js → exit-worktree-NQ2A6URE.js} +42 -41
- package/chunks/exitPlanMode-YXSWN4D3.js +85 -0
- package/chunks/{fast-path-F5FSZ3O7.js → fast-path-PH3DBS6X.js} +3 -3
- package/chunks/{fast-path-settings-RPAVBD7P.js → fast-path-settings-LNOFM2YP.js} +2 -2
- package/chunks/{fr-RQFO7U4P.js → fr-VENTC2BS.js} +2 -1
- package/chunks/{gemini-NKQHYM36.js → gemini-4YPO4ADY.js} +88 -87
- package/chunks/{geminiContentGenerator-HCWZOUX3.js → geminiContentGenerator-GMSVVXOU.js} +6 -6
- package/chunks/{glob-3PDXKBAO.js → glob-3Y3VHLM2.js} +42 -41
- package/chunks/{goal-tools-SWNB6GP4.js → goal-tools-JDK2SNMV.js} +4 -4
- package/chunks/{grep-5HZKZYVD.js → grep-VUHUDZYG.js} +42 -41
- package/chunks/handleAutoUpdate-OBFFPWSJ.js +94 -0
- package/chunks/{i18n-Q27KKNDL.js → i18n-4PJA5KKU.js} +43 -42
- package/chunks/{image-gen-2Z2RJ6W7.js → image-gen-4IFV4HES.js} +10 -10
- package/chunks/initializer-ZTY3VSWL.js +100 -0
- package/chunks/{installationInfo-XXB75T7O.js → installationInfo-6USRNCD2.js} +43 -42
- package/chunks/{ja-KOZKHJHZ.js → ja-QHT4EQTO.js} +2 -1
- package/chunks/{keychain-token-storage-TVAMTNP7.js → keychain-token-storage-JTWUYFU7.js} +2 -2
- package/chunks/list-U2ZDKYWN.js +103 -0
- package/chunks/{list-agents-Z4WABFDZ.js → list-agents-4GQ2XNEU.js} +2 -2
- package/chunks/loadedSettingsAdapter-WW4HIVLO.js +97 -0
- package/chunks/{loggingContentGenerator-6NTFBM7Q.js → loggingContentGenerator-XXG6YWUE.js} +46 -27
- package/chunks/{loop-wakeup-UZ5RL5Y2.js → loop-wakeup-HOQI3K5D.js} +5 -5
- package/chunks/{ls-TVHDGIES.js → ls-O4VBQRG7.js} +4 -4
- package/chunks/{lsp-CVN6OQPI.js → lsp-APQJ5ZEZ.js} +2 -2
- package/chunks/{managed-npm-update-SPHYQUWZ.js → managed-npm-update-7GM2LPLL.js} +43 -42
- package/chunks/mcp-7KZW2T5P.js +97 -0
- package/chunks/{monitor-ZBBPAA54.js → monitor-RQROQHLD.js} +42 -41
- package/chunks/nonInteractiveCli-U7JNJGS6.js +163 -0
- package/chunks/{notebook-edit-5W3FW7Z2.js → notebook-edit-XQA6YCH2.js} +42 -41
- package/chunks/{openaiContentGenerator-TQANPEVZ.js → openaiContentGenerator-BZW2IB42.js} +29 -29
- package/chunks/{pidfile-EQOBLH4E.js → pidfile-NX5VZ3IK.js} +43 -42
- package/chunks/{processUtils-7XQG7EHS.js → processUtils-M635AD23.js} +2 -2
- package/chunks/{pt-U6AOCTMF.js → pt-VL3I5RNY.js} +2 -1
- package/chunks/{qwenContentGenerator-BKCPHHXU.js → qwenContentGenerator-KHJ73E2C.js} +48 -48
- package/chunks/{qwenOAuth2-BJ6PQKE6.js → qwenOAuth2-QMK25XO7.js} +9 -9
- package/chunks/read-file-6LKIKKXD.js +32 -0
- package/chunks/{read-mcp-resource-PZ4ZF6YL.js → read-mcp-resource-TJSJRH4F.js} +2 -2
- package/chunks/{record-artifact-P4HFMS7X.js → record-artifact-FXF5LHPE.js} +3 -3
- package/chunks/{resumeHistoryUtils-6N6XGJJW.js → resumeHistoryUtils-RR2KEVH5.js} +49 -48
- package/chunks/ripGrep-CF2WRBYV.js +85 -0
- package/chunks/{ru-CMX4UMYP.js → ru-4RCKL4PY.js} +2 -1
- package/chunks/{run-qwen-serve-BCKBCAMX.js → run-qwen-serve-L5TF57J4.js} +61 -50
- package/chunks/{runtime-E2437YKL.js → runtime-3RE3BPR4.js} +55 -54
- package/chunks/{scheduler-K3D5Z655.js → scheduler-LXQZAMYT.js} +44 -43
- package/chunks/{sdk-exporters-http-XVTZQRCE.js → sdk-exporters-http-7SYSCGEO.js} +3 -3
- package/chunks/{sdk-impl-7W7AKCS4.js → sdk-impl-VZI6M6EH.js} +6 -6
- package/chunks/{send-message-CAMSLG2L.js → send-message-RBYLV5NY.js} +6 -6
- package/chunks/{serve-IH4XR5IL.js → serve-5D4S7GIA.js} +49 -48
- package/chunks/{server-UD6INW7J.js → server-ILZB6TTC.js} +403 -178
- package/chunks/{session-GR4ZEVW4.js → session-SXCZITZ4.js} +114 -94
- package/chunks/{settings-5O24D3OJ.js → settings-4RQB3OVF.js} +48 -47
- package/chunks/{shell-UTLWLG5G.js → shell-FCTR3OI2.js} +42 -41
- package/chunks/{skill-QQAZL4VO.js → skill-IAKHPD5H.js} +19 -19
- package/chunks/{skill-settings-P3YHJVBZ.js → skill-settings-SOR23NOP.js} +48 -47
- package/chunks/spawnChannel-I6VAWYQJ.js +98 -0
- package/chunks/{standalone-update-QP742MGP.js → standalone-update-5NN3MTYH.js} +44 -43
- package/chunks/{startInteractiveUI-YCS6AEPN.js → startInteractiveUI-OYGL3NZJ.js} +590 -329
- package/chunks/{syntheticOutput-PEBJQYJV.js → syntheticOutput-D3Z64LJC.js} +3 -3
- package/chunks/{task-create-5NWCQSJF.js → task-create-URFZ5EUX.js} +10 -10
- package/chunks/{task-list-53265TRZ.js → task-list-6JDFMPUW.js} +5 -5
- package/chunks/{task-stop-FPCOIRYX.js → task-stop-HHUGCD25.js} +2 -2
- package/chunks/{task-update-5HN577LS.js → task-update-LCJM3EYG.js} +10 -10
- package/chunks/{team-create-WFH7OCDQ.js → team-create-J4JP6AXN.js} +44 -43
- package/chunks/{team-delete-MMQB4OSC.js → team-delete-PZGGBQLM.js} +5 -5
- package/chunks/{team-plan-approval-EGTT53MV.js → team-plan-approval-7BEAIR2H.js} +42 -41
- package/chunks/{terminal-image-renderer-BWRESAQ7.js → terminal-image-renderer-SGGTG5LN.js} +44 -43
- package/chunks/theme-manager-67TSB7LH.js +89 -0
- package/chunks/{todoWrite-JGV6VLOX.js → todoWrite-WINAZSZI.js} +4 -4
- package/chunks/{tool-search-TI5PTIBF.js → tool-search-XPOFDWOX.js} +19 -19
- package/chunks/{total-session-admission-66UDSOHO.js → total-session-admission-SZJFAM25.js} +47 -46
- package/chunks/{trustedFolders-4KYHA4IG.js → trustedFolders-44NTYYV4.js} +43 -42
- package/chunks/{update-relaunch-WB6LGIF2.js → update-relaunch-K33Q3WEH.js} +5 -5
- package/chunks/{updateCheck-LOS5GYFC.js → updateCheck-VBRNPLS4.js} +45 -44
- package/chunks/{useAutoAcceptIndicator-MHAPY52L.js → useAutoAcceptIndicator-AUNRB5S7.js} +52 -51
- package/chunks/{validateNonInterActiveAuth-QV22HNQU.js → validateNonInterActiveAuth-WTO36MTA.js} +83 -82
- package/chunks/{version-DALWZHKQ.js → version-JZA6HYPI.js} +1 -1
- package/chunks/{web-fetch-JMJVMYFE.js → web-fetch-LLHPV2IR.js} +19 -19
- package/chunks/{web-search-DNDUIPU5.js → web-search-4HCHRZ3U.js} +11 -11
- package/chunks/{workflow-JGNN64PM.js → workflow-YI74QTWW.js} +43 -42
- package/chunks/workspace-providers-status-CI3AO2BH.js +100 -0
- package/chunks/{workspace-registration-store-LRJG7QA4.js → workspace-registration-store-KPIKXDHA.js} +1 -1
- package/chunks/{workspace-registry-KVXIFM36.js → workspace-registry-XE22QDE6.js} +47 -46
- package/chunks/{workspace-service-PO4AAKKT.js → workspace-service-WI2FD72A.js} +54 -53
- package/chunks/workspace-skills-status-FFZU6FXL.js +100 -0
- package/chunks/{workspace-trust-reconciler-DOZPCVHG.js → workspace-trust-reconciler-GJLNXR2U.js} +54 -53
- package/chunks/write-file-IEAC3XC3.js +87 -0
- package/chunks/{zh-AGL2FVBI.js → zh-LMSTK4WD.js} +2 -1
- package/chunks/{zh-TW-KI66MHQY.js → zh-TW-SQ4HTSCW.js} +2 -1
- package/chunks/{zoom-image-CNC77ZMA.js → zoom-image-GTVVT25J.js} +15 -15
- package/cli.js +13 -13
- package/locales/ca.js +1 -0
- package/locales/de.js +1 -0
- package/locales/en.js +1 -0
- package/locales/fr.js +1 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +1 -0
- package/locales/ru.js +1 -0
- package/locales/zh-TW.js +1 -0
- package/locales/zh.js +1 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-CDk0d60K.js → arc-B13-S0Yo.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-h-W3I2lP.js → architectureDiagram-3BPJPVTR-CHvWNlVW.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-D1pvSmZg.js → blockDiagram-GPEHLZMM-CXebOlXF.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-ByAm5ZNf.js → c4Diagram-AAUBKEIU-BQpx4y3Q.js} +1 -1
- package/web-shell/assets/channel-BB_Hm8Rf.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-VrGPPOGV.js → chunk-2J33WTMH-Cak1exSv.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-B7hTowgG.js → chunk-4BX2VUAB-BIc8BV5_.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-j1Fq8DpE.js → chunk-55IACEB6-DoeJ5BL1.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-UjABYpF2.js → chunk-727SXJPM-BDR_wYSu.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-D4uBItrs.js → chunk-AQP2D5EJ-BhRRGRq1.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DeFbKlb8.js → chunk-FMBD7UC4-BJGAwVXr.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-rQJ8TIgT.js → chunk-ND2GUHAM-vhE73bsD.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-DAGcRxvq.js → chunk-QZHKN3VN-BuTBZsdR.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B_hFK54Y.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B_hFK54Y.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-MaE7MJSt.js → cose-bilkent-S5V4N54A-CVHKipHP.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-DzijYGSb.js → dagre-BM42HDAG-C1DPa8SV.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-WdbG7WnX.js → diagram-2AECGRRQ-BYP_QxkT.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-NYutsBnw.js → diagram-5GNKFQAL-Cray7ruQ.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-Dqg0eBY0.js → diagram-KO2AKTUF-Ds4vJANi.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-C7vRP2Lb.js → diagram-LMA3HP47-DxFrDykH.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-B2sEPpPt.js → diagram-OG6HWLK6-BdIO-pF_.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-a4zIbzm8.js → erDiagram-TEJ5UH35-5JA8KDYV.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BK9y89ya.js → flowDiagram-I6XJVG4X-DL4drKro.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-wUQTSNvV.js → ganttDiagram-6RSMTGT7-ijX2DD6_.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Dnzt4SAi.js → gitGraphDiagram-PVQCEYII-_lPsFLFF.js} +1 -1
- package/web-shell/assets/index-BTwNYZkp.js +1785 -0
- package/web-shell/assets/{index-BA3wUcKL.js → index-C-YoqYbs.js} +1 -1
- package/web-shell/assets/index-dHAFxPHb.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DcaoToij.js → infoDiagram-5YYISTIA-COFClLab.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DzduqhP2.js → ishikawaDiagram-YF4QCWOH-Div9KOgO.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-BvviZR_O.js → journeyDiagram-JHISSGLW-VAw5u0wc.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Efm2JxY3.js → kanban-definition-UN3LZRKU-CncCn8Nl.js} +1 -1
- package/web-shell/assets/{linear-DtY3IbOs.js → linear-D6ad7e_k.js} +1 -1
- package/web-shell/assets/{mermaid.core-PzpFqoMe.js → mermaid.core-BV1IECGb.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BLlTkHS0.js → mindmap-definition-RKZ34NQL-a3jeNgPr.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-D-mKF-jE.js → pieDiagram-4H26LBE5-DsVRY5BW.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DYCzslGm.js → quadrantDiagram-W4KKPZXB-D6zgexJK.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-Dfpxlk7R.js → requirementDiagram-4Y6WPE33-VEpSwJjn.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-D5cRaaxh.js → sankeyDiagram-5OEKKPKP-CYEuOFne.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-s04DReiS.js → sequenceDiagram-3UESZ5HK-CCg0lI-9.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-01UNFgnb.js → stateDiagram-AJRCARHV-BHXPsL0B.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-eTG8D0QT.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DX8_wZBC.js → timeline-definition-PNZ67QCA-gqTf9a0k.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BK0FlBme.js → vennDiagram-CIIHVFJN-C4DXXkBh.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DkPc9UlD.js → wardley-L42UT6IY-CMK46EiX.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DNKkpDAo.js → wardleyDiagram-YWT4CUSO-DTk1Gzt9.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-CiPwg8QG.js → xychartDiagram-2RQKCTM6-BcJsM1dH.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/agent-headless-HYEHZFH6.js +0 -86
- package/chunks/channel-settings-store-OXYG5S5X.js +0 -101
- package/chunks/chunk-I5VM3SKY.js +0 -451
- package/chunks/chunk-PDPFQ2FO.js +0 -156
- package/chunks/daemon-status-provider-L3J6GKCT.js +0 -102
- package/chunks/daemon-trust-policy-4PHPY23S.js +0 -98
- package/chunks/exitPlanMode-RWJR2KGB.js +0 -84
- package/chunks/handleAutoUpdate-NHFSGYTF.js +0 -93
- package/chunks/initializer-Y5DJLT43.js +0 -99
- package/chunks/list-YHNQ32CS.js +0 -102
- package/chunks/loadedSettingsAdapter-GHUQK7H4.js +0 -96
- package/chunks/mcp-EA3KO6FS.js +0 -96
- package/chunks/nonInteractiveCli-NNOR56HU.js +0 -162
- package/chunks/read-file-KKTXGIZD.js +0 -32
- package/chunks/ripGrep-SJVAAYDV.js +0 -84
- package/chunks/spawnChannel-UAQMH6Y6.js +0 -94
- package/chunks/theme-manager-ZNDGAHJN.js +0 -88
- package/chunks/workspace-providers-status-K22B3Z6B.js +0 -99
- package/chunks/workspace-skills-status-DDYCBVSH.js +0 -99
- package/chunks/write-file-TT6MWIKC.js +0 -86
- package/web-shell/assets/channel-DPFUV4oi.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CLm0hVvw.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CLm0hVvw.js +0 -1
- package/web-shell/assets/index-BjC3yjjL.css +0 -5
- package/web-shell/assets/index-QzFq6w7o.js +0 -1775
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DXb5olqv.js +0 -1
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
staleArgsWarning,
|
|
9
9
|
validateAuthMethod,
|
|
10
10
|
writeSkillArgs
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-TTB6GBJ6.js";
|
|
12
12
|
import {
|
|
13
13
|
calculateCost,
|
|
14
14
|
computeSessionStats,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
findInlineMathExpressions,
|
|
18
18
|
getSystemInfoFields,
|
|
19
19
|
levelLabel
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-DSKLWQHC.js";
|
|
21
21
|
import {
|
|
22
22
|
isKittyProtocolEnabled
|
|
23
23
|
} from "./chunk-NYX53SV4.js";
|
|
@@ -25,33 +25,32 @@ import {
|
|
|
25
25
|
VSCODE_SHIFT_ENTER_SEQUENCE,
|
|
26
26
|
isWaylandSession,
|
|
27
27
|
writeOsc52
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-TNQLAI6I.js";
|
|
29
29
|
import {
|
|
30
30
|
contextCommand
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-TNS2M7VL.js";
|
|
32
32
|
import {
|
|
33
33
|
themeManager
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-EN2J77G7.js";
|
|
35
35
|
import {
|
|
36
36
|
rollbackStandaloneUpdate
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-45HPDU3F.js";
|
|
38
38
|
import {
|
|
39
39
|
getErrorMessage as getErrorMessage2
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-NM3E6GGL.js";
|
|
41
41
|
import {
|
|
42
42
|
GITHUB_WORKFLOW_PATHS,
|
|
43
43
|
INSIGHT_CSS,
|
|
44
44
|
INSIGHT_JS,
|
|
45
45
|
collectSessionData,
|
|
46
46
|
generateExportFilename,
|
|
47
|
-
installGoalTerminalObserver,
|
|
48
47
|
normalizeSessionData,
|
|
49
48
|
setupGithub,
|
|
50
49
|
toHtml,
|
|
51
50
|
toJson,
|
|
52
51
|
toJsonl,
|
|
53
52
|
toMarkdown
|
|
54
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-W2ITCESM.js";
|
|
55
54
|
import {
|
|
56
55
|
stripUnsafeCharacters,
|
|
57
56
|
toCodePoints,
|
|
@@ -67,12 +66,12 @@ import {
|
|
|
67
66
|
isVoiceEnabled,
|
|
68
67
|
readVoiceMode,
|
|
69
68
|
readVoiceModel
|
|
70
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-F4T5J34H.js";
|
|
71
70
|
import {
|
|
72
71
|
getExtendedSystemInfo,
|
|
73
72
|
getGitVersion,
|
|
74
73
|
getNpmVersion
|
|
75
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-AKLY5M2C.js";
|
|
76
75
|
import {
|
|
77
76
|
formatDuration,
|
|
78
77
|
formatTokenCount
|
|
@@ -80,7 +79,7 @@ import {
|
|
|
80
79
|
import {
|
|
81
80
|
isInlineModelOverrideAllowed,
|
|
82
81
|
parseAcpModelOption
|
|
83
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-23GFHEM3.js";
|
|
84
83
|
import {
|
|
85
84
|
OUTPUT_LANGUAGE_AUTO,
|
|
86
85
|
getAllSettingKeys,
|
|
@@ -92,12 +91,12 @@ import {
|
|
|
92
91
|
resolveOutputLanguageOrPreserveAuto,
|
|
93
92
|
validateSettingValue,
|
|
94
93
|
writeOutputLanguageAndRegisterPath
|
|
95
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-4PFKN7CQ.js";
|
|
96
95
|
import {
|
|
97
96
|
getCurrentLanguage,
|
|
98
97
|
setLanguageAsync,
|
|
99
98
|
t
|
|
100
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-KFCTC5IJ.js";
|
|
101
100
|
import {
|
|
102
101
|
SUPPORTED_LANGUAGES,
|
|
103
102
|
getSupportedLanguageIds,
|
|
@@ -105,11 +104,11 @@ import {
|
|
|
105
104
|
} from "./chunk-5EJZE3FP.js";
|
|
106
105
|
import {
|
|
107
106
|
getInstallationInfo
|
|
108
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-LA3FF7RO.js";
|
|
109
108
|
import {
|
|
110
109
|
isFolderTrustEnabled,
|
|
111
110
|
loadTrustedFolders
|
|
112
|
-
} from "./chunk-
|
|
111
|
+
} from "./chunk-YIKMBYMT.js";
|
|
113
112
|
import {
|
|
114
113
|
require_strip_json_comments
|
|
115
114
|
} from "./chunk-NPQ5ZKRP.js";
|
|
@@ -125,6 +124,7 @@ import {
|
|
|
125
124
|
SESSION_TITLE_MAX_LENGTH,
|
|
126
125
|
SessionService,
|
|
127
126
|
ShellExecutionService,
|
|
127
|
+
analyzeToolResultRetention,
|
|
128
128
|
appendToLastTextPart,
|
|
129
129
|
buildBackgroundEntryLabel,
|
|
130
130
|
buildBareRememberPrompt,
|
|
@@ -145,13 +145,11 @@ import {
|
|
|
145
145
|
flatMapTextParts,
|
|
146
146
|
formatMemoryUsage,
|
|
147
147
|
generateSessionRecap,
|
|
148
|
-
getActiveGoal,
|
|
149
148
|
getArenaSystemReminder,
|
|
150
149
|
getExtensionDescription,
|
|
151
150
|
getExtensionDisplayName,
|
|
152
151
|
getIdeInstaller,
|
|
153
152
|
getInsightPrompt,
|
|
154
|
-
getLastGoalTerminal,
|
|
155
153
|
getMCPServerPrompts,
|
|
156
154
|
getPlanModeSystemReminder,
|
|
157
155
|
getProjectSummaryPrompt,
|
|
@@ -178,18 +176,17 @@ import {
|
|
|
178
176
|
persistSessionUsage,
|
|
179
177
|
readPathFromWorkspace,
|
|
180
178
|
redactUrlCredentials,
|
|
181
|
-
registerGoalHook,
|
|
182
179
|
require_toml,
|
|
180
|
+
resolveSlimmingConfig,
|
|
183
181
|
runForkedAgent,
|
|
184
|
-
tryGenerateSessionTitle
|
|
185
|
-
|
|
186
|
-
} from "./chunk-EI3NWELG.js";
|
|
182
|
+
tryGenerateSessionTitle
|
|
183
|
+
} from "./chunk-UIZGNLBP.js";
|
|
187
184
|
import {
|
|
188
185
|
external_exports
|
|
189
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-CQ35AJ4Z.js";
|
|
190
187
|
import {
|
|
191
188
|
resolveModelId
|
|
192
|
-
} from "./chunk-
|
|
189
|
+
} from "./chunk-XT6TGJFD.js";
|
|
193
190
|
import {
|
|
194
191
|
getAutoSkillCuratorStatus,
|
|
195
192
|
parse,
|
|
@@ -197,24 +194,26 @@ import {
|
|
|
197
194
|
restoreArchivedAutoSkill,
|
|
198
195
|
runAutoSkillCurator,
|
|
199
196
|
setAutoSkillPinned
|
|
200
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-2AZMF6G5.js";
|
|
201
198
|
import {
|
|
202
199
|
HookEventName,
|
|
203
200
|
sanitizeUserPromptExpansionAdditionalContext
|
|
204
|
-
} from "./chunk-
|
|
201
|
+
} from "./chunk-GZGDJ4E6.js";
|
|
205
202
|
import {
|
|
203
|
+
GoalPersistenceUnavailableError,
|
|
204
|
+
emptyGoalSnapshot,
|
|
206
205
|
projectUserTranscriptForDisplay
|
|
207
|
-
} from "./chunk-
|
|
206
|
+
} from "./chunk-SAQHDAUJ.js";
|
|
208
207
|
import {
|
|
209
208
|
APPROVAL_MODES
|
|
210
|
-
} from "./chunk-
|
|
209
|
+
} from "./chunk-6LYDH7VT.js";
|
|
211
210
|
import {
|
|
212
211
|
resolveOpenAILogDir
|
|
213
|
-
} from "./chunk-
|
|
212
|
+
} from "./chunk-2XZWO53E.js";
|
|
214
213
|
import {
|
|
215
214
|
FORK_SUBAGENT_TYPE,
|
|
216
215
|
stripStartupContext
|
|
217
|
-
} from "./chunk-
|
|
216
|
+
} from "./chunk-ZV4XVYL3.js";
|
|
218
217
|
import {
|
|
219
218
|
applySkillAllowedTools,
|
|
220
219
|
buildSkillLlmContent
|
|
@@ -228,6 +227,7 @@ import {
|
|
|
228
227
|
normalizeReasoningEffort
|
|
229
228
|
} from "./chunk-KM73TBQ4.js";
|
|
230
229
|
import {
|
|
230
|
+
COMBINED_PASS_TOLERANCE_FACTOR,
|
|
231
231
|
IdeConnectionEvent,
|
|
232
232
|
formatTokenUsageSummaryAsCsv,
|
|
233
233
|
formatTokenUsageSummaryAsJson,
|
|
@@ -239,17 +239,19 @@ import {
|
|
|
239
239
|
read,
|
|
240
240
|
recordSkillInvocation,
|
|
241
241
|
uiTelemetryService
|
|
242
|
-
} from "./chunk-
|
|
242
|
+
} from "./chunk-U2JLICUY.js";
|
|
243
243
|
import {
|
|
244
244
|
getAutoMemoryRoot
|
|
245
|
-
} from "./chunk-
|
|
245
|
+
} from "./chunk-732MOPEM.js";
|
|
246
246
|
import {
|
|
247
247
|
runSideQuery
|
|
248
|
-
} from "./chunk-
|
|
248
|
+
} from "./chunk-CTQE2NB2.js";
|
|
249
249
|
import {
|
|
250
|
+
ToolDisplayNamesMigration,
|
|
250
251
|
ToolNames,
|
|
252
|
+
canonicalToolName,
|
|
251
253
|
isShellProgressData
|
|
252
|
-
} from "./chunk-
|
|
254
|
+
} from "./chunk-XTH2OMDS.js";
|
|
253
255
|
import {
|
|
254
256
|
Storage,
|
|
255
257
|
createDebugLogger,
|
|
@@ -258,12 +260,12 @@ import {
|
|
|
258
260
|
isSubpath,
|
|
259
261
|
resolvePath,
|
|
260
262
|
updateSymlink
|
|
261
|
-
} from "./chunk-
|
|
263
|
+
} from "./chunk-MPBRV3UU.js";
|
|
262
264
|
import {
|
|
263
265
|
isCpuProfileRecording,
|
|
264
266
|
startCpuProfile,
|
|
265
267
|
stopCpuProfile
|
|
266
|
-
} from "./chunk-
|
|
268
|
+
} from "./chunk-3LHYTQ2R.js";
|
|
267
269
|
import {
|
|
268
270
|
init_esbuild_shims
|
|
269
271
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2053,7 +2055,7 @@ var approvalModeCommand = {
|
|
|
2053
2055
|
};
|
|
2054
2056
|
}
|
|
2055
2057
|
}
|
|
2056
|
-
const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-
|
|
2058
|
+
const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-AUNRB5S7.js") : void 0;
|
|
2057
2059
|
if (config) {
|
|
2058
2060
|
try {
|
|
2059
2061
|
config.setApprovalMode(mode);
|
|
@@ -5090,6 +5092,7 @@ function formatMemoryDiagnostics(diagnostics) {
|
|
|
5090
5092
|
__name(formatMemoryDiagnostics, "formatMemoryDiagnostics");
|
|
5091
5093
|
|
|
5092
5094
|
// packages/cli/src/ui/commands/doctorCommand.ts
|
|
5095
|
+
var debugLogger6 = createDebugLogger("DOCTOR_MEMORY");
|
|
5093
5096
|
var MEMORY_SUBCOMMAND = "memory";
|
|
5094
5097
|
var CPU_PROFILE_SUBCOMMAND = "cpu-profile";
|
|
5095
5098
|
var ROLLBACK_SUBCOMMAND = "rollback";
|
|
@@ -5162,6 +5165,12 @@ var doctorCommand = {
|
|
|
5162
5165
|
return;
|
|
5163
5166
|
}
|
|
5164
5167
|
let report = formatMemoryDiagnostics(diagnostics);
|
|
5168
|
+
const toolResultRetention = collectToolResultRetention(context);
|
|
5169
|
+
if (toolResultRetention) {
|
|
5170
|
+
report = `${report}
|
|
5171
|
+
|
|
5172
|
+
${formatToolResultRetention(toolResultRetention)}`;
|
|
5173
|
+
}
|
|
5165
5174
|
let messageType = "info";
|
|
5166
5175
|
let heapSnapshotWritten = false;
|
|
5167
5176
|
if (abortSignal?.aborted) {
|
|
@@ -5354,10 +5363,20 @@ async function memoryDoctorAction(context, args = "") {
|
|
|
5354
5363
|
if (context.abortSignal?.aborted) {
|
|
5355
5364
|
return;
|
|
5356
5365
|
}
|
|
5366
|
+
const toolResultRetention = collectToolResultRetention(context);
|
|
5357
5367
|
return {
|
|
5358
5368
|
type: "message",
|
|
5359
5369
|
messageType: diagnostics.analysis.risks.length > 0 ? "warning" : "info",
|
|
5360
|
-
content: tokens.includes("--json") ? JSON.stringify(
|
|
5370
|
+
content: tokens.includes("--json") ? JSON.stringify(
|
|
5371
|
+
{
|
|
5372
|
+
...diagnostics,
|
|
5373
|
+
...toolResultRetention ? { toolResultRetention } : {}
|
|
5374
|
+
},
|
|
5375
|
+
null,
|
|
5376
|
+
2
|
|
5377
|
+
) : formatCoreDiagnostics(diagnostics) + (toolResultRetention ? `
|
|
5378
|
+
|
|
5379
|
+
${formatToolResultRetention(toolResultRetention)}` : "")
|
|
5361
5380
|
};
|
|
5362
5381
|
} catch (error) {
|
|
5363
5382
|
if (context.abortSignal?.aborted) {
|
|
@@ -5437,6 +5456,81 @@ function formatCoreDiagnostics(diagnostics) {
|
|
|
5437
5456
|
return lines.join("\n");
|
|
5438
5457
|
}
|
|
5439
5458
|
__name(formatCoreDiagnostics, "formatCoreDiagnostics");
|
|
5459
|
+
function collectToolResultRetention(context) {
|
|
5460
|
+
try {
|
|
5461
|
+
const config = context.services.config;
|
|
5462
|
+
const history = config?.getGeminiClient()?.getHistoryShallow();
|
|
5463
|
+
if (!history) {
|
|
5464
|
+
return null;
|
|
5465
|
+
}
|
|
5466
|
+
const resolveToolBudgetChars = /* @__PURE__ */ __name((name) => config?.getToolRegistry?.()?.getTool(canonicalToolName(name))?.maxOutputChars, "resolveToolBudgetChars");
|
|
5467
|
+
const displayNameBudgets = /* @__PURE__ */ new Map();
|
|
5468
|
+
for (const tool of config?.getToolRegistry?.()?.getAllTools() ?? []) {
|
|
5469
|
+
if (tool.displayName) {
|
|
5470
|
+
displayNameBudgets.set(tool.displayName, tool.maxOutputChars);
|
|
5471
|
+
}
|
|
5472
|
+
}
|
|
5473
|
+
const stats = analyzeToolResultRetention(history, {
|
|
5474
|
+
// Compare each result against its own tool's declared budget (mirroring
|
|
5475
|
+
// the scheduler), so compliant high-budget results (e.g. MCP) are not
|
|
5476
|
+
// flagged; tools declaring none fall back to the configured global
|
|
5477
|
+
// threshold — the bound the scheduler applies to them.
|
|
5478
|
+
resolveToolBudgetChars,
|
|
5479
|
+
thresholdChars: config?.getTruncateToolOutputThreshold?.(),
|
|
5480
|
+
imageTokenEstimate: resolveSlimmingConfig(config?.getChatCompression?.()).imageTokenEstimate
|
|
5481
|
+
});
|
|
5482
|
+
const threshold = config?.getTruncateToolOutputThreshold?.() ?? stats.oversizedThresholdChars;
|
|
5483
|
+
let largeOutputsInUIHistory = 0;
|
|
5484
|
+
for (const item of context.ui.history ?? []) {
|
|
5485
|
+
if (item.type !== "tool_group") {
|
|
5486
|
+
continue;
|
|
5487
|
+
}
|
|
5488
|
+
for (const tool of item.tools) {
|
|
5489
|
+
if (typeof tool.resultDisplay !== "string") {
|
|
5490
|
+
continue;
|
|
5491
|
+
}
|
|
5492
|
+
const migratedName = ToolDisplayNamesMigration[tool.name] ?? tool.name;
|
|
5493
|
+
const budget = displayNameBudgets.get(tool.name) ?? displayNameBudgets.get(migratedName) ?? resolveToolBudgetChars(tool.name) ?? threshold;
|
|
5494
|
+
if (Number.isFinite(budget) && tool.resultDisplay.length > budget * COMBINED_PASS_TOLERANCE_FACTOR) {
|
|
5495
|
+
largeOutputsInUIHistory += 1;
|
|
5496
|
+
}
|
|
5497
|
+
}
|
|
5498
|
+
}
|
|
5499
|
+
return {
|
|
5500
|
+
...stats,
|
|
5501
|
+
largeOutputsInUIHistory,
|
|
5502
|
+
// Derived assumption: compression reads the live history by reference
|
|
5503
|
+
// (getHistoryShallow; see chatCompressionService). If compression input
|
|
5504
|
+
// assembly ever changes to copy or filter history, this derivation must
|
|
5505
|
+
// be revisited.
|
|
5506
|
+
presentInCompressionInput: stats.oversizedResultCount > 0
|
|
5507
|
+
};
|
|
5508
|
+
} catch (error) {
|
|
5509
|
+
debugLogger6.warn(
|
|
5510
|
+
`Tool result retention diagnostics unavailable: ${formatErrorMessage2(error)}`
|
|
5511
|
+
);
|
|
5512
|
+
return null;
|
|
5513
|
+
}
|
|
5514
|
+
}
|
|
5515
|
+
__name(collectToolResultRetention, "collectToolResultRetention");
|
|
5516
|
+
function formatToolResultRetention(stats) {
|
|
5517
|
+
const lines = [
|
|
5518
|
+
"Tool result retention",
|
|
5519
|
+
` Tool results in history: ${stats.toolResultCount}`,
|
|
5520
|
+
` Total retained: ${stats.totalChars} chars`,
|
|
5521
|
+
` Largest result: ${stats.largestResultChars} chars`,
|
|
5522
|
+
` Oversized results (above tool budget): ${stats.oversizedResultCount}`,
|
|
5523
|
+
` Oversized also rendered in UI history: ${stats.largeOutputsInUIHistory} item(s)`,
|
|
5524
|
+
` Oversized also in compression input: ${stats.presentInCompressionInput ? "yes (shared by reference, no extra copy)" : "no"}`
|
|
5525
|
+
];
|
|
5526
|
+
if (stats.oversizedResultCount > 0) {
|
|
5527
|
+
lines.push(
|
|
5528
|
+
" Hint: oversized tool results stay in context and tax every later turn; /compress can reclaim space."
|
|
5529
|
+
);
|
|
5530
|
+
}
|
|
5531
|
+
return lines.join("\n");
|
|
5532
|
+
}
|
|
5533
|
+
__name(formatToolResultRetention, "formatToolResultRetention");
|
|
5440
5534
|
var CPU_PROFILE_USAGE_HINT = "/doctor cpu-profile [--duration <seconds>]";
|
|
5441
5535
|
var DEFAULT_CPU_PROFILE_DURATION_SEC = 30;
|
|
5442
5536
|
var MAX_CPU_PROFILE_DURATION_SEC = 300;
|
|
@@ -5646,6 +5740,38 @@ var editorCommand = {
|
|
|
5646
5740
|
|
|
5647
5741
|
// packages/cli/src/ui/commands/effort-command.ts
|
|
5648
5742
|
init_esbuild_shims();
|
|
5743
|
+
|
|
5744
|
+
// packages/cli/src/ui/commands/effort-utils.ts
|
|
5745
|
+
init_esbuild_shims();
|
|
5746
|
+
function formatEffortChangeMessage(config, tier) {
|
|
5747
|
+
if (config.getReasoningEffort() !== tier) {
|
|
5748
|
+
const override2 = config.getReasoningEffortOverride?.();
|
|
5749
|
+
if (override2) {
|
|
5750
|
+
return t(
|
|
5751
|
+
"Reasoning effort set to {{tier}}, but thinking is currently disabled; after thinking is re-enabled, {{source}}.{{field}} will still have higher priority.",
|
|
5752
|
+
{ tier, source: override2.source, field: override2.field }
|
|
5753
|
+
);
|
|
5754
|
+
}
|
|
5755
|
+
return t(
|
|
5756
|
+
"Reasoning effort set to {{tier}}, but thinking is currently disabled \u2014 it will take effect when thinking is re-enabled.",
|
|
5757
|
+
{ tier }
|
|
5758
|
+
);
|
|
5759
|
+
}
|
|
5760
|
+
const override = config.getReasoningEffortOverride?.();
|
|
5761
|
+
if (override) {
|
|
5762
|
+
return t(
|
|
5763
|
+
"Reasoning effort: {{tier}} requested, but {{source}}.{{field}} has higher priority for the active DashScope Qwen model; that configured value will remain effective.",
|
|
5764
|
+
{ tier, source: override.source, field: override.field }
|
|
5765
|
+
);
|
|
5766
|
+
}
|
|
5767
|
+
return t(
|
|
5768
|
+
"Reasoning effort: {{tier}} (requested; the effective tier depends on the active provider/model).",
|
|
5769
|
+
{ tier }
|
|
5770
|
+
);
|
|
5771
|
+
}
|
|
5772
|
+
__name(formatEffortChangeMessage, "formatEffortChangeMessage");
|
|
5773
|
+
|
|
5774
|
+
// packages/cli/src/ui/commands/effort-command.ts
|
|
5649
5775
|
var TIER_LIST = REASONING_EFFORT_TIERS.join(", ");
|
|
5650
5776
|
var effortCommand = {
|
|
5651
5777
|
name: "effort",
|
|
@@ -5709,29 +5835,16 @@ var effortCommand = {
|
|
|
5709
5835
|
content: t("Settings service not available.")
|
|
5710
5836
|
};
|
|
5711
5837
|
}
|
|
5712
|
-
|
|
5838
|
+
applyReasoningEffort(config, tier);
|
|
5713
5839
|
settings.setValue(
|
|
5714
5840
|
getPersistScopeForModelSelection(settings),
|
|
5715
5841
|
"model.reasoningEffort",
|
|
5716
5842
|
tier
|
|
5717
5843
|
);
|
|
5718
|
-
if (!applied) {
|
|
5719
|
-
return {
|
|
5720
|
-
type: "message",
|
|
5721
|
-
messageType: "info",
|
|
5722
|
-
content: t(
|
|
5723
|
-
"Reasoning effort set to {{tier}}, but thinking is currently disabled \u2014 it will take effect when thinking is re-enabled.",
|
|
5724
|
-
{ tier }
|
|
5725
|
-
)
|
|
5726
|
-
};
|
|
5727
|
-
}
|
|
5728
5844
|
return {
|
|
5729
5845
|
type: "message",
|
|
5730
5846
|
messageType: "info",
|
|
5731
|
-
content:
|
|
5732
|
-
"Reasoning effort: {{tier}} (requested; the effective tier depends on the active provider/model).",
|
|
5733
|
-
{ tier }
|
|
5734
|
-
)
|
|
5847
|
+
content: formatEffortChangeMessage(config, tier)
|
|
5735
5848
|
};
|
|
5736
5849
|
}, "action")
|
|
5737
5850
|
};
|
|
@@ -5741,7 +5854,7 @@ init_esbuild_shims();
|
|
|
5741
5854
|
import * as fs5 from "node:fs/promises";
|
|
5742
5855
|
import path5 from "node:path";
|
|
5743
5856
|
var EXPORT_DIR_OUT_OF_CWD = "Export directory must be within the project working directory.";
|
|
5744
|
-
var
|
|
5857
|
+
var debugLogger7 = createDebugLogger("EXPORT_COMMAND");
|
|
5745
5858
|
function formatExportTargetContext(target) {
|
|
5746
5859
|
return `target: "${target.outputDir}", cwd: "${target.resolvedCwd}"`;
|
|
5747
5860
|
}
|
|
@@ -5770,7 +5883,7 @@ function resolveExportTarget(cwd, args, extension) {
|
|
|
5770
5883
|
}
|
|
5771
5884
|
__name(resolveExportTarget, "resolveExportTarget");
|
|
5772
5885
|
async function validateExportTargetWithinCwd(target) {
|
|
5773
|
-
|
|
5886
|
+
debugLogger7.debug(
|
|
5774
5887
|
"Validating export target realpath:",
|
|
5775
5888
|
formatExportTargetContext(target)
|
|
5776
5889
|
);
|
|
@@ -5783,7 +5896,7 @@ async function validateExportTargetWithinCwd(target) {
|
|
|
5783
5896
|
]);
|
|
5784
5897
|
} catch (error) {
|
|
5785
5898
|
if (error.code === "ENOENT") {
|
|
5786
|
-
|
|
5899
|
+
debugLogger7.debug(
|
|
5787
5900
|
"Export target realpath validation failed: missing path",
|
|
5788
5901
|
formatExportTargetContext(target)
|
|
5789
5902
|
);
|
|
@@ -5798,7 +5911,7 @@ async function validateExportTargetWithinCwd(target) {
|
|
|
5798
5911
|
throw error;
|
|
5799
5912
|
}
|
|
5800
5913
|
if (!isSubpath(realCwd, realOutputDir)) {
|
|
5801
|
-
|
|
5914
|
+
debugLogger7.debug("Export target realpath escaped cwd:", {
|
|
5802
5915
|
realCwd,
|
|
5803
5916
|
realOutputDir,
|
|
5804
5917
|
target
|
|
@@ -5816,21 +5929,21 @@ async function validateExportTargetWithinCwd(target) {
|
|
|
5816
5929
|
__name(validateExportTargetWithinCwd, "validateExportTargetWithinCwd");
|
|
5817
5930
|
async function realpathNearestExisting(outputDir, resolvedCwd) {
|
|
5818
5931
|
let currentPath = outputDir;
|
|
5819
|
-
|
|
5932
|
+
debugLogger7.debug("Resolving nearest existing export parent:", {
|
|
5820
5933
|
outputDir,
|
|
5821
5934
|
resolvedCwd
|
|
5822
5935
|
});
|
|
5823
5936
|
while (isSubpath(resolvedCwd, currentPath)) {
|
|
5824
5937
|
try {
|
|
5825
5938
|
const realCurrentPath = await fs5.realpath(currentPath);
|
|
5826
|
-
|
|
5939
|
+
debugLogger7.debug("Resolved nearest existing export parent:", {
|
|
5827
5940
|
currentPath,
|
|
5828
5941
|
realCurrentPath
|
|
5829
5942
|
});
|
|
5830
5943
|
return realCurrentPath;
|
|
5831
5944
|
} catch (error) {
|
|
5832
5945
|
if (error.code !== "ENOENT") {
|
|
5833
|
-
|
|
5946
|
+
debugLogger7.debug("Failed to resolve existing export parent:", error);
|
|
5834
5947
|
throw error;
|
|
5835
5948
|
}
|
|
5836
5949
|
const parentPath = path5.dirname(currentPath);
|
|
@@ -5844,7 +5957,7 @@ async function realpathNearestExisting(outputDir, resolvedCwd) {
|
|
|
5844
5957
|
}
|
|
5845
5958
|
__name(realpathNearestExisting, "realpathNearestExisting");
|
|
5846
5959
|
async function validateExistingExportParentWithinCwd(target) {
|
|
5847
|
-
|
|
5960
|
+
debugLogger7.debug(
|
|
5848
5961
|
"Validating existing export parent realpath:",
|
|
5849
5962
|
formatExportTargetContext(target)
|
|
5850
5963
|
);
|
|
@@ -5862,7 +5975,7 @@ async function validateExistingExportParentWithinCwd(target) {
|
|
|
5862
5975
|
target.resolvedCwd
|
|
5863
5976
|
);
|
|
5864
5977
|
if (!isSubpath(realCwd, realExistingParent)) {
|
|
5865
|
-
|
|
5978
|
+
debugLogger7.debug("Existing export parent escaped cwd:", {
|
|
5866
5979
|
realCwd,
|
|
5867
5980
|
realExistingParent,
|
|
5868
5981
|
target
|
|
@@ -5898,7 +6011,7 @@ async function exportSessionAction(context, args, exportFormat) {
|
|
|
5898
6011
|
}
|
|
5899
6012
|
const target = resolveExportTarget(cwd, args, exportFormat.extension);
|
|
5900
6013
|
const targetFilepath = target.filepath;
|
|
5901
|
-
|
|
6014
|
+
debugLogger7.debug("Resolved export target:", {
|
|
5902
6015
|
format: exportFormat.displayName,
|
|
5903
6016
|
cwd,
|
|
5904
6017
|
outputDirArg: args.trim(),
|
|
@@ -5907,7 +6020,7 @@ async function exportSessionAction(context, args, exportFormat) {
|
|
|
5907
6020
|
filepath: target.filepath
|
|
5908
6021
|
});
|
|
5909
6022
|
if (!target.isInsideCwd) {
|
|
5910
|
-
|
|
6023
|
+
debugLogger7.debug(
|
|
5911
6024
|
"Export target rejected before realpath validation:",
|
|
5912
6025
|
formatExportTargetContext(target)
|
|
5913
6026
|
);
|
|
@@ -5924,17 +6037,17 @@ async function exportSessionAction(context, args, exportFormat) {
|
|
|
5924
6037
|
if (initialValidationError) {
|
|
5925
6038
|
return initialValidationError;
|
|
5926
6039
|
}
|
|
5927
|
-
|
|
6040
|
+
debugLogger7.debug("Export target validation passed:", {
|
|
5928
6041
|
format: exportFormat.displayName,
|
|
5929
6042
|
outputDir: target.outputDir,
|
|
5930
6043
|
outputDirKind: target.outputDirKind
|
|
5931
6044
|
});
|
|
5932
6045
|
const sessionService = new SessionService(cwd);
|
|
5933
6046
|
const sessionId = config.getSessionId();
|
|
5934
|
-
|
|
6047
|
+
debugLogger7.debug("Loading session for export:", { sessionId, cwd });
|
|
5935
6048
|
const sessionData = await sessionService.loadSession(sessionId);
|
|
5936
6049
|
if (!sessionData) {
|
|
5937
|
-
|
|
6050
|
+
debugLogger7.debug("No active session found for export:", {
|
|
5938
6051
|
sessionId,
|
|
5939
6052
|
cwd
|
|
5940
6053
|
});
|
|
@@ -5954,12 +6067,12 @@ async function exportSessionAction(context, args, exportFormat) {
|
|
|
5954
6067
|
const content = exportFormat.format(normalizedData);
|
|
5955
6068
|
if (target.outputDirKind === "custom") {
|
|
5956
6069
|
try {
|
|
5957
|
-
|
|
6070
|
+
debugLogger7.debug("Creating export directory:", {
|
|
5958
6071
|
outputDir: target.outputDir
|
|
5959
6072
|
});
|
|
5960
6073
|
await fs5.mkdir(target.outputDir, { recursive: true, mode: 448 });
|
|
5961
6074
|
} catch (error) {
|
|
5962
|
-
|
|
6075
|
+
debugLogger7.debug("Failed to create export directory:", error);
|
|
5963
6076
|
return {
|
|
5964
6077
|
type: "message",
|
|
5965
6078
|
messageType: "error",
|
|
@@ -5973,7 +6086,7 @@ async function exportSessionAction(context, args, exportFormat) {
|
|
|
5973
6086
|
return writeValidationError;
|
|
5974
6087
|
}
|
|
5975
6088
|
} catch (error) {
|
|
5976
|
-
|
|
6089
|
+
debugLogger7.debug("Export path validation failed before write:", error);
|
|
5977
6090
|
return {
|
|
5978
6091
|
type: "message",
|
|
5979
6092
|
messageType: "error",
|
|
@@ -5981,7 +6094,7 @@ async function exportSessionAction(context, args, exportFormat) {
|
|
|
5981
6094
|
};
|
|
5982
6095
|
}
|
|
5983
6096
|
try {
|
|
5984
|
-
|
|
6097
|
+
debugLogger7.debug("Writing export file:", {
|
|
5985
6098
|
format: exportFormat.displayName,
|
|
5986
6099
|
filepath: target.filepath
|
|
5987
6100
|
});
|
|
@@ -5990,17 +6103,17 @@ async function exportSessionAction(context, args, exportFormat) {
|
|
|
5990
6103
|
mode: 384
|
|
5991
6104
|
});
|
|
5992
6105
|
await fs5.chmod(target.filepath, 384).catch((error) => {
|
|
5993
|
-
|
|
6106
|
+
debugLogger7.debug("Failed to tighten export file permissions:", error);
|
|
5994
6107
|
});
|
|
5995
6108
|
} catch (error) {
|
|
5996
|
-
|
|
6109
|
+
debugLogger7.debug("Failed to write export file:", error);
|
|
5997
6110
|
return {
|
|
5998
6111
|
type: "message",
|
|
5999
6112
|
messageType: "error",
|
|
6000
6113
|
content: `Failed to export session: ${error instanceof Error ? error.message : String(error)} (${exportFormat.displayName} target: "${targetFilepath}")`
|
|
6001
6114
|
};
|
|
6002
6115
|
}
|
|
6003
|
-
|
|
6116
|
+
debugLogger7.debug("Session export completed:", {
|
|
6004
6117
|
format: exportFormat.displayName,
|
|
6005
6118
|
filepath: target.filepath
|
|
6006
6119
|
});
|
|
@@ -6010,7 +6123,7 @@ async function exportSessionAction(context, args, exportFormat) {
|
|
|
6010
6123
|
content: `Session exported to ${exportFormat.displayName}: ${target.displayPath}`
|
|
6011
6124
|
};
|
|
6012
6125
|
} catch (error) {
|
|
6013
|
-
|
|
6126
|
+
debugLogger7.debug("Session export failed:", {
|
|
6014
6127
|
format: exportFormat.displayName,
|
|
6015
6128
|
target,
|
|
6016
6129
|
error
|
|
@@ -6106,7 +6219,7 @@ var exportCommand = {
|
|
|
6106
6219
|
|
|
6107
6220
|
// packages/cli/src/ui/commands/forkCommand.ts
|
|
6108
6221
|
init_esbuild_shims();
|
|
6109
|
-
var
|
|
6222
|
+
var debugLogger8 = createDebugLogger("FORK_COMMAND");
|
|
6110
6223
|
function deriveForkDescription(directive) {
|
|
6111
6224
|
const oneLine = directive.replace(/\s+/g, " ").trim();
|
|
6112
6225
|
return oneLine.length > 60 ? `${oneLine.slice(0, 57)}\u2026` : oneLine;
|
|
@@ -6162,7 +6275,7 @@ var forkCommand = {
|
|
|
6162
6275
|
try {
|
|
6163
6276
|
hasHistory = (config.getGeminiClient().getHistoryShallow() ?? []).length > 0;
|
|
6164
6277
|
} catch (error) {
|
|
6165
|
-
|
|
6278
|
+
debugLogger8.debug("Failed to read history before /fork:", error);
|
|
6166
6279
|
hasHistory = false;
|
|
6167
6280
|
}
|
|
6168
6281
|
if (!hasHistory) {
|
|
@@ -6222,7 +6335,7 @@ var forkCommand = {
|
|
|
6222
6335
|
]
|
|
6223
6336
|
});
|
|
6224
6337
|
} catch (error) {
|
|
6225
|
-
|
|
6338
|
+
debugLogger8.debug("Failed to record fork event in history:", error);
|
|
6226
6339
|
}
|
|
6227
6340
|
return {
|
|
6228
6341
|
type: "message",
|
|
@@ -6236,7 +6349,7 @@ var forkCommand = {
|
|
|
6236
6349
|
|
|
6237
6350
|
// packages/cli/src/ui/commands/extensionsCommand.ts
|
|
6238
6351
|
init_esbuild_shims();
|
|
6239
|
-
var
|
|
6352
|
+
var debugLogger9 = createDebugLogger("EXTENSIONS_COMMAND");
|
|
6240
6353
|
var EXTENSION_EXPLORE_URL = {
|
|
6241
6354
|
Gemini: "https://geminicli.com/extensions/",
|
|
6242
6355
|
ClaudeCode: "https://claudemarketplaces.com/"
|
|
@@ -6399,7 +6512,7 @@ async function installAction(context, args) {
|
|
|
6399
6512
|
}
|
|
6400
6513
|
const extensionManager = context.services.config?.getExtensionManager();
|
|
6401
6514
|
if (!(extensionManager instanceof ExtensionManager)) {
|
|
6402
|
-
|
|
6515
|
+
debugLogger9.error(
|
|
6403
6516
|
`Cannot ${context.invocation?.name} extensions in this environment`
|
|
6404
6517
|
);
|
|
6405
6518
|
return;
|
|
@@ -6544,140 +6657,6 @@ var CLEAR_KEYWORDS = /* @__PURE__ */ new Set([
|
|
|
6544
6657
|
"none",
|
|
6545
6658
|
"cancel"
|
|
6546
6659
|
]);
|
|
6547
|
-
function formatLegacyTurns(count) {
|
|
6548
|
-
return `${count} ${count === 1 ? "turn" : "turns"}`;
|
|
6549
|
-
}
|
|
6550
|
-
__name(formatLegacyTurns, "formatLegacyTurns");
|
|
6551
|
-
function assertNeverTerminalKind(kind) {
|
|
6552
|
-
throw new Error(`Unexpected GoalTerminalKind: ${kind}`);
|
|
6553
|
-
}
|
|
6554
|
-
__name(assertNeverTerminalKind, "assertNeverTerminalKind");
|
|
6555
|
-
function formatLegacyTerminalSummary(event) {
|
|
6556
|
-
let title;
|
|
6557
|
-
switch (event.kind) {
|
|
6558
|
-
case "achieved":
|
|
6559
|
-
title = "Goal achieved";
|
|
6560
|
-
break;
|
|
6561
|
-
case "failed":
|
|
6562
|
-
title = "Goal could not be achieved";
|
|
6563
|
-
break;
|
|
6564
|
-
case "aborted":
|
|
6565
|
-
title = "Goal aborted";
|
|
6566
|
-
break;
|
|
6567
|
-
default:
|
|
6568
|
-
title = assertNeverTerminalKind(event.kind);
|
|
6569
|
-
}
|
|
6570
|
-
const stats = [];
|
|
6571
|
-
if (event.iterations > 0) stats.push(formatLegacyTurns(event.iterations));
|
|
6572
|
-
if (typeof event.durationMs === "number") {
|
|
6573
|
-
stats.push(formatDuration(event.durationMs, { hideTrailingZeros: true }));
|
|
6574
|
-
}
|
|
6575
|
-
const subtitle = stats.length > 0 ? ` \xB7 ${stats.join(" \xB7 ")}` : "";
|
|
6576
|
-
const reason = event.lastReason?.trim();
|
|
6577
|
-
return `${title}${subtitle}
|
|
6578
|
-
Goal: ${event.condition}${reason ? `
|
|
6579
|
-
Last check: ${reason}` : ""}`;
|
|
6580
|
-
}
|
|
6581
|
-
__name(formatLegacyTerminalSummary, "formatLegacyTerminalSummary");
|
|
6582
|
-
async function runLegacyGoalCommand(context, args, explicitSet = false) {
|
|
6583
|
-
const { config } = context.services;
|
|
6584
|
-
if (!config) return errorMessage("Configuration is not available.");
|
|
6585
|
-
const sessionId = config.getSessionId();
|
|
6586
|
-
const objective = args.trim();
|
|
6587
|
-
if (!objective) {
|
|
6588
|
-
const active = getActiveGoal(sessionId);
|
|
6589
|
-
if (active) {
|
|
6590
|
-
const turns = active.iterations === 0 ? "not yet evaluated" : formatLegacyTurns(active.iterations);
|
|
6591
|
-
return {
|
|
6592
|
-
type: "message",
|
|
6593
|
-
messageType: "info",
|
|
6594
|
-
content: `Goal active: ${active.condition} (${turns})${active.lastReason ? `
|
|
6595
|
-
Last check: ${active.lastReason}` : ""}`
|
|
6596
|
-
};
|
|
6597
|
-
}
|
|
6598
|
-
const terminal = getLastGoalTerminal(sessionId);
|
|
6599
|
-
return {
|
|
6600
|
-
type: "message",
|
|
6601
|
-
messageType: "info",
|
|
6602
|
-
content: terminal ? formatLegacyTerminalSummary(terminal) : "No goal set. Usage: `/goal <condition>` (or `/goal clear`)."
|
|
6603
|
-
};
|
|
6604
|
-
}
|
|
6605
|
-
if (!explicitSet && CLEAR_KEYWORDS.has(objective.toLowerCase())) {
|
|
6606
|
-
const cleared = unregisterGoalHook(config, sessionId);
|
|
6607
|
-
if (!cleared) {
|
|
6608
|
-
return {
|
|
6609
|
-
type: "message",
|
|
6610
|
-
messageType: "info",
|
|
6611
|
-
content: "No goal set."
|
|
6612
|
-
};
|
|
6613
|
-
}
|
|
6614
|
-
const item = {
|
|
6615
|
-
type: "goal_status" /* GOAL_STATUS */,
|
|
6616
|
-
kind: "cleared",
|
|
6617
|
-
condition: cleared.condition,
|
|
6618
|
-
iterations: cleared.iterations,
|
|
6619
|
-
durationMs: Date.now() - cleared.setAt
|
|
6620
|
-
};
|
|
6621
|
-
context.ui.addItem(item, Date.now());
|
|
6622
|
-
return {
|
|
6623
|
-
type: "message",
|
|
6624
|
-
messageType: "info",
|
|
6625
|
-
content: `Goal cleared: ${cleared.condition}`
|
|
6626
|
-
};
|
|
6627
|
-
}
|
|
6628
|
-
if (!config.isTrustedFolder()) {
|
|
6629
|
-
return errorMessage(
|
|
6630
|
-
"/goal is only available in trusted workspaces. Trust this folder via `/trust` and try again."
|
|
6631
|
-
);
|
|
6632
|
-
}
|
|
6633
|
-
if (config.getDisableAllHooks()) {
|
|
6634
|
-
return errorMessage(
|
|
6635
|
-
"/goal is disabled because hooks are turned off in this session (`disableAllHooks` or bare mode)."
|
|
6636
|
-
);
|
|
6637
|
-
}
|
|
6638
|
-
if (!config.getHookSystem()) {
|
|
6639
|
-
return errorMessage(
|
|
6640
|
-
"Hook system is not initialized; cannot set a /goal in this session."
|
|
6641
|
-
);
|
|
6642
|
-
}
|
|
6643
|
-
let registered;
|
|
6644
|
-
try {
|
|
6645
|
-
registered = registerGoalHook({
|
|
6646
|
-
config,
|
|
6647
|
-
sessionId,
|
|
6648
|
-
condition: objective,
|
|
6649
|
-
tokensAtStart: 0
|
|
6650
|
-
});
|
|
6651
|
-
} catch (error) {
|
|
6652
|
-
return errorMessage(
|
|
6653
|
-
`Failed to set goal: ${error instanceof Error ? error.message : String(error)}`
|
|
6654
|
-
);
|
|
6655
|
-
}
|
|
6656
|
-
context.ui.addItem(
|
|
6657
|
-
{
|
|
6658
|
-
type: "goal_status" /* GOAL_STATUS */,
|
|
6659
|
-
kind: "set",
|
|
6660
|
-
condition: registered.condition,
|
|
6661
|
-
setAt: registered.setAt
|
|
6662
|
-
},
|
|
6663
|
-
Date.now()
|
|
6664
|
-
);
|
|
6665
|
-
installGoalTerminalObserver({
|
|
6666
|
-
sessionId,
|
|
6667
|
-
config,
|
|
6668
|
-
addItem: context.ui.addItem
|
|
6669
|
-
});
|
|
6670
|
-
const result = {
|
|
6671
|
-
type: "submit_prompt",
|
|
6672
|
-
content: [
|
|
6673
|
-
{
|
|
6674
|
-
text: `A session-scoped Stop hook is now active with condition: "${objective.replace(/[\r\n]+/g, " ").replace(/"/g, "'")}". Briefly acknowledge the goal, then immediately start (or continue) working toward it \u2014 treat the condition itself as your directive and do not pause to ask the user what to do. The hook will block stopping until the condition holds. It auto-clears once the condition is met \u2014 do not tell the user to run \`/goal clear\` after success; that is only for clearing a goal early.`
|
|
6675
|
-
}
|
|
6676
|
-
]
|
|
6677
|
-
};
|
|
6678
|
-
return result;
|
|
6679
|
-
}
|
|
6680
|
-
__name(runLegacyGoalCommand, "runLegacyGoalCommand");
|
|
6681
6660
|
function parseGoalCommand(args) {
|
|
6682
6661
|
let input = args.trim();
|
|
6683
6662
|
if (/^\/goal(?:\s|$)/i.test(input)) {
|
|
@@ -6723,22 +6702,6 @@ var goalCommand = {
|
|
|
6723
6702
|
kind: "built-in" /* BUILT_IN */,
|
|
6724
6703
|
supportedModes: ["interactive", "non_interactive", "acp"],
|
|
6725
6704
|
action: /* @__PURE__ */ __name(async (context, args) => {
|
|
6726
|
-
if (context.executionMode === "acp") {
|
|
6727
|
-
const operation2 = parseGoalCommand(args);
|
|
6728
|
-
if (operation2.kind === "error") return errorMessage(operation2.message);
|
|
6729
|
-
if (operation2.kind !== "status" && operation2.kind !== "clear" && operation2.kind !== "set") {
|
|
6730
|
-
return errorMessage(
|
|
6731
|
-
`'/goal ${operation2.kind}' is not available in ACP mode.`
|
|
6732
|
-
);
|
|
6733
|
-
}
|
|
6734
|
-
const explicitSet = operation2.kind === "set";
|
|
6735
|
-
const legacyArgs = explicitSet ? operation2.objective : args;
|
|
6736
|
-
return await runLegacyGoalCommand(context, legacyArgs, explicitSet) ?? {
|
|
6737
|
-
type: "message",
|
|
6738
|
-
messageType: "info",
|
|
6739
|
-
content: "Command executed successfully."
|
|
6740
|
-
};
|
|
6741
|
-
}
|
|
6742
6705
|
const { config } = context.services;
|
|
6743
6706
|
if (!config) return errorMessage("Configuration is not available.");
|
|
6744
6707
|
const operation = parseGoalCommand(args);
|
|
@@ -6749,8 +6712,18 @@ var goalCommand = {
|
|
|
6749
6712
|
"/goal is only available in trusted workspaces. Trust this folder via `/trust` and try again."
|
|
6750
6713
|
);
|
|
6751
6714
|
}
|
|
6715
|
+
let runtime;
|
|
6716
|
+
try {
|
|
6717
|
+
runtime = await config.getGoalRuntimeReady();
|
|
6718
|
+
} catch (error) {
|
|
6719
|
+
if (error instanceof GoalPersistenceUnavailableError && (operation.kind === "status" || operation.kind === "clear") && config.getChatRecordingService() === void 0) {
|
|
6720
|
+
return goalControl(operation, { snapshot: emptyGoalSnapshot() });
|
|
6721
|
+
}
|
|
6722
|
+
return errorMessage(
|
|
6723
|
+
error instanceof Error ? error.message : String(error)
|
|
6724
|
+
);
|
|
6725
|
+
}
|
|
6752
6726
|
try {
|
|
6753
|
-
const runtime = await config.getGoalRuntimeReady();
|
|
6754
6727
|
const snapshot = runtime.getSnapshot();
|
|
6755
6728
|
if (operation.kind === "status") {
|
|
6756
6729
|
return goalControl(operation, { snapshot });
|
|
@@ -6873,7 +6846,7 @@ var expandNowCommand = {
|
|
|
6873
6846
|
content: t("History is already expanded in this session.")
|
|
6874
6847
|
};
|
|
6875
6848
|
}
|
|
6876
|
-
const { expandCollapsedHistory } = await import("./resumeHistoryUtils-
|
|
6849
|
+
const { expandCollapsedHistory } = await import("./resumeHistoryUtils-RR2KEVH5.js");
|
|
6877
6850
|
const updated = expandCollapsedHistory(history);
|
|
6878
6851
|
loadHistory(updated);
|
|
6879
6852
|
refreshStatic();
|
|
@@ -8406,7 +8379,7 @@ Write the complete content to the \`${contextFileName}\` file. The output must b
|
|
|
8406
8379
|
|
|
8407
8380
|
// packages/cli/src/ui/commands/languageCommand.ts
|
|
8408
8381
|
init_esbuild_shims();
|
|
8409
|
-
var
|
|
8382
|
+
var debugLogger10 = createDebugLogger("LANGUAGE_COMMAND");
|
|
8410
8383
|
function getCurrentOutputLanguage(context) {
|
|
8411
8384
|
const settingValue = context?.services?.settings?.merged?.general?.outputLanguage || OUTPUT_LANGUAGE_AUTO;
|
|
8412
8385
|
const resolved = resolveOutputLanguageOrPreserveAuto(settingValue);
|
|
@@ -8474,7 +8447,7 @@ async function setUiLanguage(context, lang, scope = "User" /* User */) {
|
|
|
8474
8447
|
throwOnWriteFailure: true
|
|
8475
8448
|
});
|
|
8476
8449
|
} catch (error) {
|
|
8477
|
-
|
|
8450
|
+
debugLogger10.warn("Failed to save language setting:", error);
|
|
8478
8451
|
return {
|
|
8479
8452
|
type: "message",
|
|
8480
8453
|
messageType: "error",
|
|
@@ -8510,7 +8483,7 @@ async function setOutputLanguage(context, language) {
|
|
|
8510
8483
|
settingValue
|
|
8511
8484
|
);
|
|
8512
8485
|
} catch (error) {
|
|
8513
|
-
|
|
8486
|
+
debugLogger10.warn("Failed to save output language setting:", error);
|
|
8514
8487
|
}
|
|
8515
8488
|
}
|
|
8516
8489
|
const config = context.services.config;
|
|
@@ -8519,7 +8492,7 @@ async function setOutputLanguage(context, language) {
|
|
|
8519
8492
|
await config.refreshHierarchicalMemory();
|
|
8520
8493
|
await config.getGeminiClient().refreshSystemInstruction();
|
|
8521
8494
|
} catch (error) {
|
|
8522
|
-
|
|
8495
|
+
debugLogger10.warn(
|
|
8523
8496
|
"Failed to apply output language to running session:",
|
|
8524
8497
|
error
|
|
8525
8498
|
);
|
|
@@ -8875,6 +8848,23 @@ var FAST_MODEL_CONFIGURATION_HINT = "Configure models in settings.modelProviders
|
|
|
8875
8848
|
var VISION_MODEL_CONFIGURATION_HINT = "Configure an image-capable model in settings.modelProviders and ensure the required environment variables are set. Run /model --vision <model-id> to set it, or leave it unset to auto-pick a same-provider vision model.";
|
|
8876
8849
|
var COMPACTION_MODEL_CONFIGURATION_HINT = "Configure models in settings.modelProviders and ensure the required environment variables are set. In interactive mode, run /auth to configure or switch providers, or run /model --compaction without a model to choose from configured models.";
|
|
8877
8850
|
var IMAGE_MODEL_CONFIGURATION_HINT = "Configure a model with imageOnly: true, baseUrl, and envKey in settings.modelProviders. Run /model --image <model-id> to select it.";
|
|
8851
|
+
var MODEL_PICKER_FLAGS = [
|
|
8852
|
+
"fast",
|
|
8853
|
+
"voice",
|
|
8854
|
+
"vision",
|
|
8855
|
+
"compaction",
|
|
8856
|
+
"image",
|
|
8857
|
+
"project",
|
|
8858
|
+
"global"
|
|
8859
|
+
];
|
|
8860
|
+
var MODEL_PICKER_FLAG_PATTERN = `(?:${MODEL_PICKER_FLAGS.join("|")})`;
|
|
8861
|
+
var MODEL_PICKER_ONLY_PATTERN = new RegExp(
|
|
8862
|
+
`^(?:\\s*--${MODEL_PICKER_FLAG_PATTERN})*\\s*$`
|
|
8863
|
+
);
|
|
8864
|
+
function isPickerOnlyModelInvocation(args) {
|
|
8865
|
+
return MODEL_PICKER_ONLY_PATTERN.test(args);
|
|
8866
|
+
}
|
|
8867
|
+
__name(isPickerOnlyModelInvocation, "isPickerOnlyModelInvocation");
|
|
8878
8868
|
function parseScopeFlags(args) {
|
|
8879
8869
|
let scopeOverride;
|
|
8880
8870
|
let remaining = args;
|
|
@@ -9921,7 +9911,7 @@ init_esbuild_shims();
|
|
|
9921
9911
|
|
|
9922
9912
|
// packages/cli/src/config/extension-runtime-reload.ts
|
|
9923
9913
|
init_esbuild_shims();
|
|
9924
|
-
var
|
|
9914
|
+
var debugLogger11 = createDebugLogger("EXTENSION_RUNTIME_RELOAD");
|
|
9925
9915
|
async function reloadPluginsRuntime(options) {
|
|
9926
9916
|
if (options.config.isSafeMode()) {
|
|
9927
9917
|
throw new Error("Extension reload is disabled in safe mode.");
|
|
@@ -9941,7 +9931,7 @@ async function refreshExtensionContentRuntime(options) {
|
|
|
9941
9931
|
await manager.refreshCache();
|
|
9942
9932
|
} catch (error) {
|
|
9943
9933
|
errors.push(error);
|
|
9944
|
-
|
|
9934
|
+
debugLogger11.warn(
|
|
9945
9935
|
"refreshExtensionContentRuntime: refreshCache failed:",
|
|
9946
9936
|
error
|
|
9947
9937
|
);
|
|
@@ -9954,7 +9944,7 @@ async function refreshExtensionContentRuntime(options) {
|
|
|
9954
9944
|
for (const result of settled) {
|
|
9955
9945
|
if (result.status === "rejected") {
|
|
9956
9946
|
errors.push(result.reason);
|
|
9957
|
-
|
|
9947
|
+
debugLogger11.warn(
|
|
9958
9948
|
"refreshExtensionContentRuntime: a refresh leg failed:",
|
|
9959
9949
|
result.reason
|
|
9960
9950
|
);
|
|
@@ -10216,9 +10206,15 @@ var renameCommand = {
|
|
|
10216
10206
|
}, 500);
|
|
10217
10207
|
let outcome;
|
|
10218
10208
|
try {
|
|
10209
|
+
const userDisplayTexts = config.getChatRecordingService()?.getUserDisplayTextsForTitle?.() ?? [];
|
|
10210
|
+
const lastDisplayText = userDisplayTexts.at(-1)?.trim();
|
|
10211
|
+
const titleDisplayTexts = lastDisplayText?.match(
|
|
10212
|
+
/^\/(?:rename|tag)(?:\s+--auto)?$/i
|
|
10213
|
+
) ? userDisplayTexts.slice(0, -1) : userDisplayTexts;
|
|
10219
10214
|
outcome = await tryGenerateSessionTitle(
|
|
10220
10215
|
config,
|
|
10221
|
-
context.abortSignal ?? new AbortController().signal
|
|
10216
|
+
context.abortSignal ?? new AbortController().signal,
|
|
10217
|
+
titleDisplayTexts
|
|
10222
10218
|
);
|
|
10223
10219
|
} finally {
|
|
10224
10220
|
clearInterval(timer);
|
|
@@ -11757,7 +11753,7 @@ import * as os4 from "node:os";
|
|
|
11757
11753
|
import * as path13 from "node:path";
|
|
11758
11754
|
import { exec } from "node:child_process";
|
|
11759
11755
|
import { promisify } from "node:util";
|
|
11760
|
-
var
|
|
11756
|
+
var debugLogger12 = createDebugLogger("TERMINAL_SETUP");
|
|
11761
11757
|
var execAsync = promisify(exec);
|
|
11762
11758
|
function stripJsonComments2(content) {
|
|
11763
11759
|
return content.replace(/^\s*\/\/.*$/gm, "");
|
|
@@ -11790,7 +11786,7 @@ async function detectTerminal() {
|
|
|
11790
11786
|
if (parentName.includes("trae") || parentName.includes("Trae"))
|
|
11791
11787
|
return "trae";
|
|
11792
11788
|
} catch (error) {
|
|
11793
|
-
|
|
11789
|
+
debugLogger12.debug("Parent process detection failed:", error);
|
|
11794
11790
|
}
|
|
11795
11791
|
}
|
|
11796
11792
|
return null;
|
|
@@ -11802,7 +11798,7 @@ async function backupFile(filePath) {
|
|
|
11802
11798
|
const backupPath = `${filePath}.backup.${timestamp}`;
|
|
11803
11799
|
await fs10.copyFile(filePath, backupPath);
|
|
11804
11800
|
} catch (error) {
|
|
11805
|
-
|
|
11801
|
+
debugLogger12.warn(`Failed to create backup of ${filePath}:`, error);
|
|
11806
11802
|
}
|
|
11807
11803
|
}
|
|
11808
11804
|
__name(backupFile, "backupFile");
|
|
@@ -12033,6 +12029,7 @@ var terminalSetupCommand = {
|
|
|
12033
12029
|
|
|
12034
12030
|
// packages/cli/src/ui/commands/themeCommand.ts
|
|
12035
12031
|
init_esbuild_shims();
|
|
12032
|
+
import process5 from "node:process";
|
|
12036
12033
|
var themeCommand = {
|
|
12037
12034
|
name: "theme",
|
|
12038
12035
|
get description() {
|
|
@@ -12040,10 +12037,21 @@ var themeCommand = {
|
|
|
12040
12037
|
},
|
|
12041
12038
|
kind: "built-in" /* BUILT_IN */,
|
|
12042
12039
|
supportedModes: ["interactive"],
|
|
12043
|
-
action: /* @__PURE__ */ __name((_context, _args) =>
|
|
12044
|
-
|
|
12045
|
-
|
|
12046
|
-
|
|
12040
|
+
action: /* @__PURE__ */ __name((_context, _args) => {
|
|
12041
|
+
if (process5.env["NO_COLOR"]) {
|
|
12042
|
+
return {
|
|
12043
|
+
type: "message",
|
|
12044
|
+
messageType: "info",
|
|
12045
|
+
content: t(
|
|
12046
|
+
"Theme configuration unavailable due to NO_COLOR env variable."
|
|
12047
|
+
)
|
|
12048
|
+
};
|
|
12049
|
+
}
|
|
12050
|
+
return {
|
|
12051
|
+
type: "dialog",
|
|
12052
|
+
dialog: "theme"
|
|
12053
|
+
};
|
|
12054
|
+
}, "action")
|
|
12047
12055
|
};
|
|
12048
12056
|
|
|
12049
12057
|
// packages/cli/src/ui/commands/toolsCommand.ts
|
|
@@ -12112,7 +12120,7 @@ init_esbuild_shims();
|
|
|
12112
12120
|
// packages/cli/src/ui/voice/voice-availability.ts
|
|
12113
12121
|
init_esbuild_shims();
|
|
12114
12122
|
import { existsSync as existsSync2 } from "node:fs";
|
|
12115
|
-
import
|
|
12123
|
+
import process6 from "node:process";
|
|
12116
12124
|
var SUPPORTED_PLATFORMS = [
|
|
12117
12125
|
"darwin",
|
|
12118
12126
|
"linux",
|
|
@@ -12123,8 +12131,8 @@ function isWsl(env) {
|
|
|
12123
12131
|
}
|
|
12124
12132
|
__name(isWsl, "isWsl");
|
|
12125
12133
|
function getVoiceUnavailableReason(environment = {
|
|
12126
|
-
platform:
|
|
12127
|
-
env:
|
|
12134
|
+
platform: process6.platform,
|
|
12135
|
+
env: process6.env
|
|
12128
12136
|
}) {
|
|
12129
12137
|
const { platform: platform2, env } = environment;
|
|
12130
12138
|
const fileExists = environment.fileExists ?? existsSync2;
|
|
@@ -14109,10 +14117,10 @@ var updateCommand = {
|
|
|
14109
14117
|
{ performStandaloneUpdate },
|
|
14110
14118
|
installationInfo
|
|
14111
14119
|
] = await Promise.all([
|
|
14112
|
-
import("./updateCheck-
|
|
14113
|
-
import("./processUtils-
|
|
14114
|
-
import("./standalone-update-
|
|
14115
|
-
import("./installationInfo-
|
|
14120
|
+
import("./updateCheck-VBRNPLS4.js"),
|
|
14121
|
+
import("./processUtils-M635AD23.js"),
|
|
14122
|
+
import("./standalone-update-5NN3MTYH.js"),
|
|
14123
|
+
import("./installationInfo-6USRNCD2.js")
|
|
14116
14124
|
]);
|
|
14117
14125
|
const { formatUpdateInstructions, getInstallationInfo: getInstallationInfo2 } = installationInfo;
|
|
14118
14126
|
const settings = context.services.settings;
|
|
@@ -14344,7 +14352,7 @@ var BuiltinCommandLoader = class {
|
|
|
14344
14352
|
// packages/cli/src/services/BundledSkillLoader.ts
|
|
14345
14353
|
init_esbuild_shims();
|
|
14346
14354
|
import { dirname as dirname2 } from "node:path";
|
|
14347
|
-
var
|
|
14355
|
+
var debugLogger13 = createDebugLogger("BUNDLED_SKILL_LOADER");
|
|
14348
14356
|
var BundledSkillLoader = class {
|
|
14349
14357
|
constructor(config) {
|
|
14350
14358
|
this.config = config;
|
|
@@ -14354,12 +14362,12 @@ var BundledSkillLoader = class {
|
|
|
14354
14362
|
}
|
|
14355
14363
|
async loadCommands(_signal) {
|
|
14356
14364
|
if (this.config?.getBareMode?.()) {
|
|
14357
|
-
|
|
14365
|
+
debugLogger13.debug("Bare mode enabled, skipping bundled skills");
|
|
14358
14366
|
return [];
|
|
14359
14367
|
}
|
|
14360
14368
|
const skillManager = this.config?.getSkillManager();
|
|
14361
14369
|
if (!skillManager) {
|
|
14362
|
-
|
|
14370
|
+
debugLogger13.debug("SkillManager not available, skipping bundled skills");
|
|
14363
14371
|
return [];
|
|
14364
14372
|
}
|
|
14365
14373
|
try {
|
|
@@ -14367,7 +14375,7 @@ var BundledSkillLoader = class {
|
|
|
14367
14375
|
const cronEnabled = this.config?.isCronEnabled() ?? false;
|
|
14368
14376
|
const cronVisible = allSkills.filter((skill) => {
|
|
14369
14377
|
if (!cronEnabled && skill.allowedTools?.some((t2) => t2.startsWith("cron_"))) {
|
|
14370
|
-
|
|
14378
|
+
debugLogger13.debug(
|
|
14371
14379
|
`Hiding skill "${skill.name}" because cron is not enabled`
|
|
14372
14380
|
);
|
|
14373
14381
|
return false;
|
|
@@ -14378,7 +14386,7 @@ var BundledSkillLoader = class {
|
|
|
14378
14386
|
const skills = cronVisible.filter(
|
|
14379
14387
|
(skill) => !disabled.has(skill.name.toLowerCase())
|
|
14380
14388
|
);
|
|
14381
|
-
|
|
14389
|
+
debugLogger13.debug(
|
|
14382
14390
|
`Loaded ${skills.length} bundled skill(s) as slash commands; ${cronVisible.length - skills.length} hidden by skills.disabled`
|
|
14383
14391
|
);
|
|
14384
14392
|
return skills.map((skill) => ({
|
|
@@ -14440,7 +14448,7 @@ ${body}`;
|
|
|
14440
14448
|
}, "action")
|
|
14441
14449
|
}));
|
|
14442
14450
|
} catch (error) {
|
|
14443
|
-
|
|
14451
|
+
debugLogger13.error("Failed to load bundled skills:", error);
|
|
14444
14452
|
return [];
|
|
14445
14453
|
}
|
|
14446
14454
|
}
|
|
@@ -14720,7 +14728,7 @@ var ShellProcessor = class {
|
|
|
14720
14728
|
|
|
14721
14729
|
// packages/cli/src/services/prompt-processors/atFileProcessor.ts
|
|
14722
14730
|
init_esbuild_shims();
|
|
14723
|
-
var
|
|
14731
|
+
var debugLogger14 = createDebugLogger("AT_FILE_PROCESSOR");
|
|
14724
14732
|
var AtFileProcessor = class {
|
|
14725
14733
|
constructor(commandName) {
|
|
14726
14734
|
this.commandName = commandName;
|
|
@@ -14766,7 +14774,7 @@ var AtFileProcessor = class {
|
|
|
14766
14774
|
} catch (error) {
|
|
14767
14775
|
const message2 = error instanceof Error ? error.message : String(error);
|
|
14768
14776
|
const uiMessage = `Failed to inject content for '@{${pathStr}}': ${message2}`;
|
|
14769
|
-
|
|
14777
|
+
debugLogger14.error(
|
|
14770
14778
|
`[AtFileProcessor] ${uiMessage}. Leaving placeholder in prompt.`
|
|
14771
14779
|
);
|
|
14772
14780
|
context.ui.addItem(
|
|
@@ -14791,7 +14799,7 @@ var AtFileProcessor = class {
|
|
|
14791
14799
|
};
|
|
14792
14800
|
|
|
14793
14801
|
// packages/cli/src/services/command-factory.ts
|
|
14794
|
-
var
|
|
14802
|
+
var debugLogger15 = createDebugLogger("COMMAND_FACTORY");
|
|
14795
14803
|
function createSlashCommandFromDefinition(filePath, baseDir, definition, extensionName, fileExtension) {
|
|
14796
14804
|
const relativePathWithExt = path16.relative(baseDir, filePath);
|
|
14797
14805
|
const relativePath = relativePathWithExt.substring(
|
|
@@ -14835,7 +14843,7 @@ function createSlashCommandFromDefinition(filePath, baseDir, definition, extensi
|
|
|
14835
14843
|
whenToUse: definition.whenToUse,
|
|
14836
14844
|
action: /* @__PURE__ */ __name(async (context, _args) => {
|
|
14837
14845
|
if (!context.invocation) {
|
|
14838
|
-
|
|
14846
|
+
debugLogger15.error(
|
|
14839
14847
|
`[FileCommandLoader] Critical error: Command '${baseCommandName}' was executed without invocation context.`
|
|
14840
14848
|
);
|
|
14841
14849
|
return {
|
|
@@ -14873,7 +14881,7 @@ function createSlashCommandFromDefinition(filePath, baseDir, definition, extensi
|
|
|
14873
14881
|
__name(createSlashCommandFromDefinition, "createSlashCommandFromDefinition");
|
|
14874
14882
|
|
|
14875
14883
|
// packages/cli/src/services/FileCommandLoader.ts
|
|
14876
|
-
var
|
|
14884
|
+
var debugLogger16 = createDebugLogger("FILE_COMMAND_LOADER");
|
|
14877
14885
|
var TomlCommandDefSchema = external_exports.object({
|
|
14878
14886
|
prompt: external_exports.string({
|
|
14879
14887
|
required_error: "The 'prompt' field is required.",
|
|
@@ -14907,7 +14915,7 @@ var FileCommandLoader = class {
|
|
|
14907
14915
|
*/
|
|
14908
14916
|
async loadCommands(signal) {
|
|
14909
14917
|
if (this.config?.getBareMode?.()) {
|
|
14910
|
-
|
|
14918
|
+
debugLogger16.debug("Bare mode enabled, skipping auto-discovered commands");
|
|
14911
14919
|
return [];
|
|
14912
14920
|
}
|
|
14913
14921
|
const allCommands = [];
|
|
@@ -14951,7 +14959,7 @@ var FileCommandLoader = class {
|
|
|
14951
14959
|
const isEnoent = error.code === "ENOENT";
|
|
14952
14960
|
const isAbortError = error instanceof Error && error.name === "AbortError";
|
|
14953
14961
|
if (!isEnoent && !isAbortError) {
|
|
14954
|
-
|
|
14962
|
+
debugLogger16.error(
|
|
14955
14963
|
`[FileCommandLoader] Error loading commands from ${dirInfo.path}:`,
|
|
14956
14964
|
error
|
|
14957
14965
|
);
|
|
@@ -14971,7 +14979,9 @@ var FileCommandLoader = class {
|
|
|
14971
14979
|
dirs.push({ path: Storage.getUserCommandsDir() });
|
|
14972
14980
|
dirs.push({ path: storage.getProjectCommandsDir() });
|
|
14973
14981
|
if (this.config) {
|
|
14974
|
-
const activeExtensions = this.config.getExtensions().filter(
|
|
14982
|
+
const activeExtensions = this.config.getExtensions().filter(
|
|
14983
|
+
(ext) => ext.isActive && ext.format !== "agent-plugins-v1" && ext.installMetadata?.originSource !== "AgentPlugins"
|
|
14984
|
+
).sort((a, b) => a.name.localeCompare(b.name));
|
|
14975
14985
|
for (const ext of activeExtensions) {
|
|
14976
14986
|
const commandsPaths = this.getExtensionCommandsPaths(ext);
|
|
14977
14987
|
for (const cmdPath of commandsPaths) {
|
|
@@ -15008,7 +15018,7 @@ var FileCommandLoader = class {
|
|
|
15008
15018
|
}
|
|
15009
15019
|
}
|
|
15010
15020
|
} catch (error) {
|
|
15011
|
-
|
|
15021
|
+
debugLogger16.warn(
|
|
15012
15022
|
`Failed to read extension config for ${ext.name}:`,
|
|
15013
15023
|
error
|
|
15014
15024
|
);
|
|
@@ -15034,7 +15044,7 @@ var FileCommandLoader = class {
|
|
|
15034
15044
|
try {
|
|
15035
15045
|
fileContent = await fs13.readFile(filePath, "utf-8");
|
|
15036
15046
|
} catch (error) {
|
|
15037
|
-
|
|
15047
|
+
debugLogger16.error(
|
|
15038
15048
|
`[FileCommandLoader] Failed to read file ${filePath}:`,
|
|
15039
15049
|
error instanceof Error ? error.message : String(error)
|
|
15040
15050
|
);
|
|
@@ -15044,7 +15054,7 @@ var FileCommandLoader = class {
|
|
|
15044
15054
|
try {
|
|
15045
15055
|
parsed = import_toml.default.parse(fileContent);
|
|
15046
15056
|
} catch (error) {
|
|
15047
|
-
|
|
15057
|
+
debugLogger16.error(
|
|
15048
15058
|
`[FileCommandLoader] Failed to parse TOML file ${filePath}:`,
|
|
15049
15059
|
error instanceof Error ? error.message : String(error)
|
|
15050
15060
|
);
|
|
@@ -15052,7 +15062,7 @@ var FileCommandLoader = class {
|
|
|
15052
15062
|
}
|
|
15053
15063
|
const validationResult = TomlCommandDefSchema.safeParse(parsed);
|
|
15054
15064
|
if (!validationResult.success) {
|
|
15055
|
-
|
|
15065
|
+
debugLogger16.error(
|
|
15056
15066
|
`[FileCommandLoader] Skipping invalid command file: ${filePath}. Validation errors:`,
|
|
15057
15067
|
validationResult.error.flatten()
|
|
15058
15068
|
);
|
|
@@ -15079,7 +15089,7 @@ var FileCommandLoader = class {
|
|
|
15079
15089
|
try {
|
|
15080
15090
|
fileContent = await fs13.readFile(filePath, "utf-8");
|
|
15081
15091
|
} catch (error) {
|
|
15082
|
-
|
|
15092
|
+
debugLogger16.error(
|
|
15083
15093
|
`[FileCommandLoader] Failed to read file ${filePath}:`,
|
|
15084
15094
|
error instanceof Error ? error.message : String(error)
|
|
15085
15095
|
);
|
|
@@ -15089,7 +15099,7 @@ var FileCommandLoader = class {
|
|
|
15089
15099
|
try {
|
|
15090
15100
|
parsed = parseMarkdownCommand(fileContent);
|
|
15091
15101
|
} catch (error) {
|
|
15092
|
-
|
|
15102
|
+
debugLogger16.error(
|
|
15093
15103
|
`[FileCommandLoader] Failed to parse Markdown file ${filePath}:`,
|
|
15094
15104
|
error instanceof Error ? error.message : String(error)
|
|
15095
15105
|
);
|
|
@@ -15097,7 +15107,7 @@ var FileCommandLoader = class {
|
|
|
15097
15107
|
}
|
|
15098
15108
|
const validationResult = MarkdownCommandDefSchema.safeParse(parsed);
|
|
15099
15109
|
if (!validationResult.success) {
|
|
15100
|
-
|
|
15110
|
+
debugLogger16.error(
|
|
15101
15111
|
`[FileCommandLoader] Skipping invalid command file: ${filePath}. Validation errors:`,
|
|
15102
15112
|
validationResult.error.flatten()
|
|
15103
15113
|
);
|
|
@@ -15123,7 +15133,7 @@ var FileCommandLoader = class {
|
|
|
15123
15133
|
|
|
15124
15134
|
// packages/cli/src/services/saved-workflow-loader.ts
|
|
15125
15135
|
init_esbuild_shims();
|
|
15126
|
-
var
|
|
15136
|
+
var debugLogger17 = createDebugLogger("SavedWorkflowLoader");
|
|
15127
15137
|
var SavedWorkflowLoader = class {
|
|
15128
15138
|
constructor(config) {
|
|
15129
15139
|
this.config = config;
|
|
@@ -15142,7 +15152,7 @@ var SavedWorkflowLoader = class {
|
|
|
15142
15152
|
try {
|
|
15143
15153
|
entries = await listSavedWorkflows(this.config);
|
|
15144
15154
|
} catch (e) {
|
|
15145
|
-
|
|
15155
|
+
debugLogger17.debug(`listSavedWorkflows failed: ${e}`);
|
|
15146
15156
|
return [];
|
|
15147
15157
|
}
|
|
15148
15158
|
if (signal.aborted) return [];
|
|
@@ -15458,7 +15468,7 @@ var McpPromptLoader = class {
|
|
|
15458
15468
|
// packages/cli/src/services/SkillCommandLoader.ts
|
|
15459
15469
|
init_esbuild_shims();
|
|
15460
15470
|
import { dirname as dirname3 } from "node:path";
|
|
15461
|
-
var
|
|
15471
|
+
var debugLogger18 = createDebugLogger("SKILL_COMMAND_LOADER");
|
|
15462
15472
|
async function recordAutoSkillCommandUsage(config, command) {
|
|
15463
15473
|
const detail = command.skillDetail;
|
|
15464
15474
|
if (!config || detail?.level !== "project" || !detail.filePath) {
|
|
@@ -15471,7 +15481,7 @@ async function recordAutoSkillCommandUsage(config, command) {
|
|
|
15471
15481
|
filePath: detail.filePath
|
|
15472
15482
|
});
|
|
15473
15483
|
} catch (error) {
|
|
15474
|
-
|
|
15484
|
+
debugLogger18.warn(
|
|
15475
15485
|
`Failed to record auto-skill command usage: ${error instanceof Error ? error.message : String(error)}`
|
|
15476
15486
|
);
|
|
15477
15487
|
}
|
|
@@ -15486,12 +15496,12 @@ var SkillCommandLoader = class {
|
|
|
15486
15496
|
}
|
|
15487
15497
|
async loadCommands(_signal) {
|
|
15488
15498
|
if (this.config?.getBareMode?.()) {
|
|
15489
|
-
|
|
15499
|
+
debugLogger18.debug("Bare mode enabled, skipping skill commands");
|
|
15490
15500
|
return [];
|
|
15491
15501
|
}
|
|
15492
15502
|
const skillManager = this.config?.getSkillManager();
|
|
15493
15503
|
if (!skillManager) {
|
|
15494
|
-
|
|
15504
|
+
debugLogger18.debug("SkillManager not available, skipping skill commands");
|
|
15495
15505
|
return [];
|
|
15496
15506
|
}
|
|
15497
15507
|
try {
|
|
@@ -15508,7 +15518,7 @@ var SkillCommandLoader = class {
|
|
|
15508
15518
|
const nonUserInvocableCount = visibleSkills.filter(
|
|
15509
15519
|
(skill) => skill.userInvocable === false
|
|
15510
15520
|
).length;
|
|
15511
|
-
|
|
15521
|
+
debugLogger18.debug(
|
|
15512
15522
|
`Loaded ${userSkills.length} user + ${projectSkills.length} project + ${extensionSkills.length} extension skill(s) as slash commands; ${allSkills.length - visibleSkills.length} hidden by skills.disabled; ${nonUserInvocableCount} marked non-user-invocable`
|
|
15513
15523
|
);
|
|
15514
15524
|
return visibleSkills.map((skill) => {
|
|
@@ -15565,7 +15575,7 @@ var SkillCommandLoader = class {
|
|
|
15565
15575
|
};
|
|
15566
15576
|
});
|
|
15567
15577
|
} catch (error) {
|
|
15568
|
-
|
|
15578
|
+
debugLogger18.error("Failed to load skill commands:", error);
|
|
15569
15579
|
return [];
|
|
15570
15580
|
}
|
|
15571
15581
|
}
|
|
@@ -15640,7 +15650,7 @@ function formatUserPromptExpansionBlockedMessage(reason) {
|
|
|
15640
15650
|
__name(formatUserPromptExpansionBlockedMessage, "formatUserPromptExpansionBlockedMessage");
|
|
15641
15651
|
|
|
15642
15652
|
// packages/cli/src/nonInteractiveCliCommands.ts
|
|
15643
|
-
var
|
|
15653
|
+
var debugLogger19 = createDebugLogger("NON_INTERACTIVE_COMMANDS");
|
|
15644
15654
|
function getSkillCommandName(command) {
|
|
15645
15655
|
return command.skillDetail?.name ?? command.name;
|
|
15646
15656
|
}
|
|
@@ -15671,7 +15681,8 @@ function handleCommandResult(result, outputHistoryItems) {
|
|
|
15671
15681
|
return {
|
|
15672
15682
|
type: "goal_control",
|
|
15673
15683
|
operation: result.operation,
|
|
15674
|
-
response: result.response
|
|
15684
|
+
response: result.response,
|
|
15685
|
+
...result.cause ? { cause: result.cause } : {}
|
|
15675
15686
|
};
|
|
15676
15687
|
/**
|
|
15677
15688
|
* Currently return types below are never generated due to the
|
|
@@ -15814,7 +15825,7 @@ async function registerModelInvocableCommands(commandService, config, executionM
|
|
|
15814
15825
|
await skillManager?.notifyConfigChanged();
|
|
15815
15826
|
}
|
|
15816
15827
|
__name(registerModelInvocableCommands, "registerModelInvocableCommands");
|
|
15817
|
-
var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController, config, settings) => {
|
|
15828
|
+
var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController, config, settings, sessionHooks) => {
|
|
15818
15829
|
const trimmed = rawQuery.trim();
|
|
15819
15830
|
if (!trimmed.startsWith("/")) {
|
|
15820
15831
|
return { type: "no_command" };
|
|
@@ -15979,7 +15990,8 @@ var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController
|
|
|
15979
15990
|
ui,
|
|
15980
15991
|
session: {
|
|
15981
15992
|
stats: sessionStats,
|
|
15982
|
-
sessionShellAllowlist: /* @__PURE__ */ new Set()
|
|
15993
|
+
sessionShellAllowlist: /* @__PURE__ */ new Set(),
|
|
15994
|
+
...sessionHooks?.startNewSession ? { startNewSession: sessionHooks.startNewSession } : {}
|
|
15983
15995
|
},
|
|
15984
15996
|
invocation: {
|
|
15985
15997
|
raw: trimmed,
|
|
@@ -16064,14 +16076,14 @@ var getAvailableCommands = /* @__PURE__ */ __name(async (config, abortSignal, mo
|
|
|
16064
16076
|
);
|
|
16065
16077
|
return commandService.getCommandsForMode(mode);
|
|
16066
16078
|
} catch (error) {
|
|
16067
|
-
|
|
16079
|
+
debugLogger19.error("Error loading available commands:", error);
|
|
16068
16080
|
return [];
|
|
16069
16081
|
}
|
|
16070
16082
|
}, "getAvailableCommands");
|
|
16071
16083
|
|
|
16072
16084
|
// packages/cli/src/utils/nonInteractiveHelpers.ts
|
|
16073
16085
|
init_esbuild_shims();
|
|
16074
|
-
var
|
|
16086
|
+
var debugLogger20 = createDebugLogger("NON_INTERACTIVE");
|
|
16075
16087
|
function normalizePartList(parts) {
|
|
16076
16088
|
if (!parts) {
|
|
16077
16089
|
return [];
|
|
@@ -16169,7 +16181,7 @@ async function loadSlashCommandNames(config) {
|
|
|
16169
16181
|
);
|
|
16170
16182
|
return commands.map((cmd) => cmd.name).sort();
|
|
16171
16183
|
} catch (error) {
|
|
16172
|
-
|
|
16184
|
+
debugLogger20.error(
|
|
16173
16185
|
"[buildSystemMessage] Failed to load slash commands:",
|
|
16174
16186
|
error
|
|
16175
16187
|
);
|
|
@@ -16194,7 +16206,7 @@ async function buildSystemMessage(config, sessionId, permissionMode) {
|
|
|
16194
16206
|
const subagents = await subagentManager.listSubagents();
|
|
16195
16207
|
agentNames = subagents.map((subagent) => subagent.name);
|
|
16196
16208
|
} catch (error) {
|
|
16197
|
-
|
|
16209
|
+
debugLogger20.error("[buildSystemMessage] Failed to load subagents:", error);
|
|
16198
16210
|
}
|
|
16199
16211
|
const systemMessage = {
|
|
16200
16212
|
type: "system",
|
|
@@ -16376,12 +16388,14 @@ export {
|
|
|
16376
16388
|
findMidInputSlashCommand,
|
|
16377
16389
|
getBestSlashCommandMatch,
|
|
16378
16390
|
findSlashCommandTokens,
|
|
16391
|
+
formatEffortChangeMessage,
|
|
16379
16392
|
getTranslatedSourceDisplayMap,
|
|
16380
16393
|
DISPLAY_HOOK_EVENTS,
|
|
16381
16394
|
supportsMatchers,
|
|
16382
16395
|
createEmptyHookEventInfo,
|
|
16383
16396
|
addConfigToMatcherGroup,
|
|
16384
16397
|
getAllConfigs,
|
|
16398
|
+
isPickerOnlyModelInvocation,
|
|
16385
16399
|
refreshExtensionContentRuntime,
|
|
16386
16400
|
dayKey,
|
|
16387
16401
|
parseDayKey,
|