@qwen-code/qwen-code 0.19.5 → 0.19.6-nightly.20260705.015ee4248
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/dataviz/SKILL.md +50 -0
- package/bundled/dataviz/references/anti-patterns.md +12 -0
- package/bundled/dataviz/references/choosing-a-form.md +16 -0
- package/bundled/dataviz/references/palette.md +57 -0
- package/bundled/dataviz/scripts/validate_palette.js +328 -0
- package/bundled/loop/SKILL.md +1 -1
- package/bundled/qc-helper/docs/configuration/settings.md +14 -8
- package/bundled/qc-helper/docs/features/headless.md +2 -2
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +4 -2
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +23 -0
- package/bundled/review/SKILL.md +65 -8
- package/chunks/{MaxSizedBox-5JV77KRA.js → MaxSizedBox-PRXTXIGC.js} +31 -30
- package/chunks/{StandaloneSessionPicker-MGUGB6PH.js → StandaloneSessionPicker-PV7BSC5D.js} +42 -41
- package/chunks/{acpAgent-4F36XM3X.js → acpAgent-F34HNAM3.js} +939 -424
- package/chunks/{agent-IWBUZI6A.js → agent-XSQDKLST.js} +26 -25
- package/chunks/{agent-headless-JUTICAYO.js → agent-headless-B63XCKWX.js} +26 -25
- package/chunks/{anthropicContentGenerator-WL3LJOUB.js → anthropicContentGenerator-INXXI4PW.js} +7 -7
- package/chunks/{artifact-tool-W76WC2JX.js → artifact-tool-H2TNPNP5.js} +16 -3
- package/chunks/{askUserQuestion-J3P6TH3V.js → askUserQuestion-MKL5ZTMC.js} +2 -2
- package/chunks/{bridge-DHZHQ4UV.js → bridge-NCZDJBRF.js} +34 -32
- package/chunks/{channel-worker-supervisor-EVPAYNZ5.js → channel-worker-supervisor-JUYQ5Z4R.js} +5 -5
- package/chunks/{chunk-AVQDCKNF.js → chunk-22MNNNXE.js} +4 -0
- package/chunks/chunk-3RW4AZJV.js +5063 -0
- package/chunks/chunk-3VJ7MT3N.js +111 -0
- package/chunks/{chunk-JKGCBO3O.js → chunk-3VRMGS3A.js} +4 -4
- package/chunks/{chunk-TN6RT6EJ.js → chunk-3WOJO5EJ.js} +16 -4
- package/chunks/{chunk-G7OQ3RFJ.js → chunk-42XGFRJS.js} +3 -3
- package/chunks/{chunk-MOUXUCXQ.js → chunk-4KJ2BPIT.js} +1 -1
- package/chunks/{chunk-PPFWEV7G.js → chunk-4RQIB5UZ.js} +62 -62
- package/chunks/{chunk-JJ6B3ZD3.js → chunk-544UZQBD.js} +3 -3
- package/chunks/{chunk-B236XPGF.js → chunk-5UDYETKK.js} +1 -1
- package/chunks/{chunk-7DMQRPC7.js → chunk-6BEOH4KK.js} +1 -1
- package/chunks/{chunk-CXBG27SF.js → chunk-6IAWPIQ6.js} +3 -2
- package/chunks/{chunk-MDBNFHIO.js → chunk-6MDY7FX3.js} +5 -5
- package/chunks/{chunk-RM3PGSGL.js → chunk-6SHO7WFF.js} +15 -2
- package/chunks/{chunk-YCU7QV7Q.js → chunk-73WGF3NW.js} +34 -1
- package/chunks/{chunk-T42ACHFI.js → chunk-7LTB54MK.js} +1 -1
- package/chunks/{chunk-SJVPSHXU.js → chunk-7U6J224Z.js} +132 -25
- package/chunks/{chunk-CSPSJU5R.js → chunk-7WLJPMWU.js} +17 -17
- package/chunks/{chunk-R6RI2HIC.js → chunk-ACD5DFUY.js} +41 -14
- package/chunks/{chunk-EWALXUAD.js → chunk-AGHU5VRK.js} +8 -0
- package/chunks/{chunk-GLPV75ES.js → chunk-AHNJGLFV.js} +2 -2
- package/chunks/{chunk-DRS2HTNT.js → chunk-AOAFX4PL.js} +5 -5
- package/chunks/{chunk-QHYITL6P.js → chunk-CK7IUFOB.js} +63 -22
- package/chunks/{chunk-RSBQS6M4.js → chunk-CODWJXQA.js} +1 -1
- package/chunks/{chunk-LWGLBVWA.js → chunk-CSOTA7KX.js} +1 -1
- package/chunks/{chunk-UJT42DB6.js → chunk-DFH4T5IQ.js} +6 -6
- package/chunks/{chunk-DX3TKXNT.js → chunk-DJACOX4C.js} +2 -2
- package/chunks/{chunk-KKQWC6WS.js → chunk-DNV4FSN5.js} +1 -1
- package/chunks/{chunk-YPCPZSZB.js → chunk-DT3B47QP.js} +1 -1
- package/chunks/{chunk-NIOPRZNN.js → chunk-E7KNELIZ.js} +1 -1
- package/chunks/{chunk-DG573EOO.js → chunk-FEJ2FZ3U.js} +1 -1
- package/chunks/{chunk-M5ITDKSM.js → chunk-FHGQFG2K.js} +1 -1
- package/chunks/{chunk-HISPEX42.js → chunk-FSXFNDTI.js} +7 -7
- package/chunks/{chunk-LHMZCIKL.js → chunk-FUW7YGJU.js} +3 -1
- package/chunks/{chunk-Y4UQT3PM.js → chunk-FV5SBNNC.js} +1 -1
- package/chunks/{chunk-YTFBURQD.js → chunk-GB6HDZIK.js} +10 -2
- package/chunks/{chunk-D5KISTLW.js → chunk-H6EMK6QK.js} +1 -1
- package/chunks/{chunk-2Z43HUXT.js → chunk-HLKG6CZN.js} +3 -2
- package/chunks/{chunk-VXGPYF7U.js → chunk-IFEWJXFS.js} +1 -1
- package/chunks/{chunk-TENOUWY2.js → chunk-IJRL2S3D.js} +3 -3
- package/chunks/{chunk-OQHLUA2Y.js → chunk-IL6ZEDZ2.js} +4 -4
- package/chunks/{chunk-2CAII5HD.js → chunk-J7XUJALJ.js} +1 -1
- package/chunks/chunk-JFFOH2XO.js +2472 -0
- package/chunks/{chunk-NNEJEBCF.js → chunk-K3FZXSTO.js} +95 -107
- package/chunks/{chunk-NDY7OENU.js → chunk-KB4ICCA5.js} +3 -3
- package/chunks/{chunk-MNOXKSM2.js → chunk-LFFF2SPV.js} +3 -3
- package/chunks/{chunk-J3ERRYYI.js → chunk-LTMDKOZC.js} +2 -2
- package/chunks/{chunk-R3UWLLRQ.js → chunk-M7AGQP5D.js} +1 -1
- package/chunks/{chunk-CBJE2PLG.js → chunk-MLB5AB2I.js} +4 -4
- package/chunks/{chunk-YHTNWGRR.js → chunk-MZ7BABX3.js} +1 -1
- package/chunks/{chunk-SJBIFVD2.js → chunk-NFE3DQ4R.js} +7 -3
- package/chunks/{chunk-BC4R5C5R.js → chunk-NLD2WKE3.js} +55 -12
- package/chunks/{chunk-ALX6BUYW.js → chunk-NUGPZXAZ.js} +35 -1
- package/chunks/{chunk-NSSVORTQ.js → chunk-NYKWPUAE.js} +17 -13
- package/chunks/{chunk-K4I4STSL.js → chunk-OGEJMKN5.js} +2 -2
- package/chunks/{chunk-HTWHAN44.js → chunk-PC4ZXHU2.js} +1 -1
- package/chunks/{chunk-2YH27UNF.js → chunk-QLBBV7C6.js} +1 -1
- package/chunks/chunk-QT7XKZT7.js +293 -0
- package/chunks/{chunk-NPQWQYU6.js → chunk-QYNNN7BK.js} +1 -1
- package/chunks/chunk-R4N3OALZ.js +5631 -0
- package/chunks/{chunk-G4M7FPNY.js → chunk-RB5GAQR6.js} +2 -2
- package/chunks/{chunk-SBMHB6N5.js → chunk-RPHMD5UC.js} +15 -15
- package/chunks/{chunk-CHY5C5T4.js → chunk-SJ2CTIYH.js} +185 -88
- package/chunks/chunk-SLQXGMYY.js +949 -0
- package/chunks/{chunk-BZHLWC6T.js → chunk-SUAKHHK7.js} +2 -2
- package/chunks/{chunk-IMAMNLY6.js → chunk-SWV4CVYG.js} +158 -3
- package/chunks/{chunk-XKSCTXPK.js → chunk-TDGF35EN.js} +4 -3
- package/chunks/{chunk-TOAUDIS7.js → chunk-TLWA7TPR.js} +6 -2
- package/chunks/{chunk-WALEWZ44.js → chunk-UVHL5TCO.js} +1 -1
- package/chunks/{chunk-ZISMVA6U.js → chunk-VDMM5LVR.js} +1566 -37
- package/chunks/{chunk-BPFJQGY7.js → chunk-VEB3NYSO.js} +164 -5
- package/chunks/{chunk-L7OJ3ZO3.js → chunk-VZ7HY3YU.js} +1 -1
- package/chunks/{chunk-6KPZJJ6U.js → chunk-W4I6PLEG.js} +131 -38
- package/chunks/{chunk-QOMAHFYI.js → chunk-W7EEOR7D.js} +3 -3
- package/chunks/{chunk-6QVQZAW6.js → chunk-WKP5QZOP.js} +1 -1
- package/chunks/{chunk-YXK4GPYO.js → chunk-WMPVYQ4P.js} +30 -1
- package/chunks/{chunk-DM4E337C.js → chunk-WNTS5A2R.js} +5 -5
- package/chunks/{chunk-6QTCOQX7.js → chunk-WOG7QWIT.js} +3086 -2635
- package/chunks/{chunk-UY2TCIZS.js → chunk-X265R5C6.js} +3 -3
- package/chunks/{chunk-LKWAVAB5.js → chunk-X2XNQQJI.js} +2 -2
- package/chunks/{chunk-MTNTVOJR.js → chunk-X3YGAX7V.js} +6 -3
- package/chunks/{chunk-EROWZQN7.js → chunk-XD3OLPII.js} +6 -6
- package/chunks/{chunk-RNGAT2Y2.js → chunk-YYL6HROQ.js} +1 -1
- package/chunks/{chunk-XKZXGIRM.js → chunk-YZ2LNTHO.js} +2 -2
- package/chunks/{chunk-Z7XNVNPM.js → chunk-YZ5ANQMR.js} +3 -3
- package/chunks/{chunk-4MCC4XHH.js → chunk-Z7EYROOJ.js} +3568 -5508
- package/chunks/{chunk-5B2WNM6V.js → chunk-ZI4MGBB5.js} +1 -1
- package/chunks/{chunk-WZ724G6K.js → chunk-ZPGE42V7.js} +6 -6
- package/chunks/{computer-use-ON3JQUHW.js → computer-use-5I2UHVNY.js} +26 -25
- package/chunks/{contextCommand-OGCG7W6N.js → contextCommand-3NWY7AJG.js} +28 -27
- package/chunks/{cron-create-6YTCOX6P.js → cron-create-O6ZHD3JN.js} +22 -7
- package/chunks/{cron-delete-E3NIFSUK.js → cron-delete-BFD5B2XX.js} +4 -4
- package/chunks/{cron-list-Q64MNQNE.js → cron-list-KI6FV4KN.js} +4 -4
- package/chunks/{daemon-EEB2RYOL.js → daemon-DRUMLVFP.js} +140 -0
- package/chunks/daemon-status-provider-A2DK3ZTO.js +74 -0
- package/chunks/{dist-AP5V4WYU.js → dist-AAO65DPC.js} +2 -2
- package/chunks/{dist-X4ZDE726.js → dist-ABQ7VWRR.js} +3 -3
- package/chunks/{dist-SNXOUPYS.js → dist-AW5ZYMUI.js} +2 -2
- package/chunks/{dist-Z57Q4YF5.js → dist-DN6M6TJ5.js} +525 -95
- package/chunks/{dist-IZP2VV4C.js → dist-JPSVN367.js} +2 -2
- package/chunks/{earlyInputCapture-DAFHSGVW.js → earlyInputCapture-5TMSSPQ5.js} +27 -26
- package/chunks/{edit-3QFNCSZH.js → edit-V4ITLSUD.js} +27 -26
- package/chunks/{en-M4EBUBNU.js → en-AXARKOWO.js} +2 -0
- package/chunks/{enter-worktree-62EQQMLD.js → enter-worktree-7ULPRMTJ.js} +26 -25
- package/chunks/{enterPlanMode-VUQSE4EG.js → enterPlanMode-YSHMLHJZ.js} +26 -25
- package/chunks/{errors-PW75PZXE.js → errors-TCUTD7NF.js} +28 -27
- package/chunks/{exit-worktree-VVNH7OVY.js → exit-worktree-JZDCKR6A.js} +26 -25
- package/chunks/{exitPlanMode-RUYRCYZW.js → exitPlanMode-GOQBN6SG.js} +26 -25
- package/chunks/{fast-path-TFRJRTTR.js → fast-path-F2HGAKO2.js} +3 -3
- package/chunks/{fast-path-settings-UQLRFDQP.js → fast-path-settings-RCRXH2JG.js} +2 -2
- package/chunks/{gemini-XW7ZDUVR.js → gemini-3M7ECKNW.js} +86 -80
- package/chunks/{geminiContentGenerator-MZDVHVZH.js → geminiContentGenerator-5EG3QEJM.js} +4 -4
- package/chunks/{glob-WAY2PUWA.js → glob-2DBDTLR4.js} +54 -29
- package/chunks/{grep-W6CBKSYC.js → grep-R27DLGWT.js} +26 -25
- package/chunks/{initializer-HK2XE6P2.js → initializer-OXB6BJZU.js} +32 -31
- package/chunks/{keychain-token-storage-GPAKRDKQ.js → keychain-token-storage-UJV5XP4Z.js} +2 -2
- package/chunks/{list-RVLIIKKL.js → list-HLCOEOSF.js} +33 -32
- package/chunks/{loadedSettingsAdapter-C63OUYZC.js → loadedSettingsAdapter-JHTVH3YO.js} +31 -30
- package/chunks/{loop-wakeup-G2EHBRGR.js → loop-wakeup-CUVIY2JY.js} +5 -5
- package/chunks/{ls-IDHUVSAG.js → ls-L654WOAT.js} +4 -4
- package/chunks/{lsp-FSRYXGFT.js → lsp-M35KE54Y.js} +2 -2
- package/chunks/mcp-2JWEFAIN.js +67 -0
- package/chunks/{monitor-FOG36ABM.js → monitor-5QKFZFDX.js} +26 -25
- package/chunks/nonInteractiveCli-W5W5PIHI.js +112 -0
- package/chunks/{notebook-edit-GC6NXRCX.js → notebook-edit-XAFBWORI.js} +27 -26
- package/chunks/{openaiContentGenerator-EXR3ZL3Z.js → openaiContentGenerator-NULJROYV.js} +13 -12
- package/chunks/{pidfile-FNZM2DDH.js → pidfile-3LT7PZSW.js} +27 -26
- package/chunks/{qwenContentGenerator-A7B6J4U7.js → qwenContentGenerator-KLSURVNH.js} +28 -27
- package/chunks/{qwenOAuth2-LWLA6MQG.js → qwenOAuth2-ZV7YLMND.js} +5 -5
- package/chunks/{read-file-6JL4ULMY.js → read-file-HDAM3RHJ.js} +8 -8
- package/chunks/{read-mcp-resource-PIJF24RO.js → read-mcp-resource-CNQHBSJM.js} +2 -2
- package/chunks/record-artifact-PP3LKHTS.js +343 -0
- package/chunks/{ripGrep-DIUGLJE5.js → ripGrep-W36NLR7M.js} +26 -25
- package/chunks/{run-qwen-serve-CME3AKM4.js → run-qwen-serve-IMI2CQB5.js} +72 -28
- package/chunks/{scheduler-L7F6GDDT.js → scheduler-I5NKE5UJ.js} +26 -25
- package/chunks/{send-message-33PYFMCT.js → send-message-OA6MV4EU.js} +3 -3
- package/chunks/{serve-SRCBOJGP.js → serve-JMHMOYBO.js} +33 -32
- package/chunks/{server-QSQ45QFR.js → server-QIYIN34N.js} +1358 -492
- package/chunks/{session-5DG6NXHZ.js → session-BLL6HB35.js} +68 -65
- package/chunks/{settings-3EEQI4MN.js → settings-ABECXCTY.js} +30 -29
- package/chunks/{shell-B7FNYF5S.js → shell-A2TQI3U4.js} +26 -25
- package/chunks/{skill-AAOGHD5O.js → skill-4GTWZZWR.js} +10 -10
- package/chunks/{spawnChannel-3CBN3ZLK.js → spawnChannel-DFUVGP53.js} +30 -29
- package/chunks/{src-T5A7P7FS.js → src-ZORBMUM7.js} +77 -43
- package/chunks/{startInteractiveUI-2FGEQ6AS.js → startInteractiveUI-FH5MVXUE.js} +449 -175
- package/chunks/{syntheticOutput-YOSWIHDJ.js → syntheticOutput-F7LSDCAR.js} +3 -3
- package/chunks/{task-create-NHS2NGB3.js → task-create-RPFZNB4B.js} +7 -7
- package/chunks/{task-list-5UIB564R.js → task-list-TGGJX7EA.js} +5 -5
- package/chunks/{task-stop-HGXZ2VZ3.js → task-stop-W7NGTMYQ.js} +2 -2
- package/chunks/{task-update-IYYWUILG.js → task-update-5WUG5MVQ.js} +7 -7
- package/chunks/{team-create-KDF6W6PV.js → team-create-F76QOR6H.js} +26 -25
- package/chunks/{team-delete-FEKJCU4P.js → team-delete-UHQQ2QQX.js} +5 -5
- package/chunks/{team-plan-approval-PSFKQX7M.js → team-plan-approval-OKM7YZC2.js} +26 -25
- package/chunks/{theme-manager-5XOA2AO7.js → theme-manager-6R7EVWHW.js} +27 -26
- package/chunks/{todoWrite-TKMVZ2HT.js → todoWrite-C4ZAMSR3.js} +4 -4
- package/chunks/{tool-search-LFRILZXC.js → tool-search-UWXDKI7D.js} +9 -9
- package/chunks/{trustedFolders-7HQY6T6X.js → trustedFolders-DHASVVUP.js} +27 -26
- package/chunks/{validateNonInterActiveAuth-UC27B7BA.js → validateNonInterActiveAuth-56J7MOOP.js} +62 -59
- package/chunks/version-NE2I4PBN.js +10 -0
- package/chunks/{web-fetch-J4PIW36Q.js → web-fetch-UYGMOHW4.js} +5 -5
- package/chunks/{workflow-KUTESS6L.js → workflow-HGF3URV3.js} +35 -27
- package/chunks/{workspace-providers-status-LJT5AQDS.js → workspace-providers-status-KXB2OZFQ.js} +33 -32
- package/chunks/{workspace-service-YOBYVDXH.js → workspace-service-NSTI55BC.js} +39 -38
- package/chunks/workspace-skills-status-X5S6JGQZ.js +69 -0
- package/chunks/{write-file-FJYBZUHP.js → write-file-HVKT5VTX.js} +27 -26
- package/chunks/yargs-B64EYTCF.js +10 -0
- package/chunks/{zh-SLZNSSZB.js → zh-RS3HZHFH.js} +2 -0
- package/chunks/{zh-TW-P53C2SL5.js → zh-TW-L5GRQ4S4.js} +2 -0
- package/cli-entry.js +81 -8
- package/cli.js +348 -55
- package/locales/en.js +2 -0
- package/locales/zh-TW.js +2 -0
- package/locales/zh.js +2 -0
- package/node_modules/@qwen-code/audio-capture/package.json +1 -1
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-D_rAuMDd.js → arc-Csx4m4N0.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-DUCzbHVo.js → architectureDiagram-3BPJPVTR-BEa0vCM7.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BEEBt1LL.js → blockDiagram-GPEHLZMM-BPzbKnn3.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-5ZJ_DeFL.js → c4Diagram-AAUBKEIU-B8YO71yP.js} +1 -1
- package/web-shell/assets/channel-QU1XUuVe.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-Cfw7EiLn.js → chunk-2J33WTMH-32XhwSHt.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-FGuZNCZY.js → chunk-4BX2VUAB-Bmoyo6PS.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-CaBwYPBF.js → chunk-55IACEB6-TwH6PFhs.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-BlR04OFz.js → chunk-727SXJPM-RI_IVUtZ.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-D3_mYJH5.js → chunk-AQP2D5EJ-DH6GIAZD.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-7D4q4SbB.js → chunk-FMBD7UC4-DeD3k3D5.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BjX_Iwmr.js → chunk-ND2GUHAM-BLPb8nv3.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-C3Hz_ZQh.js → chunk-QZHKN3VN-PZpyglW1.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-fv1EWO-L.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-fv1EWO-L.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-Ax4UycaT.js → cose-bilkent-S5V4N54A-Jsd0yKfz.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-C6hmPtGt.js → dagre-BM42HDAG-B-zADciZ.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-tXZnxjmw.js → diagram-2AECGRRQ-Cn6GDxoo.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-99dwIzQG.js → diagram-5GNKFQAL-udLgyJxO.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-Bqhn0-2s.js → diagram-KO2AKTUF-EcLpfzy3.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DzThVSvo.js → diagram-LMA3HP47-D-YFbYsJ.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DPE8vjln.js → diagram-OG6HWLK6-C8oRUATa.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-KzUKgQCV.js → erDiagram-TEJ5UH35-DPH5nStc.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-DBN-DXw5.js → flowDiagram-I6XJVG4X-CSOTwkAt.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DuBsP9u8.js → ganttDiagram-6RSMTGT7-D0L988t0.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BjWHMyKR.js → gitGraphDiagram-PVQCEYII-B9Oo7gxS.js} +1 -1
- package/web-shell/assets/index-BYZZL5N7.css +5 -0
- package/web-shell/assets/index-C_oTyz0s.js +753 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-BVux0vP6.js → infoDiagram-5YYISTIA-Ddj4YN2P.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-2qzw7f--.js → ishikawaDiagram-YF4QCWOH-CBjafcl7.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Dnl65sxL.js → journeyDiagram-JHISSGLW-Bn3XD99u.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BElSQYtY.js → kanban-definition-UN3LZRKU-D7PBPJmE.js} +1 -1
- package/web-shell/assets/{linear-BjoycSSY.js → linear-Bmfo22rZ.js} +1 -1
- package/web-shell/assets/{mermaid.core-xe6bvMRz.js → mermaid.core-xRkAI-EI.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D8DQgI4U.js → mindmap-definition-RKZ34NQL-B30zRinm.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-Dwh7Gp7c.js → pieDiagram-4H26LBE5-DblnKR9Z.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BXKNBln2.js → quadrantDiagram-W4KKPZXB-COkHFKjF.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BzaC3cIA.js → requirementDiagram-4Y6WPE33-DDU3MMyn.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DP2t7eZk.js → sankeyDiagram-5OEKKPKP-Dt4lqEYv.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-XlFiWEYv.js → sequenceDiagram-3UESZ5HK-BRzby5gN.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CupgUMJO.js → stateDiagram-AJRCARHV-CylzByc3.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BKWZIKkM.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DstuGywa.js → timeline-definition-PNZ67QCA-BSzaNx6w.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-CnbNp6zu.js → vennDiagram-CIIHVFJN-BbzeKzCo.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DnvoHq6R.js → wardley-L42UT6IY-BRJwCgE_.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cz0xHEWB.js → wardleyDiagram-YWT4CUSO-BmAs0mJ-.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-p36gfo88.js → xychartDiagram-2RQKCTM6-DqywSqVW.js} +1 -1
- package/web-shell/index.html +2 -2
- package/bundled/loop/SKILL.test.ts +0 -119
- package/bundled/loop/autonomous-loop.test.ts +0 -59
- package/bundled/loop/loop-task-file.test.ts +0 -1064
- package/bundled/loop/loop-tick-resolver.test.ts +0 -906
- package/chunks/chunk-EJ7BN3EN.js +0 -11396
- package/chunks/chunk-L7QPM2YD.js +0 -481
- package/chunks/daemon-status-provider-P72STMLB.js +0 -72
- package/chunks/nonInteractiveCli-6BYQSJTB.js +0 -109
- package/chunks/workspace-skills-status-ONEPXJV6.js +0 -62
- package/web-shell/assets/channel-B5ynH0q8.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CK3ibywp.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CK3ibywp.js +0 -1
- package/web-shell/assets/index-9qfvU0_r.css +0 -5
- package/web-shell/assets/index-CWzDaQT5.js +0 -717
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-By3E4QwN.js +0 -1
- package/chunks/{chunk-UFC57OYT.js → chunk-VRDMOSQS.js} +54 -54
|
@@ -1,8 +1,62 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import "./chunk-6MDY7FX3.js";
|
|
4
|
+
import {
|
|
5
|
+
DualOutputContext,
|
|
6
|
+
useDualOutput,
|
|
7
|
+
useGeminiStream
|
|
8
|
+
} from "./chunk-W4I6PLEG.js";
|
|
9
|
+
import {
|
|
10
|
+
MAX_SUGGESTIONS_TO_SHOW,
|
|
11
|
+
MAX_WIDTH,
|
|
12
|
+
SuggestionsDisplay,
|
|
13
|
+
buildMcpResourceRef,
|
|
14
|
+
buildMcpServerRef,
|
|
15
|
+
getExtensionSuggestions,
|
|
16
|
+
matchMcpServerPrefix
|
|
17
|
+
} from "./chunk-7U6J224Z.js";
|
|
3
18
|
import {
|
|
4
19
|
StreamJsonOutputAdapter
|
|
5
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-LTMDKOZC.js";
|
|
21
|
+
import {
|
|
22
|
+
BuiltinCommandLoader,
|
|
23
|
+
BundledSkillLoader,
|
|
24
|
+
CommandService,
|
|
25
|
+
DISPLAY_HOOK_EVENTS,
|
|
26
|
+
FileCommandLoader,
|
|
27
|
+
McpPromptLoader,
|
|
28
|
+
SavedWorkflowLoader,
|
|
29
|
+
SkillCommandLoader,
|
|
30
|
+
addConfigToMatcherGroup,
|
|
31
|
+
appendUserPromptExpansionAdditionalContext,
|
|
32
|
+
createEmptyHookEventInfo,
|
|
33
|
+
findMidInputSlashCommand,
|
|
34
|
+
findSlashCommandTokens,
|
|
35
|
+
formatApprovalModeDescription,
|
|
36
|
+
formatApprovalModeName,
|
|
37
|
+
formatUserPromptExpansionBlockedMessage,
|
|
38
|
+
getAllConfigs,
|
|
39
|
+
getBestSlashCommandMatch,
|
|
40
|
+
getInstallationInfo,
|
|
41
|
+
getTranslatedSourceDisplayMap,
|
|
42
|
+
hasBlockingBackgroundWork,
|
|
43
|
+
hasSlashCommandPathSeparator,
|
|
44
|
+
isBtwCommand,
|
|
45
|
+
isMidInputCompletableCommand,
|
|
46
|
+
isSlashCommand,
|
|
47
|
+
parseSlashCommand,
|
|
48
|
+
performStandaloneUpdate,
|
|
49
|
+
resetBackgroundStateForSessionSwitch,
|
|
50
|
+
restoreGoalFromHistory,
|
|
51
|
+
serializeUserPromptExpansionPrompt,
|
|
52
|
+
supportsMatchers,
|
|
53
|
+
useAutoAcceptIndicator
|
|
54
|
+
} from "./chunk-Z7EYROOJ.js";
|
|
55
|
+
import {
|
|
56
|
+
appEvents,
|
|
57
|
+
loadHierarchicalGeminiMemory
|
|
58
|
+
} from "./chunk-R4N3OALZ.js";
|
|
59
|
+
import "./chunk-ZPGE42V7.js";
|
|
6
60
|
import {
|
|
7
61
|
AboutBox,
|
|
8
62
|
BaseSelectionList,
|
|
@@ -70,72 +124,16 @@ import {
|
|
|
70
124
|
useTextBuffer,
|
|
71
125
|
useUIActions,
|
|
72
126
|
useUIState
|
|
73
|
-
} from "./chunk-
|
|
127
|
+
} from "./chunk-K3FZXSTO.js";
|
|
74
128
|
import {
|
|
75
129
|
relaunchApp
|
|
76
|
-
} from "./chunk-
|
|
77
|
-
import {
|
|
78
|
-
stopAndGetCapturedInput
|
|
79
|
-
} from "./chunk-LWGLBVWA.js";
|
|
80
|
-
import "./chunk-MDBNFHIO.js";
|
|
81
|
-
import {
|
|
82
|
-
DualOutputContext,
|
|
83
|
-
useDualOutput,
|
|
84
|
-
useGeminiStream
|
|
85
|
-
} from "./chunk-6KPZJJ6U.js";
|
|
86
|
-
import {
|
|
87
|
-
MAX_SUGGESTIONS_TO_SHOW,
|
|
88
|
-
MAX_WIDTH,
|
|
89
|
-
SuggestionsDisplay,
|
|
90
|
-
buildMcpResourceRef,
|
|
91
|
-
getExtensionSuggestions,
|
|
92
|
-
matchMcpServerPrefix
|
|
93
|
-
} from "./chunk-SJVPSHXU.js";
|
|
94
|
-
import {
|
|
95
|
-
BuiltinCommandLoader,
|
|
96
|
-
BundledSkillLoader,
|
|
97
|
-
CommandService,
|
|
98
|
-
DISPLAY_HOOK_EVENTS,
|
|
99
|
-
FileCommandLoader,
|
|
100
|
-
McpPromptLoader,
|
|
101
|
-
SavedWorkflowLoader,
|
|
102
|
-
SkillCommandLoader,
|
|
103
|
-
addConfigToMatcherGroup,
|
|
104
|
-
appendUserPromptExpansionAdditionalContext,
|
|
105
|
-
createEmptyHookEventInfo,
|
|
106
|
-
findMidInputSlashCommand,
|
|
107
|
-
findSlashCommandTokens,
|
|
108
|
-
formatApprovalModeDescription,
|
|
109
|
-
formatApprovalModeName,
|
|
110
|
-
formatUserPromptExpansionBlockedMessage,
|
|
111
|
-
getAllConfigs,
|
|
112
|
-
getBestSlashCommandMatch,
|
|
113
|
-
getInstallationInfo,
|
|
114
|
-
getTranslatedSourceDisplayMap,
|
|
115
|
-
hasBlockingBackgroundWork,
|
|
116
|
-
hasSlashCommandPathSeparator,
|
|
117
|
-
isBtwCommand,
|
|
118
|
-
isMidInputCompletableCommand,
|
|
119
|
-
isSlashCommand,
|
|
120
|
-
parseSlashCommand,
|
|
121
|
-
performStandaloneUpdate,
|
|
122
|
-
resetBackgroundStateForSessionSwitch,
|
|
123
|
-
restoreGoalFromHistory,
|
|
124
|
-
serializeUserPromptExpansionPrompt,
|
|
125
|
-
supportsMatchers,
|
|
126
|
-
useAutoAcceptIndicator
|
|
127
|
-
} from "./chunk-4MCC4XHH.js";
|
|
128
|
-
import {
|
|
129
|
-
appEvents,
|
|
130
|
-
loadHierarchicalGeminiMemory,
|
|
131
|
-
loadMcpApprovals
|
|
132
|
-
} from "./chunk-EJ7BN3EN.js";
|
|
130
|
+
} from "./chunk-UVHL5TCO.js";
|
|
133
131
|
import {
|
|
134
132
|
SessionStatsProvider,
|
|
135
133
|
getCommandDisplayName,
|
|
136
134
|
getCommandSourceBadge,
|
|
137
135
|
useSessionStats
|
|
138
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-SWV4CVYG.js";
|
|
139
137
|
import {
|
|
140
138
|
Colors,
|
|
141
139
|
SettingsContext,
|
|
@@ -144,7 +142,7 @@ import {
|
|
|
144
142
|
useMouseEvents,
|
|
145
143
|
useSettings,
|
|
146
144
|
useTerminalSize
|
|
147
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-KB4ICCA5.js";
|
|
148
146
|
import {
|
|
149
147
|
BEL,
|
|
150
148
|
KeypressProvider,
|
|
@@ -167,24 +165,17 @@ import {
|
|
|
167
165
|
useKeypressContext,
|
|
168
166
|
wrapForMultiplexer,
|
|
169
167
|
writeOsc52
|
|
170
|
-
} from "./chunk-
|
|
171
|
-
import {
|
|
172
|
-
disableKittyProtocol,
|
|
173
|
-
isKittyProtocolEnabled,
|
|
174
|
-
isKittyProtocolSupported
|
|
175
|
-
} from "./chunk-JZSY4WP3.js";
|
|
176
|
-
import "./chunk-WZ724G6K.js";
|
|
168
|
+
} from "./chunk-DFH4T5IQ.js";
|
|
177
169
|
import "./chunk-KSPVDFE4.js";
|
|
178
170
|
import "./chunk-MRO43B25.js";
|
|
179
|
-
import "./chunk-5B2WNM6V.js";
|
|
180
171
|
import {
|
|
181
172
|
MaxSizedBox,
|
|
182
173
|
OverflowProvider,
|
|
183
174
|
useOverflowState
|
|
184
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-MLB5AB2I.js";
|
|
185
176
|
import {
|
|
186
177
|
theme
|
|
187
|
-
} from "./chunk-
|
|
178
|
+
} from "./chunk-IFEWJXFS.js";
|
|
188
179
|
import {
|
|
189
180
|
Box_default,
|
|
190
181
|
Static,
|
|
@@ -199,7 +190,7 @@ import {
|
|
|
199
190
|
use_is_screen_reader_enabled_default,
|
|
200
191
|
use_stdin_default,
|
|
201
192
|
use_stdout_default
|
|
202
|
-
} from "./chunk-
|
|
193
|
+
} from "./chunk-YZ2LNTHO.js";
|
|
203
194
|
import {
|
|
204
195
|
require_react
|
|
205
196
|
} from "./chunk-KYMBIKIW.js";
|
|
@@ -207,13 +198,30 @@ import {
|
|
|
207
198
|
AUTO_THEME_NAME,
|
|
208
199
|
DEFAULT_THEME,
|
|
209
200
|
themeManager
|
|
210
|
-
} from "./chunk-
|
|
201
|
+
} from "./chunk-PC4ZXHU2.js";
|
|
202
|
+
import {
|
|
203
|
+
stopAndGetCapturedInput
|
|
204
|
+
} from "./chunk-CSOTA7KX.js";
|
|
205
|
+
import {
|
|
206
|
+
disableKittyProtocol,
|
|
207
|
+
isKittyProtocolEnabled,
|
|
208
|
+
isKittyProtocolSupported
|
|
209
|
+
} from "./chunk-JZSY4WP3.js";
|
|
210
|
+
import {
|
|
211
|
+
requestConsentInteractive,
|
|
212
|
+
requestConsentOrFail
|
|
213
|
+
} from "./chunk-AOAFX4PL.js";
|
|
214
|
+
import "./chunk-3GONHQOA.js";
|
|
215
|
+
import {
|
|
216
|
+
getErrorMessage as getErrorMessage2
|
|
217
|
+
} from "./chunk-544UZQBD.js";
|
|
218
|
+
import "./chunk-ZI4MGBB5.js";
|
|
211
219
|
import {
|
|
212
220
|
openQwenAsrRealtimeStream,
|
|
213
221
|
openVoiceStream,
|
|
214
222
|
openVoiceStreamWithRetry
|
|
215
|
-
} from "./chunk-
|
|
216
|
-
import "./chunk-
|
|
223
|
+
} from "./chunk-RB5GAQR6.js";
|
|
224
|
+
import "./chunk-JFFOH2XO.js";
|
|
217
225
|
import "./chunk-54YZOP7P.js";
|
|
218
226
|
import {
|
|
219
227
|
cpLen,
|
|
@@ -227,50 +235,42 @@ import {
|
|
|
227
235
|
stripUnsafeCharacters,
|
|
228
236
|
toCodePoints,
|
|
229
237
|
wrapToVisualLines
|
|
230
|
-
} from "./chunk-
|
|
238
|
+
} from "./chunk-J7XUJALJ.js";
|
|
239
|
+
import {
|
|
240
|
+
getExtendedSystemInfo
|
|
241
|
+
} from "./chunk-3VRMGS3A.js";
|
|
242
|
+
import {
|
|
243
|
+
formatDuration,
|
|
244
|
+
formatRelativeTime,
|
|
245
|
+
formatTokenCount
|
|
246
|
+
} from "./chunk-KHDZHZMH.js";
|
|
247
|
+
import "./chunk-OGEJMKN5.js";
|
|
231
248
|
import {
|
|
232
249
|
assertVoiceBaseUrlNetworkAllowed,
|
|
233
250
|
isKeytermEcho,
|
|
234
251
|
isStreamingVoiceModel,
|
|
235
252
|
resolveVoiceStreamConfig,
|
|
236
253
|
transcribeVoiceAudio
|
|
237
|
-
} from "./chunk-
|
|
254
|
+
} from "./chunk-LFFF2SPV.js";
|
|
238
255
|
import {
|
|
239
256
|
formatUnsupportedVoiceModelMessage,
|
|
240
257
|
isSelectableVoiceModel
|
|
241
|
-
} from "./chunk-
|
|
242
|
-
import "./chunk-
|
|
258
|
+
} from "./chunk-FV5SBNNC.js";
|
|
259
|
+
import "./chunk-E7KNELIZ.js";
|
|
243
260
|
import "./chunk-AHNXYU4O.js";
|
|
244
261
|
import "./chunk-RNBYOUGV.js";
|
|
245
|
-
import "./chunk-
|
|
262
|
+
import "./chunk-FSXFNDTI.js";
|
|
246
263
|
import "./chunk-BJBWRCSK.js";
|
|
247
264
|
import {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
import "./chunk-
|
|
252
|
-
import
|
|
253
|
-
|
|
254
|
-
} from "./chunk-JJ6B3ZD3.js";
|
|
255
|
-
import "./chunk-YHTNWGRR.js";
|
|
265
|
+
loadMcpApprovals
|
|
266
|
+
} from "./chunk-SLQXGMYY.js";
|
|
267
|
+
import "./chunk-6BEOH4KK.js";
|
|
268
|
+
import "./chunk-S6RLAIUR.js";
|
|
269
|
+
import "./chunk-MX2YXRER.js";
|
|
270
|
+
import "./chunk-MZ7BABX3.js";
|
|
256
271
|
import {
|
|
257
272
|
createLoadedSettingsAdapter
|
|
258
|
-
} from "./chunk-
|
|
259
|
-
import {
|
|
260
|
-
getExtendedSystemInfo
|
|
261
|
-
} from "./chunk-JKGCBO3O.js";
|
|
262
|
-
import {
|
|
263
|
-
formatDuration,
|
|
264
|
-
formatRelativeTime,
|
|
265
|
-
formatTokenCount
|
|
266
|
-
} from "./chunk-KHDZHZMH.js";
|
|
267
|
-
import {
|
|
268
|
-
getCliVersion,
|
|
269
|
-
getPackageJson
|
|
270
|
-
} from "./chunk-RSBQS6M4.js";
|
|
271
|
-
import "./chunk-SEZC2725.js";
|
|
272
|
-
import "./chunk-ALX6BUYW.js";
|
|
273
|
-
import "./chunk-K4I4STSL.js";
|
|
273
|
+
} from "./chunk-M7AGQP5D.js";
|
|
274
274
|
import {
|
|
275
275
|
CORRUPTED_SUFFIX,
|
|
276
276
|
SettingScope,
|
|
@@ -292,14 +292,19 @@ import {
|
|
|
292
292
|
settingExistsInScope,
|
|
293
293
|
validateSettingValue,
|
|
294
294
|
writeOutputLanguageAndRegisterPath
|
|
295
|
-
} from "./chunk-
|
|
295
|
+
} from "./chunk-NLD2WKE3.js";
|
|
296
296
|
import {
|
|
297
297
|
getCurrentLanguage,
|
|
298
298
|
localizeToolDisplayName,
|
|
299
299
|
t,
|
|
300
300
|
ta
|
|
301
|
-
} from "./chunk-
|
|
301
|
+
} from "./chunk-WNTS5A2R.js";
|
|
302
302
|
import "./chunk-TLRYABYP.js";
|
|
303
|
+
import "./chunk-4RQIB5UZ.js";
|
|
304
|
+
import "./chunk-SEZC2725.js";
|
|
305
|
+
import "./chunk-NUGPZXAZ.js";
|
|
306
|
+
import "./chunk-VRDMOSQS.js";
|
|
307
|
+
import "./chunk-3RW4AZJV.js";
|
|
303
308
|
import {
|
|
304
309
|
require_clean,
|
|
305
310
|
require_constants,
|
|
@@ -311,15 +316,14 @@ import {
|
|
|
311
316
|
require_semver,
|
|
312
317
|
require_valid
|
|
313
318
|
} from "./chunk-CJCKDMWO.js";
|
|
314
|
-
import
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
import "./chunk-PPFWEV7G.js";
|
|
319
|
+
import {
|
|
320
|
+
getCliVersion,
|
|
321
|
+
getPackageJson
|
|
322
|
+
} from "./chunk-CODWJXQA.js";
|
|
319
323
|
import {
|
|
320
324
|
isWorkspaceTrusted,
|
|
321
325
|
loadTrustedFolders
|
|
322
|
-
} from "./chunk-
|
|
326
|
+
} from "./chunk-YZ5ANQMR.js";
|
|
323
327
|
import {
|
|
324
328
|
clearScreen,
|
|
325
329
|
writeStderrLine
|
|
@@ -419,37 +423,38 @@ import {
|
|
|
419
423
|
validateWorkflowName,
|
|
420
424
|
watchRepoBranch,
|
|
421
425
|
writeRuntimeStatus
|
|
422
|
-
} from "./chunk-
|
|
426
|
+
} from "./chunk-WOG7QWIT.js";
|
|
423
427
|
import "./chunk-5P5XGNYH.js";
|
|
424
|
-
import "./chunk-K5PGHDBN.js";
|
|
425
428
|
import "./chunk-SKAZWEV5.js";
|
|
426
|
-
import "./chunk-
|
|
427
|
-
import "./chunk-
|
|
429
|
+
import "./chunk-K5PGHDBN.js";
|
|
430
|
+
import "./chunk-ACD5DFUY.js";
|
|
431
|
+
import "./chunk-W7EEOR7D.js";
|
|
432
|
+
import "./chunk-42XGFRJS.js";
|
|
428
433
|
import {
|
|
429
434
|
require_graceful_fs
|
|
430
|
-
} from "./chunk-
|
|
435
|
+
} from "./chunk-X2XNQQJI.js";
|
|
431
436
|
import {
|
|
432
437
|
runSideQuery
|
|
433
|
-
} from "./chunk-
|
|
434
|
-
import "./chunk-R6RI2HIC.js";
|
|
438
|
+
} from "./chunk-VZ7HY3YU.js";
|
|
435
439
|
import "./chunk-2MPVVENX.js";
|
|
436
440
|
import "./chunk-ZTQ26VBE.js";
|
|
437
|
-
import "./chunk-
|
|
441
|
+
import "./chunk-NFE3DQ4R.js";
|
|
438
442
|
import "./chunk-MLZQVCF3.js";
|
|
439
443
|
import "./chunk-LQ7TMOCE.js";
|
|
440
444
|
import "./chunk-E5A7LHNN.js";
|
|
441
445
|
import {
|
|
442
446
|
APPROVAL_MODES
|
|
443
|
-
} from "./chunk-
|
|
447
|
+
} from "./chunk-VEB3NYSO.js";
|
|
444
448
|
import "./chunk-GO6LNQXT.js";
|
|
445
|
-
import "./chunk-
|
|
449
|
+
import "./chunk-5UDYETKK.js";
|
|
446
450
|
import {
|
|
447
451
|
HOOKS_CONFIG_FIELDS
|
|
448
|
-
} from "./chunk-
|
|
452
|
+
} from "./chunk-WMPVYQ4P.js";
|
|
449
453
|
import {
|
|
450
454
|
isPathWithinRoot
|
|
451
|
-
} from "./chunk-
|
|
452
|
-
import "./chunk-
|
|
455
|
+
} from "./chunk-TLWA7TPR.js";
|
|
456
|
+
import "./chunk-QYNNN7BK.js";
|
|
457
|
+
import "./chunk-QT7XKZT7.js";
|
|
453
458
|
import {
|
|
454
459
|
AuthEvent,
|
|
455
460
|
DiscoveredMCPTool,
|
|
@@ -473,7 +478,7 @@ import {
|
|
|
473
478
|
recordSkillInvocation,
|
|
474
479
|
removeMCPServerStatus,
|
|
475
480
|
removeMCPStatusChangeListener
|
|
476
|
-
} from "./chunk-
|
|
481
|
+
} from "./chunk-SJ2CTIYH.js";
|
|
477
482
|
import "./chunk-E6US47KI.js";
|
|
478
483
|
import "./chunk-UWCTAVOD.js";
|
|
479
484
|
import {
|
|
@@ -483,35 +488,35 @@ import "./chunk-OMX7CUOE.js";
|
|
|
483
488
|
import {
|
|
484
489
|
getAutoMemoryProjectStateDir,
|
|
485
490
|
getAutoMemoryRoot
|
|
486
|
-
} from "./chunk-
|
|
487
|
-
import "./chunk-
|
|
488
|
-
import "./chunk-
|
|
491
|
+
} from "./chunk-4KJ2BPIT.js";
|
|
492
|
+
import "./chunk-SUAKHHK7.js";
|
|
493
|
+
import "./chunk-FEJ2FZ3U.js";
|
|
489
494
|
import {
|
|
490
495
|
ToolDisplayNames,
|
|
491
496
|
ToolNames
|
|
492
|
-
} from "./chunk-
|
|
497
|
+
} from "./chunk-X3YGAX7V.js";
|
|
493
498
|
import {
|
|
494
499
|
qwenOAuth2Events
|
|
495
|
-
} from "./chunk-
|
|
496
|
-
import "./chunk-
|
|
500
|
+
} from "./chunk-IJRL2S3D.js";
|
|
501
|
+
import "./chunk-AHNJGLFV.js";
|
|
497
502
|
import "./chunk-22IFUCVR.js";
|
|
498
503
|
import {
|
|
499
504
|
atomicWriteFileSync
|
|
500
|
-
} from "./chunk-
|
|
505
|
+
} from "./chunk-7LTB54MK.js";
|
|
501
506
|
import {
|
|
502
507
|
REASONING_EFFORT_TIERS
|
|
503
508
|
} from "./chunk-SIUQ3YYX.js";
|
|
504
509
|
import {
|
|
505
510
|
DEFAULT_TOKEN_LIMIT
|
|
506
|
-
} from "./chunk-
|
|
507
|
-
import "./chunk-
|
|
511
|
+
} from "./chunk-GB6HDZIK.js";
|
|
512
|
+
import "./chunk-DT3B47QP.js";
|
|
508
513
|
import "./chunk-IRJWHZWU.js";
|
|
509
514
|
import "./chunk-SYCJMSIJ.js";
|
|
510
515
|
import "./chunk-55ZMG67I.js";
|
|
511
516
|
import "./chunk-H6BD2ELD.js";
|
|
512
517
|
import "./chunk-5IFG2VC4.js";
|
|
513
518
|
import "./chunk-64WXLC72.js";
|
|
514
|
-
import "./chunk-
|
|
519
|
+
import "./chunk-H6EMK6QK.js";
|
|
515
520
|
import {
|
|
516
521
|
Storage,
|
|
517
522
|
createDebugLogger,
|
|
@@ -521,17 +526,17 @@ import {
|
|
|
521
526
|
isNodeError,
|
|
522
527
|
shortenPath,
|
|
523
528
|
tildeifyPath
|
|
524
|
-
} from "./chunk-
|
|
525
|
-
import "./chunk-
|
|
529
|
+
} from "./chunk-22MNNNXE.js";
|
|
530
|
+
import "./chunk-FHGQFG2K.js";
|
|
531
|
+
import {
|
|
532
|
+
registerCleanup,
|
|
533
|
+
runExitCleanup
|
|
534
|
+
} from "./chunk-QLBBV7C6.js";
|
|
526
535
|
import {
|
|
527
536
|
finalizeStartupProfile,
|
|
528
537
|
profileCheckpoint
|
|
529
538
|
} from "./chunk-ITOGNELQ.js";
|
|
530
539
|
import "./chunk-FXGLL2HL.js";
|
|
531
|
-
import {
|
|
532
|
-
registerCleanup,
|
|
533
|
-
runExitCleanup
|
|
534
|
-
} from "./chunk-2YH27UNF.js";
|
|
535
540
|
import "./chunk-ZERZSAZL.js";
|
|
536
541
|
import "./chunk-QN5NZ3UQ.js";
|
|
537
542
|
import "./chunk-BR4QREVK.js";
|
|
@@ -5831,10 +5836,18 @@ var RemoteInputWatcher = class {
|
|
|
5831
5836
|
this.consumedPrefixHash = null;
|
|
5832
5837
|
}
|
|
5833
5838
|
if (currentSize <= this.bytesRead) return Promise.resolve();
|
|
5834
|
-
const
|
|
5839
|
+
const consumeUntil = this.findLastCompleteRecordEnd(
|
|
5840
|
+
this.bytesRead,
|
|
5841
|
+
currentSize
|
|
5842
|
+
);
|
|
5843
|
+
if (consumeUntil === null) {
|
|
5844
|
+
return Promise.resolve();
|
|
5845
|
+
}
|
|
5846
|
+
const nextConsumedPrefixHash = this.hashFilePrefix(consumeUntil);
|
|
5835
5847
|
this.reading = true;
|
|
5836
5848
|
const stream = createReadStream(this.filePath, {
|
|
5837
5849
|
start: this.bytesRead,
|
|
5850
|
+
end: consumeUntil - 1,
|
|
5838
5851
|
encoding: "utf-8"
|
|
5839
5852
|
});
|
|
5840
5853
|
const rl = createInterface({ input: stream, crlfDelay: Infinity });
|
|
@@ -5866,7 +5879,7 @@ var RemoteInputWatcher = class {
|
|
|
5866
5879
|
});
|
|
5867
5880
|
return new Promise((resolve4) => {
|
|
5868
5881
|
rl.on("close", () => {
|
|
5869
|
-
this.bytesRead =
|
|
5882
|
+
this.bytesRead = consumeUntil;
|
|
5870
5883
|
if (nextConsumedPrefixHash !== null) {
|
|
5871
5884
|
this.consumedPrefixHash = nextConsumedPrefixHash;
|
|
5872
5885
|
}
|
|
@@ -5876,6 +5889,37 @@ var RemoteInputWatcher = class {
|
|
|
5876
5889
|
});
|
|
5877
5890
|
});
|
|
5878
5891
|
}
|
|
5892
|
+
findLastCompleteRecordEnd(start, end) {
|
|
5893
|
+
if (end <= start) return null;
|
|
5894
|
+
let fd = null;
|
|
5895
|
+
try {
|
|
5896
|
+
fd = openSync2(this.filePath, "r");
|
|
5897
|
+
const buffer = Buffer.allocUnsafe(Math.min(64 * 1024, end - start));
|
|
5898
|
+
let remaining = end - start;
|
|
5899
|
+
let position = start;
|
|
5900
|
+
let lastLineBreak = -1;
|
|
5901
|
+
while (remaining > 0) {
|
|
5902
|
+
const bytesToRead = Math.min(buffer.length, remaining);
|
|
5903
|
+
const bytesRead = readSync(fd, buffer, 0, bytesToRead, position);
|
|
5904
|
+
if (bytesRead <= 0) break;
|
|
5905
|
+
for (let i = 0; i < bytesRead; i++) {
|
|
5906
|
+
if (buffer[i] === 10) {
|
|
5907
|
+
lastLineBreak = position + i;
|
|
5908
|
+
}
|
|
5909
|
+
}
|
|
5910
|
+
remaining -= bytesRead;
|
|
5911
|
+
position += bytesRead;
|
|
5912
|
+
}
|
|
5913
|
+
return lastLineBreak >= start ? lastLineBreak + 1 : null;
|
|
5914
|
+
} catch (err) {
|
|
5915
|
+
debugLogger2.warn("RemoteInput: failed to scan complete records:", err);
|
|
5916
|
+
return null;
|
|
5917
|
+
} finally {
|
|
5918
|
+
if (fd !== null) {
|
|
5919
|
+
closeSync(fd);
|
|
5920
|
+
}
|
|
5921
|
+
}
|
|
5922
|
+
}
|
|
5879
5923
|
hasConsumedPrefixChanged() {
|
|
5880
5924
|
if (this.bytesRead === 0) {
|
|
5881
5925
|
return false;
|
|
@@ -6484,6 +6528,10 @@ function formatAuthDisplayType(authDisplayType) {
|
|
|
6484
6528
|
}
|
|
6485
6529
|
}
|
|
6486
6530
|
__name(formatAuthDisplayType, "formatAuthDisplayType");
|
|
6531
|
+
function formatVersionLabel(version) {
|
|
6532
|
+
return /^\d/.test(version) ? `v${version}` : version;
|
|
6533
|
+
}
|
|
6534
|
+
__name(formatVersionLabel, "formatVersionLabel");
|
|
6487
6535
|
var Header = /* @__PURE__ */ __name(({
|
|
6488
6536
|
customAsciiArt,
|
|
6489
6537
|
customBannerTitle,
|
|
@@ -6495,6 +6543,7 @@ var Header = /* @__PURE__ */ __name(({
|
|
|
6495
6543
|
}) => {
|
|
6496
6544
|
const { columns: terminalWidth } = useTerminalSize();
|
|
6497
6545
|
const formattedAuthType = formatAuthDisplayType(authDisplayType);
|
|
6546
|
+
const versionLabel = formatVersionLabel(version);
|
|
6498
6547
|
const containerMarginX = 2;
|
|
6499
6548
|
const logoGap = 2;
|
|
6500
6549
|
const infoPanelPaddingX = 1;
|
|
@@ -6564,8 +6613,8 @@ var Header = /* @__PURE__ */ __name(({
|
|
|
6564
6613
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Text, { children: [
|
|
6565
6614
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Text, { bold: true, color: theme.text.accent, children: customBannerTitle ? customBannerTitle : ">_ Qwen Code" }),
|
|
6566
6615
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
6567
|
-
" (
|
|
6568
|
-
|
|
6616
|
+
" (",
|
|
6617
|
+
versionLabel,
|
|
6569
6618
|
")"
|
|
6570
6619
|
] })
|
|
6571
6620
|
] }),
|
|
@@ -8258,7 +8307,7 @@ function LoopDetectionConfirmation({
|
|
|
8258
8307
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { width: "100%", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
8259
8308
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: theme.text.secondary, children: "This can happen due to repetitive tool calls or other model behavior. Do you want to keep loop detection enabled or disable it for this session?" }),
|
|
8260
8309
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete }) }),
|
|
8261
|
-
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: theme.text.secondary, children: 'Note: Setting "model.skipLoopDetection" to true in your settings.json disables only the heuristic loop checks for future sessions; the always-on
|
|
8310
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: theme.text.secondary, children: 'Note: Setting "model.skipLoopDetection" to true in your settings.json disables only the heuristic loop checks for future sessions; the always-on guards (consecutive identical tool calls, repeated shell inspection commands, and the per-turn tool-call cap) are not affected by it. The cap is tunable via "model.maxToolCallsPerTurn" (0 disables it). Disabling for this session above suppresses everything.' }) })
|
|
8262
8311
|
] }) })
|
|
8263
8312
|
] })
|
|
8264
8313
|
}
|
|
@@ -26422,7 +26471,139 @@ var import_react75 = __toESM(require_react(), 1);
|
|
|
26422
26471
|
// packages/cli/src/ui/hooks/useBackgroundTaskView.ts
|
|
26423
26472
|
init_esbuild_shims();
|
|
26424
26473
|
var import_react74 = __toESM(require_react(), 1);
|
|
26474
|
+
|
|
26475
|
+
// packages/cli/src/ui/components/background-view/agent-forest.ts
|
|
26476
|
+
init_esbuild_shims();
|
|
26477
|
+
function isAgentNode(e) {
|
|
26478
|
+
return e.kind === "agent" && typeof e.agentId === "string";
|
|
26479
|
+
}
|
|
26480
|
+
__name(isAgentNode, "isAgentNode");
|
|
26481
|
+
function reorderChildrenUnderParents(entries) {
|
|
26482
|
+
const agents = entries.filter(isAgentNode);
|
|
26483
|
+
const byId = /* @__PURE__ */ new Map();
|
|
26484
|
+
for (const agent of agents) byId.set(agent.agentId, agent);
|
|
26485
|
+
const childrenOf = /* @__PURE__ */ new Map();
|
|
26486
|
+
const roots = [];
|
|
26487
|
+
for (const agent of agents) {
|
|
26488
|
+
const pid = agent.parentAgentId;
|
|
26489
|
+
if (pid != null && pid !== agent.agentId && byId.has(pid)) {
|
|
26490
|
+
const siblings = childrenOf.get(pid);
|
|
26491
|
+
if (siblings) siblings.push(agent);
|
|
26492
|
+
else childrenOf.set(pid, [agent]);
|
|
26493
|
+
} else {
|
|
26494
|
+
roots.push(agent);
|
|
26495
|
+
}
|
|
26496
|
+
}
|
|
26497
|
+
if (childrenOf.size === 0) return [...entries];
|
|
26498
|
+
const ordered = [];
|
|
26499
|
+
const visited = /* @__PURE__ */ new Set();
|
|
26500
|
+
const visit = /* @__PURE__ */ __name((node) => {
|
|
26501
|
+
if (visited.has(node.agentId)) return;
|
|
26502
|
+
visited.add(node.agentId);
|
|
26503
|
+
ordered.push(node);
|
|
26504
|
+
for (const child of childrenOf.get(node.agentId) ?? []) visit(child);
|
|
26505
|
+
}, "visit");
|
|
26506
|
+
for (const root of roots) visit(root);
|
|
26507
|
+
for (const agent of agents) {
|
|
26508
|
+
if (!visited.has(agent.agentId)) {
|
|
26509
|
+
visited.add(agent.agentId);
|
|
26510
|
+
ordered.push(agent);
|
|
26511
|
+
}
|
|
26512
|
+
}
|
|
26513
|
+
let next = 0;
|
|
26514
|
+
return entries.map((e) => isAgentNode(e) ? ordered[next++] : e);
|
|
26515
|
+
}
|
|
26516
|
+
__name(reorderChildrenUnderParents, "reorderChildrenUnderParents");
|
|
26517
|
+
function panelDisplayOrder(visibleNewestFirst) {
|
|
26518
|
+
return reorderChildrenUnderParents([...visibleNewestFirst].reverse());
|
|
26519
|
+
}
|
|
26520
|
+
__name(panelDisplayOrder, "panelDisplayOrder");
|
|
26521
|
+
function ancestorChain(node, lookup) {
|
|
26522
|
+
const chain = [];
|
|
26523
|
+
const seen = new Set(node.agentId != null ? [node.agentId] : []);
|
|
26524
|
+
let pid = node.parentAgentId;
|
|
26525
|
+
for (; ; ) {
|
|
26526
|
+
if (pid == null) return { chain, terminatedBy: "root" };
|
|
26527
|
+
if (seen.has(pid)) return { chain, terminatedBy: "cycle" };
|
|
26528
|
+
const parent = lookup(pid);
|
|
26529
|
+
if (!parent) return { chain, terminatedBy: "missing" };
|
|
26530
|
+
seen.add(pid);
|
|
26531
|
+
chain.push(parent);
|
|
26532
|
+
pid = parent.parentAgentId;
|
|
26533
|
+
}
|
|
26534
|
+
}
|
|
26535
|
+
__name(ancestorChain, "ancestorChain");
|
|
26536
|
+
function computeAgentTreeInfo(entries) {
|
|
26537
|
+
const byId = /* @__PURE__ */ new Map();
|
|
26538
|
+
for (const e of entries) if (isAgentNode(e)) byId.set(e.agentId, e);
|
|
26539
|
+
const info = /* @__PURE__ */ new Map();
|
|
26540
|
+
for (const e of byId.values()) {
|
|
26541
|
+
const { chain, terminatedBy } = ancestorChain(e, (id) => byId.get(id));
|
|
26542
|
+
info.set(e.agentId, {
|
|
26543
|
+
// Cycle members are appended flat at root level by
|
|
26544
|
+
// reorderChildrenUnderParents — mirror that here, otherwise the row
|
|
26545
|
+
// would indent under no rendered parent.
|
|
26546
|
+
visibleDepth: terminatedBy === "cycle" ? 0 : chain.length,
|
|
26547
|
+
// Orphaned = claims a parent but its IMMEDIATE parent is gone. A
|
|
26548
|
+
// deeper break (grandparent evicted) still renders indented under
|
|
26549
|
+
// the present parent, so only a zero-length 'missing' chain counts.
|
|
26550
|
+
orphaned: chain.length === 0 && terminatedBy === "missing"
|
|
26551
|
+
});
|
|
26552
|
+
}
|
|
26553
|
+
return info;
|
|
26554
|
+
}
|
|
26555
|
+
__name(computeAgentTreeInfo, "computeAgentTreeInfo");
|
|
26556
|
+
function computeUserBlockingIds(entries) {
|
|
26557
|
+
const byId = /* @__PURE__ */ new Map();
|
|
26558
|
+
for (const e of entries) if (isAgentNode(e)) byId.set(e.agentId, e);
|
|
26559
|
+
const blocking = /* @__PURE__ */ new Set();
|
|
26560
|
+
for (const e of byId.values()) {
|
|
26561
|
+
if (e.isBackgrounded !== false) continue;
|
|
26562
|
+
const { chain, terminatedBy } = ancestorChain(e, (id) => byId.get(id));
|
|
26563
|
+
if (terminatedBy === "root" && chain.every((ancestor) => ancestor.isBackgrounded === false)) {
|
|
26564
|
+
blocking.add(e.agentId);
|
|
26565
|
+
}
|
|
26566
|
+
}
|
|
26567
|
+
return blocking;
|
|
26568
|
+
}
|
|
26569
|
+
__name(computeUserBlockingIds, "computeUserBlockingIds");
|
|
26570
|
+
var TREE_INDENT_PER_LEVEL = " ";
|
|
26571
|
+
var TREE_INDENT_MAX_LEVELS = 3;
|
|
26572
|
+
function treeRowPrefix(entry, tree) {
|
|
26573
|
+
const indent = TREE_INDENT_PER_LEVEL.repeat(
|
|
26574
|
+
Math.min(tree?.visibleDepth ?? 0, TREE_INDENT_MAX_LEVELS)
|
|
26575
|
+
);
|
|
26576
|
+
const marker = entry.parentAgentId != null ? "\u21B3 " : "";
|
|
26577
|
+
return `${indent}${marker}`;
|
|
26578
|
+
}
|
|
26579
|
+
__name(treeRowPrefix, "treeRowPrefix");
|
|
26580
|
+
function statusGlyph(status) {
|
|
26581
|
+
switch (status) {
|
|
26582
|
+
case "running":
|
|
26583
|
+
return "\u25CB";
|
|
26584
|
+
case "paused":
|
|
26585
|
+
return "\u23F8";
|
|
26586
|
+
case "completed":
|
|
26587
|
+
return "\u2714";
|
|
26588
|
+
case "failed":
|
|
26589
|
+
case "cancelled":
|
|
26590
|
+
return "\u2716";
|
|
26591
|
+
default:
|
|
26592
|
+
return "\u25CB";
|
|
26593
|
+
}
|
|
26594
|
+
}
|
|
26595
|
+
__name(statusGlyph, "statusGlyph");
|
|
26596
|
+
|
|
26597
|
+
// packages/cli/src/ui/hooks/useBackgroundTaskView.ts
|
|
26425
26598
|
var MAX_RETAINED_TERMINAL_DREAMS = 3;
|
|
26599
|
+
function compareActiveThenTerminal(a, b) {
|
|
26600
|
+
const aActive = a.status === "running" || a.status === "paused";
|
|
26601
|
+
const bActive = b.status === "running" || b.status === "paused";
|
|
26602
|
+
if (aActive !== bActive) return aActive ? -1 : 1;
|
|
26603
|
+
if (aActive) return b.startTime - a.startTime;
|
|
26604
|
+
return (b.endTime ?? b.startTime) - (a.endTime ?? a.startTime);
|
|
26605
|
+
}
|
|
26606
|
+
__name(compareActiveThenTerminal, "compareActiveThenTerminal");
|
|
26426
26607
|
function entryId(entry) {
|
|
26427
26608
|
switch (entry.kind) {
|
|
26428
26609
|
case "agent":
|
|
@@ -26488,22 +26669,15 @@ function useBackgroundTaskView(config) {
|
|
|
26488
26669
|
metadataWriteError: typeof metadataWriteError === "string" ? metadataWriteError : void 0
|
|
26489
26670
|
};
|
|
26490
26671
|
});
|
|
26491
|
-
const isActive = /* @__PURE__ */ __name((entry) => entry.status === "running" || entry.status === "paused", "isActive");
|
|
26492
26672
|
const merged = [
|
|
26493
26673
|
...agentEntries,
|
|
26494
26674
|
...shellEntries,
|
|
26495
26675
|
...monitorEntries,
|
|
26496
26676
|
...workflowEntries,
|
|
26497
26677
|
...dreamEntries
|
|
26498
|
-
].sort(
|
|
26499
|
-
const aActive = isActive(a);
|
|
26500
|
-
const bActive = isActive(b);
|
|
26501
|
-
if (aActive !== bActive) return aActive ? -1 : 1;
|
|
26502
|
-
if (aActive) return b.startTime - a.startTime;
|
|
26503
|
-
return (b.endTime ?? b.startTime) - (a.endTime ?? a.startTime);
|
|
26504
|
-
});
|
|
26678
|
+
].sort(compareActiveThenTerminal);
|
|
26505
26679
|
lastDreamSig = computeDreamSig(allDreams);
|
|
26506
|
-
setEntries(merged);
|
|
26680
|
+
setEntries(reorderChildrenUnderParents(merged));
|
|
26507
26681
|
}, "refresh");
|
|
26508
26682
|
const refreshFromRegistry = /* @__PURE__ */ __name(() => refresh(), "refreshFromRegistry");
|
|
26509
26683
|
refresh();
|
|
@@ -26978,11 +27152,11 @@ function terminalStatusPresentation(status) {
|
|
|
26978
27152
|
__name(terminalStatusPresentation, "terminalStatusPresentation");
|
|
26979
27153
|
var FOREGROUND_ROW_PREFIX = "[blocking]";
|
|
26980
27154
|
var SHELL_ROW_PREFIX = "[shell]";
|
|
26981
|
-
function rowLabel(entry) {
|
|
27155
|
+
function rowLabel(entry, userBlocking) {
|
|
26982
27156
|
switch (entry.kind) {
|
|
26983
27157
|
case "agent": {
|
|
26984
27158
|
const label = buildBackgroundEntryLabel(entry, { includePrefix: false });
|
|
26985
|
-
const base =
|
|
27159
|
+
const base = userBlocking ? `${FOREGROUND_ROW_PREFIX} ${label}` : label;
|
|
26986
27160
|
return entry.pendingApprovals?.length ? `${base} \u26A0 ${t("needs approval")}` : base;
|
|
26987
27161
|
}
|
|
26988
27162
|
case "shell":
|
|
@@ -27006,6 +27180,22 @@ function rowLabel(entry) {
|
|
|
27006
27180
|
}
|
|
27007
27181
|
}
|
|
27008
27182
|
__name(rowLabel, "rowLabel");
|
|
27183
|
+
function formatParentBreadcrumb(entry, lookup) {
|
|
27184
|
+
if (entry.parentAgentId == null) return void 0;
|
|
27185
|
+
const { chain, terminatedBy } = ancestorChain(entry, lookup);
|
|
27186
|
+
if (chain.length === 0) {
|
|
27187
|
+
return `${entry.parentName ?? t("unknown agent")} \xB7 ${t("no longer running")}`;
|
|
27188
|
+
}
|
|
27189
|
+
const rootFirst = [...chain].reverse();
|
|
27190
|
+
const crumbs = [
|
|
27191
|
+
terminatedBy === "root" ? "main" : "\u2026",
|
|
27192
|
+
...rootFirst.map((p) => p.subagentType ?? "agent")
|
|
27193
|
+
].join(" \u203A ");
|
|
27194
|
+
const immediateParent = chain[0];
|
|
27195
|
+
const desc = immediateParent.description ? ` \u2014 ${immediateParent.description}` : "";
|
|
27196
|
+
return `${crumbs}${desc}`;
|
|
27197
|
+
}
|
|
27198
|
+
__name(formatParentBreadcrumb, "formatParentBreadcrumb");
|
|
27009
27199
|
function elapsedFor(entry) {
|
|
27010
27200
|
const elapsedMs = Math.max(
|
|
27011
27201
|
0,
|
|
@@ -27055,6 +27245,8 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
27055
27245
|
const hiddenAbove = windowStart;
|
|
27056
27246
|
const hiddenBelow = entries.length - windowEnd;
|
|
27057
27247
|
const visible = entries.slice(windowStart, windowEnd);
|
|
27248
|
+
const treeInfo = computeAgentTreeInfo(entries);
|
|
27249
|
+
const blockingIds = computeUserBlockingIds(entries);
|
|
27058
27250
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
27059
27251
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { paddingX: 1, children: [
|
|
27060
27252
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, children: t("Background tasks") }),
|
|
@@ -27071,9 +27263,16 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
27071
27263
|
const isSelected = idx === selectedIndex;
|
|
27072
27264
|
const terminal = terminalStatusPresentation(entry.status);
|
|
27073
27265
|
const labelColor = isSelected ? theme.text.accent : terminal ? terminal.labelColor : theme.text.primary;
|
|
27266
|
+
const treePrefix = entry.kind === "agent" ? treeRowPrefix(entry, treeInfo.get(entry.agentId)) : "";
|
|
27074
27267
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
|
|
27075
27268
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: isSelected ? theme.text.accent : void 0, children: isSelected ? "> " : " " }),
|
|
27076
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color:
|
|
27269
|
+
treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
|
|
27270
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: labelColor, children: escapeAnsiCtrlCodes(
|
|
27271
|
+
rowLabel(
|
|
27272
|
+
entry,
|
|
27273
|
+
entry.kind === "agent" && blockingIds.has(entry.agentId)
|
|
27274
|
+
)
|
|
27275
|
+
) })
|
|
27077
27276
|
] }, entryId(entry));
|
|
27078
27277
|
}),
|
|
27079
27278
|
hiddenBelow > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: ` v ${t("{{count}} more below", { count: String(hiddenBelow) })}` }) })
|
|
@@ -27212,6 +27411,7 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27212
27411
|
);
|
|
27213
27412
|
}, "DreamDetailBody");
|
|
27214
27413
|
var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
27414
|
+
const config = useConfig();
|
|
27215
27415
|
const title = escapeAnsiCtrlCodes(
|
|
27216
27416
|
`${entry.subagentType ?? "Agent"} \u203A ${buildBackgroundEntryLabel(entry, { includePrefix: false })}`
|
|
27217
27417
|
);
|
|
@@ -27227,6 +27427,19 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27227
27427
|
if (entry.stats?.toolUses !== void 0) {
|
|
27228
27428
|
dimSubtitleParts.push(formatToolUseCount(entry.stats.toolUses));
|
|
27229
27429
|
}
|
|
27430
|
+
if ((entry.depth ?? 0) > 0) {
|
|
27431
|
+
dimSubtitleParts.push(
|
|
27432
|
+
t("nested \xB7 level {{level}} of {{max}}", {
|
|
27433
|
+
level: String((entry.depth ?? 0) + 1),
|
|
27434
|
+
max: String(config.getMaxSubagentDepth())
|
|
27435
|
+
})
|
|
27436
|
+
);
|
|
27437
|
+
}
|
|
27438
|
+
const registry = config.getBackgroundTaskRegistry();
|
|
27439
|
+
const parentLine = formatParentBreadcrumb(entry, (id) => registry.get(id));
|
|
27440
|
+
const childAgents = registry.getAll().filter((task) => task.parentAgentId === entry.agentId).sort(compareActiveThenTerminal);
|
|
27441
|
+
const visibleChildAgents = childAgents.slice(0, 5);
|
|
27442
|
+
const hiddenChildCount = childAgents.length - visibleChildAgents.length;
|
|
27230
27443
|
const activities = (entry.recentActivities ?? []).slice(-5);
|
|
27231
27444
|
const blockedReason = entry.resumeBlockedReason;
|
|
27232
27445
|
const hasError = Boolean(entry.error);
|
|
@@ -27250,6 +27463,28 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27250
27463
|
terminal && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: terminal.color, children: `${terminal.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27251
27464
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27252
27465
|
] }),
|
|
27466
|
+
parentLine !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
27467
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
27468
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, dimColor: true, children: t("Parent") }) }),
|
|
27469
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${escapeAnsiCtrlCodes(parentLine)}` }) })
|
|
27470
|
+
] }),
|
|
27471
|
+
visibleChildAgents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
27472
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
27473
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Text, { bold: true, dimColor: true, children: [
|
|
27474
|
+
t("Sub-agents"),
|
|
27475
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
27476
|
+
Text,
|
|
27477
|
+
{
|
|
27478
|
+
color: theme.text.secondary,
|
|
27479
|
+
children: ` (${childAgents.length})`
|
|
27480
|
+
}
|
|
27481
|
+
)
|
|
27482
|
+
] }) }),
|
|
27483
|
+
visibleChildAgents.map((child) => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${statusGlyph(child.status)} ${escapeAnsiCtrlCodes(
|
|
27484
|
+
`${child.subagentType ?? "agent"} \u2014 ${child.description}`
|
|
27485
|
+
)} \xB7 ${elapsedFor(child)}` }) }, child.agentId)),
|
|
27486
|
+
hiddenChildCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: ` \u2026 ${t("{{count}} more", { count: String(hiddenChildCount) })}` }) })
|
|
27487
|
+
] }),
|
|
27253
27488
|
activities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
27254
27489
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
27255
27490
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
|
|
@@ -27570,8 +27805,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27570
27805
|
const isAbandonable = selectedEntry.kind === "agent" && selectedEntry.status === "paused";
|
|
27571
27806
|
if (!isCancelable && !isAbandonable) return;
|
|
27572
27807
|
const entryKey = entryId(selectedEntry);
|
|
27573
|
-
const
|
|
27574
|
-
if (
|
|
27808
|
+
const isUserBlockingAgent = selectedEntry.kind === "agent" && computeUserBlockingIds(entries).has(selectedEntry.agentId);
|
|
27809
|
+
if (isUserBlockingAgent && pendingCancelEntryId !== entryKey) {
|
|
27575
27810
|
setPendingCancelEntryId(entryKey);
|
|
27576
27811
|
return;
|
|
27577
27812
|
}
|
|
@@ -28871,6 +29106,26 @@ function getGlobalMcpResourceSuggestions(config, pattern) {
|
|
|
28871
29106
|
return rankResourcesToSuggestions(resources, pattern.toLowerCase());
|
|
28872
29107
|
}
|
|
28873
29108
|
__name(getGlobalMcpResourceSuggestions, "getGlobalMcpResourceSuggestions");
|
|
29109
|
+
function getMcpServerMentionSuggestions(config, pattern) {
|
|
29110
|
+
if (!config) return [];
|
|
29111
|
+
if (config.isTrustedFolder?.() === false) return [];
|
|
29112
|
+
const mcpServers = config.getMcpServers?.() || {};
|
|
29113
|
+
const query = pattern.startsWith("mcp:") ? pattern.slice("mcp:".length).toLowerCase() : pattern.toLowerCase();
|
|
29114
|
+
return Object.keys(mcpServers).filter((name) => name.toLowerCase().includes(query)).sort((a, b) => {
|
|
29115
|
+
const aLower = a.toLowerCase();
|
|
29116
|
+
const bLower = b.toLowerCase();
|
|
29117
|
+
const aPrefix = aLower.startsWith(query) ? 0 : 1;
|
|
29118
|
+
const bPrefix = bLower.startsWith(query) ? 0 : 1;
|
|
29119
|
+
if (aPrefix !== bPrefix) return aPrefix - bPrefix;
|
|
29120
|
+
return aLower.localeCompare(bLower);
|
|
29121
|
+
}).map((name) => ({
|
|
29122
|
+
label: buildMcpServerRef(name),
|
|
29123
|
+
value: buildMcpServerRef(name),
|
|
29124
|
+
description: t("MCP server"),
|
|
29125
|
+
isDirectory: false
|
|
29126
|
+
})).slice(0, MAX_SUGGESTIONS_TO_SHOW);
|
|
29127
|
+
}
|
|
29128
|
+
__name(getMcpServerMentionSuggestions, "getMcpServerMentionSuggestions");
|
|
28874
29129
|
function getMcpServerSuggestions(config, pattern) {
|
|
28875
29130
|
if (!config) return [];
|
|
28876
29131
|
if (config.isTrustedFolder?.() === false) return [];
|
|
@@ -29034,6 +29289,10 @@ function useAtCompletion(props) {
|
|
|
29034
29289
|
dispatch({ type: "SEARCH_SUCCESS", payload: resourceSuggestions });
|
|
29035
29290
|
return;
|
|
29036
29291
|
}
|
|
29292
|
+
const mcpServerMentionSuggestions = getMcpServerMentionSuggestions(
|
|
29293
|
+
config,
|
|
29294
|
+
state.pattern
|
|
29295
|
+
);
|
|
29037
29296
|
const serverSuggestions = getMcpServerSuggestions(config, state.pattern);
|
|
29038
29297
|
const globalResourceSuggestions = getGlobalMcpResourceSuggestions(
|
|
29039
29298
|
config,
|
|
@@ -29041,6 +29300,7 @@ function useAtCompletion(props) {
|
|
|
29041
29300
|
);
|
|
29042
29301
|
const mcpSuggestions = [
|
|
29043
29302
|
...extensionSuggestions,
|
|
29303
|
+
...mcpServerMentionSuggestions,
|
|
29044
29304
|
...serverSuggestions,
|
|
29045
29305
|
...globalResourceSuggestions
|
|
29046
29306
|
];
|
|
@@ -30655,6 +30915,7 @@ __name(AgentViewProvider, "AgentViewProvider");
|
|
|
30655
30915
|
// packages/cli/src/ui/components/background-view/liveAgentPanelVisibility.ts
|
|
30656
30916
|
init_esbuild_shims();
|
|
30657
30917
|
var TERMINAL_VISIBLE_MS = 8e3;
|
|
30918
|
+
var LIVE_AGENT_PANEL_MAX_ROWS = 12;
|
|
30658
30919
|
function isLiveAgentPanelVisibleEntry(entry, nowMs) {
|
|
30659
30920
|
if (entry.kind !== "agent") return false;
|
|
30660
30921
|
if (entry.status === "running" || entry.status === "paused") return true;
|
|
@@ -32223,7 +32484,9 @@ var InputPrompt = /* @__PURE__ */ __name(({
|
|
|
32223
32484
|
} = useBackgroundTaskViewActions();
|
|
32224
32485
|
const hasAgents = agents.size > 0;
|
|
32225
32486
|
const getVisibleBgAgents = (0, import_react96.useCallback)(
|
|
32226
|
-
() =>
|
|
32487
|
+
() => panelDisplayOrder(
|
|
32488
|
+
bgEntries.filter((e) => isLiveAgentPanelVisibleEntry(e, Date.now()))
|
|
32489
|
+
).slice(-LIVE_AGENT_PANEL_MAX_ROWS),
|
|
32227
32490
|
[bgEntries]
|
|
32228
32491
|
);
|
|
32229
32492
|
const hasActiveToolConfirmation = (0, import_react96.useMemo)(
|
|
@@ -35733,7 +35996,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
35733
35996
|
init_esbuild_shims();
|
|
35734
35997
|
var import_react111 = __toESM(require_react(), 1);
|
|
35735
35998
|
var import_jsx_runtime127 = __toESM(require_jsx_runtime(), 1);
|
|
35736
|
-
var DEFAULT_MAX_ROWS =
|
|
35999
|
+
var DEFAULT_MAX_ROWS = LIVE_AGENT_PANEL_MAX_ROWS;
|
|
35737
36000
|
var DEFAULT_SUBAGENT_TYPE = DEFAULT_BUILTIN_SUBAGENT_TYPE;
|
|
35738
36001
|
function isAgentEntry(entry) {
|
|
35739
36002
|
return entry.kind === "agent";
|
|
@@ -35743,19 +36006,18 @@ function statusIcon(entry) {
|
|
|
35743
36006
|
if (entry.synthesized) {
|
|
35744
36007
|
return { glyph: "\xB7", color: theme.text.secondary };
|
|
35745
36008
|
}
|
|
36009
|
+
const glyph = statusGlyph(entry.status);
|
|
35746
36010
|
switch (entry.status) {
|
|
35747
36011
|
case "running":
|
|
35748
|
-
return { glyph: "\u25CB", color: theme.status.warning };
|
|
35749
36012
|
case "paused":
|
|
35750
|
-
|
|
36013
|
+
case "cancelled":
|
|
36014
|
+
return { glyph, color: theme.status.warning };
|
|
35751
36015
|
case "completed":
|
|
35752
|
-
return { glyph
|
|
36016
|
+
return { glyph, color: theme.status.success };
|
|
35753
36017
|
case "failed":
|
|
35754
|
-
return { glyph
|
|
35755
|
-
case "cancelled":
|
|
35756
|
-
return { glyph: "\u2716", color: theme.status.warning };
|
|
36018
|
+
return { glyph, color: theme.status.error };
|
|
35757
36019
|
default:
|
|
35758
|
-
return { glyph
|
|
36020
|
+
return { glyph, color: theme.text.secondary };
|
|
35759
36021
|
}
|
|
35760
36022
|
}
|
|
35761
36023
|
__name(statusIcon, "statusIcon");
|
|
@@ -35875,7 +36137,8 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
|
|
|
35875
36137
|
expired: !isLiveAgentPanelVisibleEntry(entry, now)
|
|
35876
36138
|
})).filter((entry) => !entry.expired);
|
|
35877
36139
|
if (visibleAgents.length === 0) return null;
|
|
35878
|
-
const visibleAgentsAsc =
|
|
36140
|
+
const visibleAgentsAsc = panelDisplayOrder(visibleAgents);
|
|
36141
|
+
const treeInfo = computeAgentTreeInfo(visibleAgentsAsc);
|
|
35879
36142
|
const overflow = Math.max(0, visibleAgentsAsc.length - maxRows);
|
|
35880
36143
|
const visible = overflow > 0 ? visibleAgentsAsc.slice(-maxRows) : visibleAgentsAsc;
|
|
35881
36144
|
const totalItems = 1 + visible.length;
|
|
@@ -35897,14 +36160,15 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
|
|
|
35897
36160
|
{
|
|
35898
36161
|
entry,
|
|
35899
36162
|
now,
|
|
35900
|
-
selected: focused && clampedIndex === idx + 1
|
|
36163
|
+
selected: focused && clampedIndex === idx + 1,
|
|
36164
|
+
tree: treeInfo.get(entry.agentId)
|
|
35901
36165
|
},
|
|
35902
36166
|
entry.agentId
|
|
35903
36167
|
)),
|
|
35904
36168
|
focused && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: " \u2191\u2193 navigate \xB7 Enter detail \xB7 Esc back" }) })
|
|
35905
36169
|
] });
|
|
35906
36170
|
}, "LiveAgentPanelBody");
|
|
35907
|
-
var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false }) => {
|
|
36171
|
+
var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) => {
|
|
35908
36172
|
const { glyph, color } = statusIcon(entry);
|
|
35909
36173
|
const label = escapeAnsiCtrlCodes(descriptionWithoutPrefix(entry));
|
|
35910
36174
|
const activity = escapeAnsiCtrlCodes(activityLabel(entry));
|
|
@@ -35914,16 +36178,20 @@ var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false }) => {
|
|
|
35914
36178
|
const tokenSuffix = entry.stats?.outputTokens && entry.stats.outputTokens > 0 ? ` \xB7 ${formatTokenCount(entry.stats.outputTokens)} tokens` : "";
|
|
35915
36179
|
const tail = ` \u25B6 ${elapsed}${tokenSuffix}`;
|
|
35916
36180
|
const prefix = selected ? "\u25B8 " : " ";
|
|
36181
|
+
const treePrefix = treeRowPrefix(entry, tree);
|
|
36182
|
+
const orphanNote = tree?.orphaned ? entry.parentName ? ` \xB7 from ${escapeAnsiCtrlCodes(entry.parentName)}` : " \xB7 nested" : "";
|
|
35917
36183
|
return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
35918
36184
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: selected ? theme.text.accent : theme.text.secondary, children: prefix }) }),
|
|
35919
36185
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { wrap: "truncate-end", children: [
|
|
36186
|
+
treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
|
|
35920
36187
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color, children: `${glyph} ` }),
|
|
35921
36188
|
showType && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
35922
36189
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { bold: true, children: safeSubagentType }),
|
|
35923
36190
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: ": " })
|
|
35924
36191
|
] }),
|
|
35925
36192
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: label }),
|
|
35926
|
-
activity && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: ` (${activity})` })
|
|
36193
|
+
activity && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: ` (${activity})` }),
|
|
36194
|
+
orphanNote && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: orphanNote })
|
|
35927
36195
|
] }) }),
|
|
35928
36196
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: tail }) })
|
|
35929
36197
|
] });
|
|
@@ -45199,6 +45467,8 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
45199
45467
|
};
|
|
45200
45468
|
}, [isConfigInitialized, config]);
|
|
45201
45469
|
const isIdleRef = (0, import_react157.useRef)(true);
|
|
45470
|
+
const availableTerminalHeightRef = (0, import_react157.useRef)(0);
|
|
45471
|
+
const terminalWidthRef = (0, import_react157.useRef)(0);
|
|
45202
45472
|
const updateHandlerRef = (0, import_react157.useRef)(null);
|
|
45203
45473
|
(0, import_react157.useEffect)(() => {
|
|
45204
45474
|
const handler = setUpdateHandler(
|
|
@@ -45775,7 +46045,9 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
45775
46045
|
terminalWidth,
|
|
45776
46046
|
terminalHeight,
|
|
45777
46047
|
midTurnDrainRef,
|
|
45778
|
-
logger
|
|
46048
|
+
logger,
|
|
46049
|
+
availableTerminalHeightRef,
|
|
46050
|
+
terminalWidthRef
|
|
45779
46051
|
);
|
|
45780
46052
|
isIdleRef.current = streamingState === "idle" /* Idle */;
|
|
45781
46053
|
(0, import_react157.useEffect)(() => {
|
|
@@ -46428,6 +46700,8 @@ ${currentText}` : popped);
|
|
|
46428
46700
|
0,
|
|
46429
46701
|
terminalHeight - controlsHeight - mainContentHeightReservation - tabBarHeight
|
|
46430
46702
|
);
|
|
46703
|
+
availableTerminalHeightRef.current = availableTerminalHeight;
|
|
46704
|
+
terminalWidthRef.current = terminalWidth;
|
|
46431
46705
|
config.setShellExecutionConfig({
|
|
46432
46706
|
terminalWidth: Math.floor(terminalWidth * SHELL_WIDTH_FRACTION),
|
|
46433
46707
|
terminalHeight: Math.max(
|