@qwen-code/qwen-code 0.21.7 → 0.21.8-nightly.20260810.55e20db328
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/README.md +2 -0
- package/bundled/qc-helper/docs/configuration/settings.md +73 -59
- package/bundled/qc-helper/docs/extension/introduction.md +15 -1
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +40 -2
- package/bundled/qc-helper/docs/features/channels/feishu.md +13 -2
- package/bundled/qc-helper/docs/features/channels/github.md +13 -11
- package/bundled/qc-helper/docs/features/channels/gitlab.md +13 -11
- package/bundled/qc-helper/docs/features/channels/overview.md +49 -31
- package/bundled/qc-helper/docs/features/channels/plugins.md +2 -2
- package/bundled/qc-helper/docs/features/channels/qqbot.md +4 -2
- package/bundled/qc-helper/docs/features/channels/telegram.md +4 -2
- package/bundled/qc-helper/docs/features/channels/wecom.md +1 -1
- package/bundled/qc-helper/docs/features/code-review.md +4 -0
- package/bundled/qc-helper/docs/features/commands.md +1 -1
- package/bundled/qc-helper/docs/features/hooks.md +52 -0
- package/bundled/qc-helper/docs/integration-jetbrains.md +1 -0
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +10 -5
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -36
- package/bundled/review/SKILL.md +32 -5
- package/chunks/{MaxSizedBox-ANWZBPTS.js → MaxSizedBox-A52T4GEU.js} +29 -25
- package/chunks/{StandaloneSessionPicker-XKS3VU3A.js → StandaloneSessionPicker-4J654SOB.js} +48 -44
- package/chunks/{acp-startup-profiler-ORIQ2CCQ.js → acp-startup-profiler-B5BYAMYQ.js} +2 -2
- package/chunks/{acpAgent-KUAZ3GCZ.js → acpAgent-65AM4AOR.js} +1833 -843
- package/chunks/{agent-T6PTGX5R.js → agent-SVQ7U7NJ.js} +28 -24
- package/chunks/{agent-headless-PR7YCB7S.js → agent-headless-XXGY2SQO.js} +28 -24
- package/chunks/{artifact-tool-U4VOZIK5.js → artifact-tool-N652YE4L.js} +1 -1
- package/chunks/{askUserQuestion-XOBQLPFA.js → askUserQuestion-ONW74PKJ.js} +1 -1
- package/chunks/{bridge-NU6YEEHK.js → bridge-Y32B5S3G.js} +34 -30
- package/chunks/{ca-NYKNH222.js → ca-ZLKAB4K3.js} +6 -0
- package/chunks/{channel-management-service-FSQ7SHYI.js → channel-management-service-PHELKOW2.js} +19 -10
- package/chunks/{channel-settings-store-35VQVUVV.js → channel-settings-store-OW43U6VB.js} +36 -32
- package/chunks/{channel-worker-group-JWQK224X.js → channel-worker-group-MSHT6CWR.js} +7 -7
- package/chunks/{channel-worker-manager-77E3OXRQ.js → channel-worker-manager-XXD3GDSK.js} +7 -7
- package/chunks/{channel-worker-supervisor-62YWUGP2.js → channel-worker-supervisor-IVSDIMI4.js} +4 -4
- package/chunks/{chunk-HYRDKNUY.js → chunk-2545EHZR.js} +1 -1
- package/chunks/{chunk-SPMY6CX6.js → chunk-2ASQDZSJ.js} +3 -3
- package/chunks/{chunk-CJXIIILK.js → chunk-2FRY5CRX.js} +1 -1
- package/chunks/{chunk-CNIID3TV.js → chunk-2UUMVNYT.js} +1 -1
- package/chunks/{chunk-KXSDEOFU.js → chunk-3KJQZEN3.js} +1 -1
- package/chunks/{chunk-22NBYCPD.js → chunk-3P2LV43B.js} +1 -1
- package/chunks/{chunk-Y7E5LNLO.js → chunk-47ZUMGGY.js} +2634 -2114
- package/chunks/{chunk-LA7YLSR6.js → chunk-4EOURKA4.js} +839 -153
- package/chunks/chunk-4JRM2BSM.js +48 -0
- package/chunks/{chunk-BGG4MBYD.js → chunk-4PYCZH2V.js} +4 -187
- package/chunks/{chunk-L4N6TIP7.js → chunk-4TRQPFDP.js} +4 -2
- package/chunks/{chunk-6XJMFJ4D.js → chunk-5WZL724W.js} +177 -120
- package/chunks/{chunk-23RZCH76.js → chunk-5ZTS3OQ3.js} +3 -3
- package/chunks/{chunk-VWOVHOTT.js → chunk-67EWJE77.js} +1 -1
- package/chunks/{chunk-3K7FH2KQ.js → chunk-67N6HB5H.js} +1310 -171
- package/chunks/{chunk-CXE7E23H.js → chunk-6Q5ABMTU.js} +45 -17
- package/chunks/{chunk-NG2R4N5O.js → chunk-6ZRFAKXK.js} +1 -1
- package/chunks/{chunk-RERATVSK.js → chunk-7XX5IBXL.js} +145 -10
- package/chunks/{chunk-S7CV4KO6.js → chunk-AKJQSWV4.js} +4 -4
- package/chunks/{chunk-5KH532V7.js → chunk-AUWN7BAG.js} +1 -1
- package/chunks/{chunk-DBOFL3LQ.js → chunk-BL65MO72.js} +10 -10
- package/chunks/{chunk-AKA24BGO.js → chunk-BT6GQIEJ.js} +1 -1
- package/chunks/{chunk-W7U4ESW2.js → chunk-CG3WBKJK.js} +1 -1
- package/chunks/{chunk-2M5N3DHY.js → chunk-CMOBWHWW.js} +1 -1
- package/chunks/chunk-COBO5EBO.js +135 -0
- package/chunks/chunk-CPG6P4GG.js +82 -0
- package/chunks/{chunk-3NB7TSE2.js → chunk-D2D7J3EW.js} +1 -1
- package/chunks/{chunk-NLREQJFK.js → chunk-DA4HRSBW.js} +15 -0
- package/chunks/{chunk-RNVQB725.js → chunk-DPMJLKUP.js} +2 -2
- package/chunks/{chunk-DIEFUBV6.js → chunk-DX3RGJMS.js} +218 -37
- package/chunks/{chunk-33ACCIIY.js → chunk-DZUO626D.js} +1 -1
- package/chunks/chunk-E2FPSSKP.js +244 -0
- package/chunks/{chunk-72LNFGUY.js → chunk-E2N554HK.js} +3 -3
- package/chunks/{chunk-6EOI4HOK.js → chunk-E2T7FLDU.js} +12 -17
- package/chunks/{chunk-EUQTXRKZ.js → chunk-EISUQQPS.js} +6 -6
- package/chunks/{chunk-H2UQ2M5Z.js → chunk-EUVOKP6Y.js} +96 -22
- package/chunks/{chunk-RMH5OWLD.js → chunk-F3II4BTZ.js} +1 -1
- package/chunks/{chunk-P3LEG54R.js → chunk-F6TUUA2U.js} +3 -3
- package/chunks/chunk-F6WFNA7U.js +22 -0
- package/chunks/{chunk-RZHU3ILK.js → chunk-FAD7OC7V.js} +4 -4
- package/chunks/{chunk-OMKQH5C5.js → chunk-FWWQIFDT.js} +6 -23
- package/chunks/{chunk-TLV2IMHR.js → chunk-FYB4GIDW.js} +3 -3
- package/chunks/{chunk-ZJ3VGYHK.js → chunk-GY24H6IA.js} +40 -22
- package/chunks/{chunk-P2AJ7FTI.js → chunk-H4JC7LZX.js} +1 -1
- package/chunks/{chunk-55LYDVPU.js → chunk-HDYQYYWB.js} +1 -1
- package/chunks/{chunk-PQBHU2IA.js → chunk-HKI3KHAO.js} +11 -11
- package/chunks/{chunk-Y4NGLFGJ.js → chunk-HUWENAHO.js} +1 -1
- package/chunks/{chunk-3ULCB3NE.js → chunk-HV76SFIA.js} +1 -1
- package/chunks/{chunk-CSZEXZBE.js → chunk-HWXGX534.js} +3 -3
- package/chunks/{chunk-E33LOKRA.js → chunk-I5VM3SKY.js} +22 -5
- package/chunks/{chunk-LZC3B5N2.js → chunk-IA7TGCN2.js} +2 -2
- package/chunks/{chunk-RGSBTHSU.js → chunk-KMS57JDD.js} +137 -7
- package/chunks/{chunk-VOARQPTA.js → chunk-KP25NJNM.js} +65 -21
- package/chunks/{chunk-6M26GBKX.js → chunk-L2AFWWJE.js} +42 -3
- package/chunks/{chunk-ZXU5UHMI.js → chunk-LHEC5V6G.js} +2 -2
- package/chunks/{chunk-J26HHFI5.js → chunk-LP2QGNSP.js} +32 -2
- package/chunks/{chunk-R574ATRM.js → chunk-M2PNLYGY.js} +41 -0
- package/chunks/{chunk-MKVZE4ZJ.js → chunk-MFDYOYZZ.js} +3 -2
- package/chunks/{chunk-ALGGS7UH.js → chunk-NPQ5ZKRP.js} +82 -1
- package/chunks/{chunk-YHEEE624.js → chunk-NV3F44FL.js} +7 -3
- package/chunks/{chunk-6GONZVLS.js → chunk-NZMXUSKS.js} +1 -1
- package/chunks/{chunk-HQB2KUAN.js → chunk-O277O7U6.js} +1 -1
- package/chunks/{chunk-Y4EWSQF7.js → chunk-OBP6QWD5.js} +2 -2
- package/chunks/{chunk-CYR3HI5X.js → chunk-OQTXYMKW.js} +2 -2
- package/chunks/{chunk-TYKC75AX.js → chunk-OR6R3IUW.js} +2 -2
- package/chunks/{chunk-TRLYP7OF.js → chunk-OSVH4SMN.js} +16 -141
- package/chunks/{chunk-FPM27XN4.js → chunk-OW2BWT2P.js} +4 -4
- package/chunks/{chunk-TDXGKHDN.js → chunk-P5ULXPK5.js} +2 -2
- package/chunks/{chunk-24ER7UV4.js → chunk-PBRVUF5B.js} +1 -1
- package/chunks/{chunk-LKRMNRSN.js → chunk-PDPFQ2FO.js} +2 -0
- package/chunks/{chunk-2VSTGY6M.js → chunk-PJRW65JO.js} +1 -1
- package/chunks/{chunk-6HVUFDS2.js → chunk-PNVPFARW.js} +22 -13
- package/chunks/{chunk-IC4Z6LX6.js → chunk-PYQADEFD.js} +5 -0
- package/chunks/chunk-R4ZA6GBK.js +208 -0
- package/chunks/{chunk-KR4ZSC7K.js → chunk-RMPLEWF3.js} +3 -3
- package/chunks/{chunk-EORNAQDT.js → chunk-RQ6U2JJQ.js} +1 -1
- package/chunks/{chunk-AE77C5ZU.js → chunk-RYQMJCUO.js} +1 -1
- package/chunks/{chunk-6UWFTUQL.js → chunk-S5CULOHB.js} +75 -31
- package/chunks/{chunk-7UFKAV7Y.js → chunk-S6HYI3MF.js} +2 -2
- package/chunks/chunk-SAH4BD2J.js +92 -0
- package/chunks/chunk-SR7RZ4MS.js +202 -0
- package/chunks/{chunk-QETYKPMG.js → chunk-T2O6NIOY.js} +1 -1
- package/chunks/chunk-TQOF5KBL.js +71 -0
- package/chunks/{chunk-OHJLEW5J.js → chunk-TWFFY5BP.js} +4 -4
- package/chunks/{chunk-SCI7K3GM.js → chunk-TXO5BMR2.js} +19 -10
- package/chunks/{chunk-YJQCUTT2.js → chunk-UAB6J2IE.js} +4 -4
- package/chunks/{chunk-OFI7IGST.js → chunk-UGUKH3SU.js} +10 -10
- package/chunks/{chunk-SHZYHGQH.js → chunk-V2226RFW.js} +1 -1
- package/chunks/{chunk-KKJJB5X6.js → chunk-V47QNK5W.js} +1526 -833
- package/chunks/{chunk-W4B7UBUS.js → chunk-VHXPSL57.js} +6 -6
- package/chunks/{chunk-WUC6ZFXO.js → chunk-VKJ4KTPJ.js} +1 -1
- package/chunks/{chunk-MAJS7AT4.js → chunk-VNNWAZSI.js} +2 -2
- package/chunks/{chunk-BVWVWGLE.js → chunk-WAUGQKUU.js} +4 -64
- package/chunks/{chunk-OH2VKQXH.js → chunk-WH6QMLUW.js} +37 -30
- package/chunks/{chunk-PJOBIWUG.js → chunk-WQYWK4DG.js} +1 -1
- package/chunks/{chunk-LEMXGVEP.js → chunk-YFRFZCIP.js} +3 -3
- package/chunks/{chunk-2U3WZGZG.js → chunk-YGT2AUJ7.js} +103 -135
- package/chunks/{chunk-6XU3PH66.js → chunk-YR7ZQ4RD.js} +22 -69
- package/chunks/{chunk-OA4JVLSA.js → chunk-Z7VOMGDC.js} +22 -1
- package/chunks/{chunk-RUL4S3K3.js → chunk-ZCJBCKL5.js} +175 -60
- package/chunks/{chunk-GSS34377.js → chunk-ZI5IH2HP.js} +2 -2
- package/chunks/{chunk-CB2464BK.js → chunk-ZIKTCMQF.js} +117 -10
- package/chunks/chunk-ZLBIFIMV.js +1099 -0
- package/chunks/{chunk-D3UEZIQH.js → chunk-ZSNBQXMZ.js} +48 -55
- package/chunks/{chunk-FZBZSYKU.js → chunk-ZV7LTLFE.js} +1 -1
- package/chunks/{computer-use-KEAPATUY.js → computer-use-SLN7DV2E.js} +28 -24
- package/chunks/{config-utils-K7SCOWHD.js → config-utils-ULCSRMWD.js} +4 -4
- package/chunks/{contextCommand-ZJA6A5K5.js → contextCommand-EHFYX6FW.js} +30 -26
- package/chunks/{core-runtime-QMJPWHCI.js → core-runtime-FBSP5IIG.js} +33 -29
- package/chunks/{create-sub-session-E4PBYXV5.js → create-sub-session-QIDZUOPU.js} +1 -1
- package/chunks/{create-sub-session-DJE6XICH.js → create-sub-session-WC7YGVSL.js} +29 -25
- package/chunks/{cron-create-GRBWYMIJ.js → cron-create-VONA5JYY.js} +1 -1
- package/chunks/{cron-delete-4CMKBR2M.js → cron-delete-5JXSP2MI.js} +1 -1
- package/chunks/{cron-list-W7K4ASOA.js → cron-list-KE4F2CIR.js} +1 -1
- package/chunks/{daemon-SCTQMM7Z.js → daemon-VSX3FHTY.js} +119 -4
- package/chunks/{daemon-status-provider-FSWDPE2G.js → daemon-status-provider-WW2AD2T7.js} +39 -35
- package/chunks/{daemon-trust-policy-P5L5VFAY.js → daemon-trust-policy-E4MAYWPI.js} +35 -31
- package/chunks/{daemon-trust-policy-monitor-73JYN6ET.js → daemon-trust-policy-monitor-XVIDV6T4.js} +35 -31
- package/chunks/{de-VL76CPLV.js → de-LIW4XVLN.js} +5 -0
- package/chunks/{deferred-core-runtime-BWRCCFTE.js → deferred-core-runtime-5SVUC6UC.js} +28 -24
- package/chunks/{display-image-O2XFPQTC.js → display-image-NQRSIBXM.js} +2 -2
- package/chunks/{dist-HVBMEYWK.js → dist-3NTTUAHT.js} +1 -1
- package/chunks/{dist-7JGAAQSC.js → dist-6BMOAE3Z.js} +2 -2
- package/chunks/{dist-3BMEUGTG.js → dist-B2CGTW6T.js} +1 -1
- package/chunks/{dist-C5U4LJKW.js → dist-EWW3J4HQ.js} +5 -4
- package/chunks/{dist-K4WWQBHS.js → dist-EZE3V3Q7.js} +55 -15
- package/chunks/{dist-DPPHJAVL.js → dist-J47AXBZC.js} +918 -142
- package/chunks/{dist-SFQ34F4M.js → dist-OTUO3AS2.js} +8 -1091
- package/chunks/{dist-KS4O2NKE.js → dist-Z3CS4OVP.js} +14 -8
- package/chunks/{earlyInputCapture-L5ST23A6.js → earlyInputCapture-72FYHYRD.js} +28 -24
- package/chunks/{edit-LHHRFNFK.js → edit-SWVVWHXW.js} +28 -24
- package/chunks/{en-IRJ2WN5T.js → en-SY5GTIGX.js} +6 -0
- package/chunks/{enter-worktree-6NXCRZPF.js → enter-worktree-2HF6WQEO.js} +28 -24
- package/chunks/{enterPlanMode-ZVQT4U7D.js → enterPlanMode-OW6S7L4P.js} +28 -24
- package/chunks/{environment-GJ2HWJOS.js → environment-LRTBTDXH.js} +32 -28
- package/chunks/{errors-6RLH3XXC.js → errors-4CO2DME6.js} +30 -26
- package/chunks/{exit-worktree-I2YLUHHY.js → exit-worktree-GHJEIRGL.js} +28 -24
- package/chunks/{exitPlanMode-7CCWKO7I.js → exitPlanMode-JVP4FNNK.js} +28 -24
- package/chunks/{fast-path-DVFD4HQD.js → fast-path-HCCY7GR2.js} +24 -3
- package/chunks/{fast-path-settings-WQJU2LAT.js → fast-path-settings-MN5QQQET.js} +6 -3
- package/chunks/{fr-GK3HQYVB.js → fr-RQFO7U4P.js} +5 -0
- package/chunks/{gemini-7FWGOYD4.js → gemini-V3YVRKXU.js} +85 -72
- package/chunks/{geminiContentGenerator-V2WVLIXU.js → geminiContentGenerator-LVPMQUWX.js} +1 -1
- package/chunks/{glob-3N6GGI75.js → glob-7HRXHYDR.js} +28 -24
- package/chunks/{goal-tools-APOW6UXL.js → goal-tools-PXWN5VK3.js} +4 -2
- package/chunks/{grep-V43ILZVX.js → grep-BITQUON5.js} +28 -24
- package/chunks/{handleAutoUpdate-A5WFVWIA.js → handleAutoUpdate-DKFY454S.js} +32 -28
- package/chunks/{i18n-PLVQ4FBZ.js → i18n-53BQIQSH.js} +29 -25
- package/chunks/{image-gen-7C6IK6DC.js → image-gen-H62FLDFB.js} +7 -5
- package/chunks/{initializer-CVAIKZYL.js → initializer-Q7NUQRSU.js} +35 -31
- package/chunks/{installationInfo-J6QDHNTK.js → installationInfo-BWFHT7WU.js} +29 -25
- package/chunks/{ja-3FA46IKD.js → ja-KOZKHJHZ.js} +5 -0
- package/chunks/{list-ZZ4OUUWV.js → list-OWQKR6JK.js} +38 -34
- package/chunks/{list-agents-KFFIIS2G.js → list-agents-Z4WABFDZ.js} +1 -1
- package/chunks/{loadedSettingsAdapter-QRYRJSWL.js → loadedSettingsAdapter-HNPKQMFA.js} +35 -31
- package/chunks/{loggingContentGenerator-OJCO75HM.js → loggingContentGenerator-A5I3VQUC.js} +10 -8
- package/chunks/{loop-wakeup-TLMJPMMP.js → loop-wakeup-UZ5RL5Y2.js} +2 -2
- package/chunks/{ls-UVVE2XGE.js → ls-TVHDGIES.js} +1 -1
- package/chunks/{lsp-QMEA2VLB.js → lsp-CVN6OQPI.js} +1 -1
- package/chunks/main-PXAUXNF2.js +8 -0
- package/chunks/{managed-npm-update-PCOSCP2N.js → managed-npm-update-CUUJGUTV.js} +29 -25
- package/chunks/{mcp-M3WKKWKY.js → mcp-GJSC7ZPO.js} +35 -31
- package/chunks/{monitor-GN24FH6C.js → monitor-TZ2II7JM.js} +38 -30
- package/chunks/{nonInteractiveCli-KPTU3VSQ.js → nonInteractiveCli-22RS4EVH.js} +72 -66
- package/chunks/{notebook-edit-4YM65BBO.js → notebook-edit-YZC3YPY2.js} +36 -24
- package/chunks/{openaiContentGenerator-EDQT6GTV.js → openaiContentGenerator-OIGO5XNF.js} +21 -11
- package/chunks/{pidfile-JOIIRN2C.js → pidfile-QJQ65RJ2.js} +28 -24
- package/chunks/{process-registry-2CHQBXH5.js → process-registry-PMJOA5CO.js} +15 -0
- package/chunks/{processUtils-5SV4MX3Q.js → processUtils-V5VSDIKS.js} +2 -2
- package/chunks/{pt-3AOBKPIJ.js → pt-U6AOCTMF.js} +5 -0
- package/chunks/{qwenContentGenerator-ODRJSUGR.js → qwenContentGenerator-HXM25BGB.js} +35 -30
- package/chunks/{qwenOAuth2-NESCMZ47.js → qwenOAuth2-7MTMS2Z5.js} +7 -5
- package/chunks/{read-file-HPSODLPK.js → read-file-PMGXB3ZB.js} +8 -6
- package/chunks/{read-mcp-resource-2TNSJTC3.js → read-mcp-resource-PZ4ZF6YL.js} +1 -1
- package/chunks/{record-artifact-RAON52FC.js → record-artifact-P4HFMS7X.js} +2 -2
- package/chunks/{resumeHistoryUtils-TXCOFFMQ.js → resumeHistoryUtils-YUTPLHUH.js} +33 -29
- package/chunks/{ripGrep-ZKQGTQAO.js → ripGrep-XUS66YIV.js} +28 -24
- package/chunks/{ru-VJRAMC4W.js → ru-CMX4UMYP.js} +5 -0
- package/chunks/{run-qwen-serve-ZPKPKECF.js → run-qwen-serve-4NVSU75L.js} +261 -62
- package/chunks/{runtime-2FLNNM36.js → runtime-QLRVP6HM.js} +40 -36
- package/chunks/{scheduler-365PJHNR.js → scheduler-PBB2NSOP.js} +28 -24
- package/chunks/{sdk-exporters-http-KHAB5JSD.js → sdk-exporters-http-XVTZQRCE.js} +2 -2
- package/chunks/{sdk-impl-KD7FSTC3.js → sdk-impl-7W7AKCS4.js} +7 -3
- package/chunks/{send-message-ZM7MRUGP.js → send-message-CAMSLG2L.js} +4 -3
- package/chunks/{serve-QD2RNLKJ.js → serve-BWKTRX72.js} +37 -31
- package/chunks/{server-XLJVLTYM.js → server-E7CH7WPK.js} +1437 -593
- package/chunks/{session-3VTUHH4Q.js → session-QEKSJ6YU.js} +166 -105
- package/chunks/{settings-KULVPCQC.js → settings-BRAOSJIM.js} +34 -30
- package/chunks/{shell-3SWW22MH.js → shell-OF3CK4AT.js} +28 -24
- package/chunks/{skill-KDHWYS7W.js → skill-HLH2NO2H.js} +9 -7
- package/chunks/{skill-settings-NMY4JEJC.js → skill-settings-DRPU7YI5.js} +34 -30
- package/chunks/{spawnChannel-ZKS4Q5OU.js → spawnChannel-4KO7YTFM.js} +31 -27
- package/chunks/{standalone-update-7CXPGAQ4.js → standalone-update-DJN2R3YW.js} +30 -26
- package/chunks/{startInteractiveUI-2QQLEKM6.js → startInteractiveUI-O3WQQ2WC.js} +384 -173
- package/chunks/{syntheticOutput-ZLCUTKO2.js → syntheticOutput-PEBJQYJV.js} +2 -2
- package/chunks/{task-create-CQP5UEA3.js → task-create-5NWCQSJF.js} +5 -4
- package/chunks/{task-list-XLEZOJXP.js → task-list-53265TRZ.js} +1 -1
- package/chunks/{task-stop-7ZQM5CFF.js → task-stop-FPCOIRYX.js} +1 -1
- package/chunks/{task-update-JA75U2SN.js → task-update-5HN577LS.js} +5 -4
- package/chunks/{team-create-2WTNGAOX.js → team-create-2E4ACBJD.js} +28 -24
- package/chunks/{team-delete-MHY3UZGY.js → team-delete-MMQB4OSC.js} +1 -1
- package/chunks/{team-plan-approval-LZTYLEG4.js → team-plan-approval-LWIDXYOA.js} +28 -24
- package/chunks/{terminal-image-renderer-R5HHAFJN.js → terminal-image-renderer-PJM7663W.js} +30 -26
- package/chunks/{theme-manager-PAUCSJFF.js → theme-manager-FDQTM3RP.js} +28 -24
- package/chunks/{todoWrite-UPVOHYGD.js → todoWrite-JGV6VLOX.js} +1 -1
- package/chunks/{tool-search-2BFCGLI6.js → tool-search-TL5ZXBF4.js} +11 -8
- package/chunks/{total-session-admission-MK4SINFK.js → total-session-admission-LS6EY5KT.js} +37 -32
- package/chunks/{trustedFolders-TJ5S26N7.js → trustedFolders-5RWP5OB7.js} +32 -26
- package/chunks/{types-ML3TRJQ5.js → types-WYCFCEHR.js} +5 -3
- package/chunks/{update-relaunch-N7AYLARF.js → update-relaunch-HWQ4USKY.js} +5 -5
- package/chunks/{updateCheck-QRZ3DVT5.js → updateCheck-EZMBTEIR.js} +31 -27
- package/chunks/{useAutoAcceptIndicator-DBJ7Y5AF.js → useAutoAcceptIndicator-JDMI627A.js} +37 -33
- package/chunks/{validateNonInterActiveAuth-6ZQWUDS3.js → validateNonInterActiveAuth-RRUHC5RO.js} +67 -63
- package/chunks/{version-AJQGQWXC.js → version-XS4UTKUX.js} +1 -1
- package/chunks/{web-fetch-QWJYRXFL.js → web-fetch-2JV7H6OM.js} +14 -10
- package/chunks/{web-search-2AOXJGHU.js → web-search-RCTN2GAM.js} +10 -7
- package/chunks/{workflow-ERH3SJG2.js → workflow-6MKLKQ6R.js} +909 -273
- package/chunks/{workspace-providers-status-HZ474RA4.js → workspace-providers-status-YZ2IJ4DK.js} +38 -34
- package/chunks/{workspace-registration-store-6EUP4JXG.js → workspace-registration-store-IYN72LBS.js} +1 -1
- package/chunks/{workspace-registry-R4APRRNC.js → workspace-registry-7LFBZQLT.js} +37 -32
- package/chunks/{workspace-service-HFIFDMU7.js → workspace-service-2EHSPRJB.js} +45 -39
- package/chunks/{workspace-skills-status-HAHEIHGK.js → workspace-skills-status-5VJ2D5HN.js} +36 -32
- package/chunks/{workspace-trust-reconciler-65GTAGDK.js → workspace-trust-reconciler-X2LZ6XCI.js} +44 -39
- package/chunks/{write-file-B34CDELV.js → write-file-CJK6SCCF.js} +28 -24
- package/chunks/{zh-ARWDLDLR.js → zh-AGL2FVBI.js} +6 -0
- package/chunks/{zh-TW-Y4RGI3P7.js → zh-TW-KI66MHQY.js} +6 -0
- package/chunks/{zoom-image-HPRBZHSS.js → zoom-image-BVW4RFYW.js} +8 -6
- package/cli.js +13 -13
- package/locales/ca.js +10 -0
- package/locales/de.js +9 -0
- package/locales/en.js +10 -0
- package/locales/fr.js +9 -0
- package/locales/ja.js +9 -0
- package/locales/pt.js +9 -0
- package/locales/ru.js +9 -0
- package/locales/zh-TW.js +10 -0
- package/locales/zh.js +10 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-Ip-FFDJ0.js → arc-DDtoJrAW.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-CChqgwIb.js → architectureDiagram-3BPJPVTR-BAInIW4O.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BHN-Tfss.js → blockDiagram-GPEHLZMM-ChPDk7fP.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BhyjzDjN.js → c4Diagram-AAUBKEIU-Cd9BJuUy.js} +1 -1
- package/web-shell/assets/channel-0OQklTfP.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-BB9eyHrx.js → chunk-2J33WTMH-COQkLp56.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BeV7ce_J.js → chunk-4BX2VUAB-GUJshQ_l.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DO7kXDiV.js → chunk-55IACEB6-Boaa7c10.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-B27MPznD.js → chunk-727SXJPM-CcRXaly2.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DHIjqjD_.js → chunk-AQP2D5EJ-BY0OARHh.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DabMqyN2.js → chunk-FMBD7UC4-DLFQfv0S.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-Dw7Nnnxc.js → chunk-ND2GUHAM-C_S0u-D2.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-DdaZew1Q.js → chunk-QZHKN3VN-DP9m64hw.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CZ4-apsu.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CZ4-apsu.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-CgBpCYH5.js → cose-bilkent-S5V4N54A-CGY6zGE1.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-BB4IU8G0.js → dagre-BM42HDAG-yB7whKNn.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BcUTHU37.js → diagram-2AECGRRQ-Bdlc59La.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-B6Lyihyv.js → diagram-5GNKFQAL-BUClP18L.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CRIJOjpG.js → diagram-KO2AKTUF-aZm08kjn.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DdNiwWWT.js → diagram-LMA3HP47-7DGwEkxC.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-Dz4b32Do.js → diagram-OG6HWLK6-CAGKayxx.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-D-8NGw77.js → erDiagram-TEJ5UH35-CptoHHQi.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-Dun26LyM.js → flowDiagram-I6XJVG4X-CNOH0s7Q.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-F10Hu1Gc.js → ganttDiagram-6RSMTGT7-CCQuCU3y.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js → gitGraphDiagram-PVQCEYII-B7gv9f4E.js} +1 -1
- package/web-shell/assets/{index-BXqw-nGq.js → index-BoUPVvpf.js} +1 -1
- package/web-shell/assets/index-D1YQXYsB.css +5 -0
- package/web-shell/assets/index-J4N7zCmU.js +1768 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DVgTMLvj.js → infoDiagram-5YYISTIA-Bb3KYEbR.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-uT-KepvK.js → ishikawaDiagram-YF4QCWOH-DWEzbAGi.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Vg_XadQf.js → journeyDiagram-JHISSGLW-CmxwEqeb.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Dyv1ESBE.js → kanban-definition-UN3LZRKU-Ci0gDD8O.js} +1 -1
- package/web-shell/assets/{linear-BMIepYX3.js → linear-BqxZqGhS.js} +1 -1
- package/web-shell/assets/{mermaid.core-zA8pJ9ag.js → mermaid.core-BDAFffHv.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BCW_BZ_5.js → mindmap-definition-RKZ34NQL-Btvx-xvS.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-DseNEGp2.js → pieDiagram-4H26LBE5-CKAg7yG7.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js → quadrantDiagram-W4KKPZXB-DIt8E1mC.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CVOlCRPf.js → requirementDiagram-4Y6WPE33-BA7mQWQJ.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CGhgrUJZ.js → sankeyDiagram-5OEKKPKP-D0JppnVU.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-dlqmpLuQ.js → sequenceDiagram-3UESZ5HK-29DIQFjB.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-B9EW10Xb.js → stateDiagram-AJRCARHV-iiXMdK--.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CEGK3l80.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-BBRh0mgZ.js → timeline-definition-PNZ67QCA-CeF7ngSW.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-B8Gs-REP.js → vennDiagram-CIIHVFJN-Beilq8D6.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-D_y80Ur7.js → wardley-L42UT6IY-DOYjY4zO.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D-CNfHJ-.js → wardleyDiagram-YWT4CUSO-Dtqp8o18.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DQ5CvELo.js → xychartDiagram-2RQKCTM6-cdAc0Dfv.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-6PEXNQTX.js +0 -68
- package/chunks/chunk-IUFV6FYU.js +0 -81
- package/chunks/chunk-RXFQM6FQ.js +0 -42
- package/web-shell/assets/channel-Cu8qd6OB.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +0 -1
- package/web-shell/assets/index-QQlUCJGg.css +0 -5
- package/web-shell/assets/index-hcgjV7vS.js +0 -1768
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +0 -1
- package/chunks/{anthropicContentGenerator-DTMVEL5M.js → anthropicContentGenerator-SSFE2753.js} +9 -9
- /package/chunks/{chunk-VXZBKKQR.js → chunk-NTTBXH7U.js} +0 -0
- /package/chunks/{chunk-GRC5HGPI.js → chunk-OIBUG24X.js} +0 -0
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
TUI_CHAT_RECORDING_FAILURE_MESSAGE,
|
|
8
8
|
reportChatRecordingFailureToAdapter
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-D2D7J3EW.js";
|
|
10
10
|
import {
|
|
11
11
|
StreamJsonOutputAdapter
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-E2N554HK.js";
|
|
13
13
|
import {
|
|
14
14
|
startPostRenderPrefetches
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UGUKH3SU.js";
|
|
16
16
|
import {
|
|
17
17
|
AboutBox,
|
|
18
18
|
BaseSelectionList,
|
|
@@ -90,7 +90,7 @@ import {
|
|
|
90
90
|
useUIActions,
|
|
91
91
|
useUIState,
|
|
92
92
|
useVirtualViewport
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-S5CULOHB.js";
|
|
94
94
|
import {
|
|
95
95
|
GeminiRespondingSpinner,
|
|
96
96
|
GeminiSpinner,
|
|
@@ -106,19 +106,19 @@ import {
|
|
|
106
106
|
shouldDisplayGoalStateCause,
|
|
107
107
|
useStreamingContext,
|
|
108
108
|
waitForGoalRuntime
|
|
109
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-WH6QMLUW.js";
|
|
110
110
|
import {
|
|
111
111
|
stopAndGetCapturedInput
|
|
112
112
|
} from "./chunk-TZEZYNYD.js";
|
|
113
113
|
import {
|
|
114
114
|
useAutoAcceptIndicator
|
|
115
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-5ZTS3OQ3.js";
|
|
116
116
|
import {
|
|
117
117
|
KeypressProvider,
|
|
118
118
|
useFocus,
|
|
119
119
|
useKeypress,
|
|
120
120
|
useKeypressContext
|
|
121
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-VNNWAZSI.js";
|
|
122
122
|
import {
|
|
123
123
|
classifyApiError,
|
|
124
124
|
fireSessionDeleteHook
|
|
@@ -134,7 +134,7 @@ import {
|
|
|
134
134
|
matchMcpServerPrefix,
|
|
135
135
|
resolveAtCommandQuery,
|
|
136
136
|
sanitizeDisplayText
|
|
137
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-RMPLEWF3.js";
|
|
138
138
|
import {
|
|
139
139
|
BuiltinCommandLoader,
|
|
140
140
|
BundledSkillLoader,
|
|
@@ -175,22 +175,22 @@ import {
|
|
|
175
175
|
resetBackgroundStateForSessionSwitch,
|
|
176
176
|
serializeUserPromptExpansionPrompt,
|
|
177
177
|
supportsMatchers
|
|
178
|
-
} from "./chunk-
|
|
178
|
+
} from "./chunk-ZCJBCKL5.js";
|
|
179
179
|
import {
|
|
180
180
|
EXTENSION_RELOAD_FAILED_REASON,
|
|
181
181
|
ExtensionRefreshState,
|
|
182
182
|
appEvents,
|
|
183
183
|
cleanupReviewWorktreeLeases,
|
|
184
184
|
loadHierarchicalGeminiMemory
|
|
185
|
-
} from "./chunk-
|
|
185
|
+
} from "./chunk-V47QNK5W.js";
|
|
186
186
|
import {
|
|
187
187
|
getCommandDisplayName,
|
|
188
188
|
getCommandSourceBadge
|
|
189
|
-
} from "./chunk-
|
|
189
|
+
} from "./chunk-T2O6NIOY.js";
|
|
190
190
|
import {
|
|
191
191
|
computeSessionStats,
|
|
192
192
|
levelLabel
|
|
193
|
-
} from "./chunk-
|
|
193
|
+
} from "./chunk-DPMJLKUP.js";
|
|
194
194
|
import {
|
|
195
195
|
disableKittyProtocol,
|
|
196
196
|
isKittyProtocolEnabled,
|
|
@@ -209,10 +209,10 @@ import {
|
|
|
209
209
|
oscKittyNotify,
|
|
210
210
|
saveClipboardImage,
|
|
211
211
|
writeOsc52
|
|
212
|
-
} from "./chunk-
|
|
213
|
-
import "./chunk-
|
|
212
|
+
} from "./chunk-NV3F44FL.js";
|
|
213
|
+
import "./chunk-TXO5BMR2.js";
|
|
214
214
|
import "./chunk-4WGODMVR.js";
|
|
215
|
-
import "./chunk-
|
|
215
|
+
import "./chunk-FYB4GIDW.js";
|
|
216
216
|
import "./chunk-KW7NOTN6.js";
|
|
217
217
|
import {
|
|
218
218
|
MaxSizedBox,
|
|
@@ -225,6 +225,11 @@ import {
|
|
|
225
225
|
import {
|
|
226
226
|
require_jsx_runtime
|
|
227
227
|
} from "./chunk-SV5PQVQE.js";
|
|
228
|
+
import {
|
|
229
|
+
AUTO_THEME_NAME,
|
|
230
|
+
DEFAULT_THEME,
|
|
231
|
+
themeManager
|
|
232
|
+
} from "./chunk-CTJLZLB5.js";
|
|
228
233
|
import {
|
|
229
234
|
Box_default,
|
|
230
235
|
Static,
|
|
@@ -242,40 +247,35 @@ import {
|
|
|
242
247
|
import {
|
|
243
248
|
require_react
|
|
244
249
|
} from "./chunk-5QWWOFGG.js";
|
|
245
|
-
import "./chunk-
|
|
246
|
-
import "./chunk-
|
|
250
|
+
import "./chunk-OW2BWT2P.js";
|
|
251
|
+
import "./chunk-OBP6QWD5.js";
|
|
252
|
+
import "./chunk-S6HYI3MF.js";
|
|
247
253
|
import {
|
|
248
254
|
MAX_INLINE_IMAGES_PER_ITEM,
|
|
249
255
|
collectInlineImages,
|
|
250
256
|
getInlineImageData
|
|
251
|
-
} from "./chunk-
|
|
257
|
+
} from "./chunk-PJRW65JO.js";
|
|
252
258
|
import {
|
|
253
259
|
relaunchApp
|
|
254
|
-
} from "./chunk-
|
|
260
|
+
} from "./chunk-O277O7U6.js";
|
|
255
261
|
import {
|
|
256
262
|
setUpdateHandler
|
|
257
|
-
} from "./chunk-
|
|
258
|
-
import "./chunk-
|
|
263
|
+
} from "./chunk-YFRFZCIP.js";
|
|
264
|
+
import "./chunk-ZI5IH2HP.js";
|
|
259
265
|
import "./chunk-YAF2MQZ6.js";
|
|
260
|
-
import
|
|
261
|
-
AUTO_THEME_NAME,
|
|
262
|
-
DEFAULT_THEME,
|
|
263
|
-
themeManager
|
|
264
|
-
} from "./chunk-CTJLZLB5.js";
|
|
265
|
-
import "./chunk-CB2464BK.js";
|
|
266
|
+
import "./chunk-ZIKTCMQF.js";
|
|
266
267
|
import "./chunk-6H67XLET.js";
|
|
267
|
-
import "./chunk-FPM27XN4.js";
|
|
268
268
|
import {
|
|
269
269
|
getErrorMessage as getErrorMessage2
|
|
270
|
-
} from "./chunk-
|
|
270
|
+
} from "./chunk-P5ULXPK5.js";
|
|
271
271
|
import {
|
|
272
272
|
openQwenAsrRealtimeStream,
|
|
273
273
|
openVoiceStream,
|
|
274
274
|
openVoiceStreamWithRetry
|
|
275
275
|
} from "./chunk-Q3JQ7OSU.js";
|
|
276
|
-
import "./chunk-
|
|
276
|
+
import "./chunk-5WZL724W.js";
|
|
277
277
|
import "./chunk-OWMAZHIX.js";
|
|
278
|
-
import "./chunk-
|
|
278
|
+
import "./chunk-3KJQZEN3.js";
|
|
279
279
|
import {
|
|
280
280
|
cpLen,
|
|
281
281
|
cpSlice,
|
|
@@ -296,67 +296,69 @@ import {
|
|
|
296
296
|
isHistoryItemVisibleAfterRestore
|
|
297
297
|
} from "./chunk-EKTCKZV5.js";
|
|
298
298
|
import "./chunk-3Z43GZUQ.js";
|
|
299
|
-
import "./chunk-RXFQM6FQ.js";
|
|
300
|
-
import "./chunk-HGCQ5SE7.js";
|
|
301
299
|
import {
|
|
302
|
-
|
|
303
|
-
} from "./chunk-
|
|
300
|
+
isValidSessionId
|
|
301
|
+
} from "./chunk-TQOF5KBL.js";
|
|
302
|
+
import "./chunk-HGCQ5SE7.js";
|
|
304
303
|
import {
|
|
305
304
|
assertVoiceBaseUrlNetworkAllowed,
|
|
306
305
|
isKeytermEcho,
|
|
307
306
|
isStreamingVoiceModel,
|
|
308
307
|
resolveVoiceStreamConfig,
|
|
309
308
|
transcribeVoiceAudio
|
|
310
|
-
} from "./chunk-
|
|
309
|
+
} from "./chunk-RYQMJCUO.js";
|
|
311
310
|
import {
|
|
312
311
|
formatUnsupportedVoiceModelMessage,
|
|
313
312
|
isSelectableVoiceModel
|
|
314
|
-
} from "./chunk-
|
|
313
|
+
} from "./chunk-HDYQYYWB.js";
|
|
315
314
|
import "./chunk-AOHJKPKL.js";
|
|
315
|
+
import {
|
|
316
|
+
getExtendedSystemInfo
|
|
317
|
+
} from "./chunk-2ASQDZSJ.js";
|
|
318
|
+
import {
|
|
319
|
+
formatDuration,
|
|
320
|
+
formatRelativeTime,
|
|
321
|
+
formatTokenCount
|
|
322
|
+
} from "./chunk-3SH53ANB.js";
|
|
323
|
+
import {
|
|
324
|
+
isInlineModelOverrideAllowed
|
|
325
|
+
} from "./chunk-HWXGX534.js";
|
|
316
326
|
import {
|
|
317
327
|
computeWorkspaceSkillListUpdates,
|
|
318
328
|
resolveSkillSettings,
|
|
319
329
|
skillSettingStrings
|
|
320
330
|
} from "./chunk-Z4X5MTRT.js";
|
|
321
|
-
import "./chunk-
|
|
331
|
+
import "./chunk-EISUQQPS.js";
|
|
322
332
|
import {
|
|
323
333
|
requestConsentInteractive,
|
|
324
334
|
requestConsentOrFail
|
|
325
|
-
} from "./chunk-
|
|
335
|
+
} from "./chunk-TWFFY5BP.js";
|
|
326
336
|
import "./chunk-57OAHC2Y.js";
|
|
337
|
+
import "./chunk-LHEC5V6G.js";
|
|
338
|
+
import "./chunk-67EWJE77.js";
|
|
339
|
+
import "./chunk-E2FPSSKP.js";
|
|
327
340
|
import {
|
|
328
341
|
createLoadedSettingsAdapter
|
|
329
|
-
} from "./chunk-
|
|
330
|
-
import {
|
|
331
|
-
getExtendedSystemInfo
|
|
332
|
-
} from "./chunk-SPMY6CX6.js";
|
|
333
|
-
import {
|
|
334
|
-
formatDuration,
|
|
335
|
-
formatRelativeTime,
|
|
336
|
-
formatTokenCount
|
|
337
|
-
} from "./chunk-3SH53ANB.js";
|
|
342
|
+
} from "./chunk-AUWN7BAG.js";
|
|
338
343
|
import "./chunk-MZSJ43WV.js";
|
|
339
344
|
import "./chunk-XCGIMOLN.js";
|
|
340
|
-
import "./chunk-
|
|
341
|
-
import "./chunk-VWOVHOTT.js";
|
|
342
|
-
import "./chunk-IUFV6FYU.js";
|
|
345
|
+
import "./chunk-VKJ4KTPJ.js";
|
|
343
346
|
import "./chunk-V6WHFGST.js";
|
|
344
347
|
import "./chunk-DP3IHZGG.js";
|
|
345
348
|
import "./chunk-6PLDPT2C.js";
|
|
346
349
|
import "./chunk-FYJ7W2PI.js";
|
|
347
350
|
import "./chunk-YP5KH5Y7.js";
|
|
348
|
-
import "./chunk-
|
|
351
|
+
import "./chunk-PBRVUF5B.js";
|
|
349
352
|
import "./chunk-ALMR3E6Q.js";
|
|
350
353
|
import "./chunk-HIBNSEJE.js";
|
|
351
|
-
import "./chunk-BKHCW2BI.js";
|
|
352
354
|
import "./chunk-M5GB774H.js";
|
|
355
|
+
import "./chunk-BKHCW2BI.js";
|
|
353
356
|
import "./chunk-UVX4Y6IN.js";
|
|
354
|
-
import "./chunk-
|
|
355
|
-
import "./chunk-DIEFUBV6.js";
|
|
357
|
+
import "./chunk-DX3RGJMS.js";
|
|
356
358
|
import "./chunk-UDXSXLER.js";
|
|
357
359
|
import {
|
|
358
360
|
loadMcpApprovals
|
|
359
|
-
} from "./chunk-
|
|
361
|
+
} from "./chunk-PNVPFARW.js";
|
|
360
362
|
import {
|
|
361
363
|
CORRUPTED_SUFFIX,
|
|
362
364
|
SettingScope,
|
|
@@ -379,7 +381,7 @@ import {
|
|
|
379
381
|
settingExistsInScope,
|
|
380
382
|
validateSettingValue,
|
|
381
383
|
writeOutputLanguageAndRegisterPath
|
|
382
|
-
} from "./chunk-
|
|
384
|
+
} from "./chunk-HKI3KHAO.js";
|
|
383
385
|
import "./chunk-RKUWKYED.js";
|
|
384
386
|
import "./chunk-GOXKNSDZ.js";
|
|
385
387
|
import "./chunk-IDS7MSUP.js";
|
|
@@ -388,21 +390,21 @@ import {
|
|
|
388
390
|
localizeToolDisplayName,
|
|
389
391
|
t,
|
|
390
392
|
ta
|
|
391
|
-
} from "./chunk-
|
|
392
|
-
import "./chunk-
|
|
393
|
-
import "./chunk-
|
|
394
|
-
import "./chunk-
|
|
393
|
+
} from "./chunk-BL65MO72.js";
|
|
394
|
+
import "./chunk-KP25NJNM.js";
|
|
395
|
+
import "./chunk-R4ZA6GBK.js";
|
|
396
|
+
import "./chunk-2545EHZR.js";
|
|
395
397
|
import {
|
|
396
398
|
getCliVersion
|
|
397
|
-
} from "./chunk-
|
|
399
|
+
} from "./chunk-ZV7LTLFE.js";
|
|
398
400
|
import "./chunk-VJNBRRZG.js";
|
|
399
401
|
import {
|
|
400
402
|
isWorkspaceTrusted,
|
|
401
403
|
loadTrustedFolders
|
|
402
|
-
} from "./chunk-
|
|
404
|
+
} from "./chunk-YR7ZQ4RD.js";
|
|
403
405
|
import {
|
|
404
406
|
require_strip_json_comments
|
|
405
|
-
} from "./chunk-
|
|
407
|
+
} from "./chunk-NPQ5ZKRP.js";
|
|
406
408
|
import "./chunk-MR3PXB6E.js";
|
|
407
409
|
import "./chunk-XFSFZCM5.js";
|
|
408
410
|
import "./chunk-URK542T4.js";
|
|
@@ -452,6 +454,7 @@ import {
|
|
|
452
454
|
createInstructionsLoadedCallback,
|
|
453
455
|
customProvider,
|
|
454
456
|
detectAutonomousSentinel,
|
|
457
|
+
didWriteProjectContextFile,
|
|
455
458
|
fetchGitDiff,
|
|
456
459
|
fetchGitDiffHunks,
|
|
457
460
|
finalizeToolResponses,
|
|
@@ -474,14 +477,17 @@ import {
|
|
|
474
477
|
getWelcomeBackState,
|
|
475
478
|
glob,
|
|
476
479
|
ideContextStore,
|
|
480
|
+
isActiveWorkflowStatus,
|
|
477
481
|
isBinary,
|
|
478
482
|
isEditorAvailable,
|
|
479
483
|
isExtensionCommittedWithWarningsError,
|
|
480
484
|
isGatedMcpScope,
|
|
481
485
|
isSessionRuntimeActive,
|
|
482
486
|
isSettledStatus,
|
|
487
|
+
isSignalTermination,
|
|
483
488
|
isSuccessStatus,
|
|
484
489
|
isTerminalStatus,
|
|
490
|
+
isTerminalWorkflowStatus,
|
|
485
491
|
loadUsageHistory,
|
|
486
492
|
markDuplicateProviderToolCallResponseSent,
|
|
487
493
|
matchesAnyServerPattern,
|
|
@@ -495,6 +501,7 @@ import {
|
|
|
495
501
|
readWorktreeSessionMarker,
|
|
496
502
|
redactUrlCredentials,
|
|
497
503
|
refreshMemoryAfterManagedWrite,
|
|
504
|
+
refreshMemoryInstruction,
|
|
498
505
|
resolveBaseUrl,
|
|
499
506
|
resolveBranchName,
|
|
500
507
|
resolveMetadataKey,
|
|
@@ -508,23 +515,23 @@ import {
|
|
|
508
515
|
validateWorkflowName,
|
|
509
516
|
watchRepoBranch,
|
|
510
517
|
writeRuntimeStatus
|
|
511
|
-
} from "./chunk-
|
|
518
|
+
} from "./chunk-47ZUMGGY.js";
|
|
512
519
|
import "./chunk-GOFAQQZA.js";
|
|
513
520
|
import "./chunk-5M6IDOMF.js";
|
|
514
521
|
import "./chunk-TWPJO254.js";
|
|
515
522
|
import "./chunk-H6XPXXMH.js";
|
|
516
|
-
import "./chunk-
|
|
523
|
+
import "./chunk-2UUMVNYT.js";
|
|
517
524
|
import "./chunk-MVUQRLOH.js";
|
|
518
525
|
import "./chunk-XCWO3SMQ.js";
|
|
519
526
|
import "./chunk-7MH4J33A.js";
|
|
520
527
|
import "./chunk-6PVPNMXU.js";
|
|
521
528
|
import {
|
|
522
529
|
resolveModelId
|
|
523
|
-
} from "./chunk-
|
|
530
|
+
} from "./chunk-F3II4BTZ.js";
|
|
524
531
|
import "./chunk-IRH27ZC2.js";
|
|
525
532
|
import "./chunk-QHWCP53L.js";
|
|
526
533
|
import "./chunk-GNPNYXJB.js";
|
|
527
|
-
import "./chunk-
|
|
534
|
+
import "./chunk-HUWENAHO.js";
|
|
528
535
|
import {
|
|
529
536
|
promptIdContext
|
|
530
537
|
} from "./chunk-O6GEWCJA.js";
|
|
@@ -537,36 +544,44 @@ import {
|
|
|
537
544
|
HOOKS_CONFIG_FIELDS
|
|
538
545
|
} from "./chunk-GM463R2B.js";
|
|
539
546
|
import "./chunk-SEZ556DZ.js";
|
|
540
|
-
import "./chunk-
|
|
547
|
+
import "./chunk-2FRY5CRX.js";
|
|
541
548
|
import {
|
|
542
549
|
elapsedActiveTime,
|
|
543
550
|
goalRequiresExactPermit
|
|
544
|
-
} from "./chunk-
|
|
551
|
+
} from "./chunk-67N6HB5H.js";
|
|
552
|
+
import {
|
|
553
|
+
APPROVAL_MODES
|
|
554
|
+
} from "./chunk-WAUGQKUU.js";
|
|
555
|
+
import "./chunk-DZUO626D.js";
|
|
556
|
+
import "./chunk-4TRQPFDP.js";
|
|
557
|
+
import "./chunk-SAH4BD2J.js";
|
|
545
558
|
import {
|
|
546
|
-
APPROVAL_MODES,
|
|
547
559
|
runOutsideAgentContext
|
|
548
|
-
} from "./chunk-
|
|
560
|
+
} from "./chunk-CPG6P4GG.js";
|
|
549
561
|
import "./chunk-S6LOFUVP.js";
|
|
562
|
+
import "./chunk-2J3OJGTL.js";
|
|
550
563
|
import {
|
|
551
564
|
getStartupContextLength,
|
|
552
565
|
isSystemReminderContent
|
|
553
|
-
} from "./chunk-
|
|
566
|
+
} from "./chunk-IA7TGCN2.js";
|
|
554
567
|
import "./chunk-K623ENWT.js";
|
|
555
568
|
import "./chunk-AQ37AY7B.js";
|
|
556
569
|
import {
|
|
557
570
|
isPathWithinRoot
|
|
558
571
|
} from "./chunk-EQL65XGA.js";
|
|
559
|
-
import "./chunk-IIJEYBNH.js";
|
|
560
572
|
import {
|
|
561
573
|
osc8Hyperlink,
|
|
562
574
|
qwenOAuth2Events,
|
|
563
575
|
sanitizeForOsc,
|
|
564
576
|
supportsHyperlinks,
|
|
565
577
|
wrapForMultiplexer
|
|
566
|
-
} from "./chunk-
|
|
578
|
+
} from "./chunk-3P2LV43B.js";
|
|
567
579
|
import "./chunk-NAVJD2PQ.js";
|
|
568
|
-
import "./chunk-
|
|
569
|
-
import "./chunk-
|
|
580
|
+
import "./chunk-HV76SFIA.js";
|
|
581
|
+
import "./chunk-4PYCZH2V.js";
|
|
582
|
+
import "./chunk-P3QQPMQA.js";
|
|
583
|
+
import "./chunk-SR7RZ4MS.js";
|
|
584
|
+
import "./chunk-M6HMMKVG.js";
|
|
570
585
|
import {
|
|
571
586
|
REASONING_EFFORT_TIERS
|
|
572
587
|
} from "./chunk-DGEIYUC3.js";
|
|
@@ -575,13 +590,8 @@ import {
|
|
|
575
590
|
isSupportedImageMimeType
|
|
576
591
|
} from "./chunk-MPHPFVKK.js";
|
|
577
592
|
import "./chunk-AXMWHKXA.js";
|
|
578
|
-
import "./chunk-DJ2GSRLV.js";
|
|
579
|
-
import "./chunk-33ACCIIY.js";
|
|
580
|
-
import "./chunk-L4N6TIP7.js";
|
|
581
|
-
import "./chunk-2J3OJGTL.js";
|
|
582
|
-
import "./chunk-P3QQPMQA.js";
|
|
583
|
-
import "./chunk-M6HMMKVG.js";
|
|
584
593
|
import "./chunk-GLCZKT5V.js";
|
|
594
|
+
import "./chunk-DJ2GSRLV.js";
|
|
585
595
|
import "./chunk-EI3HZX6C.js";
|
|
586
596
|
import {
|
|
587
597
|
ApiCancelEvent,
|
|
@@ -619,11 +629,10 @@ import {
|
|
|
619
629
|
recordSkillInvocation,
|
|
620
630
|
removeMCPServerStatus,
|
|
621
631
|
removeMCPStatusChangeListener,
|
|
622
|
-
runSideQuery,
|
|
623
632
|
runVisionBridge,
|
|
624
633
|
shouldRunVisionBridge,
|
|
625
634
|
splitImageParts
|
|
626
|
-
} from "./chunk-
|
|
635
|
+
} from "./chunk-YGT2AUJ7.js";
|
|
627
636
|
import "./chunk-WOJZWRAZ.js";
|
|
628
637
|
import "./chunk-VGC4I5JJ.js";
|
|
629
638
|
import {
|
|
@@ -633,14 +642,18 @@ import {
|
|
|
633
642
|
getUserAutoMemoryRoot,
|
|
634
643
|
isAnyAutoMemPath
|
|
635
644
|
} from "./chunk-FVKHVJZQ.js";
|
|
636
|
-
import
|
|
645
|
+
import {
|
|
646
|
+
runSideQuery
|
|
647
|
+
} from "./chunk-COBO5EBO.js";
|
|
648
|
+
import "./chunk-6ZRFAKXK.js";
|
|
637
649
|
import {
|
|
638
650
|
ToolNames,
|
|
639
651
|
isShellProgressData
|
|
640
|
-
} from "./chunk-
|
|
652
|
+
} from "./chunk-PYQADEFD.js";
|
|
653
|
+
import "./chunk-E2T7FLDU.js";
|
|
641
654
|
import {
|
|
642
655
|
MAINLINE_CODER_MODEL
|
|
643
|
-
} from "./chunk-
|
|
656
|
+
} from "./chunk-F6WFNA7U.js";
|
|
644
657
|
import "./chunk-46UV252V.js";
|
|
645
658
|
import {
|
|
646
659
|
DEFAULT_TOKEN_LIMIT
|
|
@@ -650,9 +663,9 @@ import "./chunk-EUNWC2VS.js";
|
|
|
650
663
|
import {
|
|
651
664
|
atomicWriteFileSync
|
|
652
665
|
} from "./chunk-FOGU3LJX.js";
|
|
653
|
-
import "./chunk-
|
|
666
|
+
import "./chunk-L2AFWWJE.js";
|
|
654
667
|
import "./chunk-W4RQUHY3.js";
|
|
655
|
-
import "./chunk-
|
|
668
|
+
import "./chunk-PDPFQ2FO.js";
|
|
656
669
|
import {
|
|
657
670
|
Storage,
|
|
658
671
|
UnauthorizedError,
|
|
@@ -666,7 +679,7 @@ import {
|
|
|
666
679
|
tildeifyPath
|
|
667
680
|
} from "./chunk-OIVKILPI.js";
|
|
668
681
|
import "./chunk-VOQXFAY5.js";
|
|
669
|
-
import "./chunk-
|
|
682
|
+
import "./chunk-WQYWK4DG.js";
|
|
670
683
|
import {
|
|
671
684
|
finalizeStartupProfile,
|
|
672
685
|
profileCheckpoint
|
|
@@ -675,11 +688,12 @@ import "./chunk-Q7YDKOGY.js";
|
|
|
675
688
|
import {
|
|
676
689
|
registerCleanup,
|
|
677
690
|
runExitCleanup
|
|
678
|
-
} from "./chunk-
|
|
691
|
+
} from "./chunk-RQ6U2JJQ.js";
|
|
679
692
|
import {
|
|
680
693
|
clearScreen,
|
|
681
694
|
writeStderrLine,
|
|
682
|
-
writeStderrLineSafe
|
|
695
|
+
writeStderrLineSafe,
|
|
696
|
+
writeStdoutLine
|
|
683
697
|
} from "./chunk-KGJGEEVR.js";
|
|
684
698
|
import "./chunk-75DOP5OR.js";
|
|
685
699
|
import "./chunk-DMTGGOSA.js";
|
|
@@ -701,6 +715,7 @@ import {
|
|
|
701
715
|
|
|
702
716
|
// packages/cli/src/ui/startInteractiveUI.tsx
|
|
703
717
|
init_esbuild_shims();
|
|
718
|
+
import { stat as stat2 } from "node:fs/promises";
|
|
704
719
|
import { basename as basename4 } from "node:path";
|
|
705
720
|
var import_react163 = __toESM(require_react(), 1);
|
|
706
721
|
|
|
@@ -1081,8 +1096,8 @@ var RemoteInputWatcher = class {
|
|
|
1081
1096
|
}
|
|
1082
1097
|
startWatching() {
|
|
1083
1098
|
try {
|
|
1084
|
-
const
|
|
1085
|
-
this.bytesRead =
|
|
1099
|
+
const stat3 = statSync(this.filePath);
|
|
1100
|
+
this.bytesRead = stat3.size;
|
|
1086
1101
|
this.consumedPrefixHash = this.hashFilePrefix(this.bytesRead);
|
|
1087
1102
|
} catch {
|
|
1088
1103
|
this.bytesRead = 0;
|
|
@@ -1107,8 +1122,8 @@ var RemoteInputWatcher = class {
|
|
|
1107
1122
|
if (!this.active || this.reading) return Promise.resolve();
|
|
1108
1123
|
let currentSize;
|
|
1109
1124
|
try {
|
|
1110
|
-
const
|
|
1111
|
-
currentSize =
|
|
1125
|
+
const stat3 = statSync(this.filePath);
|
|
1126
|
+
currentSize = stat3.size;
|
|
1112
1127
|
} catch {
|
|
1113
1128
|
return Promise.resolve();
|
|
1114
1129
|
}
|
|
@@ -1692,19 +1707,19 @@ function readArtFile(absolutePath) {
|
|
|
1692
1707
|
}
|
|
1693
1708
|
const flags = typeof fs.constants.O_NOFOLLOW === "number" ? fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW : fs.constants.O_RDONLY;
|
|
1694
1709
|
fd = fs.openSync(absolutePath, flags);
|
|
1695
|
-
const
|
|
1696
|
-
if (!
|
|
1710
|
+
const stat3 = fs.fstatSync(fd);
|
|
1711
|
+
if (!stat3.isFile()) {
|
|
1697
1712
|
debugLogger3.warn(
|
|
1698
1713
|
`Ignoring ui.customAsciiArt: ${absolutePath} is not a regular file.`
|
|
1699
1714
|
);
|
|
1700
1715
|
return void 0;
|
|
1701
1716
|
}
|
|
1702
|
-
const size = Math.min(
|
|
1717
|
+
const size = Math.min(stat3.size, MAX_FILE_BYTES);
|
|
1703
1718
|
const buffer = Buffer.alloc(size);
|
|
1704
1719
|
fs.readSync(fd, buffer, 0, size, 0);
|
|
1705
|
-
if (
|
|
1720
|
+
if (stat3.size > MAX_FILE_BYTES) {
|
|
1706
1721
|
debugLogger3.warn(
|
|
1707
|
-
`Truncated ui.customAsciiArt at ${absolutePath}: file is ${
|
|
1722
|
+
`Truncated ui.customAsciiArt at ${absolutePath}: file is ${stat3.size} bytes, capped at ${MAX_FILE_BYTES}.`
|
|
1708
1723
|
);
|
|
1709
1724
|
}
|
|
1710
1725
|
return buffer.toString("utf8");
|
|
@@ -2507,6 +2522,14 @@ function findLastLE(arr, target) {
|
|
|
2507
2522
|
return upperBound(arr, target) - 1;
|
|
2508
2523
|
}
|
|
2509
2524
|
__name(findLastLE, "findLastLE");
|
|
2525
|
+
function firstIndexOfOffsetRun(offsets, index) {
|
|
2526
|
+
let i = index;
|
|
2527
|
+
while (i > 0 && offsets[i - 1] === offsets[i]) {
|
|
2528
|
+
i--;
|
|
2529
|
+
}
|
|
2530
|
+
return i;
|
|
2531
|
+
}
|
|
2532
|
+
__name(firstIndexOfOffsetRun, "firstIndexOfOffsetRun");
|
|
2510
2533
|
var VirtualizedListItem = (0, import_react10.memo)(
|
|
2511
2534
|
({
|
|
2512
2535
|
content,
|
|
@@ -2523,10 +2546,11 @@ var VirtualizedListItem = (0, import_react10.memo)(
|
|
|
2523
2546
|
const onHeightChangeRef = (0, import_react10.useRef)(onHeightChange);
|
|
2524
2547
|
onHeightChangeRef.current = onHeightChange;
|
|
2525
2548
|
(0, import_react10.useLayoutEffect)(() => {
|
|
2526
|
-
|
|
2527
|
-
|
|
2549
|
+
const measuredHeight = itemRef.current?.yogaNode?.getComputedHeight() ?? height;
|
|
2550
|
+
if (hasMeasured) {
|
|
2551
|
+
onHeightChangeRef.current(itemKey, measuredHeight);
|
|
2528
2552
|
}
|
|
2529
|
-
}, [itemKey, height, hasMeasured]);
|
|
2553
|
+
}, [itemKey, height, hasMeasured, content]);
|
|
2530
2554
|
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Box_default, { width: "100%", flexDirection: "column", flexShrink: 0, ref: itemRef, children: shouldBeStatic ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2531
2555
|
StaticRender,
|
|
2532
2556
|
{
|
|
@@ -2582,12 +2606,28 @@ function VirtualizedList(props, ref) {
|
|
|
2582
2606
|
const containerHeight = props.containerHeight ?? measuredContainerHeight;
|
|
2583
2607
|
const containerWidth = measuredContainerWidth;
|
|
2584
2608
|
const [heights, setHeights] = (0, import_react10.useState)({});
|
|
2609
|
+
const measureAtFullHeight = props.measureAtFullHeight === true;
|
|
2610
|
+
const [fullHeightMeasurementPending, setFullHeightMeasurementPending] = (0, import_react10.useState)(measureAtFullHeight);
|
|
2611
|
+
const [previousMeasurementInputs, setPreviousMeasurementInputs] = (0, import_react10.useState)({
|
|
2612
|
+
enabled: measureAtFullHeight,
|
|
2613
|
+
data,
|
|
2614
|
+
renderItem
|
|
2615
|
+
});
|
|
2616
|
+
if (previousMeasurementInputs.enabled !== measureAtFullHeight || measureAtFullHeight && (previousMeasurementInputs.data !== data || previousMeasurementInputs.renderItem !== renderItem)) {
|
|
2617
|
+
setPreviousMeasurementInputs({
|
|
2618
|
+
enabled: measureAtFullHeight,
|
|
2619
|
+
data,
|
|
2620
|
+
renderItem
|
|
2621
|
+
});
|
|
2622
|
+
setFullHeightMeasurementPending(measureAtFullHeight);
|
|
2623
|
+
}
|
|
2585
2624
|
const isInitialScrollSet = (0, import_react10.useRef)(false);
|
|
2586
2625
|
const onHeightChange = (0, import_react10.useCallback)((key, height) => {
|
|
2587
2626
|
setHeights((prev) => {
|
|
2588
2627
|
if (prev[key] === height) return prev;
|
|
2589
2628
|
return { ...prev, [key]: height };
|
|
2590
2629
|
});
|
|
2630
|
+
setFullHeightMeasurementPending(false);
|
|
2591
2631
|
}, []);
|
|
2592
2632
|
(0, import_react10.useLayoutEffect)(() => {
|
|
2593
2633
|
setHeights((prev) => {
|
|
@@ -2627,10 +2667,11 @@ function VirtualizedList(props, ref) {
|
|
|
2627
2667
|
const scrollableContainerHeight = containerHeight;
|
|
2628
2668
|
const getAnchorForScrollTop = (0, import_react10.useCallback)(
|
|
2629
2669
|
(scrollTop2, offsets2) => {
|
|
2630
|
-
const
|
|
2631
|
-
if (
|
|
2670
|
+
const found = findLastLE(offsets2, scrollTop2);
|
|
2671
|
+
if (found === -1) {
|
|
2632
2672
|
return { index: 0, offset: 0 };
|
|
2633
2673
|
}
|
|
2674
|
+
const index = firstIndexOfOffsetRun(offsets2, found);
|
|
2634
2675
|
return { index, offset: scrollTop2 - offsets2[index] };
|
|
2635
2676
|
},
|
|
2636
2677
|
[]
|
|
@@ -2638,7 +2679,7 @@ function VirtualizedList(props, ref) {
|
|
|
2638
2679
|
const [prevTargetScrollIndex, setPrevTargetScrollIndex] = (0, import_react10.useState)(
|
|
2639
2680
|
props.targetScrollIndex
|
|
2640
2681
|
);
|
|
2641
|
-
const prevOffsetsLength = (0, import_react10.useRef)(
|
|
2682
|
+
const prevOffsetsLength = (0, import_react10.useRef)(1);
|
|
2642
2683
|
const target = props.targetScrollIndex;
|
|
2643
2684
|
if (target !== void 0 && offsets.length > 1) {
|
|
2644
2685
|
const targetChanged = target !== prevTargetScrollIndex;
|
|
@@ -2650,8 +2691,12 @@ function VirtualizedList(props, ref) {
|
|
|
2650
2691
|
if (isStickingToBottom) {
|
|
2651
2692
|
setIsStickingToBottom(false);
|
|
2652
2693
|
}
|
|
2653
|
-
|
|
2654
|
-
|
|
2694
|
+
const anchoredIndex = firstIndexOfOffsetRun(
|
|
2695
|
+
offsets,
|
|
2696
|
+
Math.max(0, Math.min(data.length - 1, target))
|
|
2697
|
+
);
|
|
2698
|
+
if (scrollAnchor.index !== anchoredIndex || scrollAnchor.offset !== 0) {
|
|
2699
|
+
setScrollAnchor({ index: anchoredIndex, offset: 0 });
|
|
2655
2700
|
}
|
|
2656
2701
|
}
|
|
2657
2702
|
}
|
|
@@ -2771,11 +2816,19 @@ function VirtualizedList(props, ref) {
|
|
|
2771
2816
|
heights,
|
|
2772
2817
|
props.targetScrollIndex
|
|
2773
2818
|
]);
|
|
2774
|
-
const
|
|
2819
|
+
const maxScroll = Math.max(0, totalHeight - scrollableContainerHeight);
|
|
2820
|
+
const clampedScrollTop = Math.min(
|
|
2821
|
+
Math.max(0, isStickingToBottom ? maxScroll : actualScrollTop),
|
|
2822
|
+
maxScroll
|
|
2823
|
+
);
|
|
2824
|
+
const startIndex = firstIndexOfOffsetRun(
|
|
2825
|
+
offsets,
|
|
2826
|
+
Math.max(0, findLastLE(offsets, clampedScrollTop) - 1)
|
|
2827
|
+
);
|
|
2775
2828
|
const viewHeightForEndIndex = scrollableContainerHeight > 0 ? scrollableContainerHeight : 50;
|
|
2776
2829
|
const endIndexOffsetRaw = upperBound(
|
|
2777
2830
|
offsets,
|
|
2778
|
-
|
|
2831
|
+
clampedScrollTop + viewHeightForEndIndex
|
|
2779
2832
|
);
|
|
2780
2833
|
const endIndex = endIndexOffsetRaw >= offsets.length ? data.length - 1 : Math.min(data.length - 1, endIndexOffsetRaw);
|
|
2781
2834
|
const topSpacerHeight = renderStatic === true ? 0 : offsets[startIndex] ?? 0;
|
|
@@ -2839,11 +2892,6 @@ function VirtualizedList(props, ref) {
|
|
|
2839
2892
|
onHeightChange
|
|
2840
2893
|
]);
|
|
2841
2894
|
const { getScrollTop, setPendingScrollTop } = useBatchedScroll(scrollTop);
|
|
2842
|
-
const maxScroll = Math.max(0, totalHeight - scrollableContainerHeight);
|
|
2843
|
-
const clampedScrollTop = Math.min(
|
|
2844
|
-
Math.max(0, isStickingToBottom ? maxScroll : actualScrollTop),
|
|
2845
|
-
maxScroll
|
|
2846
|
-
);
|
|
2847
2895
|
const getScrollbarGeometry = (0, import_react10.useCallback)(() => {
|
|
2848
2896
|
const shouldShowScrollbar = (props.showScrollbar ?? true) && maxScroll > 0;
|
|
2849
2897
|
if (!shouldShowScrollbar || !rootRef.current || scrollableContainerHeight <= 0) {
|
|
@@ -3065,7 +3113,7 @@ function VirtualizedList(props, ref) {
|
|
|
3065
3113
|
maxScroll,
|
|
3066
3114
|
scrollbarThumbActive
|
|
3067
3115
|
]);
|
|
3068
|
-
const rootHeight = props.containerHeight !== void 0 ? Math.min(props.containerHeight, totalHeight) : "100%";
|
|
3116
|
+
const rootHeight = props.containerHeight !== void 0 ? fullHeightMeasurementPending ? props.containerHeight : Math.min(props.containerHeight, totalHeight) : "100%";
|
|
3069
3117
|
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Box_default, { ref: rootRef, width: "100%", height: rootHeight, flexDirection: "row", children: [
|
|
3070
3118
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
3071
3119
|
Box_default,
|
|
@@ -3863,17 +3911,19 @@ var MainContent = /* @__PURE__ */ __name(() => {
|
|
|
3863
3911
|
const pendingStateRef = (0, import_react14.useRef)({
|
|
3864
3912
|
activePtyId: uiState.activePtyId,
|
|
3865
3913
|
embeddedShellFocused: uiState.embeddedShellFocused,
|
|
3866
|
-
isEditorDialogOpen: uiState.isEditorDialogOpen
|
|
3867
|
-
constrainHeight: uiState.constrainHeight,
|
|
3868
|
-
availableTerminalHeight
|
|
3914
|
+
isEditorDialogOpen: uiState.isEditorDialogOpen
|
|
3869
3915
|
});
|
|
3870
3916
|
pendingStateRef.current = {
|
|
3871
3917
|
activePtyId: uiState.activePtyId,
|
|
3872
3918
|
embeddedShellFocused: uiState.embeddedShellFocused,
|
|
3873
|
-
isEditorDialogOpen: uiState.isEditorDialogOpen
|
|
3874
|
-
constrainHeight: uiState.constrainHeight,
|
|
3875
|
-
availableTerminalHeight
|
|
3919
|
+
isEditorDialogOpen: uiState.isEditorDialogOpen
|
|
3876
3920
|
};
|
|
3921
|
+
const pendingAvailableTerminalHeight = pendingHistoryItems.length > 0 && uiState.constrainHeight ? availableTerminalHeight : void 0;
|
|
3922
|
+
const hasPendingPlainTextConfirmation = pendingHistoryItems.some(
|
|
3923
|
+
(item) => item.type === "tool_group" && item.tools.some(
|
|
3924
|
+
(tool) => tool.status === "Confirming" /* Confirming */ && tool.confirmationDetails?.type === "info" && tool.confirmationDetails.renderPromptAsPlainText === true
|
|
3925
|
+
)
|
|
3926
|
+
);
|
|
3877
3927
|
const pendingSourceCopyOffsetsRef = (0, import_react14.useRef)(pendingSourceCopyOffsetsByIndex);
|
|
3878
3928
|
pendingSourceCopyOffsetsRef.current = pendingSourceCopyOffsetsByIndex;
|
|
3879
3929
|
const renderVirtualItem = (0, import_react14.useCallback)(
|
|
@@ -3894,7 +3944,7 @@ var MainContent = /* @__PURE__ */ __name(() => {
|
|
|
3894
3944
|
{
|
|
3895
3945
|
terminalWidth,
|
|
3896
3946
|
mainAreaWidth,
|
|
3897
|
-
availableTerminalHeight:
|
|
3947
|
+
availableTerminalHeight: pendingAvailableTerminalHeight,
|
|
3898
3948
|
item: { ...item, id: 0 },
|
|
3899
3949
|
isPending: true,
|
|
3900
3950
|
isFocused: !ps.isEditorDialogOpen,
|
|
@@ -3929,7 +3979,8 @@ var MainContent = /* @__PURE__ */ __name(() => {
|
|
|
3929
3979
|
staticAreaMaxItemHeight,
|
|
3930
3980
|
uiState.slashCommands,
|
|
3931
3981
|
sourceCopyOffsetsByHistoryItem,
|
|
3932
|
-
fullDetail
|
|
3982
|
+
fullDetail,
|
|
3983
|
+
pendingAvailableTerminalHeight
|
|
3933
3984
|
]
|
|
3934
3985
|
);
|
|
3935
3986
|
if (useVirtualScroll) {
|
|
@@ -3950,6 +4001,7 @@ var MainContent = /* @__PURE__ */ __name(() => {
|
|
|
3950
4001
|
initialScrollIndex: allVirtualItems.length <= 1 ? 0 : SCROLL_TO_ITEM_END,
|
|
3951
4002
|
isStaticItem: virtualIsStaticItem,
|
|
3952
4003
|
containerHeight: scrollContainerHeight,
|
|
4004
|
+
measureAtFullHeight: hasPendingPlainTextConfirmation,
|
|
3953
4005
|
showScrollbar
|
|
3954
4006
|
}
|
|
3955
4007
|
),
|
|
@@ -10159,7 +10211,7 @@ function TrustDialog({
|
|
|
10159
10211
|
"Current Level: ",
|
|
10160
10212
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { bold: true, children: currentTrustLevel || "Not Set" })
|
|
10161
10213
|
] }),
|
|
10162
|
-
isInheritedTrustFromParent && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: theme.text.secondary, children: "Note: This folder
|
|
10214
|
+
isInheritedTrustFromParent && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: theme.text.secondary, children: "Note: This folder currently inherits trust from a parent folder. A more-specific trust rule here can override that decision." }),
|
|
10163
10215
|
isInheritedTrustFromIde && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: theme.text.secondary, children: "Note: This folder behaves as a trusted folder because the connected IDE workspace is trusted. It will remain trusted even if you set a different trust level here." })
|
|
10164
10216
|
] }),
|
|
10165
10217
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
@@ -22866,8 +22918,8 @@ __name(statusGlyph, "statusGlyph");
|
|
|
22866
22918
|
// packages/cli/src/ui/hooks/useBackgroundTaskView.ts
|
|
22867
22919
|
var MAX_RETAINED_TERMINAL_DREAMS = 3;
|
|
22868
22920
|
function compareActiveThenTerminal(a, b) {
|
|
22869
|
-
const aActive = a.status === "running" || a.status === "paused";
|
|
22870
|
-
const bActive = b.status === "running" || b.status === "paused";
|
|
22921
|
+
const aActive = a.status === "running" || a.status === "pausing" || a.status === "paused";
|
|
22922
|
+
const bActive = b.status === "running" || b.status === "pausing" || b.status === "paused";
|
|
22871
22923
|
if (aActive !== bActive) return aActive ? -1 : 1;
|
|
22872
22924
|
if (aActive) return b.startTime - a.startTime;
|
|
22873
22925
|
return (b.endTime ?? b.startTime) - (a.endTime ?? a.startTime);
|
|
@@ -23007,6 +23059,7 @@ var DEFAULT_ACTIONS = {
|
|
|
23007
23059
|
cancelSelected: noop,
|
|
23008
23060
|
resumeSelected: /* @__PURE__ */ __name(async () => {
|
|
23009
23061
|
}, "resumeSelected"),
|
|
23062
|
+
toggleSelectedWorkflowPause: /* @__PURE__ */ __name(() => null, "toggleSelectedWorkflowPause"),
|
|
23010
23063
|
setPillFocused: noop,
|
|
23011
23064
|
setLivePanelFocused: noop,
|
|
23012
23065
|
setLivePanelSelectedIndex: noop,
|
|
@@ -23124,6 +23177,18 @@ function BackgroundTaskViewProvider({
|
|
|
23124
23177
|
}
|
|
23125
23178
|
await config.resumeBackgroundAgent(target.agentId);
|
|
23126
23179
|
}, [config, entries, selectedIndex]);
|
|
23180
|
+
const toggleSelectedWorkflowPause = (0, import_react75.useCallback)(() => {
|
|
23181
|
+
if (!config) return null;
|
|
23182
|
+
const target = entries[selectedIndex];
|
|
23183
|
+
if (!target || target.kind !== "workflow" || !target.isBackgrounded) {
|
|
23184
|
+
return null;
|
|
23185
|
+
}
|
|
23186
|
+
const registry = config.getWorkflowRunRegistry();
|
|
23187
|
+
if (target.status === "running") return registry.pause(target.runId);
|
|
23188
|
+
if (target.status === "paused") return registry.resume(target.runId);
|
|
23189
|
+
if (target.status === "pausing") return registry.pause(target.runId);
|
|
23190
|
+
return null;
|
|
23191
|
+
}, [config, entries, selectedIndex]);
|
|
23127
23192
|
const state = (0, import_react75.useMemo)(
|
|
23128
23193
|
() => ({
|
|
23129
23194
|
entries,
|
|
@@ -23155,6 +23220,7 @@ function BackgroundTaskViewProvider({
|
|
|
23155
23220
|
exitDetail,
|
|
23156
23221
|
cancelSelected,
|
|
23157
23222
|
resumeSelected,
|
|
23223
|
+
toggleSelectedWorkflowPause,
|
|
23158
23224
|
setPillFocused,
|
|
23159
23225
|
setLivePanelFocused,
|
|
23160
23226
|
setLivePanelSelectedIndex,
|
|
@@ -23170,6 +23236,7 @@ function BackgroundTaskViewProvider({
|
|
|
23170
23236
|
exitDetail,
|
|
23171
23237
|
cancelSelected,
|
|
23172
23238
|
resumeSelected,
|
|
23239
|
+
toggleSelectedWorkflowPause,
|
|
23173
23240
|
setPillFocused,
|
|
23174
23241
|
setLivePanelFocused,
|
|
23175
23242
|
setLivePanelSelectedIndex,
|
|
@@ -23343,6 +23410,8 @@ function statusVerb(status) {
|
|
|
23343
23410
|
switch (status) {
|
|
23344
23411
|
case "running":
|
|
23345
23412
|
return t("Running");
|
|
23413
|
+
case "pausing":
|
|
23414
|
+
return t("Pausing");
|
|
23346
23415
|
case "paused":
|
|
23347
23416
|
return t("Paused");
|
|
23348
23417
|
case "completed":
|
|
@@ -23385,8 +23454,14 @@ function formatDreamRowLabel(entry) {
|
|
|
23385
23454
|
});
|
|
23386
23455
|
}
|
|
23387
23456
|
__name(formatDreamRowLabel, "formatDreamRowLabel");
|
|
23388
|
-
function
|
|
23457
|
+
function statusPresentation(status) {
|
|
23389
23458
|
switch (status) {
|
|
23459
|
+
case "pausing":
|
|
23460
|
+
return {
|
|
23461
|
+
icon: "\u2026",
|
|
23462
|
+
color: theme.status.warning,
|
|
23463
|
+
labelColor: theme.status.warningDim
|
|
23464
|
+
};
|
|
23390
23465
|
case "paused":
|
|
23391
23466
|
return {
|
|
23392
23467
|
icon: "\u23F8",
|
|
@@ -23415,7 +23490,23 @@ function terminalStatusPresentation(status) {
|
|
|
23415
23490
|
return null;
|
|
23416
23491
|
}
|
|
23417
23492
|
}
|
|
23418
|
-
__name(
|
|
23493
|
+
__name(statusPresentation, "statusPresentation");
|
|
23494
|
+
function isStoppableEntry(entry) {
|
|
23495
|
+
return entry.status === "running" || entry.kind === "workflow" && isActiveWorkflowStatus(entry.status);
|
|
23496
|
+
}
|
|
23497
|
+
__name(isStoppableEntry, "isStoppableEntry");
|
|
23498
|
+
function workflowPauseHint(entry) {
|
|
23499
|
+
if (entry?.kind !== "workflow" || !entry.isBackgrounded) return void 0;
|
|
23500
|
+
switch (entry.status) {
|
|
23501
|
+
case "running":
|
|
23502
|
+
return "p pause (cooperative)";
|
|
23503
|
+
case "paused":
|
|
23504
|
+
return "p resume (cooperative)";
|
|
23505
|
+
default:
|
|
23506
|
+
return void 0;
|
|
23507
|
+
}
|
|
23508
|
+
}
|
|
23509
|
+
__name(workflowPauseHint, "workflowPauseHint");
|
|
23419
23510
|
var FOREGROUND_ROW_PREFIX = "[blocking]";
|
|
23420
23511
|
var SHELL_ROW_PREFIX = "[shell]";
|
|
23421
23512
|
function rowLabel(entry, userBlocking) {
|
|
@@ -23528,8 +23619,8 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
23528
23619
|
visible.map((entry, visibleIdx) => {
|
|
23529
23620
|
const idx = windowStart + visibleIdx;
|
|
23530
23621
|
const isSelected = idx === selectedIndex;
|
|
23531
|
-
const
|
|
23532
|
-
const labelColor = isSelected ? theme.text.accent :
|
|
23622
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23623
|
+
const labelColor = isSelected ? theme.text.accent : presentation2 ? presentation2.labelColor : theme.text.primary;
|
|
23533
23624
|
const treePrefix = entry.kind === "agent" ? treeRowPrefix(entry, treeInfo.get(entry.agentId)) : "";
|
|
23534
23625
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
|
|
23535
23626
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: isSelected ? theme.text.accent : void 0, children: isSelected ? "> " : " " }),
|
|
@@ -23603,7 +23694,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
23603
23694
|
}, "DetailBody");
|
|
23604
23695
|
var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
23605
23696
|
const title = t("Dream");
|
|
23606
|
-
const
|
|
23697
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23607
23698
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23608
23699
|
if (entry.sessionCount !== void 0) {
|
|
23609
23700
|
dimSubtitleParts.push(formatSessionCount(entry.sessionCount));
|
|
@@ -23625,7 +23716,7 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23625
23716
|
children: [
|
|
23626
23717
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23627
23718
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23628
|
-
|
|
23719
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23629
23720
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23630
23721
|
] }),
|
|
23631
23722
|
entry.sessionCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
@@ -23682,7 +23773,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23682
23773
|
const title = escapeAnsiCtrlCodes(
|
|
23683
23774
|
`${entry.subagentType ?? "Agent"} \u203A ${buildBackgroundEntryLabel(entry, { includePrefix: false })}`
|
|
23684
23775
|
);
|
|
23685
|
-
const
|
|
23776
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23686
23777
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23687
23778
|
if (entry.stats?.outputTokens) {
|
|
23688
23779
|
dimSubtitleParts.push(
|
|
@@ -23754,7 +23845,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23754
23845
|
children: [
|
|
23755
23846
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23756
23847
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23757
|
-
|
|
23848
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23758
23849
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23759
23850
|
] }),
|
|
23760
23851
|
parentLine !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
@@ -23831,7 +23922,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23831
23922
|
}, "AgentDetailBody");
|
|
23832
23923
|
var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
23833
23924
|
const title = `${t("Shell")} \u203A ${entry.command}`;
|
|
23834
|
-
const
|
|
23925
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23835
23926
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23836
23927
|
if (entry.pid !== void 0) {
|
|
23837
23928
|
dimSubtitleParts.push(t("pid {{pid}}", { pid: String(entry.pid) }));
|
|
@@ -23851,7 +23942,7 @@ var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23851
23942
|
children: [
|
|
23852
23943
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23853
23944
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23854
|
-
|
|
23945
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23855
23946
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23856
23947
|
] }),
|
|
23857
23948
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
@@ -23871,7 +23962,7 @@ var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23871
23962
|
}, "ShellDetailBody");
|
|
23872
23963
|
var MonitorDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
23873
23964
|
const title = `${t("Monitor")} \u203A ${entry.description}`;
|
|
23874
|
-
const
|
|
23965
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23875
23966
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23876
23967
|
if (entry.pid !== void 0) {
|
|
23877
23968
|
dimSubtitleParts.push(t("pid {{pid}}", { pid: String(entry.pid) }));
|
|
@@ -23899,7 +23990,7 @@ var MonitorDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
23899
23990
|
children: [
|
|
23900
23991
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23901
23992
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23902
|
-
|
|
23993
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23903
23994
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23904
23995
|
] }),
|
|
23905
23996
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
@@ -23918,7 +24009,7 @@ var MAX_VISIBLE_PHASES = 20;
|
|
|
23918
24009
|
var MAX_VISIBLE_LOG_LINES = 10;
|
|
23919
24010
|
var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
23920
24011
|
const title = `${t("Workflow")} \u203A ${entry.meta?.name ?? entry.runId}`;
|
|
23921
|
-
const
|
|
24012
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23922
24013
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23923
24014
|
if (entry.agentsDispatched > 0) {
|
|
23924
24015
|
dimSubtitleParts.push(
|
|
@@ -23950,19 +24041,27 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
23950
24041
|
children: [
|
|
23951
24042
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23952
24043
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23953
|
-
|
|
24044
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23954
24045
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23955
24046
|
] }),
|
|
23956
24047
|
entry.meta?.description && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
23957
24048
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
23958
24049
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { wrap: "wrap", children: entry.meta.description }) })
|
|
23959
24050
|
] }),
|
|
24051
|
+
(entry.status === "pausing" || entry.status === "paused") && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
24052
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
24053
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.status.warning, children: entry.status === "pausing" ? t(
|
|
24054
|
+
"Pause is cooperative; in-flight work may finish before the workflow is paused. An agent call waiting on a tool approval keeps the run in this state and still counts against the active-time limit until the approval is answered."
|
|
24055
|
+
) : t(
|
|
24056
|
+
"Paused: no new agents will start; script code between agent calls keeps running. Press p to resume. /clear, /branch, and switching sessions cancel paused runs."
|
|
24057
|
+
) }) })
|
|
24058
|
+
] }),
|
|
23960
24059
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
23961
24060
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, dimColor: true, children: t("Phases") }) }),
|
|
23962
24061
|
entry.phases.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { dimColor: true, children: t("(no phase recorded yet)") }) }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
23963
24062
|
phaseOverflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { dimColor: true, children: `+${phaseOverflow} ${t("more above")}` }) }),
|
|
23964
24063
|
visiblePhases.map((phaseTitle, i) => {
|
|
23965
|
-
const isCurrent = entry.status
|
|
24064
|
+
const isCurrent = isActiveWorkflowStatus(entry.status) && i === visiblePhases.length - 1 && entry.currentPhase === phaseTitle;
|
|
23966
24065
|
const marker = isCurrent ? "\u25B8" : "\xB7";
|
|
23967
24066
|
const phaseTokens = entry.perPhaseTokens.get(phaseTitle) ?? 0;
|
|
23968
24067
|
const tokenChip = phaseTokens > 0 ? ` \xB7 ${formatTokenCount(phaseTokens)}t` : "";
|
|
@@ -24000,7 +24099,9 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24000
24099
|
enterDetail,
|
|
24001
24100
|
exitDetail,
|
|
24002
24101
|
cancelSelected,
|
|
24003
|
-
resumeSelected
|
|
24102
|
+
resumeSelected,
|
|
24103
|
+
toggleSelectedWorkflowPause,
|
|
24104
|
+
setSelectedIndex
|
|
24004
24105
|
} = useBackgroundTaskViewActions();
|
|
24005
24106
|
const config = useConfig();
|
|
24006
24107
|
const detailContentHeight = Math.max(10, availableTerminalHeight - 6);
|
|
@@ -24012,6 +24113,21 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24012
24113
|
(0, import_react77.useEffect)(() => {
|
|
24013
24114
|
if (!isDetailMode) setSaveActive(false);
|
|
24014
24115
|
}, [isDetailMode]);
|
|
24116
|
+
const [pauseRejected, setPauseRejected] = (0, import_react77.useState)(null);
|
|
24117
|
+
(0, import_react77.useEffect)(() => {
|
|
24118
|
+
if (!pauseRejected) return;
|
|
24119
|
+
const timer = setTimeout(() => setPauseRejected(null), 3e3);
|
|
24120
|
+
return () => clearTimeout(timer);
|
|
24121
|
+
}, [pauseRejected]);
|
|
24122
|
+
const toggleWorkflowPauseWithFeedback = (0, import_react77.useCallback)(() => {
|
|
24123
|
+
const target = entries[selectedIndex];
|
|
24124
|
+
const verdict = toggleSelectedWorkflowPause();
|
|
24125
|
+
if (verdict === false && target) {
|
|
24126
|
+
setPauseRejected({ entryKey: entryId(target) });
|
|
24127
|
+
} else if (verdict === true) {
|
|
24128
|
+
setPauseRejected(null);
|
|
24129
|
+
}
|
|
24130
|
+
}, [entries, selectedIndex, toggleSelectedWorkflowPause]);
|
|
24015
24131
|
const selectedEntry = (0, import_react77.useMemo)(() => {
|
|
24016
24132
|
const fromSnapshot = entries[selectedIndex] ?? null;
|
|
24017
24133
|
if (!fromSnapshot) return fromSnapshot;
|
|
@@ -24081,12 +24197,19 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24081
24197
|
selectedAgentIdForActivity
|
|
24082
24198
|
]);
|
|
24083
24199
|
const selectedStatus = selectedEntry?.status;
|
|
24200
|
+
const selectedShouldTick = selectedEntry?.kind === "workflow" ? isActiveWorkflowStatus(selectedEntry.status) : selectedStatus === "running";
|
|
24084
24201
|
(0, import_react77.useEffect)(() => {
|
|
24085
|
-
if (!dialogOpen || !isDetailMode || !selectedEntryId ||
|
|
24202
|
+
if (!dialogOpen || !isDetailMode || !selectedEntryId || !selectedShouldTick)
|
|
24086
24203
|
return;
|
|
24087
24204
|
const id = setInterval(() => setActivityTick((n) => n + 1), 1e3);
|
|
24088
24205
|
return () => clearInterval(id);
|
|
24089
|
-
}, [
|
|
24206
|
+
}, [
|
|
24207
|
+
dialogOpen,
|
|
24208
|
+
dialogMode,
|
|
24209
|
+
isDetailMode,
|
|
24210
|
+
selectedEntryId,
|
|
24211
|
+
selectedShouldTick
|
|
24212
|
+
]);
|
|
24090
24213
|
const initialDetailStatusRef = (0, import_react77.useRef)(null);
|
|
24091
24214
|
(0, import_react77.useEffect)(() => {
|
|
24092
24215
|
if (!dialogOpen || !isDetailMode) {
|
|
@@ -24095,11 +24218,25 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24095
24218
|
}
|
|
24096
24219
|
if (!selectedEntryId) {
|
|
24097
24220
|
initialDetailStatusRef.current = null;
|
|
24221
|
+
setPendingCancelEntryId(null);
|
|
24098
24222
|
exitDetail();
|
|
24099
24223
|
return;
|
|
24100
24224
|
}
|
|
24101
24225
|
const seen = initialDetailStatusRef.current;
|
|
24102
|
-
if (
|
|
24226
|
+
if (seen && seen.entryId !== selectedEntryId) {
|
|
24227
|
+
const driftedIndex = entries.findIndex(
|
|
24228
|
+
(candidate) => entryId(candidate) === seen.entryId
|
|
24229
|
+
);
|
|
24230
|
+
if (driftedIndex >= 0) {
|
|
24231
|
+
setSelectedIndex(driftedIndex);
|
|
24232
|
+
return;
|
|
24233
|
+
}
|
|
24234
|
+
initialDetailStatusRef.current = null;
|
|
24235
|
+
setPendingCancelEntryId(null);
|
|
24236
|
+
exitDetail();
|
|
24237
|
+
return;
|
|
24238
|
+
}
|
|
24239
|
+
if (!seen) {
|
|
24103
24240
|
if (selectedStatus) {
|
|
24104
24241
|
initialDetailStatusRef.current = {
|
|
24105
24242
|
entryId: selectedEntryId,
|
|
@@ -24108,7 +24245,10 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24108
24245
|
}
|
|
24109
24246
|
return;
|
|
24110
24247
|
}
|
|
24111
|
-
|
|
24248
|
+
const seenWasActive = seen.status === "running" || seen.status === "pausing" || seen.status === "paused";
|
|
24249
|
+
const selectedIsTerminal = selectedStatus === "completed" || selectedStatus === "failed" || selectedStatus === "cancelled";
|
|
24250
|
+
if (seenWasActive && selectedIsTerminal) {
|
|
24251
|
+
setPendingCancelEntryId(null);
|
|
24112
24252
|
exitDetail();
|
|
24113
24253
|
}
|
|
24114
24254
|
}, [
|
|
@@ -24117,11 +24257,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24117
24257
|
isDetailMode,
|
|
24118
24258
|
selectedEntryId,
|
|
24119
24259
|
selectedStatus,
|
|
24120
|
-
exitDetail
|
|
24260
|
+
exitDetail,
|
|
24261
|
+
entries,
|
|
24262
|
+
setSelectedIndex
|
|
24121
24263
|
]);
|
|
24122
24264
|
const handleCancelKey = /* @__PURE__ */ __name(() => {
|
|
24123
24265
|
if (!selectedEntry) return;
|
|
24124
|
-
const isCancelable = selectedEntry
|
|
24266
|
+
const isCancelable = isStoppableEntry(selectedEntry);
|
|
24125
24267
|
const isAbandonable = selectedEntry.kind === "agent" && selectedEntry.status === "paused";
|
|
24126
24268
|
if (!isCancelable && !isAbandonable) return;
|
|
24127
24269
|
const entryKey = entryId(selectedEntry);
|
|
@@ -24178,13 +24320,17 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24178
24320
|
void resumeSelected();
|
|
24179
24321
|
return;
|
|
24180
24322
|
}
|
|
24323
|
+
if (key.sequence === "p" && !key.ctrl && !key.meta) {
|
|
24324
|
+
toggleWorkflowPauseWithFeedback();
|
|
24325
|
+
return;
|
|
24326
|
+
}
|
|
24181
24327
|
if (key.sequence === "x" && !key.ctrl && !key.meta) {
|
|
24182
24328
|
handleCancelKey();
|
|
24183
24329
|
return;
|
|
24184
24330
|
}
|
|
24185
24331
|
return;
|
|
24186
24332
|
}
|
|
24187
|
-
if (key.sequence === "s" && !key.ctrl && !key.meta && config && selectedEntry?.kind === "workflow" && selectedEntry.status
|
|
24333
|
+
if (key.sequence === "s" && !key.ctrl && !key.meta && config && selectedEntry?.kind === "workflow" && isTerminalWorkflowStatus(selectedEntry.status) && !!selectedEntry.script) {
|
|
24188
24334
|
setSaveActive(true);
|
|
24189
24335
|
return;
|
|
24190
24336
|
}
|
|
@@ -24205,6 +24351,10 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24205
24351
|
void resumeSelected();
|
|
24206
24352
|
return;
|
|
24207
24353
|
}
|
|
24354
|
+
if (key.sequence === "p" && !key.ctrl && !key.meta) {
|
|
24355
|
+
toggleWorkflowPauseWithFeedback();
|
|
24356
|
+
return;
|
|
24357
|
+
}
|
|
24208
24358
|
if (key.sequence === "x" && !key.ctrl && !key.meta) {
|
|
24209
24359
|
handleCancelKey();
|
|
24210
24360
|
return;
|
|
@@ -24214,8 +24364,9 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24214
24364
|
);
|
|
24215
24365
|
if (!dialogOpen) return null;
|
|
24216
24366
|
const selectedEntryAllowsResume = selectedEntry?.kind === "agent" && selectedEntry.status === "paused" && !selectedEntry.resumeBlockedReason;
|
|
24217
|
-
const workflowSaveTarget = config && selectedEntry?.kind === "workflow" && selectedEntry.status
|
|
24367
|
+
const workflowSaveTarget = config && selectedEntry?.kind === "workflow" && isTerminalWorkflowStatus(selectedEntry.status) && selectedEntry.script ? selectedEntry : null;
|
|
24218
24368
|
const selectedEntryKey = selectedEntry ? entryId(selectedEntry) : null;
|
|
24369
|
+
const selectedWorkflowPauseHint = workflowPauseHint(selectedEntry);
|
|
24219
24370
|
const showCancelConfirmHint = pendingCancelEntryId !== null && pendingCancelEntryId === selectedEntryKey;
|
|
24220
24371
|
const hints = [];
|
|
24221
24372
|
if (approvalActive) {
|
|
@@ -24230,7 +24381,10 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24230
24381
|
);
|
|
24231
24382
|
} else if (dialogMode === "list") {
|
|
24232
24383
|
hints.push("\u2191/\u2193 select", "Enter view");
|
|
24233
|
-
if (selectedEntry
|
|
24384
|
+
if (selectedEntry && isStoppableEntry(selectedEntry)) {
|
|
24385
|
+
hints.push("x stop");
|
|
24386
|
+
}
|
|
24387
|
+
if (selectedWorkflowPauseHint) hints.push(selectedWorkflowPauseHint);
|
|
24234
24388
|
if (selectedEntryAllowsResume) hints.push("r resume");
|
|
24235
24389
|
if (selectedEntry?.kind === "agent" && selectedEntry.status === "paused") {
|
|
24236
24390
|
hints.push("x abandon");
|
|
@@ -24238,7 +24392,10 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24238
24392
|
hints.push("\u2190/Esc close");
|
|
24239
24393
|
} else {
|
|
24240
24394
|
hints.push("\u2190 back", "Esc close");
|
|
24241
|
-
if (selectedEntry
|
|
24395
|
+
if (selectedEntry && isStoppableEntry(selectedEntry)) {
|
|
24396
|
+
hints.push("x stop");
|
|
24397
|
+
}
|
|
24398
|
+
if (selectedWorkflowPauseHint) hints.push(selectedWorkflowPauseHint);
|
|
24242
24399
|
if (selectedEntryAllowsResume) hints.push("r resume");
|
|
24243
24400
|
if (selectedEntry?.kind === "agent" && selectedEntry.status === "paused") {
|
|
24244
24401
|
hints.push("x abandon");
|
|
@@ -24298,7 +24455,9 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24298
24455
|
isActive: saveActive,
|
|
24299
24456
|
onClose: () => setSaveActive(false)
|
|
24300
24457
|
}
|
|
24301
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { marginTop: 1, paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.
|
|
24458
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { marginTop: 1, paddingX: 1, children: pauseRejected && pauseRejected.entryKey === selectedEntryKey ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.status.warning, children: t(
|
|
24459
|
+
"Pause/resume was rejected; the workflow state changed. Try again."
|
|
24460
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: hints.join(" \xB7 ") }) })
|
|
24302
24461
|
]
|
|
24303
24462
|
}
|
|
24304
24463
|
);
|
|
@@ -25160,7 +25319,7 @@ function SuggestionsDisplay({
|
|
|
25160
25319
|
{
|
|
25161
25320
|
...mode === "slash" || suggestion.description ? { width: labelColumnWidth, flexShrink: 0 } : { flexShrink: 1 },
|
|
25162
25321
|
children: /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(Box_default, { children: [
|
|
25163
|
-
labelElement,
|
|
25322
|
+
/* @__PURE__ */ (0, import_jsx_runtime103.jsx)(Box_default, { flexShrink: 0, children: labelElement }),
|
|
25164
25323
|
suggestion.argumentHint && /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
25165
25324
|
" ",
|
|
25166
25325
|
suggestion.argumentHint
|
|
@@ -29927,7 +30086,7 @@ ${currentText}`);
|
|
|
29927
30086
|
resetEscapeState();
|
|
29928
30087
|
return true;
|
|
29929
30088
|
}
|
|
29930
|
-
if (!isAttachmentMode && uiState.messageQueue.length > 0) {
|
|
30089
|
+
if (!isAttachmentMode && uiState.messageQueue.length > 0 && uiState.streamingState !== "responding" /* Responding */) {
|
|
29931
30090
|
if (popQueueIntoInput()) {
|
|
29932
30091
|
resetEscapeState();
|
|
29933
30092
|
return true;
|
|
@@ -30731,9 +30890,11 @@ function hasPendingApproval(entries) {
|
|
|
30731
30890
|
__name(hasPendingApproval, "hasPendingApproval");
|
|
30732
30891
|
function getPillLabel(entries) {
|
|
30733
30892
|
if (entries.length === 0) return "";
|
|
30734
|
-
const
|
|
30735
|
-
|
|
30736
|
-
|
|
30893
|
+
const live = entries.filter(
|
|
30894
|
+
(e) => e.status === "running" || e.kind === "workflow" && (e.status === "pausing" || e.status === "paused")
|
|
30895
|
+
);
|
|
30896
|
+
if (live.length > 0) {
|
|
30897
|
+
return groupAndFormat(live);
|
|
30737
30898
|
}
|
|
30738
30899
|
const pausedAgents = entries.filter(
|
|
30739
30900
|
(e) => e.kind === "agent" && e.status === "paused"
|
|
@@ -30781,9 +30942,9 @@ var BackgroundTasksPill = /* @__PURE__ */ __name(() => {
|
|
|
30781
30942
|
const label = getPillLabel(entries);
|
|
30782
30943
|
const needsApproval = hasPendingApproval(entries);
|
|
30783
30944
|
return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(import_jsx_runtime112.Fragment, { children: [
|
|
30784
|
-
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.secondary, children: " \xB7 " }),
|
|
30785
|
-
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { inverse: pillFocused, children: label }),
|
|
30786
|
-
needsApproval && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.status.warning, children: ` \u26A0 ${t("needs approval")}` })
|
|
30945
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: " \xB7 " }),
|
|
30946
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { inverse: pillFocused, wrap: "truncate", children: label }),
|
|
30947
|
+
needsApproval && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("needs approval")}` })
|
|
30787
30948
|
] });
|
|
30788
30949
|
}, "BackgroundTasksPill");
|
|
30789
30950
|
|
|
@@ -30843,8 +31004,8 @@ var MCPHealthPill = /* @__PURE__ */ __name(() => {
|
|
|
30843
31004
|
const label = getPillLabel2(snapshot);
|
|
30844
31005
|
if (!label) return null;
|
|
30845
31006
|
return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(import_jsx_runtime113.Fragment, { children: [
|
|
30846
|
-
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.text.secondary, children: " \xB7 " }),
|
|
30847
|
-
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.status.warning, children: label })
|
|
31007
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: " \xB7 " }),
|
|
31008
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: label })
|
|
30848
31009
|
] });
|
|
30849
31010
|
}, "MCPHealthPill");
|
|
30850
31011
|
|
|
@@ -31620,7 +31781,10 @@ var Footer = /* @__PURE__ */ __name(() => {
|
|
|
31620
31781
|
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { wrap: "truncate", children: leftBottomContent }),
|
|
31621
31782
|
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(BackgroundTasksPill, {}),
|
|
31622
31783
|
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(MCPHealthPill, {}),
|
|
31623
|
-
|
|
31784
|
+
uiState.messageQueue.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: ` \u23F3 ${t("{{count}} queued", {
|
|
31785
|
+
count: String(uiState.messageQueue.length)
|
|
31786
|
+
})}` }),
|
|
31787
|
+
!uiState.isSkillReviewDialogOpen && (uiState.skillReviewPending?.skills.length ?? 0) > 0 && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("{{count}} skill(s) pending review", {
|
|
31624
31788
|
count: String(uiState.skillReviewPending.skills.length)
|
|
31625
31789
|
})}` })
|
|
31626
31790
|
] })
|
|
@@ -35023,6 +35187,7 @@ var useSlashCommandProcessor = /* @__PURE__ */ __name((config, settings, history
|
|
|
35023
35187
|
const combinedContent = [];
|
|
35024
35188
|
let firstModelOverride;
|
|
35025
35189
|
const onCompleteCallbacks = [];
|
|
35190
|
+
let refreshContextFilesOnWrite = false;
|
|
35026
35191
|
for (const skill of stackedResult.skills) {
|
|
35027
35192
|
if (!skill.action) continue;
|
|
35028
35193
|
const skillContext = {
|
|
@@ -35037,6 +35202,9 @@ var useSlashCommandProcessor = /* @__PURE__ */ __name((config, settings, history
|
|
|
35037
35202
|
if (skillResult?.type === "submit_prompt") {
|
|
35038
35203
|
combinedContent.push(skillResult.content);
|
|
35039
35204
|
firstModelOverride ??= skillResult.modelOverride;
|
|
35205
|
+
refreshContextFilesOnWrite ||= Boolean(
|
|
35206
|
+
skillResult.refreshContextFilesOnWrite
|
|
35207
|
+
);
|
|
35040
35208
|
if (skillResult.onComplete) {
|
|
35041
35209
|
onCompleteCallbacks.push(skillResult.onComplete);
|
|
35042
35210
|
}
|
|
@@ -35077,6 +35245,7 @@ var useSlashCommandProcessor = /* @__PURE__ */ __name((config, settings, history
|
|
|
35077
35245
|
type: "submit_prompt",
|
|
35078
35246
|
content: mergedContent,
|
|
35079
35247
|
...firstModelOverride ? { modelOverride: firstModelOverride } : {},
|
|
35248
|
+
...refreshContextFilesOnWrite ? { refreshContextFilesOnWrite: true } : {},
|
|
35080
35249
|
...onCompleteCallbacks.length ? {
|
|
35081
35250
|
onComplete: /* @__PURE__ */ __name(async () => {
|
|
35082
35251
|
for (const cb of onCompleteCallbacks) await cb();
|
|
@@ -35374,7 +35543,8 @@ var useSlashCommandProcessor = /* @__PURE__ */ __name((config, settings, history
|
|
|
35374
35543
|
type: "submit_prompt",
|
|
35375
35544
|
content,
|
|
35376
35545
|
onComplete: result.onComplete,
|
|
35377
|
-
modelOverride: result.modelOverride
|
|
35546
|
+
modelOverride: result.modelOverride,
|
|
35547
|
+
refreshContextFilesOnWrite: result.refreshContextFilesOnWrite
|
|
35378
35548
|
};
|
|
35379
35549
|
}
|
|
35380
35550
|
case "confirm_shell_commands": {
|
|
@@ -35858,7 +36028,7 @@ ${finalOutput}`;
|
|
|
35858
36028
|
finalStatus = "Canceled" /* Canceled */;
|
|
35859
36029
|
finalOutput = `Command was cancelled.
|
|
35860
36030
|
${finalOutput}`;
|
|
35861
|
-
} else if (result2.signal) {
|
|
36031
|
+
} else if (isSignalTermination(result2.signal)) {
|
|
35862
36032
|
finalStatus = "Error" /* Error */;
|
|
35863
36033
|
finalOutput = `Command terminated by signal: ${result2.signal}.
|
|
35864
36034
|
${finalOutput}`;
|
|
@@ -36828,6 +36998,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
36828
36998
|
);
|
|
36829
36999
|
const processedMemoryToolsRef = (0, import_react135.useRef)(/* @__PURE__ */ new Set());
|
|
36830
37000
|
const submitPromptOnCompleteRef = (0, import_react135.useRef)(null);
|
|
37001
|
+
const refreshContextFilesOnWriteRef = (0, import_react135.useRef)(false);
|
|
36831
37002
|
const modelOverrideRef = (0, import_react135.useRef)(void 0);
|
|
36832
37003
|
const inlineModelOverrideActiveRef = (0, import_react135.useRef)(false);
|
|
36833
37004
|
const canUseToolResultFullTurnModel = (0, import_react135.useCallback)((model) => {
|
|
@@ -37183,6 +37354,9 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
37183
37354
|
case "submit_prompt": {
|
|
37184
37355
|
localQueryToSendToGemini = slashCommandResult.content;
|
|
37185
37356
|
submitPromptOnCompleteRef.current = slashCommandResult.onComplete ?? null;
|
|
37357
|
+
refreshContextFilesOnWriteRef.current = Boolean(
|
|
37358
|
+
slashCommandResult.refreshContextFilesOnWrite
|
|
37359
|
+
);
|
|
37186
37360
|
if (slashCommandResult.modelOverride) {
|
|
37187
37361
|
if (isInlineModelOverrideAllowed(
|
|
37188
37362
|
config,
|
|
@@ -38553,6 +38727,9 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
38553
38727
|
duplicateProviderToolCallResponseIdsRef.current.clear();
|
|
38554
38728
|
pendingDuplicateToolResponsesRef.current = [];
|
|
38555
38729
|
immediateDuplicateToolResponsesRef.current = null;
|
|
38730
|
+
if (submitType !== "retry" /* Retry */ && submitType !== "notification" /* Notification */ && submitType !== "goal" /* Goal */) {
|
|
38731
|
+
refreshContextFilesOnWriteRef.current = false;
|
|
38732
|
+
}
|
|
38556
38733
|
}
|
|
38557
38734
|
const userMessageTimestamp = Date.now();
|
|
38558
38735
|
if (submitType === "retry" /* Retry */) {
|
|
@@ -39170,15 +39347,35 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
39170
39347
|
"runtime"
|
|
39171
39348
|
);
|
|
39172
39349
|
}
|
|
39173
|
-
const
|
|
39174
|
-
|
|
39175
|
-
completedAndReadyToSubmitTools.map((toolCall) => ({
|
|
39350
|
+
const memoryWriteCandidates = completedAndReadyToSubmitTools.map(
|
|
39351
|
+
(toolCall) => ({
|
|
39176
39352
|
toolName: toolCall.request.name,
|
|
39177
39353
|
args: toolCall.request.args,
|
|
39178
39354
|
status: toolCall.status
|
|
39179
|
-
})
|
|
39355
|
+
})
|
|
39356
|
+
);
|
|
39357
|
+
const didRefreshManagedMemory = await refreshMemoryAfterManagedWrite(
|
|
39358
|
+
config,
|
|
39359
|
+
memoryWriteCandidates,
|
|
39180
39360
|
{ logContext: "interactive memory tool batch" }
|
|
39181
39361
|
);
|
|
39362
|
+
if (refreshContextFilesOnWriteRef.current) {
|
|
39363
|
+
const matchedContextFileWrite = didWriteProjectContextFile(
|
|
39364
|
+
memoryWriteCandidates,
|
|
39365
|
+
config.getProjectRoot()
|
|
39366
|
+
);
|
|
39367
|
+
debugLogger36.debug(
|
|
39368
|
+
`Checked marked context-file memory tool batch; matched=${matchedContextFileWrite}`
|
|
39369
|
+
);
|
|
39370
|
+
if (matchedContextFileWrite) {
|
|
39371
|
+
debugLogger36.debug(
|
|
39372
|
+
"Refreshing memory after context-file memory write"
|
|
39373
|
+
);
|
|
39374
|
+
await refreshMemoryInstruction(config, {
|
|
39375
|
+
logContext: "interactive context-file memory tool batch"
|
|
39376
|
+
});
|
|
39377
|
+
}
|
|
39378
|
+
}
|
|
39182
39379
|
if (newSuccessfulMemorySaves.length > 0) {
|
|
39183
39380
|
if (!didRefreshManagedMemory) {
|
|
39184
39381
|
void performMemoryRefresh().catch((err) => {
|
|
@@ -46774,6 +46971,20 @@ ${error.stack ?? ""}`
|
|
|
46774
46971
|
Rendering error${loggedHint}: ${sanitizeTerminalText(renderError.message)}`
|
|
46775
46972
|
);
|
|
46776
46973
|
}
|
|
46974
|
+
try {
|
|
46975
|
+
if (process.stdout.isTTY && config.getChatRecordingService()) {
|
|
46976
|
+
const sessionId = config.getSessionId();
|
|
46977
|
+
const sessionFile = config.getTranscriptPath();
|
|
46978
|
+
if (isValidSessionId(sessionId) && (await stat2(sessionFile)).size > 0) {
|
|
46979
|
+
writeStdoutLine(
|
|
46980
|
+
`
|
|
46981
|
+
${t("To continue this session, run")}
|
|
46982
|
+
qwen --resume ${sessionId}`
|
|
46983
|
+
);
|
|
46984
|
+
}
|
|
46985
|
+
}
|
|
46986
|
+
} catch {
|
|
46987
|
+
}
|
|
46777
46988
|
});
|
|
46778
46989
|
}
|
|
46779
46990
|
__name(startInteractiveUI, "startInteractiveUI");
|