@qwen-code/qwen-code 0.21.7-nightly.20260808.4ec0371e6 → 0.21.8
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 +12 -8
- package/bundled/qc-helper/docs/features/commands.md +1 -1
- package/bundled/qc-helper/docs/features/hooks.md +50 -0
- package/bundled/qc-helper/docs/integration-jetbrains.md +1 -0
- package/bundled/qc-helper/docs/qwen-serve.md +1 -1
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -36
- package/bundled/review/SKILL.md +24 -5
- package/chunks/{MaxSizedBox-COZBVNCI.js → MaxSizedBox-7PM6BGJ5.js} +13 -10
- package/chunks/{StandaloneSessionPicker-3OF2FS6S.js → StandaloneSessionPicker-3UQHM7GV.js} +29 -26
- package/chunks/{acp-startup-profiler-ORIQ2CCQ.js → acp-startup-profiler-B5BYAMYQ.js} +2 -2
- package/chunks/{acpAgent-3JCJ6KWG.js → acpAgent-5UWLFV6V.js} +369 -148
- package/chunks/{agent-DBSC47CD.js → agent-624T2BLO.js} +13 -10
- package/chunks/{agent-headless-ZJHZ7I3S.js → agent-headless-2EE5J2KX.js} +13 -10
- package/chunks/{bridge-NFBYT4ZI.js → bridge-JENKGFFP.js} +15 -12
- package/chunks/{ca-NYKNH222.js → ca-ZLKAB4K3.js} +6 -0
- package/chunks/{channel-management-service-LXSJXQGM.js → channel-management-service-DDWUPHMU.js} +1 -1
- package/chunks/{channel-settings-store-LABKDKSI.js → channel-settings-store-SA6JZSPH.js} +21 -18
- package/chunks/{channel-worker-group-MTW2AGT3.js → channel-worker-group-E67EN3RV.js} +2 -2
- package/chunks/{channel-worker-manager-UU6PTQSI.js → channel-worker-manager-SW4C45CF.js} +2 -2
- package/chunks/{chunk-CJXIIILK.js → chunk-2FRY5CRX.js} +1 -1
- package/chunks/{chunk-HKCYGZZ4.js → chunk-2ILAOM2I.js} +30 -13
- package/chunks/{chunk-LDY4J4G6.js → chunk-2M4K4KYS.js} +176 -119
- package/chunks/{chunk-22NBYCPD.js → chunk-3P2LV43B.js} +1 -1
- package/chunks/{chunk-XCG76UE6.js → chunk-3PY4LPJF.js} +17 -129
- package/chunks/{chunk-26ISE5EG.js → chunk-3SE7J4DR.js} +3 -3
- package/chunks/{chunk-APMRLB2H.js → chunk-3WNQOYHQ.js} +12 -12
- package/chunks/{chunk-O7VQ3F22.js → chunk-4ALIARFY.js} +1 -1
- package/chunks/{chunk-FJ6YHWHZ.js → chunk-4DU3NCHG.js} +47 -54
- package/chunks/{chunk-BGG4MBYD.js → chunk-4PYCZH2V.js} +4 -187
- package/chunks/{chunk-3HS6Y4UA.js → chunk-4WU6NY7F.js} +2 -2
- package/chunks/{chunk-JRIJOZXO.js → chunk-5ZGR6RKJ.js} +3 -3
- package/chunks/{chunk-3K7FH2KQ.js → chunk-67N6HB5H.js} +1310 -171
- package/chunks/{chunk-ZQGHESAS.js → chunk-6TR7CFXH.js} +1 -1
- package/chunks/{chunk-EZ53KMUN.js → chunk-757GB46F.js} +1 -1
- package/chunks/{chunk-5YT3Y33M.js → chunk-77QVBFCU.js} +3 -3
- package/chunks/{chunk-5PGKKSO6.js → chunk-7DVT4LVV.js} +35 -28
- package/chunks/{chunk-IMK3SJ43.js → chunk-7VUERJHS.js} +1066 -597
- package/chunks/{chunk-KPMB4JEZ.js → chunk-B52AWKBB.js} +64 -20
- package/chunks/{chunk-R2KZWK5Z.js → chunk-BF224XHL.js} +2 -2
- package/chunks/{chunk-TSYIQDG7.js → chunk-BF52U4XJ.js} +1 -1
- package/chunks/{chunk-LDUGDB5H.js → chunk-C5VWPTGT.js} +1 -1
- package/chunks/{chunk-W7U4ESW2.js → chunk-CG3WBKJK.js} +1 -1
- package/chunks/chunk-COBO5EBO.js +135 -0
- package/chunks/{chunk-ACHMWGC5.js → chunk-DQSDACD2.js} +1 -1
- package/chunks/{chunk-VT3VNFVW.js → chunk-DX5W5AON.js} +2 -2
- package/chunks/{chunk-JACAHYEN.js → chunk-E4ZBKMSF.js} +4 -4
- package/chunks/{chunk-MV7VUCIG.js → chunk-EIVICVHM.js} +4 -4
- package/chunks/{chunk-YHEEE624.js → chunk-EN2TKTFH.js} +1 -1
- package/chunks/chunk-F6WFNA7U.js +22 -0
- package/chunks/{chunk-Z6W3XDLN.js → chunk-FN6YXJOP.js} +1 -1
- package/chunks/{chunk-BJKFFPX2.js → chunk-FWBXMANW.js} +3 -3
- package/chunks/{chunk-764F335K.js → chunk-FYAXKJK7.js} +314 -63
- package/chunks/{chunk-XIDHBXUI.js → chunk-GBDINRIL.js} +3 -3
- package/chunks/{chunk-Z5ZAWED3.js → chunk-GOEVOFQI.js} +3 -3
- package/chunks/{chunk-ZKUJ4AO7.js → chunk-GQCEQPYQ.js} +3 -3
- package/chunks/{chunk-BFSQBXHV.js → chunk-GXSNGY5M.js} +399 -534
- package/chunks/{chunk-3ARO4N5G.js → chunk-HA3SAB64.js} +22 -69
- package/chunks/{chunk-3ULCB3NE.js → chunk-HV76SFIA.js} +1 -1
- package/chunks/{chunk-LMEIS6WW.js → chunk-HWX5HPUG.js} +3 -3
- package/chunks/{chunk-VLFX3L3X.js → chunk-IBYULW65.js} +6 -6
- package/chunks/{chunk-SDUDZNF4.js → chunk-IUQ52YJK.js} +1 -1
- package/chunks/{chunk-H2352CX2.js → chunk-IYES5WOT.js} +2 -2
- package/chunks/{chunk-CE5UCTKO.js → chunk-KAQCJO6Y.js} +1 -1
- package/chunks/{chunk-DPH3MUAP.js → chunk-KKDVZLGL.js} +1 -1
- package/chunks/{chunk-R574ATRM.js → chunk-M2PNLYGY.js} +41 -0
- package/chunks/{chunk-P7HUJDBZ.js → chunk-M3STHEMM.js} +11 -16
- package/chunks/{chunk-VDS2WYM5.js → chunk-NGYI5EF5.js} +2 -2
- package/chunks/{chunk-ALGGS7UH.js → chunk-NPQ5ZKRP.js} +82 -1
- package/chunks/{chunk-GUFY6D3E.js → chunk-NPUXXRJI.js} +1 -1
- package/chunks/{chunk-4Q6N3SNL.js → chunk-NVRDQFCX.js} +1 -1
- package/chunks/{chunk-77WOUGCA.js → chunk-OHKJVAKG.js} +7 -7
- package/chunks/{chunk-TAOSTUHI.js → chunk-PG62DFWD.js} +10 -10
- package/chunks/{chunk-REHWPCG2.js → chunk-PLFATELK.js} +1 -1
- package/chunks/{chunk-APNNM3JC.js → chunk-QGHSP65Z.js} +2 -2
- package/chunks/{chunk-HY2INPTA.js → chunk-QQWD7LZV.js} +4 -4
- package/chunks/{chunk-P74TZRXD.js → chunk-QXVSWG66.js} +1 -1
- package/chunks/{chunk-TX3KSSDN.js → chunk-S3Y3GBFD.js} +1 -1
- package/chunks/{chunk-B23P3YWE.js → chunk-SNRT2TJJ.js} +6 -23
- package/chunks/chunk-SR7RZ4MS.js +202 -0
- package/chunks/{chunk-F3LPXDJP.js → chunk-TE3ZAJE7.js} +13 -3
- package/chunks/{chunk-AB4A73VL.js → chunk-TKSZJ5BV.js} +1 -1
- package/chunks/{chunk-RZMGG3HP.js → chunk-U5SLIG7E.js} +1 -1
- package/chunks/chunk-UA5H3DS2.js +203 -0
- package/chunks/{chunk-JSJTZ6GO.js → chunk-VWMUDKLC.js} +3 -3
- package/chunks/{chunk-RGTB44BO.js → chunk-VXZ5HAOV.js} +1 -1
- package/chunks/{chunk-BCMJPTXV.js → chunk-WG6542MA.js} +1 -1
- package/chunks/{chunk-AG3P2RES.js → chunk-WV5J6Q6N.js} +1 -1
- package/chunks/{chunk-MIA37QO3.js → chunk-XHD7CRP2.js} +2 -2
- package/chunks/{chunk-KKRGVSHC.js → chunk-XZKQT2B2.js} +4 -4
- package/chunks/{chunk-4QJJHIZ5.js → chunk-Y4TETC74.js} +5 -5
- package/chunks/{chunk-QKJT5K4Q.js → chunk-YEF7XEO2.js} +3 -3
- package/chunks/{chunk-UKAYEQDU.js → chunk-YHJFF7KH.js} +131 -38
- package/chunks/{chunk-64YLXLMY.js → chunk-YOM7DEGB.js} +2 -2
- package/chunks/{chunk-BN3OROB3.js → chunk-ZCLLJARV.js} +9 -9
- package/chunks/{chunk-RFA6VDCR.js → chunk-ZHA242R4.js} +2 -2
- package/chunks/{chunk-L4OW63GW.js → chunk-ZPLALRXZ.js} +17 -9
- package/chunks/{computer-use-QLJ27OCZ.js → computer-use-ESQYJ3JY.js} +13 -10
- package/chunks/{config-utils-KIEXWA4F.js → config-utils-XQHBJP7G.js} +2 -2
- package/chunks/{contextCommand-JDTOJRBO.js → contextCommand-CX3YF4ZE.js} +15 -12
- package/chunks/{core-runtime-MZIAVYQC.js → core-runtime-DIAU7JMG.js} +13 -10
- package/chunks/{create-sub-session-YBBCNSHE.js → create-sub-session-HDPD6HOA.js} +13 -10
- package/chunks/{daemon-SCTQMM7Z.js → daemon-VZBGJUNL.js} +30 -0
- package/chunks/{daemon-status-provider-BZ7RD4ZJ.js → daemon-status-provider-H6O4UQ4F.js} +19 -16
- package/chunks/{daemon-trust-policy-2E4C3M7S.js → daemon-trust-policy-BNUXG6MT.js} +20 -17
- package/chunks/{daemon-trust-policy-monitor-UYLFH6RW.js → daemon-trust-policy-monitor-E4EQ7GF4.js} +20 -17
- package/chunks/{de-VL76CPLV.js → de-LIW4XVLN.js} +5 -0
- package/chunks/{deferred-core-runtime-6XZYMJZB.js → deferred-core-runtime-CBMSHPAU.js} +13 -10
- package/chunks/{dist-BATY7GI4.js → dist-EEEQGCZA.js} +731 -136
- package/chunks/{dist-26RK5XZO.js → dist-MKX5OSFF.js} +4 -3
- package/chunks/{earlyInputCapture-LATQCGDC.js → earlyInputCapture-UIOP7OIN.js} +13 -10
- package/chunks/{edit-72DP57CD.js → edit-ITMZYFKA.js} +13 -10
- package/chunks/{en-IRJ2WN5T.js → en-SY5GTIGX.js} +6 -0
- package/chunks/{enter-worktree-B4FY2ZPP.js → enter-worktree-S4PL5UV6.js} +13 -10
- package/chunks/{enterPlanMode-TQBWGCPL.js → enterPlanMode-YV52NNJT.js} +13 -10
- package/chunks/{environment-MOGZGZDS.js → environment-NGOWPRZV.js} +17 -14
- package/chunks/{errors-PGON5GH7.js → errors-BU26DTDX.js} +15 -12
- package/chunks/{exit-worktree-EYUD4YP2.js → exit-worktree-XRM6LH5F.js} +13 -10
- package/chunks/{exitPlanMode-4Q7BSQXR.js → exitPlanMode-ZLI5F7KR.js} +13 -10
- package/chunks/{fast-path-WI7D5MER.js → fast-path-UJWORIED.js} +3 -3
- package/chunks/{fast-path-settings-YBRL24DB.js → fast-path-settings-37WQD5B2.js} +6 -3
- package/chunks/{fr-GK3HQYVB.js → fr-RQFO7U4P.js} +5 -0
- package/chunks/{gemini-ZXURGM6Y.js → gemini-ZSKNDUMU.js} +55 -48
- package/chunks/{geminiContentGenerator-EOODO75Y.js → geminiContentGenerator-YGEXOEKD.js} +1 -1
- package/chunks/{glob-QNRIUOS6.js → glob-7KZG44BR.js} +13 -10
- package/chunks/{goal-tools-QSYW65HV.js → goal-tools-PXWN5VK3.js} +3 -1
- package/chunks/{grep-56MTW67B.js → grep-6ZFC7RJ5.js} +13 -10
- package/chunks/{handleAutoUpdate-XGFIPVT4.js → handleAutoUpdate-KSEL3TQS.js} +17 -14
- package/chunks/{i18n-RZB35L4B.js → i18n-ZIUXBW5V.js} +14 -11
- package/chunks/{image-gen-OE2EEKN3.js → image-gen-AUIZJJNK.js} +6 -4
- package/chunks/{initializer-YPVMTMKD.js → initializer-7AHY3N6Q.js} +20 -17
- package/chunks/{installationInfo-ZTMTMYNW.js → installationInfo-VGBXMYLY.js} +14 -11
- package/chunks/{ja-3FA46IKD.js → ja-KOZKHJHZ.js} +5 -0
- package/chunks/{list-NIW3WID5.js → list-PSFKQHLB.js} +23 -20
- package/chunks/{loadedSettingsAdapter-VSLILTOZ.js → loadedSettingsAdapter-FTMRCTOF.js} +20 -17
- package/chunks/{loggingContentGenerator-KFZYVAGV.js → loggingContentGenerator-MZAN52UV.js} +5 -3
- package/chunks/{managed-npm-update-WHTA2K5V.js → managed-npm-update-O4NHK45X.js} +14 -11
- package/chunks/{mcp-7KGK3CS3.js → mcp-6CFP2AYQ.js} +20 -17
- package/chunks/{monitor-FDWEJQWP.js → monitor-DAKD6OU4.js} +13 -10
- package/chunks/{nonInteractiveCli-2MVJ6TCS.js → nonInteractiveCli-RC7VIUZL.js} +49 -44
- package/chunks/{notebook-edit-ZUVK2XWE.js → notebook-edit-474DPMRL.js} +13 -10
- package/chunks/{openaiContentGenerator-TNLWOPH5.js → openaiContentGenerator-2NFY2MWO.js} +6 -3
- package/chunks/{pidfile-BB6SKPH2.js → pidfile-KBFVDNQP.js} +13 -10
- package/chunks/{processUtils-WKHJOPDH.js → processUtils-6GRYH4Y3.js} +2 -2
- package/chunks/{pt-3AOBKPIJ.js → pt-U6AOCTMF.js} +5 -0
- package/chunks/{qwenContentGenerator-FZS2DYF7.js → qwenContentGenerator-KAHU6IZY.js} +14 -11
- package/chunks/{qwenOAuth2-UYMYRXBB.js → qwenOAuth2-RRQTCP4W.js} +6 -4
- package/chunks/{read-file-FMTE6LPA.js → read-file-3M6WXDXP.js} +4 -2
- package/chunks/{resumeHistoryUtils-Z34RCZFF.js → resumeHistoryUtils-D6TAY3HX.js} +16 -13
- package/chunks/{ripGrep-DUIYUZGM.js → ripGrep-PLPENT3E.js} +13 -10
- package/chunks/{ru-VJRAMC4W.js → ru-CMX4UMYP.js} +5 -0
- package/chunks/{run-qwen-serve-KOHHR3F4.js → run-qwen-serve-ZAFIJKJC.js} +93 -40
- package/chunks/{runtime-K4NTZSAU.js → runtime-ZED7CYOZ.js} +23 -20
- package/chunks/{scheduler-6G6AMURS.js → scheduler-MD3AL2W5.js} +13 -10
- package/chunks/{serve-NMG2TM5K.js → serve-E3VUDRZN.js} +20 -17
- package/chunks/{server-FS7KDELS.js → server-OWMEMAKR.js} +381 -192
- package/chunks/{session-XZADUVKJ.js → session-HZ57QK7K.js} +141 -81
- package/chunks/{settings-G75R6FOA.js → settings-V7BR3RKP.js} +19 -16
- package/chunks/{shell-3D3PMQHE.js → shell-23OMNMW6.js} +13 -10
- package/chunks/{skill-TSEYMVQ2.js → skill-6HBDYZRS.js} +4 -2
- package/chunks/{skill-settings-HJC2CPBJ.js → skill-settings-HWJLTU7M.js} +19 -16
- package/chunks/{spawnChannel-YWCN74G5.js → spawnChannel-N6KKUW5B.js} +13 -10
- package/chunks/{standalone-update-HLYOLX6V.js → standalone-update-QGIKHATD.js} +15 -12
- package/chunks/{startInteractiveUI-ROUIQ5KU.js → startInteractiveUI-GX2CRL42.js} +269 -118
- package/chunks/{team-create-OTP5SSB2.js → team-create-CFFKU7KL.js} +13 -10
- package/chunks/{team-plan-approval-TQX5TMXU.js → team-plan-approval-6EFOKR6A.js} +13 -10
- package/chunks/{terminal-image-renderer-KF3GKNWW.js → terminal-image-renderer-TLDNACQY.js} +13 -10
- package/chunks/{theme-manager-XVWAAGAM.js → theme-manager-5LJ3H7VO.js} +13 -10
- package/chunks/{tool-search-7N4D4O56.js → tool-search-UJV3A24H.js} +4 -2
- package/chunks/{total-session-admission-ZQ4VKIRW.js → total-session-admission-D63QYXGO.js} +15 -12
- package/chunks/{trustedFolders-4XYFPWVV.js → trustedFolders-KZCOB53W.js} +17 -12
- package/chunks/{update-relaunch-L4GSBLUU.js → update-relaunch-IFILM3SA.js} +5 -5
- package/chunks/{updateCheck-PCUTVRFE.js → updateCheck-YZ2CRCFC.js} +16 -13
- package/chunks/{useAutoAcceptIndicator-WMXY7MND.js → useAutoAcceptIndicator-AXEVNA3Q.js} +22 -19
- package/chunks/{validateNonInterActiveAuth-5S3U2D56.js → validateNonInterActiveAuth-3WTOJFWA.js} +44 -41
- package/chunks/{version-P57IQU2T.js → version-GXK7OHZY.js} +1 -1
- package/chunks/{web-fetch-5ZLLLCDD.js → web-fetch-ILB4GAVR.js} +10 -6
- package/chunks/{web-search-NELKANTW.js → web-search-HKRPGPZZ.js} +5 -3
- package/chunks/{workflow-RXKBF3LO.js → workflow-FXIPRQQA.js} +735 -134
- package/chunks/{workspace-providers-status-HAEMNAWC.js → workspace-providers-status-NYHC7HSR.js} +22 -19
- package/chunks/{workspace-registration-store-U3U3YM6V.js → workspace-registration-store-AKEB7OMW.js} +1 -1
- package/chunks/{workspace-registry-ZFP33GVB.js → workspace-registry-CDAS5TVZ.js} +15 -12
- package/chunks/{workspace-service-QMISJBMA.js → workspace-service-PAMUKMAV.js} +23 -20
- package/chunks/{workspace-skills-status-K7EOUGXL.js → workspace-skills-status-YQSHCCMS.js} +20 -17
- package/chunks/{workspace-trust-reconciler-BFPKULDZ.js → workspace-trust-reconciler-RPTXOIY2.js} +22 -19
- package/chunks/{write-file-2F76RRFE.js → write-file-CGS57TS4.js} +13 -10
- 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-DPR22XWY.js → zoom-image-E7D72GYV.js} +4 -2
- 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-CunFPPcQ.js → arc-DybZaz32.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-D3SqCgeM.js → architectureDiagram-3BPJPVTR-jN3qBd19.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CPRx90S_.js → blockDiagram-GPEHLZMM-Ct5DZPrj.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-CahP9Ue4.js → c4Diagram-AAUBKEIU-CUAFMlUG.js} +1 -1
- package/web-shell/assets/channel-BMwLrwLW.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DckIWZ12.js → chunk-2J33WTMH-CuV8n90B.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-D2Kfctyn.js → chunk-4BX2VUAB-BUzl_kls.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DkI11FTX.js → chunk-55IACEB6-BnDBLX6A.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-rR-TSCIi.js → chunk-727SXJPM-B83uTOjm.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DFGKcGRO.js → chunk-AQP2D5EJ-DM3HLgpT.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CjWqcTPE.js → chunk-FMBD7UC4-CSQ5hgyb.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-RXe-87UV.js → chunk-ND2GUHAM-BWOF4SxX.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-Dz0c_Yrn.js → chunk-QZHKN3VN-BsOH9LMi.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BGDv98jY.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BGDv98jY.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-ZHF0-jvV.js → cose-bilkent-S5V4N54A-IENqH2iJ.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-7Umz_ygJ.js → dagre-BM42HDAG--dyzDTGo.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-DomN8nxq.js → diagram-2AECGRRQ-BE7Dcqof.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-eebvj2OL.js → diagram-5GNKFQAL-Cr8-5OTj.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-IR1mmn9d.js → diagram-KO2AKTUF-Bzey3uAY.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-CKysx5KF.js → diagram-LMA3HP47-sErl28Xb.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-cBy5puHn.js → diagram-OG6HWLK6-Dq30ATIo.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-B5RJagPG.js → erDiagram-TEJ5UH35-BkCoEfVW.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CfHgDmPg.js → flowDiagram-I6XJVG4X-DHwO0rrI.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DUfFF5nb.js → ganttDiagram-6RSMTGT7-s7vAPxWq.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-M9dt57k5.js → gitGraphDiagram-PVQCEYII-CQxhwPOU.js} +1 -1
- package/web-shell/assets/{index-B8e-CkuC.css → index-Bckpjr-I.css} +1 -1
- package/web-shell/assets/{index-CKjO4myk.js → index-CF4wApWp.js} +1 -1
- package/web-shell/assets/{index-Dc-fTO0V.js → index-DwEr9HEW.js} +316 -316
- package/web-shell/assets/{infoDiagram-5YYISTIA-CTKMmIro.js → infoDiagram-5YYISTIA-BnFrD0bq.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DJIJDP4s.js → ishikawaDiagram-YF4QCWOH-Bf9zK5NK.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DgRnvn6S.js → journeyDiagram-JHISSGLW-CyGAhsxi.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-VUwO8yrg.js → kanban-definition-UN3LZRKU-CbsK5akB.js} +1 -1
- package/web-shell/assets/{linear-BCvgV5I_.js → linear-cQsF4P8D.js} +1 -1
- package/web-shell/assets/{mermaid.core-mv_kVV6q.js → mermaid.core-Z4HVqrKY.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-sfnjMlOd.js → mindmap-definition-RKZ34NQL-CYnrBo_f.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BlhICse4.js → pieDiagram-4H26LBE5-CBzOfhrs.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BgTQzwen.js → quadrantDiagram-W4KKPZXB-D4LK1Ebn.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CZ-FTrrN.js → requirementDiagram-4Y6WPE33-Bzti2Lcj.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-G5Wp_jn3.js → sankeyDiagram-5OEKKPKP-yTBw5Z2s.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-C8MKZ3i1.js → sequenceDiagram-3UESZ5HK-D07UVRiZ.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-Bo0ZDm7y.js → stateDiagram-AJRCARHV-UE_lHsTn.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DC6xgXjX.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-M3L9E01f.js → timeline-definition-PNZ67QCA-DRvYdiTs.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DD4eHCrm.js → vennDiagram-CIIHVFJN-CQLIXs0u.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DNEL_3g4.js → wardley-L42UT6IY-JZz_Xqse.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-q484OoqI.js → wardleyDiagram-YWT4CUSO--i7BiJwB.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-4mcNt1Yg.js → xychartDiagram-2RQKCTM6-Bkc-bW0S.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-ALFTV7GA.js +0 -92
- package/web-shell/assets/channel-zbv7GWAw.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-DSjLkJJZ.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DSjLkJJZ.js +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-31TSCPcH.js +0 -1
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
TUI_CHAT_RECORDING_FAILURE_MESSAGE,
|
|
8
8
|
reportChatRecordingFailureToAdapter
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-U5SLIG7E.js";
|
|
10
10
|
import {
|
|
11
11
|
StreamJsonOutputAdapter
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-77QVBFCU.js";
|
|
13
13
|
import {
|
|
14
14
|
startPostRenderPrefetches
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ZCLLJARV.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-3WNQOYHQ.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-7DVT4LVV.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-YOM7DEGB.js";
|
|
116
116
|
import {
|
|
117
117
|
KeypressProvider,
|
|
118
118
|
useFocus,
|
|
119
119
|
useKeypress,
|
|
120
120
|
useKeypressContext
|
|
121
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-QGHSP65Z.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-FWBXMANW.js";
|
|
138
138
|
import {
|
|
139
139
|
BuiltinCommandLoader,
|
|
140
140
|
BundledSkillLoader,
|
|
@@ -175,22 +175,23 @@ import {
|
|
|
175
175
|
resetBackgroundStateForSessionSwitch,
|
|
176
176
|
serializeUserPromptExpansionPrompt,
|
|
177
177
|
supportsMatchers
|
|
178
|
-
} from "./chunk-
|
|
178
|
+
} from "./chunk-YHJFF7KH.js";
|
|
179
179
|
import {
|
|
180
180
|
EXTENSION_RELOAD_FAILED_REASON,
|
|
181
181
|
ExtensionRefreshState,
|
|
182
182
|
appEvents,
|
|
183
183
|
cleanupReviewWorktreeLeases,
|
|
184
|
+
isValidSessionId,
|
|
184
185
|
loadHierarchicalGeminiMemory
|
|
185
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-7VUERJHS.js";
|
|
186
187
|
import {
|
|
187
188
|
getCommandDisplayName,
|
|
188
189
|
getCommandSourceBadge
|
|
189
|
-
} from "./chunk-
|
|
190
|
+
} from "./chunk-NVRDQFCX.js";
|
|
190
191
|
import {
|
|
191
192
|
computeSessionStats,
|
|
192
193
|
levelLabel
|
|
193
|
-
} from "./chunk-
|
|
194
|
+
} from "./chunk-XHD7CRP2.js";
|
|
194
195
|
import {
|
|
195
196
|
disableKittyProtocol,
|
|
196
197
|
isKittyProtocolEnabled,
|
|
@@ -209,10 +210,10 @@ import {
|
|
|
209
210
|
oscKittyNotify,
|
|
210
211
|
saveClipboardImage,
|
|
211
212
|
writeOsc52
|
|
212
|
-
} from "./chunk-
|
|
213
|
-
import "./chunk-
|
|
213
|
+
} from "./chunk-EN2TKTFH.js";
|
|
214
|
+
import "./chunk-GOEVOFQI.js";
|
|
214
215
|
import "./chunk-4WGODMVR.js";
|
|
215
|
-
import "./chunk-
|
|
216
|
+
import "./chunk-5ZGR6RKJ.js";
|
|
216
217
|
import "./chunk-KW7NOTN6.js";
|
|
217
218
|
import {
|
|
218
219
|
MaxSizedBox,
|
|
@@ -242,7 +243,7 @@ import {
|
|
|
242
243
|
import {
|
|
243
244
|
require_react
|
|
244
245
|
} from "./chunk-5QWWOFGG.js";
|
|
245
|
-
import "./chunk-
|
|
246
|
+
import "./chunk-BF224XHL.js";
|
|
246
247
|
import "./chunk-S6HYI3MF.js";
|
|
247
248
|
import {
|
|
248
249
|
MAX_INLINE_IMAGES_PER_ITEM,
|
|
@@ -251,31 +252,31 @@ import {
|
|
|
251
252
|
} from "./chunk-PJRW65JO.js";
|
|
252
253
|
import {
|
|
253
254
|
relaunchApp
|
|
254
|
-
} from "./chunk-
|
|
255
|
+
} from "./chunk-NPUXXRJI.js";
|
|
255
256
|
import {
|
|
256
257
|
setUpdateHandler
|
|
257
|
-
} from "./chunk-
|
|
258
|
-
import "./chunk-
|
|
258
|
+
} from "./chunk-GQCEQPYQ.js";
|
|
259
|
+
import "./chunk-ZHA242R4.js";
|
|
259
260
|
import "./chunk-YAF2MQZ6.js";
|
|
260
261
|
import {
|
|
261
262
|
AUTO_THEME_NAME,
|
|
262
263
|
DEFAULT_THEME,
|
|
263
264
|
themeManager
|
|
264
265
|
} from "./chunk-CTJLZLB5.js";
|
|
265
|
-
import "./chunk-
|
|
266
|
+
import "./chunk-HWX5HPUG.js";
|
|
266
267
|
import "./chunk-6H67XLET.js";
|
|
267
|
-
import "./chunk-
|
|
268
|
+
import "./chunk-EIVICVHM.js";
|
|
268
269
|
import {
|
|
269
270
|
getErrorMessage as getErrorMessage2
|
|
270
|
-
} from "./chunk-
|
|
271
|
+
} from "./chunk-IYES5WOT.js";
|
|
271
272
|
import {
|
|
272
273
|
openQwenAsrRealtimeStream,
|
|
273
274
|
openVoiceStream,
|
|
274
275
|
openVoiceStreamWithRetry
|
|
275
276
|
} from "./chunk-Q3JQ7OSU.js";
|
|
276
|
-
import "./chunk-
|
|
277
|
+
import "./chunk-2M4K4KYS.js";
|
|
277
278
|
import "./chunk-OWMAZHIX.js";
|
|
278
|
-
import "./chunk-
|
|
279
|
+
import "./chunk-4ALIARFY.js";
|
|
279
280
|
import {
|
|
280
281
|
cpLen,
|
|
281
282
|
cpSlice,
|
|
@@ -300,36 +301,36 @@ import "./chunk-RXFQM6FQ.js";
|
|
|
300
301
|
import "./chunk-HGCQ5SE7.js";
|
|
301
302
|
import {
|
|
302
303
|
isInlineModelOverrideAllowed
|
|
303
|
-
} from "./chunk-
|
|
304
|
+
} from "./chunk-GBDINRIL.js";
|
|
304
305
|
import {
|
|
305
306
|
assertVoiceBaseUrlNetworkAllowed,
|
|
306
307
|
isKeytermEcho,
|
|
307
308
|
isStreamingVoiceModel,
|
|
308
309
|
resolveVoiceStreamConfig,
|
|
309
310
|
transcribeVoiceAudio
|
|
310
|
-
} from "./chunk-
|
|
311
|
+
} from "./chunk-DQSDACD2.js";
|
|
311
312
|
import {
|
|
312
313
|
formatUnsupportedVoiceModelMessage,
|
|
313
314
|
isSelectableVoiceModel
|
|
314
|
-
} from "./chunk-
|
|
315
|
+
} from "./chunk-C5VWPTGT.js";
|
|
315
316
|
import "./chunk-AOHJKPKL.js";
|
|
316
317
|
import {
|
|
317
318
|
computeWorkspaceSkillListUpdates,
|
|
318
319
|
resolveSkillSettings,
|
|
319
320
|
skillSettingStrings
|
|
320
321
|
} from "./chunk-Z4X5MTRT.js";
|
|
321
|
-
import "./chunk-
|
|
322
|
+
import "./chunk-E4ZBKMSF.js";
|
|
322
323
|
import {
|
|
323
324
|
requestConsentInteractive,
|
|
324
325
|
requestConsentOrFail
|
|
325
|
-
} from "./chunk-
|
|
326
|
+
} from "./chunk-QQWD7LZV.js";
|
|
326
327
|
import "./chunk-57OAHC2Y.js";
|
|
327
328
|
import {
|
|
328
329
|
createLoadedSettingsAdapter
|
|
329
|
-
} from "./chunk-
|
|
330
|
+
} from "./chunk-WV5J6Q6N.js";
|
|
330
331
|
import {
|
|
331
332
|
getExtendedSystemInfo
|
|
332
|
-
} from "./chunk-
|
|
333
|
+
} from "./chunk-3SE7J4DR.js";
|
|
333
334
|
import {
|
|
334
335
|
formatDuration,
|
|
335
336
|
formatRelativeTime,
|
|
@@ -337,9 +338,9 @@ import {
|
|
|
337
338
|
} from "./chunk-3SH53ANB.js";
|
|
338
339
|
import "./chunk-MZSJ43WV.js";
|
|
339
340
|
import "./chunk-XCGIMOLN.js";
|
|
340
|
-
import "./chunk-
|
|
341
|
+
import "./chunk-QXVSWG66.js";
|
|
341
342
|
import "./chunk-KJZ26VBX.js";
|
|
342
|
-
import "./chunk-
|
|
343
|
+
import "./chunk-NGYI5EF5.js";
|
|
343
344
|
import "./chunk-V6WHFGST.js";
|
|
344
345
|
import "./chunk-DP3IHZGG.js";
|
|
345
346
|
import "./chunk-6PLDPT2C.js";
|
|
@@ -356,7 +357,7 @@ import "./chunk-DIWZNWZT.js";
|
|
|
356
357
|
import "./chunk-UDXSXLER.js";
|
|
357
358
|
import {
|
|
358
359
|
loadMcpApprovals
|
|
359
|
-
} from "./chunk-
|
|
360
|
+
} from "./chunk-Y4TETC74.js";
|
|
360
361
|
import {
|
|
361
362
|
CORRUPTED_SUFFIX,
|
|
362
363
|
SettingScope,
|
|
@@ -379,7 +380,7 @@ import {
|
|
|
379
380
|
settingExistsInScope,
|
|
380
381
|
validateSettingValue,
|
|
381
382
|
writeOutputLanguageAndRegisterPath
|
|
382
|
-
} from "./chunk-
|
|
383
|
+
} from "./chunk-OHKJVAKG.js";
|
|
383
384
|
import "./chunk-RKUWKYED.js";
|
|
384
385
|
import "./chunk-GOXKNSDZ.js";
|
|
385
386
|
import "./chunk-IDS7MSUP.js";
|
|
@@ -388,21 +389,21 @@ import {
|
|
|
388
389
|
localizeToolDisplayName,
|
|
389
390
|
t,
|
|
390
391
|
ta
|
|
391
|
-
} from "./chunk-
|
|
392
|
-
import "./chunk-
|
|
393
|
-
import "./chunk-
|
|
394
|
-
import "./chunk-
|
|
392
|
+
} from "./chunk-PG62DFWD.js";
|
|
393
|
+
import "./chunk-B52AWKBB.js";
|
|
394
|
+
import "./chunk-UA5H3DS2.js";
|
|
395
|
+
import "./chunk-IUQ52YJK.js";
|
|
395
396
|
import {
|
|
396
397
|
getCliVersion
|
|
397
|
-
} from "./chunk-
|
|
398
|
+
} from "./chunk-FN6YXJOP.js";
|
|
398
399
|
import "./chunk-VJNBRRZG.js";
|
|
399
400
|
import {
|
|
400
401
|
isWorkspaceTrusted,
|
|
401
402
|
loadTrustedFolders
|
|
402
|
-
} from "./chunk-
|
|
403
|
+
} from "./chunk-HA3SAB64.js";
|
|
403
404
|
import {
|
|
404
405
|
require_strip_json_comments
|
|
405
|
-
} from "./chunk-
|
|
406
|
+
} from "./chunk-NPQ5ZKRP.js";
|
|
406
407
|
import "./chunk-MR3PXB6E.js";
|
|
407
408
|
import "./chunk-XFSFZCM5.js";
|
|
408
409
|
import "./chunk-URK542T4.js";
|
|
@@ -475,6 +476,7 @@ import {
|
|
|
475
476
|
getWelcomeBackState,
|
|
476
477
|
glob,
|
|
477
478
|
ideContextStore,
|
|
479
|
+
isActiveWorkflowStatus,
|
|
478
480
|
isBinary,
|
|
479
481
|
isEditorAvailable,
|
|
480
482
|
isExtensionCommittedWithWarningsError,
|
|
@@ -484,6 +486,7 @@ import {
|
|
|
484
486
|
isSignalTermination,
|
|
485
487
|
isSuccessStatus,
|
|
486
488
|
isTerminalStatus,
|
|
489
|
+
isTerminalWorkflowStatus,
|
|
487
490
|
loadUsageHistory,
|
|
488
491
|
markDuplicateProviderToolCallResponseSent,
|
|
489
492
|
matchesAnyServerPattern,
|
|
@@ -511,7 +514,7 @@ import {
|
|
|
511
514
|
validateWorkflowName,
|
|
512
515
|
watchRepoBranch,
|
|
513
516
|
writeRuntimeStatus
|
|
514
|
-
} from "./chunk-
|
|
517
|
+
} from "./chunk-GXSNGY5M.js";
|
|
515
518
|
import "./chunk-GOFAQQZA.js";
|
|
516
519
|
import "./chunk-5M6IDOMF.js";
|
|
517
520
|
import "./chunk-TWPJO254.js";
|
|
@@ -523,7 +526,7 @@ import "./chunk-7MH4J33A.js";
|
|
|
523
526
|
import "./chunk-6PVPNMXU.js";
|
|
524
527
|
import {
|
|
525
528
|
resolveModelId
|
|
526
|
-
} from "./chunk-
|
|
529
|
+
} from "./chunk-VXZ5HAOV.js";
|
|
527
530
|
import "./chunk-IRH27ZC2.js";
|
|
528
531
|
import "./chunk-QHWCP53L.js";
|
|
529
532
|
import "./chunk-GNPNYXJB.js";
|
|
@@ -540,15 +543,15 @@ import {
|
|
|
540
543
|
HOOKS_CONFIG_FIELDS
|
|
541
544
|
} from "./chunk-GM463R2B.js";
|
|
542
545
|
import "./chunk-SEZ556DZ.js";
|
|
543
|
-
import "./chunk-
|
|
546
|
+
import "./chunk-2FRY5CRX.js";
|
|
544
547
|
import {
|
|
545
548
|
elapsedActiveTime,
|
|
546
549
|
goalRequiresExactPermit
|
|
547
|
-
} from "./chunk-
|
|
550
|
+
} from "./chunk-67N6HB5H.js";
|
|
548
551
|
import {
|
|
549
552
|
APPROVAL_MODES
|
|
550
553
|
} from "./chunk-WAUGQKUU.js";
|
|
551
|
-
import "./chunk-
|
|
554
|
+
import "./chunk-PLFATELK.js";
|
|
552
555
|
import "./chunk-L4N6TIP7.js";
|
|
553
556
|
import "./chunk-SAH4BD2J.js";
|
|
554
557
|
import {
|
|
@@ -571,11 +574,12 @@ import {
|
|
|
571
574
|
sanitizeForOsc,
|
|
572
575
|
supportsHyperlinks,
|
|
573
576
|
wrapForMultiplexer
|
|
574
|
-
} from "./chunk-
|
|
577
|
+
} from "./chunk-3P2LV43B.js";
|
|
575
578
|
import "./chunk-NAVJD2PQ.js";
|
|
576
|
-
import "./chunk-
|
|
577
|
-
import "./chunk-
|
|
579
|
+
import "./chunk-HV76SFIA.js";
|
|
580
|
+
import "./chunk-4PYCZH2V.js";
|
|
578
581
|
import "./chunk-P3QQPMQA.js";
|
|
582
|
+
import "./chunk-SR7RZ4MS.js";
|
|
579
583
|
import "./chunk-M6HMMKVG.js";
|
|
580
584
|
import {
|
|
581
585
|
REASONING_EFFORT_TIERS
|
|
@@ -624,11 +628,10 @@ import {
|
|
|
624
628
|
recordSkillInvocation,
|
|
625
629
|
removeMCPServerStatus,
|
|
626
630
|
removeMCPStatusChangeListener,
|
|
627
|
-
runSideQuery,
|
|
628
631
|
runVisionBridge,
|
|
629
632
|
shouldRunVisionBridge,
|
|
630
633
|
splitImageParts
|
|
631
|
-
} from "./chunk-
|
|
634
|
+
} from "./chunk-3PY4LPJF.js";
|
|
632
635
|
import "./chunk-WOJZWRAZ.js";
|
|
633
636
|
import "./chunk-VGC4I5JJ.js";
|
|
634
637
|
import {
|
|
@@ -638,14 +641,18 @@ import {
|
|
|
638
641
|
getUserAutoMemoryRoot,
|
|
639
642
|
isAnyAutoMemPath
|
|
640
643
|
} from "./chunk-FVKHVJZQ.js";
|
|
644
|
+
import {
|
|
645
|
+
runSideQuery
|
|
646
|
+
} from "./chunk-COBO5EBO.js";
|
|
641
647
|
import "./chunk-6ZRFAKXK.js";
|
|
642
648
|
import {
|
|
643
649
|
ToolNames,
|
|
644
650
|
isShellProgressData
|
|
645
651
|
} from "./chunk-PYQADEFD.js";
|
|
652
|
+
import "./chunk-M3STHEMM.js";
|
|
646
653
|
import {
|
|
647
654
|
MAINLINE_CODER_MODEL
|
|
648
|
-
} from "./chunk-
|
|
655
|
+
} from "./chunk-F6WFNA7U.js";
|
|
649
656
|
import "./chunk-46UV252V.js";
|
|
650
657
|
import {
|
|
651
658
|
DEFAULT_TOKEN_LIMIT
|
|
@@ -671,7 +678,7 @@ import {
|
|
|
671
678
|
tildeifyPath
|
|
672
679
|
} from "./chunk-OIVKILPI.js";
|
|
673
680
|
import "./chunk-VOQXFAY5.js";
|
|
674
|
-
import "./chunk-
|
|
681
|
+
import "./chunk-BF52U4XJ.js";
|
|
675
682
|
import {
|
|
676
683
|
finalizeStartupProfile,
|
|
677
684
|
profileCheckpoint
|
|
@@ -680,11 +687,12 @@ import "./chunk-Q7YDKOGY.js";
|
|
|
680
687
|
import {
|
|
681
688
|
registerCleanup,
|
|
682
689
|
runExitCleanup
|
|
683
|
-
} from "./chunk-
|
|
690
|
+
} from "./chunk-6TR7CFXH.js";
|
|
684
691
|
import {
|
|
685
692
|
clearScreen,
|
|
686
693
|
writeStderrLine,
|
|
687
|
-
writeStderrLineSafe
|
|
694
|
+
writeStderrLineSafe,
|
|
695
|
+
writeStdoutLine
|
|
688
696
|
} from "./chunk-KGJGEEVR.js";
|
|
689
697
|
import "./chunk-75DOP5OR.js";
|
|
690
698
|
import "./chunk-DMTGGOSA.js";
|
|
@@ -706,6 +714,7 @@ import {
|
|
|
706
714
|
|
|
707
715
|
// packages/cli/src/ui/startInteractiveUI.tsx
|
|
708
716
|
init_esbuild_shims();
|
|
717
|
+
import { stat as stat2 } from "node:fs/promises";
|
|
709
718
|
import { basename as basename4 } from "node:path";
|
|
710
719
|
var import_react163 = __toESM(require_react(), 1);
|
|
711
720
|
|
|
@@ -1086,8 +1095,8 @@ var RemoteInputWatcher = class {
|
|
|
1086
1095
|
}
|
|
1087
1096
|
startWatching() {
|
|
1088
1097
|
try {
|
|
1089
|
-
const
|
|
1090
|
-
this.bytesRead =
|
|
1098
|
+
const stat3 = statSync(this.filePath);
|
|
1099
|
+
this.bytesRead = stat3.size;
|
|
1091
1100
|
this.consumedPrefixHash = this.hashFilePrefix(this.bytesRead);
|
|
1092
1101
|
} catch {
|
|
1093
1102
|
this.bytesRead = 0;
|
|
@@ -1112,8 +1121,8 @@ var RemoteInputWatcher = class {
|
|
|
1112
1121
|
if (!this.active || this.reading) return Promise.resolve();
|
|
1113
1122
|
let currentSize;
|
|
1114
1123
|
try {
|
|
1115
|
-
const
|
|
1116
|
-
currentSize =
|
|
1124
|
+
const stat3 = statSync(this.filePath);
|
|
1125
|
+
currentSize = stat3.size;
|
|
1117
1126
|
} catch {
|
|
1118
1127
|
return Promise.resolve();
|
|
1119
1128
|
}
|
|
@@ -1697,19 +1706,19 @@ function readArtFile(absolutePath) {
|
|
|
1697
1706
|
}
|
|
1698
1707
|
const flags = typeof fs.constants.O_NOFOLLOW === "number" ? fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW : fs.constants.O_RDONLY;
|
|
1699
1708
|
fd = fs.openSync(absolutePath, flags);
|
|
1700
|
-
const
|
|
1701
|
-
if (!
|
|
1709
|
+
const stat3 = fs.fstatSync(fd);
|
|
1710
|
+
if (!stat3.isFile()) {
|
|
1702
1711
|
debugLogger3.warn(
|
|
1703
1712
|
`Ignoring ui.customAsciiArt: ${absolutePath} is not a regular file.`
|
|
1704
1713
|
);
|
|
1705
1714
|
return void 0;
|
|
1706
1715
|
}
|
|
1707
|
-
const size = Math.min(
|
|
1716
|
+
const size = Math.min(stat3.size, MAX_FILE_BYTES);
|
|
1708
1717
|
const buffer = Buffer.alloc(size);
|
|
1709
1718
|
fs.readSync(fd, buffer, 0, size, 0);
|
|
1710
|
-
if (
|
|
1719
|
+
if (stat3.size > MAX_FILE_BYTES) {
|
|
1711
1720
|
debugLogger3.warn(
|
|
1712
|
-
`Truncated ui.customAsciiArt at ${absolutePath}: file is ${
|
|
1721
|
+
`Truncated ui.customAsciiArt at ${absolutePath}: file is ${stat3.size} bytes, capped at ${MAX_FILE_BYTES}.`
|
|
1713
1722
|
);
|
|
1714
1723
|
}
|
|
1715
1724
|
return buffer.toString("utf8");
|
|
@@ -2512,6 +2521,14 @@ function findLastLE(arr, target) {
|
|
|
2512
2521
|
return upperBound(arr, target) - 1;
|
|
2513
2522
|
}
|
|
2514
2523
|
__name(findLastLE, "findLastLE");
|
|
2524
|
+
function firstIndexOfOffsetRun(offsets, index) {
|
|
2525
|
+
let i = index;
|
|
2526
|
+
while (i > 0 && offsets[i - 1] === offsets[i]) {
|
|
2527
|
+
i--;
|
|
2528
|
+
}
|
|
2529
|
+
return i;
|
|
2530
|
+
}
|
|
2531
|
+
__name(firstIndexOfOffsetRun, "firstIndexOfOffsetRun");
|
|
2515
2532
|
var VirtualizedListItem = (0, import_react10.memo)(
|
|
2516
2533
|
({
|
|
2517
2534
|
content,
|
|
@@ -2529,7 +2546,7 @@ var VirtualizedListItem = (0, import_react10.memo)(
|
|
|
2529
2546
|
onHeightChangeRef.current = onHeightChange;
|
|
2530
2547
|
(0, import_react10.useLayoutEffect)(() => {
|
|
2531
2548
|
const measuredHeight = itemRef.current?.yogaNode?.getComputedHeight() ?? height;
|
|
2532
|
-
if (hasMeasured
|
|
2549
|
+
if (hasMeasured) {
|
|
2533
2550
|
onHeightChangeRef.current(itemKey, measuredHeight);
|
|
2534
2551
|
}
|
|
2535
2552
|
}, [itemKey, height, hasMeasured, content]);
|
|
@@ -2649,10 +2666,11 @@ function VirtualizedList(props, ref) {
|
|
|
2649
2666
|
const scrollableContainerHeight = containerHeight;
|
|
2650
2667
|
const getAnchorForScrollTop = (0, import_react10.useCallback)(
|
|
2651
2668
|
(scrollTop2, offsets2) => {
|
|
2652
|
-
const
|
|
2653
|
-
if (
|
|
2669
|
+
const found = findLastLE(offsets2, scrollTop2);
|
|
2670
|
+
if (found === -1) {
|
|
2654
2671
|
return { index: 0, offset: 0 };
|
|
2655
2672
|
}
|
|
2673
|
+
const index = firstIndexOfOffsetRun(offsets2, found);
|
|
2656
2674
|
return { index, offset: scrollTop2 - offsets2[index] };
|
|
2657
2675
|
},
|
|
2658
2676
|
[]
|
|
@@ -2660,7 +2678,7 @@ function VirtualizedList(props, ref) {
|
|
|
2660
2678
|
const [prevTargetScrollIndex, setPrevTargetScrollIndex] = (0, import_react10.useState)(
|
|
2661
2679
|
props.targetScrollIndex
|
|
2662
2680
|
);
|
|
2663
|
-
const prevOffsetsLength = (0, import_react10.useRef)(
|
|
2681
|
+
const prevOffsetsLength = (0, import_react10.useRef)(1);
|
|
2664
2682
|
const target = props.targetScrollIndex;
|
|
2665
2683
|
if (target !== void 0 && offsets.length > 1) {
|
|
2666
2684
|
const targetChanged = target !== prevTargetScrollIndex;
|
|
@@ -2672,8 +2690,12 @@ function VirtualizedList(props, ref) {
|
|
|
2672
2690
|
if (isStickingToBottom) {
|
|
2673
2691
|
setIsStickingToBottom(false);
|
|
2674
2692
|
}
|
|
2675
|
-
|
|
2676
|
-
|
|
2693
|
+
const anchoredIndex = firstIndexOfOffsetRun(
|
|
2694
|
+
offsets,
|
|
2695
|
+
Math.max(0, Math.min(data.length - 1, target))
|
|
2696
|
+
);
|
|
2697
|
+
if (scrollAnchor.index !== anchoredIndex || scrollAnchor.offset !== 0) {
|
|
2698
|
+
setScrollAnchor({ index: anchoredIndex, offset: 0 });
|
|
2677
2699
|
}
|
|
2678
2700
|
}
|
|
2679
2701
|
}
|
|
@@ -2793,11 +2815,19 @@ function VirtualizedList(props, ref) {
|
|
|
2793
2815
|
heights,
|
|
2794
2816
|
props.targetScrollIndex
|
|
2795
2817
|
]);
|
|
2796
|
-
const
|
|
2818
|
+
const maxScroll = Math.max(0, totalHeight - scrollableContainerHeight);
|
|
2819
|
+
const clampedScrollTop = Math.min(
|
|
2820
|
+
Math.max(0, isStickingToBottom ? maxScroll : actualScrollTop),
|
|
2821
|
+
maxScroll
|
|
2822
|
+
);
|
|
2823
|
+
const startIndex = firstIndexOfOffsetRun(
|
|
2824
|
+
offsets,
|
|
2825
|
+
Math.max(0, findLastLE(offsets, clampedScrollTop) - 1)
|
|
2826
|
+
);
|
|
2797
2827
|
const viewHeightForEndIndex = scrollableContainerHeight > 0 ? scrollableContainerHeight : 50;
|
|
2798
2828
|
const endIndexOffsetRaw = upperBound(
|
|
2799
2829
|
offsets,
|
|
2800
|
-
|
|
2830
|
+
clampedScrollTop + viewHeightForEndIndex
|
|
2801
2831
|
);
|
|
2802
2832
|
const endIndex = endIndexOffsetRaw >= offsets.length ? data.length - 1 : Math.min(data.length - 1, endIndexOffsetRaw);
|
|
2803
2833
|
const topSpacerHeight = renderStatic === true ? 0 : offsets[startIndex] ?? 0;
|
|
@@ -2861,11 +2891,6 @@ function VirtualizedList(props, ref) {
|
|
|
2861
2891
|
onHeightChange
|
|
2862
2892
|
]);
|
|
2863
2893
|
const { getScrollTop, setPendingScrollTop } = useBatchedScroll(scrollTop);
|
|
2864
|
-
const maxScroll = Math.max(0, totalHeight - scrollableContainerHeight);
|
|
2865
|
-
const clampedScrollTop = Math.min(
|
|
2866
|
-
Math.max(0, isStickingToBottom ? maxScroll : actualScrollTop),
|
|
2867
|
-
maxScroll
|
|
2868
|
-
);
|
|
2869
2894
|
const getScrollbarGeometry = (0, import_react10.useCallback)(() => {
|
|
2870
2895
|
const shouldShowScrollbar = (props.showScrollbar ?? true) && maxScroll > 0;
|
|
2871
2896
|
if (!shouldShowScrollbar || !rootRef.current || scrollableContainerHeight <= 0) {
|
|
@@ -10185,7 +10210,7 @@ function TrustDialog({
|
|
|
10185
10210
|
"Current Level: ",
|
|
10186
10211
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { bold: true, children: currentTrustLevel || "Not Set" })
|
|
10187
10212
|
] }),
|
|
10188
|
-
isInheritedTrustFromParent && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: theme.text.secondary, children: "Note: This folder
|
|
10213
|
+
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." }),
|
|
10189
10214
|
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." })
|
|
10190
10215
|
] }),
|
|
10191
10216
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
@@ -22892,8 +22917,8 @@ __name(statusGlyph, "statusGlyph");
|
|
|
22892
22917
|
// packages/cli/src/ui/hooks/useBackgroundTaskView.ts
|
|
22893
22918
|
var MAX_RETAINED_TERMINAL_DREAMS = 3;
|
|
22894
22919
|
function compareActiveThenTerminal(a, b) {
|
|
22895
|
-
const aActive = a.status === "running" || a.status === "paused";
|
|
22896
|
-
const bActive = b.status === "running" || b.status === "paused";
|
|
22920
|
+
const aActive = a.status === "running" || a.status === "pausing" || a.status === "paused";
|
|
22921
|
+
const bActive = b.status === "running" || b.status === "pausing" || b.status === "paused";
|
|
22897
22922
|
if (aActive !== bActive) return aActive ? -1 : 1;
|
|
22898
22923
|
if (aActive) return b.startTime - a.startTime;
|
|
22899
22924
|
return (b.endTime ?? b.startTime) - (a.endTime ?? a.startTime);
|
|
@@ -23033,6 +23058,7 @@ var DEFAULT_ACTIONS = {
|
|
|
23033
23058
|
cancelSelected: noop,
|
|
23034
23059
|
resumeSelected: /* @__PURE__ */ __name(async () => {
|
|
23035
23060
|
}, "resumeSelected"),
|
|
23061
|
+
toggleSelectedWorkflowPause: /* @__PURE__ */ __name(() => null, "toggleSelectedWorkflowPause"),
|
|
23036
23062
|
setPillFocused: noop,
|
|
23037
23063
|
setLivePanelFocused: noop,
|
|
23038
23064
|
setLivePanelSelectedIndex: noop,
|
|
@@ -23150,6 +23176,18 @@ function BackgroundTaskViewProvider({
|
|
|
23150
23176
|
}
|
|
23151
23177
|
await config.resumeBackgroundAgent(target.agentId);
|
|
23152
23178
|
}, [config, entries, selectedIndex]);
|
|
23179
|
+
const toggleSelectedWorkflowPause = (0, import_react75.useCallback)(() => {
|
|
23180
|
+
if (!config) return null;
|
|
23181
|
+
const target = entries[selectedIndex];
|
|
23182
|
+
if (!target || target.kind !== "workflow" || !target.isBackgrounded) {
|
|
23183
|
+
return null;
|
|
23184
|
+
}
|
|
23185
|
+
const registry = config.getWorkflowRunRegistry();
|
|
23186
|
+
if (target.status === "running") return registry.pause(target.runId);
|
|
23187
|
+
if (target.status === "paused") return registry.resume(target.runId);
|
|
23188
|
+
if (target.status === "pausing") return registry.pause(target.runId);
|
|
23189
|
+
return null;
|
|
23190
|
+
}, [config, entries, selectedIndex]);
|
|
23153
23191
|
const state = (0, import_react75.useMemo)(
|
|
23154
23192
|
() => ({
|
|
23155
23193
|
entries,
|
|
@@ -23181,6 +23219,7 @@ function BackgroundTaskViewProvider({
|
|
|
23181
23219
|
exitDetail,
|
|
23182
23220
|
cancelSelected,
|
|
23183
23221
|
resumeSelected,
|
|
23222
|
+
toggleSelectedWorkflowPause,
|
|
23184
23223
|
setPillFocused,
|
|
23185
23224
|
setLivePanelFocused,
|
|
23186
23225
|
setLivePanelSelectedIndex,
|
|
@@ -23196,6 +23235,7 @@ function BackgroundTaskViewProvider({
|
|
|
23196
23235
|
exitDetail,
|
|
23197
23236
|
cancelSelected,
|
|
23198
23237
|
resumeSelected,
|
|
23238
|
+
toggleSelectedWorkflowPause,
|
|
23199
23239
|
setPillFocused,
|
|
23200
23240
|
setLivePanelFocused,
|
|
23201
23241
|
setLivePanelSelectedIndex,
|
|
@@ -23369,6 +23409,8 @@ function statusVerb(status) {
|
|
|
23369
23409
|
switch (status) {
|
|
23370
23410
|
case "running":
|
|
23371
23411
|
return t("Running");
|
|
23412
|
+
case "pausing":
|
|
23413
|
+
return t("Pausing");
|
|
23372
23414
|
case "paused":
|
|
23373
23415
|
return t("Paused");
|
|
23374
23416
|
case "completed":
|
|
@@ -23411,8 +23453,14 @@ function formatDreamRowLabel(entry) {
|
|
|
23411
23453
|
});
|
|
23412
23454
|
}
|
|
23413
23455
|
__name(formatDreamRowLabel, "formatDreamRowLabel");
|
|
23414
|
-
function
|
|
23456
|
+
function statusPresentation(status) {
|
|
23415
23457
|
switch (status) {
|
|
23458
|
+
case "pausing":
|
|
23459
|
+
return {
|
|
23460
|
+
icon: "\u2026",
|
|
23461
|
+
color: theme.status.warning,
|
|
23462
|
+
labelColor: theme.status.warningDim
|
|
23463
|
+
};
|
|
23416
23464
|
case "paused":
|
|
23417
23465
|
return {
|
|
23418
23466
|
icon: "\u23F8",
|
|
@@ -23441,7 +23489,23 @@ function terminalStatusPresentation(status) {
|
|
|
23441
23489
|
return null;
|
|
23442
23490
|
}
|
|
23443
23491
|
}
|
|
23444
|
-
__name(
|
|
23492
|
+
__name(statusPresentation, "statusPresentation");
|
|
23493
|
+
function isStoppableEntry(entry) {
|
|
23494
|
+
return entry.status === "running" || entry.kind === "workflow" && isActiveWorkflowStatus(entry.status);
|
|
23495
|
+
}
|
|
23496
|
+
__name(isStoppableEntry, "isStoppableEntry");
|
|
23497
|
+
function workflowPauseHint(entry) {
|
|
23498
|
+
if (entry?.kind !== "workflow" || !entry.isBackgrounded) return void 0;
|
|
23499
|
+
switch (entry.status) {
|
|
23500
|
+
case "running":
|
|
23501
|
+
return "p pause (cooperative)";
|
|
23502
|
+
case "paused":
|
|
23503
|
+
return "p resume (cooperative)";
|
|
23504
|
+
default:
|
|
23505
|
+
return void 0;
|
|
23506
|
+
}
|
|
23507
|
+
}
|
|
23508
|
+
__name(workflowPauseHint, "workflowPauseHint");
|
|
23445
23509
|
var FOREGROUND_ROW_PREFIX = "[blocking]";
|
|
23446
23510
|
var SHELL_ROW_PREFIX = "[shell]";
|
|
23447
23511
|
function rowLabel(entry, userBlocking) {
|
|
@@ -23554,8 +23618,8 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
23554
23618
|
visible.map((entry, visibleIdx) => {
|
|
23555
23619
|
const idx = windowStart + visibleIdx;
|
|
23556
23620
|
const isSelected = idx === selectedIndex;
|
|
23557
|
-
const
|
|
23558
|
-
const labelColor = isSelected ? theme.text.accent :
|
|
23621
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23622
|
+
const labelColor = isSelected ? theme.text.accent : presentation2 ? presentation2.labelColor : theme.text.primary;
|
|
23559
23623
|
const treePrefix = entry.kind === "agent" ? treeRowPrefix(entry, treeInfo.get(entry.agentId)) : "";
|
|
23560
23624
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
|
|
23561
23625
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: isSelected ? theme.text.accent : void 0, children: isSelected ? "> " : " " }),
|
|
@@ -23629,7 +23693,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
23629
23693
|
}, "DetailBody");
|
|
23630
23694
|
var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
23631
23695
|
const title = t("Dream");
|
|
23632
|
-
const
|
|
23696
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23633
23697
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23634
23698
|
if (entry.sessionCount !== void 0) {
|
|
23635
23699
|
dimSubtitleParts.push(formatSessionCount(entry.sessionCount));
|
|
@@ -23651,7 +23715,7 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23651
23715
|
children: [
|
|
23652
23716
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23653
23717
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23654
|
-
|
|
23718
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23655
23719
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23656
23720
|
] }),
|
|
23657
23721
|
entry.sessionCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
@@ -23708,7 +23772,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23708
23772
|
const title = escapeAnsiCtrlCodes(
|
|
23709
23773
|
`${entry.subagentType ?? "Agent"} \u203A ${buildBackgroundEntryLabel(entry, { includePrefix: false })}`
|
|
23710
23774
|
);
|
|
23711
|
-
const
|
|
23775
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23712
23776
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23713
23777
|
if (entry.stats?.outputTokens) {
|
|
23714
23778
|
dimSubtitleParts.push(
|
|
@@ -23780,7 +23844,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23780
23844
|
children: [
|
|
23781
23845
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23782
23846
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23783
|
-
|
|
23847
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23784
23848
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23785
23849
|
] }),
|
|
23786
23850
|
parentLine !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
@@ -23857,7 +23921,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23857
23921
|
}, "AgentDetailBody");
|
|
23858
23922
|
var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
23859
23923
|
const title = `${t("Shell")} \u203A ${entry.command}`;
|
|
23860
|
-
const
|
|
23924
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23861
23925
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23862
23926
|
if (entry.pid !== void 0) {
|
|
23863
23927
|
dimSubtitleParts.push(t("pid {{pid}}", { pid: String(entry.pid) }));
|
|
@@ -23877,7 +23941,7 @@ var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23877
23941
|
children: [
|
|
23878
23942
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23879
23943
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23880
|
-
|
|
23944
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23881
23945
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23882
23946
|
] }),
|
|
23883
23947
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
@@ -23897,7 +23961,7 @@ var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
23897
23961
|
}, "ShellDetailBody");
|
|
23898
23962
|
var MonitorDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
23899
23963
|
const title = `${t("Monitor")} \u203A ${entry.description}`;
|
|
23900
|
-
const
|
|
23964
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23901
23965
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23902
23966
|
if (entry.pid !== void 0) {
|
|
23903
23967
|
dimSubtitleParts.push(t("pid {{pid}}", { pid: String(entry.pid) }));
|
|
@@ -23925,7 +23989,7 @@ var MonitorDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
23925
23989
|
children: [
|
|
23926
23990
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23927
23991
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23928
|
-
|
|
23992
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23929
23993
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23930
23994
|
] }),
|
|
23931
23995
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
@@ -23944,7 +24008,7 @@ var MAX_VISIBLE_PHASES = 20;
|
|
|
23944
24008
|
var MAX_VISIBLE_LOG_LINES = 10;
|
|
23945
24009
|
var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
23946
24010
|
const title = `${t("Workflow")} \u203A ${entry.meta?.name ?? entry.runId}`;
|
|
23947
|
-
const
|
|
24011
|
+
const presentation2 = statusPresentation(entry.status);
|
|
23948
24012
|
const dimSubtitleParts = [elapsedFor(entry)];
|
|
23949
24013
|
if (entry.agentsDispatched > 0) {
|
|
23950
24014
|
dimSubtitleParts.push(
|
|
@@ -23976,19 +24040,27 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
23976
24040
|
children: [
|
|
23977
24041
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
23978
24042
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { children: [
|
|
23979
|
-
|
|
24043
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
23980
24044
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
23981
24045
|
] }),
|
|
23982
24046
|
entry.meta?.description && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
23983
24047
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
23984
24048
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { wrap: "wrap", children: entry.meta.description }) })
|
|
23985
24049
|
] }),
|
|
24050
|
+
(entry.status === "pausing" || entry.status === "paused") && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
24051
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
24052
|
+
/* @__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(
|
|
24053
|
+
"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."
|
|
24054
|
+
) : t(
|
|
24055
|
+
"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."
|
|
24056
|
+
) }) })
|
|
24057
|
+
] }),
|
|
23986
24058
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
23987
24059
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, dimColor: true, children: t("Phases") }) }),
|
|
23988
24060
|
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: [
|
|
23989
24061
|
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")}` }) }),
|
|
23990
24062
|
visiblePhases.map((phaseTitle, i) => {
|
|
23991
|
-
const isCurrent = entry.status
|
|
24063
|
+
const isCurrent = isActiveWorkflowStatus(entry.status) && i === visiblePhases.length - 1 && entry.currentPhase === phaseTitle;
|
|
23992
24064
|
const marker = isCurrent ? "\u25B8" : "\xB7";
|
|
23993
24065
|
const phaseTokens = entry.perPhaseTokens.get(phaseTitle) ?? 0;
|
|
23994
24066
|
const tokenChip = phaseTokens > 0 ? ` \xB7 ${formatTokenCount(phaseTokens)}t` : "";
|
|
@@ -24026,7 +24098,9 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24026
24098
|
enterDetail,
|
|
24027
24099
|
exitDetail,
|
|
24028
24100
|
cancelSelected,
|
|
24029
|
-
resumeSelected
|
|
24101
|
+
resumeSelected,
|
|
24102
|
+
toggleSelectedWorkflowPause,
|
|
24103
|
+
setSelectedIndex
|
|
24030
24104
|
} = useBackgroundTaskViewActions();
|
|
24031
24105
|
const config = useConfig();
|
|
24032
24106
|
const detailContentHeight = Math.max(10, availableTerminalHeight - 6);
|
|
@@ -24038,6 +24112,21 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24038
24112
|
(0, import_react77.useEffect)(() => {
|
|
24039
24113
|
if (!isDetailMode) setSaveActive(false);
|
|
24040
24114
|
}, [isDetailMode]);
|
|
24115
|
+
const [pauseRejected, setPauseRejected] = (0, import_react77.useState)(null);
|
|
24116
|
+
(0, import_react77.useEffect)(() => {
|
|
24117
|
+
if (!pauseRejected) return;
|
|
24118
|
+
const timer = setTimeout(() => setPauseRejected(null), 3e3);
|
|
24119
|
+
return () => clearTimeout(timer);
|
|
24120
|
+
}, [pauseRejected]);
|
|
24121
|
+
const toggleWorkflowPauseWithFeedback = (0, import_react77.useCallback)(() => {
|
|
24122
|
+
const target = entries[selectedIndex];
|
|
24123
|
+
const verdict = toggleSelectedWorkflowPause();
|
|
24124
|
+
if (verdict === false && target) {
|
|
24125
|
+
setPauseRejected({ entryKey: entryId(target) });
|
|
24126
|
+
} else if (verdict === true) {
|
|
24127
|
+
setPauseRejected(null);
|
|
24128
|
+
}
|
|
24129
|
+
}, [entries, selectedIndex, toggleSelectedWorkflowPause]);
|
|
24041
24130
|
const selectedEntry = (0, import_react77.useMemo)(() => {
|
|
24042
24131
|
const fromSnapshot = entries[selectedIndex] ?? null;
|
|
24043
24132
|
if (!fromSnapshot) return fromSnapshot;
|
|
@@ -24107,12 +24196,19 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24107
24196
|
selectedAgentIdForActivity
|
|
24108
24197
|
]);
|
|
24109
24198
|
const selectedStatus = selectedEntry?.status;
|
|
24199
|
+
const selectedShouldTick = selectedEntry?.kind === "workflow" ? isActiveWorkflowStatus(selectedEntry.status) : selectedStatus === "running";
|
|
24110
24200
|
(0, import_react77.useEffect)(() => {
|
|
24111
|
-
if (!dialogOpen || !isDetailMode || !selectedEntryId ||
|
|
24201
|
+
if (!dialogOpen || !isDetailMode || !selectedEntryId || !selectedShouldTick)
|
|
24112
24202
|
return;
|
|
24113
24203
|
const id = setInterval(() => setActivityTick((n) => n + 1), 1e3);
|
|
24114
24204
|
return () => clearInterval(id);
|
|
24115
|
-
}, [
|
|
24205
|
+
}, [
|
|
24206
|
+
dialogOpen,
|
|
24207
|
+
dialogMode,
|
|
24208
|
+
isDetailMode,
|
|
24209
|
+
selectedEntryId,
|
|
24210
|
+
selectedShouldTick
|
|
24211
|
+
]);
|
|
24116
24212
|
const initialDetailStatusRef = (0, import_react77.useRef)(null);
|
|
24117
24213
|
(0, import_react77.useEffect)(() => {
|
|
24118
24214
|
if (!dialogOpen || !isDetailMode) {
|
|
@@ -24121,11 +24217,25 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24121
24217
|
}
|
|
24122
24218
|
if (!selectedEntryId) {
|
|
24123
24219
|
initialDetailStatusRef.current = null;
|
|
24220
|
+
setPendingCancelEntryId(null);
|
|
24124
24221
|
exitDetail();
|
|
24125
24222
|
return;
|
|
24126
24223
|
}
|
|
24127
24224
|
const seen = initialDetailStatusRef.current;
|
|
24128
|
-
if (
|
|
24225
|
+
if (seen && seen.entryId !== selectedEntryId) {
|
|
24226
|
+
const driftedIndex = entries.findIndex(
|
|
24227
|
+
(candidate) => entryId(candidate) === seen.entryId
|
|
24228
|
+
);
|
|
24229
|
+
if (driftedIndex >= 0) {
|
|
24230
|
+
setSelectedIndex(driftedIndex);
|
|
24231
|
+
return;
|
|
24232
|
+
}
|
|
24233
|
+
initialDetailStatusRef.current = null;
|
|
24234
|
+
setPendingCancelEntryId(null);
|
|
24235
|
+
exitDetail();
|
|
24236
|
+
return;
|
|
24237
|
+
}
|
|
24238
|
+
if (!seen) {
|
|
24129
24239
|
if (selectedStatus) {
|
|
24130
24240
|
initialDetailStatusRef.current = {
|
|
24131
24241
|
entryId: selectedEntryId,
|
|
@@ -24134,7 +24244,10 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24134
24244
|
}
|
|
24135
24245
|
return;
|
|
24136
24246
|
}
|
|
24137
|
-
|
|
24247
|
+
const seenWasActive = seen.status === "running" || seen.status === "pausing" || seen.status === "paused";
|
|
24248
|
+
const selectedIsTerminal = selectedStatus === "completed" || selectedStatus === "failed" || selectedStatus === "cancelled";
|
|
24249
|
+
if (seenWasActive && selectedIsTerminal) {
|
|
24250
|
+
setPendingCancelEntryId(null);
|
|
24138
24251
|
exitDetail();
|
|
24139
24252
|
}
|
|
24140
24253
|
}, [
|
|
@@ -24143,11 +24256,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24143
24256
|
isDetailMode,
|
|
24144
24257
|
selectedEntryId,
|
|
24145
24258
|
selectedStatus,
|
|
24146
|
-
exitDetail
|
|
24259
|
+
exitDetail,
|
|
24260
|
+
entries,
|
|
24261
|
+
setSelectedIndex
|
|
24147
24262
|
]);
|
|
24148
24263
|
const handleCancelKey = /* @__PURE__ */ __name(() => {
|
|
24149
24264
|
if (!selectedEntry) return;
|
|
24150
|
-
const isCancelable = selectedEntry
|
|
24265
|
+
const isCancelable = isStoppableEntry(selectedEntry);
|
|
24151
24266
|
const isAbandonable = selectedEntry.kind === "agent" && selectedEntry.status === "paused";
|
|
24152
24267
|
if (!isCancelable && !isAbandonable) return;
|
|
24153
24268
|
const entryKey = entryId(selectedEntry);
|
|
@@ -24204,13 +24319,17 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24204
24319
|
void resumeSelected();
|
|
24205
24320
|
return;
|
|
24206
24321
|
}
|
|
24322
|
+
if (key.sequence === "p" && !key.ctrl && !key.meta) {
|
|
24323
|
+
toggleWorkflowPauseWithFeedback();
|
|
24324
|
+
return;
|
|
24325
|
+
}
|
|
24207
24326
|
if (key.sequence === "x" && !key.ctrl && !key.meta) {
|
|
24208
24327
|
handleCancelKey();
|
|
24209
24328
|
return;
|
|
24210
24329
|
}
|
|
24211
24330
|
return;
|
|
24212
24331
|
}
|
|
24213
|
-
if (key.sequence === "s" && !key.ctrl && !key.meta && config && selectedEntry?.kind === "workflow" && selectedEntry.status
|
|
24332
|
+
if (key.sequence === "s" && !key.ctrl && !key.meta && config && selectedEntry?.kind === "workflow" && isTerminalWorkflowStatus(selectedEntry.status) && !!selectedEntry.script) {
|
|
24214
24333
|
setSaveActive(true);
|
|
24215
24334
|
return;
|
|
24216
24335
|
}
|
|
@@ -24231,6 +24350,10 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24231
24350
|
void resumeSelected();
|
|
24232
24351
|
return;
|
|
24233
24352
|
}
|
|
24353
|
+
if (key.sequence === "p" && !key.ctrl && !key.meta) {
|
|
24354
|
+
toggleWorkflowPauseWithFeedback();
|
|
24355
|
+
return;
|
|
24356
|
+
}
|
|
24234
24357
|
if (key.sequence === "x" && !key.ctrl && !key.meta) {
|
|
24235
24358
|
handleCancelKey();
|
|
24236
24359
|
return;
|
|
@@ -24240,8 +24363,9 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24240
24363
|
);
|
|
24241
24364
|
if (!dialogOpen) return null;
|
|
24242
24365
|
const selectedEntryAllowsResume = selectedEntry?.kind === "agent" && selectedEntry.status === "paused" && !selectedEntry.resumeBlockedReason;
|
|
24243
|
-
const workflowSaveTarget = config && selectedEntry?.kind === "workflow" && selectedEntry.status
|
|
24366
|
+
const workflowSaveTarget = config && selectedEntry?.kind === "workflow" && isTerminalWorkflowStatus(selectedEntry.status) && selectedEntry.script ? selectedEntry : null;
|
|
24244
24367
|
const selectedEntryKey = selectedEntry ? entryId(selectedEntry) : null;
|
|
24368
|
+
const selectedWorkflowPauseHint = workflowPauseHint(selectedEntry);
|
|
24245
24369
|
const showCancelConfirmHint = pendingCancelEntryId !== null && pendingCancelEntryId === selectedEntryKey;
|
|
24246
24370
|
const hints = [];
|
|
24247
24371
|
if (approvalActive) {
|
|
@@ -24256,7 +24380,10 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24256
24380
|
);
|
|
24257
24381
|
} else if (dialogMode === "list") {
|
|
24258
24382
|
hints.push("\u2191/\u2193 select", "Enter view");
|
|
24259
|
-
if (selectedEntry
|
|
24383
|
+
if (selectedEntry && isStoppableEntry(selectedEntry)) {
|
|
24384
|
+
hints.push("x stop");
|
|
24385
|
+
}
|
|
24386
|
+
if (selectedWorkflowPauseHint) hints.push(selectedWorkflowPauseHint);
|
|
24260
24387
|
if (selectedEntryAllowsResume) hints.push("r resume");
|
|
24261
24388
|
if (selectedEntry?.kind === "agent" && selectedEntry.status === "paused") {
|
|
24262
24389
|
hints.push("x abandon");
|
|
@@ -24264,7 +24391,10 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24264
24391
|
hints.push("\u2190/Esc close");
|
|
24265
24392
|
} else {
|
|
24266
24393
|
hints.push("\u2190 back", "Esc close");
|
|
24267
|
-
if (selectedEntry
|
|
24394
|
+
if (selectedEntry && isStoppableEntry(selectedEntry)) {
|
|
24395
|
+
hints.push("x stop");
|
|
24396
|
+
}
|
|
24397
|
+
if (selectedWorkflowPauseHint) hints.push(selectedWorkflowPauseHint);
|
|
24268
24398
|
if (selectedEntryAllowsResume) hints.push("r resume");
|
|
24269
24399
|
if (selectedEntry?.kind === "agent" && selectedEntry.status === "paused") {
|
|
24270
24400
|
hints.push("x abandon");
|
|
@@ -24324,7 +24454,9 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
24324
24454
|
isActive: saveActive,
|
|
24325
24455
|
onClose: () => setSaveActive(false)
|
|
24326
24456
|
}
|
|
24327
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { marginTop: 1, paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.
|
|
24457
|
+
) : /* @__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(
|
|
24458
|
+
"Pause/resume was rejected; the workflow state changed. Try again."
|
|
24459
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: hints.join(" \xB7 ") }) })
|
|
24328
24460
|
]
|
|
24329
24461
|
}
|
|
24330
24462
|
);
|
|
@@ -29953,7 +30085,7 @@ ${currentText}`);
|
|
|
29953
30085
|
resetEscapeState();
|
|
29954
30086
|
return true;
|
|
29955
30087
|
}
|
|
29956
|
-
if (!isAttachmentMode && uiState.messageQueue.length > 0) {
|
|
30088
|
+
if (!isAttachmentMode && uiState.messageQueue.length > 0 && uiState.streamingState !== "responding" /* Responding */) {
|
|
29957
30089
|
if (popQueueIntoInput()) {
|
|
29958
30090
|
resetEscapeState();
|
|
29959
30091
|
return true;
|
|
@@ -30757,9 +30889,11 @@ function hasPendingApproval(entries) {
|
|
|
30757
30889
|
__name(hasPendingApproval, "hasPendingApproval");
|
|
30758
30890
|
function getPillLabel(entries) {
|
|
30759
30891
|
if (entries.length === 0) return "";
|
|
30760
|
-
const
|
|
30761
|
-
|
|
30762
|
-
|
|
30892
|
+
const live = entries.filter(
|
|
30893
|
+
(e) => e.status === "running" || e.kind === "workflow" && (e.status === "pausing" || e.status === "paused")
|
|
30894
|
+
);
|
|
30895
|
+
if (live.length > 0) {
|
|
30896
|
+
return groupAndFormat(live);
|
|
30763
30897
|
}
|
|
30764
30898
|
const pausedAgents = entries.filter(
|
|
30765
30899
|
(e) => e.kind === "agent" && e.status === "paused"
|
|
@@ -30807,9 +30941,9 @@ var BackgroundTasksPill = /* @__PURE__ */ __name(() => {
|
|
|
30807
30941
|
const label = getPillLabel(entries);
|
|
30808
30942
|
const needsApproval = hasPendingApproval(entries);
|
|
30809
30943
|
return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(import_jsx_runtime112.Fragment, { children: [
|
|
30810
|
-
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.secondary, children: " \xB7 " }),
|
|
30811
|
-
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { inverse: pillFocused, children: label }),
|
|
30812
|
-
needsApproval && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.status.warning, children: ` \u26A0 ${t("needs approval")}` })
|
|
30944
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: " \xB7 " }),
|
|
30945
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { inverse: pillFocused, wrap: "truncate", children: label }),
|
|
30946
|
+
needsApproval && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("needs approval")}` })
|
|
30813
30947
|
] });
|
|
30814
30948
|
}, "BackgroundTasksPill");
|
|
30815
30949
|
|
|
@@ -30869,8 +31003,8 @@ var MCPHealthPill = /* @__PURE__ */ __name(() => {
|
|
|
30869
31003
|
const label = getPillLabel2(snapshot);
|
|
30870
31004
|
if (!label) return null;
|
|
30871
31005
|
return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(import_jsx_runtime113.Fragment, { children: [
|
|
30872
|
-
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.text.secondary, children: " \xB7 " }),
|
|
30873
|
-
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.status.warning, children: label })
|
|
31006
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: " \xB7 " }),
|
|
31007
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: label })
|
|
30874
31008
|
] });
|
|
30875
31009
|
}, "MCPHealthPill");
|
|
30876
31010
|
|
|
@@ -31646,7 +31780,10 @@ var Footer = /* @__PURE__ */ __name(() => {
|
|
|
31646
31780
|
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { wrap: "truncate", children: leftBottomContent }),
|
|
31647
31781
|
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(BackgroundTasksPill, {}),
|
|
31648
31782
|
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(MCPHealthPill, {}),
|
|
31649
|
-
|
|
31783
|
+
uiState.messageQueue.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: ` \u23F3 ${t("{{count}} queued", {
|
|
31784
|
+
count: String(uiState.messageQueue.length)
|
|
31785
|
+
})}` }),
|
|
31786
|
+
!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", {
|
|
31650
31787
|
count: String(uiState.skillReviewPending.skills.length)
|
|
31651
31788
|
})}` })
|
|
31652
31789
|
] })
|
|
@@ -46833,6 +46970,20 @@ ${error.stack ?? ""}`
|
|
|
46833
46970
|
Rendering error${loggedHint}: ${sanitizeTerminalText(renderError.message)}`
|
|
46834
46971
|
);
|
|
46835
46972
|
}
|
|
46973
|
+
try {
|
|
46974
|
+
if (process.stdout.isTTY && config.getChatRecordingService()) {
|
|
46975
|
+
const sessionId = config.getSessionId();
|
|
46976
|
+
const sessionFile = config.getTranscriptPath();
|
|
46977
|
+
if (isValidSessionId(sessionId) && (await stat2(sessionFile)).size > 0) {
|
|
46978
|
+
writeStdoutLine(
|
|
46979
|
+
`
|
|
46980
|
+
${t("To continue this session, run")}
|
|
46981
|
+
qwen --resume ${sessionId}`
|
|
46982
|
+
);
|
|
46983
|
+
}
|
|
46984
|
+
}
|
|
46985
|
+
} catch {
|
|
46986
|
+
}
|
|
46836
46987
|
});
|
|
46837
46988
|
}
|
|
46838
46989
|
__name(startInteractiveUI, "startInteractiveUI");
|