@qwen-code/qwen-code 0.23.1 → 0.23.2-nightly.20260909.2e212144d3
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 +35 -15
- package/bundled/computer-use/SKILL.md +1 -1
- package/bundled/qc-helper/docs/configuration/auth.md +1 -1
- package/bundled/qc-helper/docs/configuration/model-providers.md +19 -15
- package/bundled/qc-helper/docs/configuration/settings.md +1 -1
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
- package/bundled/qc-helper/docs/features/channels/github.md +1 -9
- package/bundled/qc-helper/docs/features/channels/overview.md +26 -51
- package/bundled/qc-helper/docs/features/channels/qqbot.md +1 -2
- package/bundled/qc-helper/docs/features/commands.md +79 -17
- package/bundled/qc-helper/docs/features/computer-use.md +1 -1
- package/bundled/qc-helper/docs/features/cross-session-protocol.md +291 -0
- package/bundled/qc-helper/docs/features/goals.md +3 -1
- package/bundled/qc-helper/docs/features/sub-agents.md +8 -0
- package/bundled/qc-helper/docs/qwen-serve.md +62 -48
- package/chunks/{MaxSizedBox-UDO6Y7RB.js → MaxSizedBox-ZBGWYJZW.js} +20 -19
- package/chunks/{StandaloneSessionPicker-D4CUOO4H.js → StandaloneSessionPicker-NR5ACIJZ.js} +35 -34
- package/chunks/{acpAgent-KWLJFADK.js → acpAgent-DM6XRCDQ.js} +307 -183
- package/chunks/{agent-GSUPGEOL.js → agent-EF3IIYE3.js} +13 -13
- package/chunks/{agent-headless-HNYCQUJB.js → agent-headless-5J2KFYR4.js} +13 -13
- package/chunks/{anthropicContentGenerator-I7LQZH26.js → anthropicContentGenerator-VIW2FG7G.js} +4 -4
- package/chunks/{artifact-tool-P52OKKEF.js → artifact-tool-G5LHNECG.js} +1 -1
- package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-R3TXY77M.js} +1 -1
- package/chunks/{bridge-B7CV6RVI.js → bridge-LEMQM6QE.js} +21 -20
- package/chunks/{channel-management-service-TRTLQTSV.js → channel-management-service-TGF6XFXT.js} +4 -4
- package/chunks/{channel-settings-store-FW45IRUP.js → channel-settings-store-FV365JSF.js} +29 -28
- package/chunks/{channel-worker-group-PIYPVCTF.js → channel-worker-group-SQ5FRWOH.js} +5 -5
- package/chunks/{channel-worker-manager-FQHEDTD2.js → channel-worker-manager-TU4ZNWOE.js} +5 -5
- package/chunks/{channel-worker-supervisor-XJPZZ3VK.js → channel-worker-supervisor-EMITFMCP.js} +4 -4
- package/chunks/{chunk-3SH53ANB.js → chunk-22GORRNY.js} +12 -0
- package/chunks/{chunk-3LPJ776W.js → chunk-2HYOOFDS.js} +9 -6
- package/chunks/{chunk-S6QVI3MV.js → chunk-34VPADLG.js} +2 -2
- package/chunks/{chunk-WJDXKQIO.js → chunk-3A2IMUDH.js} +14 -2
- package/chunks/{chunk-DXQ6Z7AH.js → chunk-3O77M472.js} +224 -84
- package/chunks/{chunk-5CVY5Q2P.js → chunk-43EUMPKQ.js} +1 -1
- package/chunks/{chunk-ZNO5BUAD.js → chunk-4DIMJKWU.js} +46 -37
- package/chunks/{chunk-O2JBJQCF.js → chunk-5HV2HPO7.js} +1 -1
- package/chunks/{chunk-RXT4QBDX.js → chunk-5WBA3DEF.js} +1 -1
- package/chunks/{chunk-ARYNBBBM.js → chunk-6GAYNM3F.js} +3 -3
- package/chunks/{chunk-EEKU6COG.js → chunk-6S7YYUUH.js} +3 -3
- package/chunks/{chunk-OPMKGOLD.js → chunk-6VIATHL7.js} +1 -1
- package/chunks/{chunk-ENZDGHGJ.js → chunk-76I36BEM.js} +3 -3
- package/chunks/{chunk-B54PFQS5.js → chunk-7CLLH5TI.js} +1 -1
- package/chunks/{chunk-UHUT4IDM.js → chunk-7IDZFJAV.js} +9 -9
- package/chunks/{chunk-5Z4FCEPY.js → chunk-7K4GGN3D.js} +606 -109
- package/chunks/{chunk-ZPL2TZNA.js → chunk-7KZVXJ4U.js} +1 -1
- package/chunks/{chunk-FWRRUITH.js → chunk-7WCJEY3A.js} +4 -4
- package/chunks/{chunk-MFYH2VXV.js → chunk-A7QZIGRB.js} +2 -2
- package/chunks/{chunk-27LTEY6D.js → chunk-ATBLEXXV.js} +7 -2
- package/chunks/{chunk-3BTHHXXE.js → chunk-AUTUFD5X.js} +1 -1
- package/chunks/chunk-AXMWHKXA.js +42 -0
- package/chunks/{chunk-QZOXVQPK.js → chunk-AXWTG6R7.js} +2 -5
- package/chunks/{chunk-PDUMGZ2P.js → chunk-BDAVT6K2.js} +486 -409
- package/chunks/{chunk-2YS3NU4A.js → chunk-BDP3NTWD.js} +3 -3
- package/chunks/{chunk-IKG2YVRZ.js → chunk-BZUHZCUO.js} +2 -2
- package/chunks/{chunk-USN6VNTO.js → chunk-C24ZDDNY.js} +1 -1
- package/chunks/{chunk-RPFJJ33Z.js → chunk-CALTQWTZ.js} +1 -1
- package/chunks/{chunk-BF3RUIVP.js → chunk-CH2YDT6X.js} +36 -38
- package/chunks/{chunk-3VDLQUR2.js → chunk-D6AGS266.js} +1 -1
- package/chunks/{chunk-DO5SMV52.js → chunk-D7DFZAK2.js} +17 -11
- package/chunks/{chunk-GM44O6F7.js → chunk-DARWOZY6.js} +1 -1
- package/chunks/{chunk-HUX2DOTF.js → chunk-DGNRLJ6S.js} +3 -3
- package/chunks/{chunk-FW4E4QPG.js → chunk-DVOCOIS5.js} +1 -1
- package/chunks/{chunk-OESZTXTG.js → chunk-E4LXNQAK.js} +1 -1
- package/chunks/{chunk-TWAMIEQ2.js → chunk-EATP5QCN.js} +16 -18
- package/chunks/{chunk-DZ6D4B3K.js → chunk-EDSU3VUG.js} +12 -5
- package/chunks/{chunk-EOET4H7C.js → chunk-EE5ZD4XU.js} +3 -3
- package/chunks/{chunk-B3EL44K3.js → chunk-EN3Q2S3J.js} +3 -3
- package/chunks/{chunk-N7YQEKGX.js → chunk-EOLGAQ25.js} +16 -15
- package/chunks/{chunk-3YQMUBTS.js → chunk-EYCW6UF2.js} +7 -7
- package/chunks/{chunk-ZELCTN6Y.js → chunk-F23YN37B.js} +10 -0
- package/chunks/{chunk-FPGTNKCP.js → chunk-F3M6P6IQ.js} +199 -1
- package/chunks/{chunk-B44JBZBB.js → chunk-F4SAL7WM.js} +91 -3
- package/chunks/{chunk-XZ3Z43XL.js → chunk-FEEVHJOR.js} +3 -3
- package/chunks/{chunk-CHVU543W.js → chunk-FN4KHWCL.js} +1 -1
- package/chunks/{chunk-6QV7Z74P.js → chunk-FRS3P7MQ.js} +15 -2
- package/chunks/{chunk-FDOGGKAA.js → chunk-GSFV5RQW.js} +2 -0
- package/chunks/{chunk-XBVNNDPK.js → chunk-GSYD7MYP.js} +8 -3
- package/chunks/{chunk-VF6D6EGV.js → chunk-HSO6D4KX.js} +82 -25
- package/chunks/{chunk-L7V52QEZ.js → chunk-HUJJFSMO.js} +10 -10
- package/chunks/{chunk-CIKL2DQP.js → chunk-HW4MRP4V.js} +1 -1
- package/chunks/{chunk-TWWS7XUW.js → chunk-HWLLUDIA.js} +108 -16
- package/chunks/{chunk-75LBC7SV.js → chunk-IKK6NNS6.js} +32 -29
- package/chunks/{chunk-UXDVUFKU.js → chunk-JFAGT5YG.js} +2 -2
- package/chunks/{chunk-6SADVYQQ.js → chunk-JGTMTJSQ.js} +1 -1
- package/chunks/{chunk-45ROPFQY.js → chunk-JYGIJA4W.js} +1 -1
- package/chunks/{chunk-5WC2ECUK.js → chunk-KECCLCXM.js} +42 -8
- package/chunks/{chunk-CABDNUJ4.js → chunk-KEPC5BOL.js} +5 -5
- package/chunks/{chunk-WNISCNTA.js → chunk-L5VHJYHH.js} +2 -2
- package/chunks/{chunk-25CBAK3H.js → chunk-LKBOBUA2.js} +2 -2
- package/chunks/{chunk-6QILGINT.js → chunk-LOBKNYPR.js} +2 -2
- package/chunks/{chunk-2ZFO5JD7.js → chunk-LOVGQ3HZ.js} +9 -9
- package/chunks/{chunk-QK4K76T6.js → chunk-MUF4UGPB.js} +2 -2
- package/chunks/{chunk-JGDRB4FP.js → chunk-N3Z6Q7KC.js} +125 -10
- package/chunks/chunk-NFXXBWSE.js +463 -0
- package/chunks/{chunk-PQSCGZT2.js → chunk-NPKCVSXX.js} +26 -2
- package/chunks/{chunk-YCEKI7QX.js → chunk-NV4YYXFT.js} +1 -1
- package/chunks/{chunk-5IL2BZHW.js → chunk-O6BFERWN.js} +3 -3
- package/chunks/{chunk-TGC4264Q.js → chunk-OVTPETDL.js} +5 -5
- package/chunks/chunk-PLEBBGHL.js +1401 -0
- package/chunks/{chunk-3VWPPK5Q.js → chunk-PWR6BQ3U.js} +4 -4
- package/chunks/{chunk-D6AQNMUA.js → chunk-QA2B26PL.js} +3 -3
- package/chunks/{chunk-NFIDVZND.js → chunk-QB3KS3N3.js} +2 -21
- package/chunks/{chunk-LNCNUMJ5.js → chunk-SK6VACCM.js} +558 -158
- package/chunks/{chunk-YAC7H4K3.js → chunk-SM66GFKJ.js} +1 -1
- package/chunks/{chunk-MA5OUNN6.js → chunk-SNMUO5Z7.js} +1 -1
- package/chunks/{chunk-IRKQ4YYX.js → chunk-SVWWF5TZ.js} +29 -1
- package/chunks/{chunk-6JXHO7LG.js → chunk-SYKPMH2X.js} +3 -3
- package/chunks/{chunk-5HBA2Z7V.js → chunk-TGNNLRC3.js} +2 -3
- package/chunks/{chunk-EHTKOO6W.js → chunk-TRQNRP2H.js} +2 -2
- package/chunks/{chunk-LZGFVUWZ.js → chunk-UQOP2APG.js} +4 -24
- package/chunks/{chunk-T2IHCZLS.js → chunk-VAWM3A5N.js} +1 -1
- package/chunks/{chunk-M73KHGNR.js → chunk-VJJXG73H.js} +404 -226
- package/chunks/{chunk-WAASYFPK.js → chunk-VJWJOKOQ.js} +2 -2
- package/chunks/{chunk-WQMUGQ6G.js → chunk-VR6Y23FW.js} +1 -1
- package/chunks/{chunk-E7XSUYCZ.js → chunk-VX2NR3SD.js} +19 -4
- package/chunks/{chunk-XVTCSVBK.js → chunk-WDVV3LRM.js} +193 -169
- package/chunks/{chunk-RNYENHN5.js → chunk-WEU6O6VN.js} +2 -2
- package/chunks/{chunk-YHDGABDC.js → chunk-XKBFYTCD.js} +1 -1
- package/chunks/{chunk-66JBCTJF.js → chunk-Y7YHAY32.js} +23 -6
- package/chunks/{chunk-7SL55L5H.js → chunk-YIE6REQ5.js} +20 -15
- package/chunks/{chunk-ZU2T5JIS.js → chunk-ZEFWBG2C.js} +736 -1148
- package/chunks/{chunk-6TPVIESH.js → chunk-ZM2TCZZ7.js} +3 -3
- package/chunks/{chunk-2TMJRF46.js → chunk-ZZ7RVOTU.js} +50 -18
- package/chunks/{config-utils-KTDSQ4MU.js → config-utils-SXFK3G4X.js} +24 -23
- package/chunks/{contextCommand-UQ3KRYGK.js → contextCommand-QFPD26QO.js} +21 -20
- package/chunks/{core-runtime-JR34JAFH.js → core-runtime-VXKNBODM.js} +26 -24
- package/chunks/{create-sub-session-RGPJOI4S.js → create-sub-session-7WSQETFR.js} +20 -19
- package/chunks/{daemon-UI6SQSBV.js → daemon-U2456K5H.js} +2 -2
- package/chunks/{daemon-git-worktree-guard-H3OA26KQ.js → daemon-git-worktree-guard-I4DCSDUS.js} +20 -19
- package/chunks/{daemon-status-provider-6WZLKSZU.js → daemon-status-provider-5UV56RI4.js} +25 -24
- package/chunks/{daemon-trust-policy-3EDP2BYD.js → daemon-trust-policy-DKIBWTKU.js} +25 -24
- package/chunks/{daemon-trust-policy-monitor-CRHZPK52.js → daemon-trust-policy-monitor-CPSD7UKT.js} +25 -24
- package/chunks/{deferred-core-runtime-LO5NTQQ4.js → deferred-core-runtime-D2RF35BL.js} +20 -19
- package/chunks/{dist-STAGIFNB.js → dist-6YDUH3BB.js} +388 -102
- package/chunks/{dist-XJ25G6OH.js → dist-BNQVF565.js} +2 -8
- package/chunks/{dist-NQ2636VT.js → dist-F34J4FZX.js} +1 -1
- package/chunks/{dist-OR2ZQTXZ.js → dist-F6JLAJLE.js} +1 -1
- package/chunks/{dist-24TCWK5H.js → dist-K5GHMXIG.js} +2 -2
- package/chunks/{dist-WZTUKIDR.js → dist-NP7QKLVG.js} +2 -2
- package/chunks/{dist-M4CBX53H.js → dist-UFTFGI6I.js} +1 -1
- package/chunks/{dist-5I4HLUTO.js → dist-XLV33CLY.js} +1 -2
- package/chunks/{dist-FDISN4AK.js → dist-ZDNJK74R.js} +3 -7
- package/chunks/{edit-LB7Z7XK5.js → edit-4IBADZ3O.js} +13 -13
- package/chunks/{enterPlanMode-P6TVUFIY.js → enterPlanMode-YN3GPQU5.js} +13 -13
- package/chunks/{environment-QATJNNKI.js → environment-E272IJMF.js} +22 -21
- package/chunks/{errors-3XJ37PS2.js → errors-CVAH3RWQ.js} +22 -21
- package/chunks/{exitPlanMode-A3OKL5UO.js → exitPlanMode-24J5IHGC.js} +13 -13
- package/chunks/{fast-path-DBIT5YQQ.js → fast-path-M5IDBMXF.js} +3 -3
- package/chunks/{glob-73EDTXUE.js → glob-ERBD7JYP.js} +13 -13
- package/chunks/{goal-tools-DFI6YMSD.js → goal-tools-245ULLQT.js} +13 -13
- package/chunks/{handleAutoUpdate-2FUNJO3B.js → handleAutoUpdate-JDZHHZKK.js} +22 -21
- package/chunks/{i18n-FDIA6KFI.js → i18n-LA4D5IXM.js} +20 -19
- package/chunks/{initializer-4MJTJOTW.js → initializer-SHPTSWUZ.js} +25 -24
- package/chunks/{installationInfo-232RA2OK.js → installationInfo-QEQEPB3G.js} +20 -19
- package/chunks/{list-WN6WSGEB.js → list-IBHCQWTF.js} +28 -27
- package/chunks/{list-agents-I5TRH3J7.js → list-agents-EDPZCGKN.js} +5 -4
- package/chunks/{llm-UDFWQWZA.js → llm-JAWCQLA4.js} +68 -62
- package/chunks/{llm-content-generator-VLMZ2A7A.js → llm-content-generator-GOV3A23T.js} +2 -2
- package/chunks/{loadedSettingsAdapter-OBQEIXM7.js → loadedSettingsAdapter-RVE2GNVU.js} +25 -24
- package/chunks/{loggingContentGenerator-RGVUMUVX.js → loggingContentGenerator-SSHNN5YW.js} +15 -15
- package/chunks/{managed-npm-update-QBAJYCFU.js → managed-npm-update-BHSTITQO.js} +20 -19
- package/chunks/{mcp-OTIZZCPY.js → mcp-6ZZ7P2HU.js} +25 -24
- package/chunks/{monitor-BV5XF6LL.js → monitor-RKK6GSHG.js} +13 -13
- package/chunks/{nonInteractiveCli-W6MUKDVJ.js → nonInteractiveCli-UQHP3G6P.js} +58 -57
- package/chunks/{notebook-edit-HGBEKGTE.js → notebook-edit-YM47A7WO.js} +13 -13
- package/chunks/{open-with-auth-D6JD6LDS.js → open-with-auth-6MVIHMXB.js} +1 -1
- package/chunks/{openaiContentGenerator-NSU3ERBH.js → openaiContentGenerator-FHKDWNI2.js} +9 -9
- package/chunks/{pidfile-LE3TU4GE.js → pidfile-SIIEJEEH.js} +23 -20
- package/chunks/{processUtils-YFBGJK67.js → processUtils-JF7CWBJC.js} +2 -2
- package/chunks/{prompt-terminal-ledger-4W4W7DSO.js → prompt-terminal-ledger-FXXHAEQU.js} +21 -20
- package/chunks/{qwenContentGenerator-HTA57WFC.js → qwenContentGenerator-KFJ77JP6.js} +16 -16
- package/chunks/{read-file-KHPQ2MB6.js → read-file-S2NOCBIL.js} +4 -4
- package/chunks/{resumeHistoryUtils-K7RV3QBN.js → resumeHistoryUtils-QHHPSQWU.js} +22 -21
- package/chunks/{ripGrep-NBBVCMG4.js → ripGrep-F6TNOJUO.js} +5 -5
- package/chunks/{run-qwen-serve-A3JBOZCM.js → run-qwen-serve-KYBDQRDD.js} +216 -64
- package/chunks/{runtime-7YOU2KJ3.js → runtime-3WNOFLCR.js} +32 -29
- package/chunks/{scheduled-tasks-52LXK7LN.js → scheduled-tasks-RNBH56DJ.js} +23 -22
- package/chunks/{scheduler-J44M72VM.js → scheduler-ERMW7Q7B.js} +22 -21
- package/chunks/{send-message-AWKUDJBH.js → send-message-V5T3NMFM.js} +3 -3
- package/chunks/{serve-TRC6XJUB.js → serve-7NV46RMP.js} +25 -24
- package/chunks/{server-YPNTJLX2.js → server-6RZJR5QF.js} +106 -154
- package/chunks/{session-FMMIBFYX.js → session-Z4EV7NVV.js} +91 -63
- package/chunks/{session-attachments-root-LDJMNK7K.js → session-attachments-root-SG5FC52X.js} +20 -19
- package/chunks/{session-pr-refresh-NLR4EK2J.js → session-pr-refresh-ILC4Z3ZM.js} +22 -21
- package/chunks/{settings-A46L577J.js → settings-Y47SPE3X.js} +24 -23
- package/chunks/{shell-Q5LSQPPY.js → shell-YBVCOPVO.js} +13 -13
- package/chunks/{skill-75KPJRCM.js → skill-AXC63EBA.js} +4 -4
- package/chunks/{skill-settings-775YT4YR.js → skill-settings-AFPAYGLO.js} +24 -23
- package/chunks/{spawnChannel-XY73I5CU.js → spawnChannel-ZFL4J2V3.js} +20 -19
- package/chunks/{standalone-update-L46XXNQ2.js → standalone-update-Y2OZPLNJ.js} +21 -20
- package/chunks/{start-opentui-ui-WLV43247.js → start-opentui-ui-G6TKT4LI.js} +449 -210
- package/chunks/{startInteractiveUI-F5DKMLOV.js → startInteractiveUI-YTNDPW7J.js} +1182 -1245
- package/chunks/{task-create-PMAFST2T.js → task-create-MWXJFRRM.js} +3 -3
- package/chunks/{task-list-R2HSY2NC.js → task-list-EYO3FE57.js} +2 -2
- package/chunks/{task-update-JYC57USF.js → task-update-2JJJRHMT.js} +3 -3
- package/chunks/{team-create-2PATB77U.js → team-create-BUFLGGSH.js} +13 -13
- package/chunks/{team-delete-CBHVBTPB.js → team-delete-IQZ6XGFI.js} +2 -2
- package/chunks/{team-plan-approval-QTANEWOS.js → team-plan-approval-OUWWM42U.js} +13 -13
- package/chunks/{terminal-image-renderer-OGULCFNF.js → terminal-image-renderer-WH2WV5ES.js} +20 -19
- package/chunks/{theme-manager-CNO3QERP.js → theme-manager-5UDRARM2.js} +20 -19
- package/chunks/{tool-search-VXWEOZE7.js → tool-search-MCDIRPHN.js} +4 -4
- package/chunks/{total-session-admission-4KAADZPB.js → total-session-admission-VL27U74Z.js} +21 -20
- package/chunks/{trustedFolders-PPJSOPOT.js → trustedFolders-MSXT4VDD.js} +21 -20
- package/chunks/{update-relaunch-4PT4MW7B.js → update-relaunch-JKLEWVCB.js} +5 -5
- package/chunks/{updateCheck-WAVFLWNG.js → updateCheck-ARTHAJT2.js} +20 -19
- package/chunks/{useAutoAcceptIndicator-XNED4NRB.js → useAutoAcceptIndicator-YEAAGYVU.js} +26 -25
- package/chunks/{validateNonInterActiveAuth-J676DUQ2.js → validateNonInterActiveAuth-EMRQKH5S.js} +56 -55
- package/chunks/{version-J6SRRQB2.js → version-HFQU35WD.js} +3 -1
- package/chunks/{web-fetch-FMZZYX44.js → web-fetch-QBXAO6VF.js} +4 -4
- package/chunks/{web-search-3G2KXCX5.js → web-search-2URQXA3A.js} +186 -9
- package/chunks/{web-shell-static-POZHGGXE.js → web-shell-static-BFDESDD4.js} +5 -4
- package/chunks/{workflow-PPZZICQ7.js → workflow-JDD6WDAH.js} +204 -68
- package/chunks/{workspace-providers-status-IIYTAQST.js → workspace-providers-status-B4IKR6YJ.js} +27 -26
- package/chunks/{workspace-registration-store-VHCDXAV7.js → workspace-registration-store-PJ3YHR45.js} +1 -2
- package/chunks/{workspace-registry-I7VQIPS2.js → workspace-registry-WVYJ5UGB.js} +21 -20
- package/chunks/{workspace-runtime-coordinator-DBGNY32G.js → workspace-runtime-coordinator-DXL5YVAG.js} +21 -20
- package/chunks/{workspace-service-QSKB2T54.js → workspace-service-QNGAMVH7.js} +26 -25
- package/chunks/{workspace-skills-status-T7GPT65J.js → workspace-skills-status-BEISJIII.js} +25 -24
- package/chunks/{workspace-trust-reconciler-2PKRDAU4.js → workspace-trust-reconciler-ORYJF5L4.js} +26 -25
- package/chunks/{write-file-L76CGFTQ.js → write-file-DWLKFBTJ.js} +14 -14
- package/chunks/{zoom-image-TDJJY2VZ.js → zoom-image-BYVIXSNQ.js} +4 -4
- package/cli.js +12 -12
- package/export-transcript-document.js +106 -106
- package/package.json +4 -4
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DHc6plZn.js → abnfDiagram-VCTEODGH-C_8kzsly.js} +1 -1
- package/web-shell/assets/{arc-BQ9m8TDV.js → arc-CDg7Zfpm.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-D5ap3oVB.js → architectureDiagram-5GKGNRK7-DZzdCWyF.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-BIbnyNph.js → blockDiagram-NRAW4CY4-DI3B4gyR.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BRsdx_iG.js → c4Diagram-UCG6FXSJ-CfOgwHZW.js} +1 -1
- package/web-shell/assets/channel-e4xwS72w.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-3lf1fNlx.js → chunk-2Q5K7J3B-B_PUth0g.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-DP8VNRc4.js → chunk-5VM5RSS4-CrKtvBIL.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-DrohDmZ6.js → chunk-F27PBJKO-B4z2n8Py.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-UZ2QhSx6.js → chunk-G27WJ6UU-BUtrFEO8.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-BIMHVcZK.js → chunk-JWPE2WC7-Cqw3aXW0.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-izRxdSDd.js → chunk-LCL6LL3I-CZolnvls.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-CXADD4PP.js → chunk-POPQ4Y6H-DivgasCa.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-B96d8Y_1.js → chunk-SVP7TREG--seyb1B6.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-CF2sVQpv.js → chunk-XXDRQBXY-D7pHtuVM.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-CzXfUUOt.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-CzXfUUOt.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-CT6tXVAS.js → cose-bilkent-JH36ORCC-4MWaRF_3.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-X1NS4vtV.js → cynefin-OW5HDTMX-nhJhAjgD.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DNsKNOT4.js → cynefinDiagram-5FMLGOSQ-NF-PwXlq.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-9-AHKqsb.js → dagre-3AP2YEHR-Bu0ncdWP.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-Bjgms7j6.js → diagram-S7CK7UJ4-CsvhFHZC.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-h6bCprbE.js → diagram-UQ7AKVKN-Ck61sIB3.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-4SbQXVLt.js → diagram-VSXAHHWV-D0171zrb.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-B5gPCzzB.js → diagram-VX7I27RA-DvdxY4UL.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-DFJXIA3A.js → diagram-Z3DM3KII-CGGpseiB.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-FwyaU7VY.js → ebnfDiagram-PWID7BFC-K8-QMvY8.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-8vJQh2te.js → erDiagram-SSCWMZ5O-D316nAem.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-BzA_1gMN.js → flowDiagram-A5DVABFB-B7siy_mn.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-Co-ABbVX.js → ganttDiagram-EL5Y4UJY-BZQDxzTu.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DW_FcyrX.js → gitGraphDiagram-WWUBYQGX-DZynLCSV.js} +1 -1
- package/web-shell/assets/{index-BbMXfhNG.js → index-9ie6xLTM.js} +1 -1
- package/web-shell/assets/{index-Bu-rZoJ-.js → index-DirkXQEg.js} +488 -474
- package/web-shell/assets/index-DzdST_7L.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-BEgfhUFN.js → infoDiagram-RXCK75RN-B0gr769A.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-DCsMxQmc.js → ishikawaDiagram-5VMMS53U-0pQFfjvX.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-DyIEYoHz.js → journeyDiagram-EYS64GPL-DEGtClWb.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-CkxjqCNr.js → kanban-definition-3QL26DDD-CnN8gPzw.js} +1 -1
- package/web-shell/assets/{layout-BEWc0Al9.js → layout-C_70RhaT.js} +1 -1
- package/web-shell/assets/{linear-CNuNxirL.js → linear-BJ2ZLmcq.js} +1 -1
- package/web-shell/assets/{mermaid.core-DZBre674.js → mermaid.core-RlY0zPNC.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-CpafFz_F.js → mindmap-definition-FBJOCRG2-CpVAxTNl.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DfZqk_dq.js → pegDiagram-XKGWAZYB-DmrSv3hD.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-S0UWXlgC.js → pieDiagram-E7YTZNPT-CJmgp8KJ.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-dd37_Ohj.js → quadrantDiagram-AXDQQJYC-UsgOyNco.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CH8NJZ7u.js → railroadDiagram-O6MQD6OU-DQ6gMs_W.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CFdqWYih.js → requirementDiagram-EFPCY7ZU-DhqadamF.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CsddcEGD.js → sankeyDiagram-P5KCCOFB-R4WnURaE.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BZ270mGw.js → sequenceDiagram-WJ2MYXX4-D7BwMi_D.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CGaS4DBV.js → sizeCapture-X5ZJPWSS-Bqngz088.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-COpIzMu6.js → stateDiagram-HBIQ2CUA-DwaXPGqn.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-8GCQZAvv.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-CMF889m3.js → swimlanes-XN3QIQJK-BsaLeRDY.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-BoRBF2Yw.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-BelnxYz5.js → timeline-definition-24CTP7MA-NJ9G-NUU.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-CU-NRqIB.js → vennDiagram-4TSXK5OY-Ca3W4rSq.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CDNKqWh-.js → wardleyDiagram-VM6X3IG4-OabvjC-6.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CLqguL5D.js → xychartDiagram-S5SC5T6Z-C7rbjvpc.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-6YEOCHSE.js +0 -142
- package/chunks/chunk-X35VIWWJ.js +0 -276
- package/web-shell/assets/channel-uMMdTrYk.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DcY-26Ig.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DcY-26Ig.js +0 -1
- package/web-shell/assets/index-CsPwZ1ut.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D6qEVAji.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-mem5Jj4m.js +0 -8
|
@@ -15,16 +15,21 @@ import {
|
|
|
15
15
|
getToolInvalidReasons,
|
|
16
16
|
isToolValid,
|
|
17
17
|
normalizeModelIds,
|
|
18
|
+
pickAsciiArtTier,
|
|
19
|
+
resolveCustomBanner,
|
|
20
|
+
shortAsciiLogo,
|
|
18
21
|
useFollowupSuggestionsCLI,
|
|
22
|
+
useGitBranchName,
|
|
19
23
|
useLogger,
|
|
24
|
+
usePhraseCycler,
|
|
20
25
|
useProviderSetupFlow,
|
|
21
26
|
writeTerminalTitle
|
|
22
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-SK6VACCM.js";
|
|
23
28
|
import "./chunk-CALNF3Z3.js";
|
|
24
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-PWR6BQ3U.js";
|
|
25
30
|
import {
|
|
26
31
|
startPostRenderPrefetches
|
|
27
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-HUJJFSMO.js";
|
|
28
33
|
import {
|
|
29
34
|
STATUS_LINE_PRESET_ITEMS,
|
|
30
35
|
SessionStatsProvider,
|
|
@@ -37,16 +42,18 @@ import {
|
|
|
37
42
|
getStatusColor,
|
|
38
43
|
keyMatchers,
|
|
39
44
|
useSessionStats
|
|
40
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-WEU6O6VN.js";
|
|
41
46
|
import {
|
|
42
47
|
ICON,
|
|
48
|
+
SPINNER_FRAMES,
|
|
49
|
+
SPINNER_INTERVAL_MS,
|
|
43
50
|
applyCollapsePolicyAndSummary,
|
|
44
51
|
buildResumedHistoryItems,
|
|
45
52
|
coalesceFindingsHistoryItems,
|
|
46
53
|
isFindingsListDisplay,
|
|
47
54
|
shouldDisplayGoalStateCause,
|
|
48
55
|
waitForGoalRuntime
|
|
49
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-VX2NR3SD.js";
|
|
50
57
|
import {
|
|
51
58
|
stopAndGetCapturedInput
|
|
52
59
|
} from "./chunk-EWNKP4V4.js";
|
|
@@ -57,7 +64,7 @@ import {
|
|
|
57
64
|
MAX_SUGGESTIONS_TO_SHOW,
|
|
58
65
|
handleAtCommand,
|
|
59
66
|
sanitizeDisplayText
|
|
60
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-76I36BEM.js";
|
|
61
68
|
import {
|
|
62
69
|
BuiltinCommandLoader,
|
|
63
70
|
BundledSkillLoader,
|
|
@@ -72,6 +79,7 @@ import {
|
|
|
72
79
|
applyOutputStyleSelection,
|
|
73
80
|
buildBackgroundWorkBlockedMessage,
|
|
74
81
|
findMidInputSlashCommand,
|
|
82
|
+
formatApprovalModeName,
|
|
75
83
|
formatUserPromptExpansionBlockedMessage,
|
|
76
84
|
hasBlockingBackgroundWork,
|
|
77
85
|
hasSlashCommandPathSeparator,
|
|
@@ -89,18 +97,18 @@ import {
|
|
|
89
97
|
refreshExtensionContentRuntime,
|
|
90
98
|
resetBackgroundStateForSessionSwitch,
|
|
91
99
|
serializeUserPromptExpansionPrompt
|
|
92
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-4DIMJKWU.js";
|
|
93
101
|
import {
|
|
94
102
|
EXTENSION_RELOAD_FAILED_REASON,
|
|
95
103
|
ExtensionRefreshState
|
|
96
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-3O77M472.js";
|
|
97
105
|
import {
|
|
98
106
|
formatSupportedModes,
|
|
99
107
|
getCommandDisplayName,
|
|
100
108
|
getCommandSourceBadge,
|
|
101
109
|
getCommandSourceGroup,
|
|
102
110
|
getCommandSubcommandNames
|
|
103
|
-
} from "./chunk-
|
|
111
|
+
} from "./chunk-5HV2HPO7.js";
|
|
104
112
|
import {
|
|
105
113
|
calculateCost,
|
|
106
114
|
computeSessionStats,
|
|
@@ -108,10 +116,12 @@ import {
|
|
|
108
116
|
getSystemInfoFields,
|
|
109
117
|
levelLabel,
|
|
110
118
|
redactProxy
|
|
111
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-A7QZIGRB.js";
|
|
112
120
|
import {
|
|
113
|
-
|
|
114
|
-
|
|
121
|
+
contextUsageLabel,
|
|
122
|
+
formatDuration,
|
|
123
|
+
formatPercentageUsed
|
|
124
|
+
} from "./chunk-22GORRNY.js";
|
|
115
125
|
import "./chunk-NYX53SV4.js";
|
|
116
126
|
import {
|
|
117
127
|
CTRL_EXIT_PROMPT_DURATION_MS,
|
|
@@ -119,7 +129,7 @@ import {
|
|
|
119
129
|
clipboardHasImage,
|
|
120
130
|
saveClipboardImage
|
|
121
131
|
} from "./chunk-UYDQYDW2.js";
|
|
122
|
-
import "./chunk-
|
|
132
|
+
import "./chunk-DGNRLJ6S.js";
|
|
123
133
|
import "./chunk-4WGODMVR.js";
|
|
124
134
|
import "./chunk-4LIPOIXS.js";
|
|
125
135
|
import {
|
|
@@ -136,33 +146,35 @@ import {
|
|
|
136
146
|
import {
|
|
137
147
|
require_react
|
|
138
148
|
} from "./chunk-5QWWOFGG.js";
|
|
139
|
-
import "./chunk-
|
|
149
|
+
import "./chunk-QA2B26PL.js";
|
|
140
150
|
import {
|
|
141
151
|
getErrorMessage as getErrorMessage2
|
|
142
|
-
} from "./chunk-
|
|
143
|
-
import "./chunk-
|
|
152
|
+
} from "./chunk-SYKPMH2X.js";
|
|
153
|
+
import "./chunk-5WBA3DEF.js";
|
|
144
154
|
import "./chunk-XQ4RDO5B.js";
|
|
145
155
|
import {
|
|
146
156
|
setUpdateHandler
|
|
147
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-VAWM3A5N.js";
|
|
148
158
|
import "./chunk-EKTCKZV5.js";
|
|
149
|
-
import "./chunk-
|
|
159
|
+
import "./chunk-NV4YYXFT.js";
|
|
150
160
|
import "./chunk-YAF2MQZ6.js";
|
|
151
161
|
import "./chunk-24FVUD5P.js";
|
|
152
|
-
import "./chunk-
|
|
162
|
+
import "./chunk-EYCW6UF2.js";
|
|
153
163
|
import "./chunk-6H67XLET.js";
|
|
154
|
-
import "./chunk-
|
|
164
|
+
import "./chunk-HWLLUDIA.js";
|
|
155
165
|
import "./chunk-M3JGHRMQ.js";
|
|
156
166
|
import "./chunk-VFFQAOPR.js";
|
|
157
167
|
import "./chunk-ERXNTINK.js";
|
|
158
168
|
import {
|
|
159
169
|
cpLen,
|
|
160
170
|
escapeAnsiCtrlCodes,
|
|
171
|
+
getAsciiArtWidth,
|
|
161
172
|
getCachedStringWidth,
|
|
162
173
|
sanitizeMultilineForDisplay,
|
|
163
174
|
sanitizeSensitiveText,
|
|
164
175
|
sanitizeTerminalText,
|
|
165
|
-
toCodePoints
|
|
176
|
+
toCodePoints,
|
|
177
|
+
truncateToWidth
|
|
166
178
|
} from "./chunk-47ECGEJC.js";
|
|
167
179
|
import "./chunk-2MIN6GRR.js";
|
|
168
180
|
import "./chunk-QHTIBUWB.js";
|
|
@@ -181,47 +193,47 @@ import {
|
|
|
181
193
|
import "./chunk-Y53DG2HA.js";
|
|
182
194
|
import {
|
|
183
195
|
getExtendedSystemInfo
|
|
184
|
-
} from "./chunk-
|
|
185
|
-
import "./chunk-
|
|
196
|
+
} from "./chunk-O6BFERWN.js";
|
|
197
|
+
import "./chunk-LOBKNYPR.js";
|
|
186
198
|
import "./chunk-7U5G6JXI.js";
|
|
187
199
|
import "./chunk-WCCLLK7X.js";
|
|
188
200
|
import {
|
|
189
201
|
getReasoningEffortsForConfig
|
|
190
|
-
} from "./chunk-
|
|
191
|
-
import "./chunk-
|
|
202
|
+
} from "./chunk-N3Z6Q7KC.js";
|
|
203
|
+
import "./chunk-6GAYNM3F.js";
|
|
192
204
|
import "./chunk-HWVUSYSN.js";
|
|
193
|
-
import "./chunk-
|
|
194
|
-
import "./chunk-
|
|
195
|
-
import "./chunk-
|
|
205
|
+
import "./chunk-KECCLCXM.js";
|
|
206
|
+
import "./chunk-EDSU3VUG.js";
|
|
207
|
+
import "./chunk-6S7YYUUH.js";
|
|
196
208
|
import "./chunk-57OAHC2Y.js";
|
|
197
|
-
import "./chunk-
|
|
198
|
-
import "./chunk-
|
|
199
|
-
import "./chunk-
|
|
209
|
+
import "./chunk-JFAGT5YG.js";
|
|
210
|
+
import "./chunk-7IDZFJAV.js";
|
|
211
|
+
import "./chunk-AUTUFD5X.js";
|
|
200
212
|
import "./chunk-V6WHFGST.js";
|
|
201
213
|
import {
|
|
202
214
|
createLoadedSettingsAdapter
|
|
203
|
-
} from "./chunk-
|
|
204
|
-
import "./chunk-
|
|
215
|
+
} from "./chunk-DVOCOIS5.js";
|
|
216
|
+
import "./chunk-JYGIJA4W.js";
|
|
205
217
|
import "./chunk-2AUM35J5.js";
|
|
206
218
|
import "./chunk-N6VQ37ZZ.js";
|
|
207
219
|
import "./chunk-PSPAM24S.js";
|
|
208
220
|
import "./chunk-6PLDPT2C.js";
|
|
209
221
|
import "./chunk-FYJ7W2PI.js";
|
|
210
222
|
import "./chunk-STUJ7IMZ.js";
|
|
211
|
-
import "./chunk-
|
|
223
|
+
import "./chunk-DARWOZY6.js";
|
|
212
224
|
import "./chunk-GYTKQYDB.js";
|
|
213
225
|
import "./chunk-ALMR3E6Q.js";
|
|
214
226
|
import "./chunk-RKFGE7JH.js";
|
|
215
227
|
import "./chunk-UDG5EZJI.js";
|
|
216
228
|
import "./chunk-M5GB774H.js";
|
|
217
229
|
import "./chunk-3VUENPWF.js";
|
|
218
|
-
import "./chunk-
|
|
230
|
+
import "./chunk-TGNNLRC3.js";
|
|
231
|
+
import "./chunk-WDVV3LRM.js";
|
|
219
232
|
import "./chunk-IW6RQPQB.js";
|
|
220
|
-
import "./chunk-
|
|
221
|
-
import "./chunk-X35VIWWJ.js";
|
|
233
|
+
import "./chunk-NFXXBWSE.js";
|
|
222
234
|
import {
|
|
223
235
|
loadMcpApprovals
|
|
224
|
-
} from "./chunk-
|
|
236
|
+
} from "./chunk-OVTPETDL.js";
|
|
225
237
|
import {
|
|
226
238
|
getDefaultValue,
|
|
227
239
|
getDialogSettingKeys,
|
|
@@ -233,14 +245,15 @@ import {
|
|
|
233
245
|
getSettingDefinition,
|
|
234
246
|
isAutoLanguage,
|
|
235
247
|
isDefaultValue,
|
|
248
|
+
nextBooleanSettingValue,
|
|
236
249
|
requiresRestart,
|
|
237
250
|
saveModifiedSettings,
|
|
238
251
|
setPendingSettingValueAny,
|
|
239
252
|
validateSettingValue
|
|
240
|
-
} from "./chunk-
|
|
253
|
+
} from "./chunk-Y7YHAY32.js";
|
|
241
254
|
import {
|
|
242
255
|
TOGGLE_TYPES
|
|
243
|
-
} from "./chunk-
|
|
256
|
+
} from "./chunk-LOVGQ3HZ.js";
|
|
244
257
|
import "./chunk-RKUWKYED.js";
|
|
245
258
|
import "./chunk-BW4333PP.js";
|
|
246
259
|
import "./chunk-IDS7MSUP.js";
|
|
@@ -248,50 +261,53 @@ import {
|
|
|
248
261
|
t
|
|
249
262
|
} from "./chunk-CRZBDVP2.js";
|
|
250
263
|
import "./chunk-5EJZE3FP.js";
|
|
251
|
-
import "./chunk-
|
|
264
|
+
import "./chunk-43EUMPKQ.js";
|
|
252
265
|
import "./chunk-QTNCGZHQ.js";
|
|
253
266
|
import "./chunk-2EAZ43JQ.js";
|
|
254
267
|
import "./chunk-NF5J2WFA.js";
|
|
255
268
|
import {
|
|
269
|
+
formatVersionLabel,
|
|
256
270
|
getCliVersion
|
|
257
|
-
} from "./chunk-
|
|
271
|
+
} from "./chunk-ATBLEXXV.js";
|
|
258
272
|
import "./chunk-W3N5XAZ6.js";
|
|
259
|
-
import "./chunk-
|
|
273
|
+
import "./chunk-D6AGS266.js";
|
|
260
274
|
import "./chunk-NPQ5ZKRP.js";
|
|
261
275
|
import "./chunk-MR3PXB6E.js";
|
|
262
276
|
import {
|
|
263
|
-
ALIBABA_PROVIDERS,
|
|
264
277
|
FileSearchFactory,
|
|
265
278
|
Fzf,
|
|
266
|
-
THIRD_PARTY_PROVIDERS,
|
|
267
279
|
applyProviderInstallPlan,
|
|
268
|
-
buildInstallPlan,
|
|
269
280
|
buildSessionRecoveryPlan,
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
findProviderByCredentials,
|
|
273
|
-
findProviderById,
|
|
274
|
-
generatePromptSuggestion,
|
|
275
|
-
getDefaultModelIds,
|
|
276
|
-
resolveMetadataKey
|
|
277
|
-
} from "./chunk-ZU2T5JIS.js";
|
|
281
|
+
generatePromptSuggestion
|
|
282
|
+
} from "./chunk-ZEFWBG2C.js";
|
|
278
283
|
import "./chunk-GELRJXE2.js";
|
|
279
284
|
import "./chunk-32CM56LO.js";
|
|
280
|
-
import "./chunk-
|
|
285
|
+
import "./chunk-3A2IMUDH.js";
|
|
281
286
|
import "./chunk-XFSFZCM5.js";
|
|
282
287
|
import "./chunk-2EKVPSIJ.js";
|
|
283
288
|
import "./chunk-LJZSMWOH.js";
|
|
284
289
|
import "./chunk-YZTGGCEE.js";
|
|
285
|
-
import
|
|
290
|
+
import {
|
|
291
|
+
ALIBABA_PROVIDERS,
|
|
292
|
+
THIRD_PARTY_PROVIDERS,
|
|
293
|
+
buildInstallPlan,
|
|
294
|
+
customProvider,
|
|
295
|
+
findExistingProviderModels,
|
|
296
|
+
findProviderByCredentials,
|
|
297
|
+
findProviderById,
|
|
298
|
+
getDefaultModelIds,
|
|
299
|
+
resolveMetadataKey
|
|
300
|
+
} from "./chunk-PLEBBGHL.js";
|
|
301
|
+
import "./chunk-JGTMTJSQ.js";
|
|
286
302
|
import "./chunk-DJXSOEFB.js";
|
|
287
|
-
import "./chunk-
|
|
303
|
+
import "./chunk-LKBOBUA2.js";
|
|
288
304
|
import "./chunk-J3VZF2AL.js";
|
|
289
305
|
import "./chunk-OWCFKIFQ.js";
|
|
290
306
|
import "./chunk-ZPJWUGCS.js";
|
|
291
|
-
import "./chunk-
|
|
307
|
+
import "./chunk-7K4GGN3D.js";
|
|
292
308
|
import "./chunk-BUQN5LTI.js";
|
|
293
309
|
import "./chunk-XDNFODER.js";
|
|
294
|
-
import "./chunk-
|
|
310
|
+
import "./chunk-SM66GFKJ.js";
|
|
295
311
|
import "./chunk-VNOVK4I7.js";
|
|
296
312
|
import {
|
|
297
313
|
CoreToolScheduler,
|
|
@@ -322,15 +338,15 @@ import {
|
|
|
322
338
|
parseRule,
|
|
323
339
|
parseVisionModelSetting,
|
|
324
340
|
refreshMemoryInstruction
|
|
325
|
-
} from "./chunk-
|
|
341
|
+
} from "./chunk-BDAVT6K2.js";
|
|
326
342
|
import "./chunk-GOFAQQZA.js";
|
|
327
343
|
import "./chunk-65I7S4Z3.js";
|
|
328
344
|
import "./chunk-6HUXPLB5.js";
|
|
329
345
|
import "./chunk-TWPJO254.js";
|
|
330
346
|
import "./chunk-CQ35AJ4Z.js";
|
|
331
|
-
import "./chunk-
|
|
347
|
+
import "./chunk-XKBFYTCD.js";
|
|
332
348
|
import "./chunk-LYT2OU7D.js";
|
|
333
|
-
import "./chunk-
|
|
349
|
+
import "./chunk-7CLLH5TI.js";
|
|
334
350
|
import {
|
|
335
351
|
writeRuntimeStatus
|
|
336
352
|
} from "./chunk-HIXUUCGY.js";
|
|
@@ -338,7 +354,7 @@ import "./chunk-6PVPNMXU.js";
|
|
|
338
354
|
import {
|
|
339
355
|
resolveModelId
|
|
340
356
|
} from "./chunk-565U2ANU.js";
|
|
341
|
-
import "./chunk-
|
|
357
|
+
import "./chunk-GSFV5RQW.js";
|
|
342
358
|
import "./chunk-IRH27ZC2.js";
|
|
343
359
|
import "./chunk-QHWCP53L.js";
|
|
344
360
|
import "./chunk-F53KKZUD.js";
|
|
@@ -354,8 +370,8 @@ import {
|
|
|
354
370
|
import "./chunk-QAZ2MGYT.js";
|
|
355
371
|
import {
|
|
356
372
|
registerSession
|
|
357
|
-
} from "./chunk-
|
|
358
|
-
import "./chunk-
|
|
373
|
+
} from "./chunk-F4SAL7WM.js";
|
|
374
|
+
import "./chunk-CH2YDT6X.js";
|
|
359
375
|
import {
|
|
360
376
|
APPROVAL_MODES
|
|
361
377
|
} from "./chunk-JX6XHPTX.js";
|
|
@@ -363,10 +379,10 @@ import "./chunk-CLKE4IY3.js";
|
|
|
363
379
|
import "./chunk-ZSTCM3MX.js";
|
|
364
380
|
import "./chunk-SOA4HKRJ.js";
|
|
365
381
|
import "./chunk-MLXTMF7H.js";
|
|
366
|
-
import "./chunk-
|
|
382
|
+
import "./chunk-2HYOOFDS.js";
|
|
367
383
|
import "./chunk-3CZ2BQV6.js";
|
|
368
384
|
import "./chunk-PQEISIKS.js";
|
|
369
|
-
import "./chunk-
|
|
385
|
+
import "./chunk-HSO6D4KX.js";
|
|
370
386
|
import "./chunk-H3Q3RSKZ.js";
|
|
371
387
|
import "./chunk-S6LOFUVP.js";
|
|
372
388
|
import "./chunk-NAVJD2PQ.js";
|
|
@@ -374,10 +390,7 @@ import "./chunk-OFVAS4AR.js";
|
|
|
374
390
|
import "./chunk-HNLMYDQE.js";
|
|
375
391
|
import "./chunk-QHMLYMMS.js";
|
|
376
392
|
import "./chunk-CFKIH3D3.js";
|
|
377
|
-
import
|
|
378
|
-
REASONING_EFFORT_TIERS,
|
|
379
|
-
applyReasoningEffort
|
|
380
|
-
} from "./chunk-6YEOCHSE.js";
|
|
393
|
+
import "./chunk-AXMWHKXA.js";
|
|
381
394
|
import "./chunk-DJ2GSRLV.js";
|
|
382
395
|
import "./chunk-4ALNJDHL.js";
|
|
383
396
|
import "./chunk-NOO4QFXM.js";
|
|
@@ -406,9 +419,9 @@ import {
|
|
|
406
419
|
shouldRunVisionBridge,
|
|
407
420
|
splitImageParts,
|
|
408
421
|
uiTelemetryService
|
|
409
|
-
} from "./chunk-
|
|
422
|
+
} from "./chunk-FRS3P7MQ.js";
|
|
410
423
|
import "./chunk-5ETULJLP.js";
|
|
411
|
-
import "./chunk-
|
|
424
|
+
import "./chunk-GSYD7MYP.js";
|
|
412
425
|
import "./chunk-VGC4I5JJ.js";
|
|
413
426
|
import {
|
|
414
427
|
getAllGeminiMdFilenames,
|
|
@@ -418,9 +431,12 @@ import {
|
|
|
418
431
|
import "./chunk-EDIDYZBT.js";
|
|
419
432
|
import "./chunk-HD7O6WLV.js";
|
|
420
433
|
import "./chunk-WZAD4ZNJ.js";
|
|
421
|
-
import
|
|
434
|
+
import {
|
|
435
|
+
REASONING_EFFORT_TIERS,
|
|
436
|
+
applyReasoningEffort
|
|
437
|
+
} from "./chunk-F3M6P6IQ.js";
|
|
422
438
|
import "./chunk-TIGXX4PA.js";
|
|
423
|
-
import "./chunk-
|
|
439
|
+
import "./chunk-EOLGAQ25.js";
|
|
424
440
|
import "./chunk-XFFRI3WM.js";
|
|
425
441
|
import "./chunk-4HOEU2OR.js";
|
|
426
442
|
import "./chunk-HHJLM3WQ.js";
|
|
@@ -445,14 +461,16 @@ import {
|
|
|
445
461
|
createDebugLogger,
|
|
446
462
|
escapePath,
|
|
447
463
|
getErrorMessage,
|
|
448
|
-
isDebugLogFileEnabled
|
|
464
|
+
isDebugLogFileEnabled,
|
|
465
|
+
shortenPath,
|
|
466
|
+
tildeifyPath
|
|
449
467
|
} from "./chunk-ZAFYHRVY.js";
|
|
450
|
-
import "./chunk-
|
|
468
|
+
import "./chunk-6VIATHL7.js";
|
|
451
469
|
import "./chunk-HRPFBHW7.js";
|
|
452
470
|
import {
|
|
453
471
|
registerCleanup,
|
|
454
472
|
runExitCleanup
|
|
455
|
-
} from "./chunk-
|
|
473
|
+
} from "./chunk-C24ZDDNY.js";
|
|
456
474
|
import {
|
|
457
475
|
profileCheckpoint
|
|
458
476
|
} from "./chunk-QILD6R27.js";
|
|
@@ -504,7 +522,7 @@ var require_jsx_dev_runtime = __commonJS({
|
|
|
504
522
|
|
|
505
523
|
// packages/cli/src/ui/opentui/start-opentui-ui.tsx
|
|
506
524
|
init_esbuild_shims();
|
|
507
|
-
var
|
|
525
|
+
var import_react59 = __toESM(require_react(), 1);
|
|
508
526
|
import { stat as stat2 } from "node:fs/promises";
|
|
509
527
|
import { basename as basename3 } from "node:path";
|
|
510
528
|
|
|
@@ -8533,12 +8551,12 @@ function resolveWorkerImportSpecifier(specifier) {
|
|
|
8533
8551
|
if (isRuntimeSpecifier(specifier)) {
|
|
8534
8552
|
return specifier;
|
|
8535
8553
|
}
|
|
8536
|
-
const
|
|
8554
|
+
const nodePath3 = getBuiltinModule("node:path");
|
|
8537
8555
|
const nodeUrl = getBuiltinModule("node:url");
|
|
8538
|
-
if (!
|
|
8556
|
+
if (!nodePath3 || !nodeUrl) {
|
|
8539
8557
|
throw new Error(WORKER_UNAVAILABLE);
|
|
8540
8558
|
}
|
|
8541
|
-
const absolutePath =
|
|
8559
|
+
const absolutePath = nodePath3.isAbsolute(specifier) ? specifier : nodePath3.resolve(specifier);
|
|
8542
8560
|
return nodeUrl.pathToFileURL(absolutePath).href;
|
|
8543
8561
|
}
|
|
8544
8562
|
__name(resolveWorkerImportSpecifier, "resolveWorkerImportSpecifier");
|
|
@@ -41024,7 +41042,7 @@ __name(useUpdateNoticeFlush, "useUpdateNoticeFlush");
|
|
|
41024
41042
|
|
|
41025
41043
|
// packages/cli/src/ui/opentui/opentui-app-shell.tsx
|
|
41026
41044
|
init_esbuild_shims();
|
|
41027
|
-
var
|
|
41045
|
+
var import_react54 = __toESM(require_react(), 1);
|
|
41028
41046
|
|
|
41029
41047
|
// packages/cli/src/ui/opentui/opentui-host.ts
|
|
41030
41048
|
init_esbuild_shims();
|
|
@@ -41097,6 +41115,9 @@ function renderResultDisplay(display) {
|
|
|
41097
41115
|
if (Array.isArray(o["ansiOutput"])) {
|
|
41098
41116
|
return o["ansiOutput"].map((line) => line.map((t3) => t3.text ?? "").join("")).join("\n");
|
|
41099
41117
|
}
|
|
41118
|
+
if (o["type"] === "ask_user_question_answers" && typeof o["text"] === "string") {
|
|
41119
|
+
return o["text"];
|
|
41120
|
+
}
|
|
41100
41121
|
if (o["type"] === "plan_summary") {
|
|
41101
41122
|
const message = typeof o["message"] === "string" ? o["message"] : "";
|
|
41102
41123
|
const plan = typeof o["plan"] === "string" ? o["plan"] : "";
|
|
@@ -47184,7 +47205,7 @@ __name(filterSettingsItems, "filterSettingsItems");
|
|
|
47184
47205
|
function nextToggleValue(definition, currentValue) {
|
|
47185
47206
|
if (!definition || !TOGGLE_TYPES.has(definition.type)) return void 0;
|
|
47186
47207
|
if (definition.type === "boolean") {
|
|
47187
|
-
return
|
|
47208
|
+
return nextBooleanSettingValue(currentValue, definition.default);
|
|
47188
47209
|
}
|
|
47189
47210
|
if (definition.type === "enum" && definition.options) {
|
|
47190
47211
|
const options = definition.options;
|
|
@@ -53464,9 +53485,212 @@ ${current}` : popped);
|
|
|
53464
53485
|
}
|
|
53465
53486
|
__name(OpenTuiInputPrompt, "OpenTuiInputPrompt");
|
|
53466
53487
|
|
|
53467
|
-
// packages/cli/src/ui/opentui/
|
|
53488
|
+
// packages/cli/src/ui/opentui/opentui-header.tsx
|
|
53468
53489
|
init_esbuild_shims();
|
|
53469
53490
|
var import_react48 = __toESM(require_react(), 1);
|
|
53491
|
+
var LOGO_GRADIENT = ["#4796E4", "#847ACE", "#C3677F"];
|
|
53492
|
+
function lerpHex(a, b3, t3) {
|
|
53493
|
+
const pa = [1, 3, 5].map((i) => parseInt(a.slice(i, i + 2), 16));
|
|
53494
|
+
const pb = [1, 3, 5].map((i) => parseInt(b3.slice(i, i + 2), 16));
|
|
53495
|
+
return "#" + pa.map(
|
|
53496
|
+
(v3, i) => Math.round(v3 + (pb[i] - v3) * t3).toString(16).padStart(2, "0")
|
|
53497
|
+
).join("");
|
|
53498
|
+
}
|
|
53499
|
+
__name(lerpHex, "lerpHex");
|
|
53500
|
+
function gradientAt(stops, t3) {
|
|
53501
|
+
if (stops.length === 0) return C2.accent;
|
|
53502
|
+
if (stops.length === 1) return stops[0];
|
|
53503
|
+
const seg = Math.min(stops.length - 1, Math.floor(t3 * (stops.length - 1)));
|
|
53504
|
+
const lt = t3 * (stops.length - 1) - seg;
|
|
53505
|
+
return lerpHex(stops[seg], stops[seg + 1], lt);
|
|
53506
|
+
}
|
|
53507
|
+
__name(gradientAt, "gradientAt");
|
|
53508
|
+
function GradientLogo({ logo }) {
|
|
53509
|
+
const lines = logo.replace(/^\n/, "").split("\n");
|
|
53510
|
+
const w3 = Math.max(...lines.map((l) => [...l].length), 1);
|
|
53511
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("box", { flexDirection: "column", flexShrink: 0, children: lines.map((line, li) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("box", { flexDirection: "row", children: [...line].map((ch, ci) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: gradientAt(LOGO_GRADIENT, ci / w3), children: ch }, ci)) }, li)) });
|
|
53512
|
+
}
|
|
53513
|
+
__name(GradientLogo, "GradientLogo");
|
|
53514
|
+
function buildBanner(config, settings, width) {
|
|
53515
|
+
const versionLabel = formatVersionLabel(config.getCliVersion() ?? "unknown");
|
|
53516
|
+
const cg = config.getContentGeneratorConfig();
|
|
53517
|
+
const model = config.getModelDisplayName();
|
|
53518
|
+
const targetDir = config.getTargetDir();
|
|
53519
|
+
let authLabel = "";
|
|
53520
|
+
try {
|
|
53521
|
+
if (cg?.authType) {
|
|
53522
|
+
const matched = findProviderByCredentials(cg.baseUrl, cg.apiKeyEnvKey);
|
|
53523
|
+
authLabel = matched && resolveMetadataKey(matched) && matched.label || (cg.authType === "qwen-oauth" ? "Qwen OAuth" : "API Key");
|
|
53524
|
+
}
|
|
53525
|
+
} catch {
|
|
53526
|
+
authLabel = "";
|
|
53527
|
+
}
|
|
53528
|
+
const authModelText = authLabel ? `${authLabel} | ${model}` : model;
|
|
53529
|
+
const hint = " (/model to change)";
|
|
53530
|
+
const custom = resolveCustomBanner(settings);
|
|
53531
|
+
const containerMarginX = 2;
|
|
53532
|
+
const logoGap = 2;
|
|
53533
|
+
const infoPanelChromeWidth = 2 + 1 * 2;
|
|
53534
|
+
const minInfoPanelWidth = 40 + infoPanelChromeWidth;
|
|
53535
|
+
const available = Math.max(0, width - containerMarginX * 2);
|
|
53536
|
+
const hasCustomArt = Boolean(custom.asciiArt.small || custom.asciiArt.large);
|
|
53537
|
+
const customTier = pickAsciiArtTier(
|
|
53538
|
+
custom.asciiArt.small,
|
|
53539
|
+
custom.asciiArt.large,
|
|
53540
|
+
available,
|
|
53541
|
+
logoGap,
|
|
53542
|
+
minInfoPanelWidth,
|
|
53543
|
+
getAsciiArtWidth
|
|
53544
|
+
);
|
|
53545
|
+
const displayLogo = customTier ?? (hasCustomArt ? "" : shortAsciiLogo);
|
|
53546
|
+
const logoWidth = getAsciiArtWidth(displayLogo);
|
|
53547
|
+
const showLogo = displayLogo !== "" && available >= logoWidth + logoGap + minInfoPanelWidth;
|
|
53548
|
+
const maxInfoPanelWidth = 60;
|
|
53549
|
+
const infoPanelWidth = showLogo ? Math.min(available - logoWidth - logoGap, maxInfoPanelWidth) : available;
|
|
53550
|
+
const maxPathLength = Math.max(0, infoPanelWidth - infoPanelChromeWidth);
|
|
53551
|
+
const infoPanelContentWidth = Math.max(
|
|
53552
|
+
0,
|
|
53553
|
+
infoPanelWidth - infoPanelChromeWidth
|
|
53554
|
+
);
|
|
53555
|
+
const showModelHint = infoPanelContentWidth > 0 && getCachedStringWidth(authModelText + hint) <= infoPanelContentWidth;
|
|
53556
|
+
const shortenedPath = shortenPath(
|
|
53557
|
+
tildeifyPath(targetDir),
|
|
53558
|
+
Math.max(3, maxPathLength)
|
|
53559
|
+
);
|
|
53560
|
+
const displayPath = maxPathLength <= 0 ? "" : shortenedPath.length > maxPathLength ? shortenedPath.slice(0, maxPathLength) : shortenedPath;
|
|
53561
|
+
const infoPanel = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
53562
|
+
"box",
|
|
53563
|
+
{
|
|
53564
|
+
flexDirection: "column",
|
|
53565
|
+
borderStyle: "single",
|
|
53566
|
+
paddingX: 1,
|
|
53567
|
+
width: infoPanelWidth,
|
|
53568
|
+
flexGrow: showLogo ? 0 : 1,
|
|
53569
|
+
children: [
|
|
53570
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "row", children: [
|
|
53571
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.accent, attributes: 1, children: custom.title ?? ">_ Qwen Code" }),
|
|
53572
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: ` (${versionLabel})` })
|
|
53573
|
+
] }),
|
|
53574
|
+
custom.subtitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: custom.subtitle }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { children: " " }),
|
|
53575
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "row", children: [
|
|
53576
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: authModelText }),
|
|
53577
|
+
showModelHint && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: hint })
|
|
53578
|
+
] }),
|
|
53579
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: displayPath })
|
|
53580
|
+
]
|
|
53581
|
+
}
|
|
53582
|
+
);
|
|
53583
|
+
if (!showLogo) {
|
|
53584
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
53585
|
+
"box",
|
|
53586
|
+
{
|
|
53587
|
+
marginLeft: containerMarginX,
|
|
53588
|
+
marginRight: containerMarginX,
|
|
53589
|
+
flexShrink: 0,
|
|
53590
|
+
children: infoPanel
|
|
53591
|
+
}
|
|
53592
|
+
);
|
|
53593
|
+
}
|
|
53594
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
53595
|
+
"box",
|
|
53596
|
+
{
|
|
53597
|
+
flexDirection: "row",
|
|
53598
|
+
alignItems: "center",
|
|
53599
|
+
marginLeft: containerMarginX,
|
|
53600
|
+
marginRight: containerMarginX,
|
|
53601
|
+
flexShrink: 0,
|
|
53602
|
+
children: [
|
|
53603
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(GradientLogo, { logo: displayLogo }),
|
|
53604
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("box", { width: logoGap }),
|
|
53605
|
+
infoPanel
|
|
53606
|
+
]
|
|
53607
|
+
}
|
|
53608
|
+
);
|
|
53609
|
+
}
|
|
53610
|
+
__name(buildBanner, "buildBanner");
|
|
53611
|
+
function OpenTuiBanner({ config, settings }) {
|
|
53612
|
+
const { width } = useTerminalDimensions();
|
|
53613
|
+
const showBanner = !config.getScreenReader() && !settings.merged.ui?.hideBanner;
|
|
53614
|
+
const banner = (0, import_react48.useMemo)(
|
|
53615
|
+
() => showBanner ? buildBanner(config, settings, width) : null,
|
|
53616
|
+
[showBanner, config, settings, width]
|
|
53617
|
+
);
|
|
53618
|
+
return banner;
|
|
53619
|
+
}
|
|
53620
|
+
__name(OpenTuiBanner, "OpenTuiBanner");
|
|
53621
|
+
|
|
53622
|
+
// packages/cli/src/ui/opentui/opentui-footer.tsx
|
|
53623
|
+
init_esbuild_shims();
|
|
53624
|
+
var import_react50 = __toESM(require_react(), 1);
|
|
53625
|
+
import nodePath2 from "node:path";
|
|
53626
|
+
function Spinner() {
|
|
53627
|
+
const [frame, setFrame] = (0, import_react50.useState)(0);
|
|
53628
|
+
(0, import_react50.useEffect)(() => {
|
|
53629
|
+
const spin = setInterval(() => setFrame((f2) => f2 + 1), SPINNER_INTERVAL_MS);
|
|
53630
|
+
return () => clearInterval(spin);
|
|
53631
|
+
}, []);
|
|
53632
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("box", { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: SPINNER_FRAMES[frame % SPINNER_FRAMES.length] }) });
|
|
53633
|
+
}
|
|
53634
|
+
__name(Spinner, "Spinner");
|
|
53635
|
+
function OpenTuiLoadingIndicator({
|
|
53636
|
+
streaming
|
|
53637
|
+
}) {
|
|
53638
|
+
const [elapsed, setElapsed] = (0, import_react50.useState)(0);
|
|
53639
|
+
const { width } = useTerminalDimensions();
|
|
53640
|
+
const phrase = usePhraseCycler(streaming, false);
|
|
53641
|
+
(0, import_react50.useEffect)(() => {
|
|
53642
|
+
if (!streaming) return;
|
|
53643
|
+
setElapsed(0);
|
|
53644
|
+
const tick = setInterval(() => setElapsed((s) => s + 1), 1e3);
|
|
53645
|
+
return () => clearInterval(tick);
|
|
53646
|
+
}, [streaming]);
|
|
53647
|
+
if (!streaming) return null;
|
|
53648
|
+
const suffix2 = t("({{time}}{{tokens}} \xB7 esc to cancel)", {
|
|
53649
|
+
time: `${elapsed}s`,
|
|
53650
|
+
tokens: ""
|
|
53651
|
+
});
|
|
53652
|
+
const phraseBudget = Math.max(0, width - 5 - getCachedStringWidth(suffix2));
|
|
53653
|
+
const line = [truncateToWidth(phrase, phraseBudget), suffix2].filter(Boolean).join(" ");
|
|
53654
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { paddingLeft: 1, paddingRight: 1, flexDirection: "row", children: [
|
|
53655
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Spinner, {}),
|
|
53656
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: line })
|
|
53657
|
+
] });
|
|
53658
|
+
}
|
|
53659
|
+
__name(OpenTuiLoadingIndicator, "OpenTuiLoadingIndicator");
|
|
53660
|
+
function OpenTuiFooter({
|
|
53661
|
+
config,
|
|
53662
|
+
streaming,
|
|
53663
|
+
queueLength = 0,
|
|
53664
|
+
sessionName = null,
|
|
53665
|
+
approvalMode
|
|
53666
|
+
}) {
|
|
53667
|
+
const { width } = useTerminalDimensions();
|
|
53668
|
+
const targetDir = config.getTargetDir();
|
|
53669
|
+
const gitBranch = useGitBranchName(targetDir) ?? "";
|
|
53670
|
+
const footerModel = config.getModel();
|
|
53671
|
+
const promptTokenCount = uiTelemetryService.getLastPromptTokenCount();
|
|
53672
|
+
const contextWindowSize = config.getContentGeneratorConfig()?.contextWindowSize;
|
|
53673
|
+
const contextLabel = contextWindowSize && promptTokenCount > 0 ? ` \xB7 ${fmtTokens(contextWindowSize)} ${formatPercentageUsed(
|
|
53674
|
+
promptTokenCount / contextWindowSize
|
|
53675
|
+
)}${contextUsageLabel(width)}` : "";
|
|
53676
|
+
const footerLine1 = `\u279C ${nodePath2.basename(targetDir)}` + (sessionName ? ` \xB7 ${sessionName}` : "") + (gitBranch ? ` \xB7 git:(${gitBranch})` : "") + (footerModel ? ` \xB7 ${footerModel}` : "") + contextLabel;
|
|
53677
|
+
const hintSegments = [
|
|
53678
|
+
streaming ? t("Enter to steer \xB7 Ctrl+Q to queue") : null,
|
|
53679
|
+
approvalMode ? formatApprovalModeName(approvalMode) : null,
|
|
53680
|
+
queueLength > 0 ? `\u23F3 ${t("{{count}} queued", { count: String(queueLength) })}` : null
|
|
53681
|
+
].filter((segment) => segment !== null);
|
|
53682
|
+
const footerLine2 = hintSegments.join(" \xB7 ");
|
|
53683
|
+
const rowBudget = Math.max(0, width - 2);
|
|
53684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", paddingLeft: 1, paddingRight: 1, flexShrink: 0, children: [
|
|
53685
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: truncateToWidth(footerLine1, rowBudget) }),
|
|
53686
|
+
footerLine2 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: truncateToWidth(footerLine2, rowBudget) })
|
|
53687
|
+
] });
|
|
53688
|
+
}
|
|
53689
|
+
__name(OpenTuiFooter, "OpenTuiFooter");
|
|
53690
|
+
|
|
53691
|
+
// packages/cli/src/ui/opentui/dialogs-confirm.tsx
|
|
53692
|
+
init_esbuild_shims();
|
|
53693
|
+
var import_react52 = __toESM(require_react(), 1);
|
|
53470
53694
|
|
|
53471
53695
|
// packages/cli/src/ui/opentui/diff-render.ts
|
|
53472
53696
|
init_esbuild_shims();
|
|
@@ -53587,7 +53811,7 @@ function buildOutcomeOptions(details) {
|
|
|
53587
53811
|
}
|
|
53588
53812
|
__name(buildOutcomeOptions, "buildOutcomeOptions");
|
|
53589
53813
|
function DiffBody({ fileDiff }) {
|
|
53590
|
-
const lines = (0,
|
|
53814
|
+
const lines = (0, import_react52.useMemo)(() => renderDiffBody(fileDiff), [fileDiff]);
|
|
53591
53815
|
const window = tailWindow(lines, MAX_BODY_ROWS);
|
|
53592
53816
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", children: [
|
|
53593
53817
|
window.hiddenCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -53602,14 +53826,14 @@ function DiffBody({ fileDiff }) {
|
|
|
53602
53826
|
}
|
|
53603
53827
|
__name(DiffBody, "DiffBody");
|
|
53604
53828
|
function TextBody({ text }) {
|
|
53605
|
-
const [expanded, setExpanded] = (0,
|
|
53829
|
+
const [expanded, setExpanded] = (0, import_react52.useState)(false);
|
|
53606
53830
|
const { width, height } = useTerminalDimensions();
|
|
53607
|
-
const rows = (0,
|
|
53608
|
-
const window = (0,
|
|
53831
|
+
const rows = (0, import_react52.useMemo)(() => sanitizeTerminalText(text).split("\n"), [text]);
|
|
53832
|
+
const window = (0, import_react52.useMemo)(
|
|
53609
53833
|
() => headWindowPhysical(rows, width, MAX_BODY_ROWS),
|
|
53610
53834
|
[rows, width]
|
|
53611
53835
|
);
|
|
53612
|
-
const expandedWindow = (0,
|
|
53836
|
+
const expandedWindow = (0, import_react52.useMemo)(
|
|
53613
53837
|
() => tailWindowPhysical(
|
|
53614
53838
|
rows,
|
|
53615
53839
|
width,
|
|
@@ -53691,7 +53915,7 @@ function ConfirmationBody({
|
|
|
53691
53915
|
}
|
|
53692
53916
|
__name(ConfirmationBody, "ConfirmationBody");
|
|
53693
53917
|
function OutcomeSelect(props) {
|
|
53694
|
-
const items = (0,
|
|
53918
|
+
const items = (0, import_react52.useMemo)(
|
|
53695
53919
|
() => props.options.map((option, index) => ({
|
|
53696
53920
|
key: `${option.value}-${index}`,
|
|
53697
53921
|
value: option.value,
|
|
@@ -53724,8 +53948,8 @@ __name(OutcomeSelect, "OutcomeSelect");
|
|
|
53724
53948
|
function OpenTuiToolConfirmation(props) {
|
|
53725
53949
|
const { call, onSettled } = props;
|
|
53726
53950
|
const details = call.confirmationDetails;
|
|
53727
|
-
const settledRef = (0,
|
|
53728
|
-
const settle = (0,
|
|
53951
|
+
const settledRef = (0, import_react52.useRef)(false);
|
|
53952
|
+
const settle = (0, import_react52.useCallback)(
|
|
53729
53953
|
(outcome, payload) => {
|
|
53730
53954
|
if (settledRef.current) return;
|
|
53731
53955
|
settledRef.current = true;
|
|
@@ -53779,12 +54003,12 @@ function OpenTuiToolConfirmation(props) {
|
|
|
53779
54003
|
__name(OpenTuiToolConfirmation, "OpenTuiToolConfirmation");
|
|
53780
54004
|
function AskUserQuestionFlow(props) {
|
|
53781
54005
|
const { details, onAnswered } = props;
|
|
53782
|
-
const [index, setIndex] = (0,
|
|
53783
|
-
const [answers, setAnswers] = (0,
|
|
53784
|
-
const [selected, setSelected] = (0,
|
|
54006
|
+
const [index, setIndex] = (0, import_react52.useState)(0);
|
|
54007
|
+
const [answers, setAnswers] = (0, import_react52.useState)({});
|
|
54008
|
+
const [selected, setSelected] = (0, import_react52.useState)(/* @__PURE__ */ new Set());
|
|
53785
54009
|
const question = details.questions[index];
|
|
53786
54010
|
const isMulti = question?.multiSelect === true;
|
|
53787
|
-
const commitQuestion = (0,
|
|
54011
|
+
const commitQuestion = (0, import_react52.useCallback)(
|
|
53788
54012
|
(value) => {
|
|
53789
54013
|
if (value === void 0) return;
|
|
53790
54014
|
const nextAnswers = { ...answers, [index]: value };
|
|
@@ -53802,7 +54026,7 @@ function AskUserQuestionFlow(props) {
|
|
|
53802
54026
|
},
|
|
53803
54027
|
[answers, index, details.questions.length, onAnswered]
|
|
53804
54028
|
);
|
|
53805
|
-
const items = (0,
|
|
54029
|
+
const items = (0, import_react52.useMemo)(
|
|
53806
54030
|
() => (question?.options ?? []).map((option, i) => ({
|
|
53807
54031
|
key: `${option.label}-${i}`,
|
|
53808
54032
|
value: option.label
|
|
@@ -53837,7 +54061,7 @@ function AskUserQuestionFlow(props) {
|
|
|
53837
54061
|
commitQuestion([...selected].join(", "));
|
|
53838
54062
|
}
|
|
53839
54063
|
});
|
|
53840
|
-
(0,
|
|
54064
|
+
(0, import_react52.useEffect)(() => {
|
|
53841
54065
|
if (details.questions.length === 0 || !question?.options?.length) {
|
|
53842
54066
|
onAnswered(null);
|
|
53843
54067
|
}
|
|
@@ -53880,7 +54104,7 @@ function AskUserQuestionFlow(props) {
|
|
|
53880
54104
|
__name(AskUserQuestionFlow, "AskUserQuestionFlow");
|
|
53881
54105
|
function OpenTuiShellConfirmation(props) {
|
|
53882
54106
|
const { commands, onResolve } = props;
|
|
53883
|
-
const options = (0,
|
|
54107
|
+
const options = (0, import_react52.useMemo)(
|
|
53884
54108
|
() => [
|
|
53885
54109
|
{
|
|
53886
54110
|
label: t("Yes, allow once"),
|
|
@@ -53927,7 +54151,7 @@ function OpenTuiShellConfirmation(props) {
|
|
|
53927
54151
|
__name(OpenTuiShellConfirmation, "OpenTuiShellConfirmation");
|
|
53928
54152
|
function OpenTuiActionConfirmation(props) {
|
|
53929
54153
|
const { prompt, onResolve } = props;
|
|
53930
|
-
const options = (0,
|
|
54154
|
+
const options = (0, import_react52.useMemo)(
|
|
53931
54155
|
() => [
|
|
53932
54156
|
{ key: "yes", value: true },
|
|
53933
54157
|
{ key: "no", value: false }
|
|
@@ -53995,22 +54219,22 @@ function OpenTuiApp(props) {
|
|
|
53995
54219
|
onPromptSuggestionDismiss,
|
|
53996
54220
|
onPromptSuggestionAbort
|
|
53997
54221
|
} = props;
|
|
53998
|
-
const [dialog, setDialog] = (0,
|
|
54222
|
+
const [dialog, setDialog] = (0, import_react54.useState)(
|
|
53999
54223
|
props.initialDialog ?? null
|
|
54000
54224
|
);
|
|
54001
|
-
const [noticeText, setNoticeText] = (0,
|
|
54002
|
-
const [commandList, setCommandList] = (0,
|
|
54225
|
+
const [noticeText, setNoticeText] = (0, import_react54.useState)(null);
|
|
54226
|
+
const [commandList, setCommandList] = (0, import_react54.useState)(
|
|
54003
54227
|
commands ?? []
|
|
54004
54228
|
);
|
|
54005
|
-
const notify = (0,
|
|
54006
|
-
const [shellModeActive, setShellModeActive] = (0,
|
|
54007
|
-
const shellControllersRef = (0,
|
|
54229
|
+
const notify = (0, import_react54.useCallback)((text) => setNoticeText(text), []);
|
|
54230
|
+
const [shellModeActive, setShellModeActive] = (0, import_react54.useState)(false);
|
|
54231
|
+
const shellControllersRef = (0, import_react54.useRef)(/* @__PURE__ */ new Set());
|
|
54008
54232
|
const { width: terminalWidth, height: terminalHeight } = useTerminalDimensions();
|
|
54009
|
-
const toggleShellMode = (0,
|
|
54233
|
+
const toggleShellMode = (0, import_react54.useCallback)(
|
|
54010
54234
|
() => setShellModeActive((active) => !active),
|
|
54011
54235
|
[]
|
|
54012
54236
|
);
|
|
54013
|
-
const runShellCommand = (0,
|
|
54237
|
+
const runShellCommand = (0, import_react54.useCallback)(
|
|
54014
54238
|
(command) => {
|
|
54015
54239
|
const emit = props.onTranscriptEvent;
|
|
54016
54240
|
if (!emit) return;
|
|
@@ -54041,7 +54265,7 @@ function OpenTuiApp(props) {
|
|
|
54041
54265
|
},
|
|
54042
54266
|
[config, props.onTranscriptEvent, terminalWidth, terminalHeight]
|
|
54043
54267
|
);
|
|
54044
|
-
(0,
|
|
54268
|
+
(0, import_react54.useEffect)(
|
|
54045
54269
|
() => () => {
|
|
54046
54270
|
for (const controller of shellControllersRef.current) {
|
|
54047
54271
|
controller.abort();
|
|
@@ -54049,7 +54273,7 @@ function OpenTuiApp(props) {
|
|
|
54049
54273
|
},
|
|
54050
54274
|
[]
|
|
54051
54275
|
);
|
|
54052
|
-
const handleSelectSetting = (0,
|
|
54276
|
+
const handleSelectSetting = (0, import_react54.useCallback)((name) => {
|
|
54053
54277
|
if (name === "ui.theme") setDialog({ dialog: "theme" });
|
|
54054
54278
|
else if (name === "general.preferredEditor")
|
|
54055
54279
|
setDialog({ dialog: "editor" });
|
|
@@ -54058,15 +54282,15 @@ function OpenTuiApp(props) {
|
|
|
54058
54282
|
setDialog({ dialog: "model", mode: "vision" });
|
|
54059
54283
|
else setDialog(null);
|
|
54060
54284
|
}, []);
|
|
54061
|
-
const fillComposer = (0,
|
|
54285
|
+
const fillComposer = (0, import_react54.useCallback)(
|
|
54062
54286
|
(text) => {
|
|
54063
54287
|
injectCapturedInput(() => props.composerHandle?.current ?? null, text);
|
|
54064
54288
|
},
|
|
54065
54289
|
[props.composerHandle]
|
|
54066
54290
|
);
|
|
54067
|
-
const [modals, setModals] = (0,
|
|
54068
|
-
const modalSeq = (0,
|
|
54069
|
-
const confirmations = (0,
|
|
54291
|
+
const [modals, setModals] = (0, import_react54.useState)([]);
|
|
54292
|
+
const modalSeq = (0, import_react54.useRef)(0);
|
|
54293
|
+
const confirmations = (0, import_react54.useMemo)(
|
|
54070
54294
|
() => ({
|
|
54071
54295
|
presentShell: /* @__PURE__ */ __name((commandsToRun) => new Promise((resolve4) => {
|
|
54072
54296
|
modalSeq.current += 1;
|
|
@@ -54091,14 +54315,14 @@ function OpenTuiApp(props) {
|
|
|
54091
54315
|
[]
|
|
54092
54316
|
);
|
|
54093
54317
|
const activeModal = modals[0] ?? null;
|
|
54094
|
-
const closeShellModal = (0,
|
|
54318
|
+
const closeShellModal = (0, import_react54.useCallback)(
|
|
54095
54319
|
(modal, resolution) => {
|
|
54096
54320
|
setModals((prev) => prev.filter((m3) => m3.id !== modal.id));
|
|
54097
54321
|
modal.resolve(resolution);
|
|
54098
54322
|
},
|
|
54099
54323
|
[]
|
|
54100
54324
|
);
|
|
54101
|
-
const closeActionModal = (0,
|
|
54325
|
+
const closeActionModal = (0, import_react54.useCallback)(
|
|
54102
54326
|
(modal, confirmed) => {
|
|
54103
54327
|
setModals((prev) => prev.filter((m3) => m3.id !== modal.id));
|
|
54104
54328
|
modal.resolve(confirmed);
|
|
@@ -54106,7 +54330,7 @@ function OpenTuiApp(props) {
|
|
|
54106
54330
|
[]
|
|
54107
54331
|
);
|
|
54108
54332
|
const activeToolCall = waitingToolCalls?.[0] ?? null;
|
|
54109
|
-
const transcript = (0,
|
|
54333
|
+
const transcript = (0, import_react54.useMemo)(
|
|
54110
54334
|
() => ({
|
|
54111
54335
|
reset: /* @__PURE__ */ __name((events) => onTranscriptReset?.(events), "reset"),
|
|
54112
54336
|
// /clear semantics: a fresh transcript — the live turn's reset with an
|
|
@@ -54116,7 +54340,7 @@ function OpenTuiApp(props) {
|
|
|
54116
54340
|
}),
|
|
54117
54341
|
[onTranscriptReset, onTranscriptEvent]
|
|
54118
54342
|
);
|
|
54119
|
-
const host = (0,
|
|
54343
|
+
const host = (0, import_react54.useMemo)(
|
|
54120
54344
|
() => new OpenTuiAppHost({
|
|
54121
54345
|
config,
|
|
54122
54346
|
settings,
|
|
@@ -54145,27 +54369,27 @@ function OpenTuiApp(props) {
|
|
|
54145
54369
|
getSessionStats
|
|
54146
54370
|
]
|
|
54147
54371
|
);
|
|
54148
|
-
(0,
|
|
54149
|
-
(0,
|
|
54150
|
-
(0,
|
|
54372
|
+
(0, import_react54.useSyncExternalStore)(
|
|
54373
|
+
(0, import_react54.useCallback)((cb) => host.subscribe(cb), [host]),
|
|
54374
|
+
(0, import_react54.useCallback)(() => host.getVersion(), [host])
|
|
54151
54375
|
);
|
|
54152
|
-
(0,
|
|
54376
|
+
(0, import_react54.useEffect)(() => {
|
|
54153
54377
|
host.setStreaming(!!streaming);
|
|
54154
54378
|
}, [host, streaming]);
|
|
54155
|
-
const gateway = (0,
|
|
54156
|
-
const reloadRef = (0,
|
|
54157
|
-
const deferredCommandsRef = (0,
|
|
54158
|
-
const [deferredRevision, setDeferredRevision] = (0,
|
|
54159
|
-
const drainingRef = (0,
|
|
54160
|
-
const streamingRef = (0,
|
|
54161
|
-
(0,
|
|
54379
|
+
const gateway = (0, import_react54.useMemo)(() => new OpenTuiSlashGateway(), []);
|
|
54380
|
+
const reloadRef = (0, import_react54.useRef)(null);
|
|
54381
|
+
const deferredCommandsRef = (0, import_react54.useRef)([]);
|
|
54382
|
+
const [deferredRevision, setDeferredRevision] = (0, import_react54.useState)(0);
|
|
54383
|
+
const drainingRef = (0, import_react54.useRef)(false);
|
|
54384
|
+
const streamingRef = (0, import_react54.useRef)(streaming);
|
|
54385
|
+
(0, import_react54.useEffect)(() => {
|
|
54162
54386
|
streamingRef.current = streaming;
|
|
54163
54387
|
}, [streaming]);
|
|
54164
|
-
const dialogRef = (0,
|
|
54165
|
-
(0,
|
|
54388
|
+
const dialogRef = (0, import_react54.useRef)(dialog);
|
|
54389
|
+
(0, import_react54.useEffect)(() => {
|
|
54166
54390
|
dialogRef.current = dialog;
|
|
54167
54391
|
}, [dialog]);
|
|
54168
|
-
(0,
|
|
54392
|
+
(0, import_react54.useEffect)(() => {
|
|
54169
54393
|
const dispatcher = new OpenTuiSlashDispatcher(
|
|
54170
54394
|
host,
|
|
54171
54395
|
{ config, settings, logger, extensionRefreshState },
|
|
@@ -54200,7 +54424,7 @@ function OpenTuiApp(props) {
|
|
|
54200
54424
|
commands,
|
|
54201
54425
|
extensionRefreshState
|
|
54202
54426
|
]);
|
|
54203
|
-
const applyOutcome = (0,
|
|
54427
|
+
const applyOutcome = (0, import_react54.useCallback)(
|
|
54204
54428
|
(outcome) => {
|
|
54205
54429
|
switch (outcome.kind) {
|
|
54206
54430
|
case "handled":
|
|
@@ -54238,7 +54462,7 @@ function OpenTuiApp(props) {
|
|
|
54238
54462
|
},
|
|
54239
54463
|
[onSubmitPrompt, onQuit, onInterrupt, onPopQueue, notify]
|
|
54240
54464
|
);
|
|
54241
|
-
const onSubmit = (0,
|
|
54465
|
+
const onSubmit = (0, import_react54.useCallback)(
|
|
54242
54466
|
async (text, imagePaths) => {
|
|
54243
54467
|
setNoticeText(null);
|
|
54244
54468
|
const submission = normalizeQuitSubmission(text);
|
|
@@ -54296,7 +54520,7 @@ function OpenTuiApp(props) {
|
|
|
54296
54520
|
runShellCommand
|
|
54297
54521
|
]
|
|
54298
54522
|
);
|
|
54299
|
-
(0,
|
|
54523
|
+
(0, import_react54.useEffect)(() => {
|
|
54300
54524
|
if (isExitInProgress()) return;
|
|
54301
54525
|
if (streaming || dialog || shellControllersRef.current.size > 0 || deferredCommandsRef.current.length === 0) {
|
|
54302
54526
|
return;
|
|
@@ -54363,7 +54587,7 @@ function OpenTuiApp(props) {
|
|
|
54363
54587
|
onSubmitPrompt,
|
|
54364
54588
|
runShellCommand
|
|
54365
54589
|
]);
|
|
54366
|
-
const userMessages = (0,
|
|
54590
|
+
const userMessages = (0, import_react54.useMemo)(
|
|
54367
54591
|
() => host.getHistory().filter((item) => item.type === "user").map((item) => item.text ?? ""),
|
|
54368
54592
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
54369
54593
|
[host, host.getVersion()]
|
|
@@ -54374,6 +54598,7 @@ function OpenTuiApp(props) {
|
|
|
54374
54598
|
recordForExitEcho: true,
|
|
54375
54599
|
onError: (error) => onRenderError?.(error),
|
|
54376
54600
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", flexGrow: 1, flexShrink: 0, children: [
|
|
54601
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(OpenTuiBanner, { config, settings }),
|
|
54377
54602
|
renderMain ? renderMain() : null,
|
|
54378
54603
|
!dialog && !activeModal && !activeToolCall && updateNotice ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { children: updateNotice }) : null,
|
|
54379
54604
|
noticeText ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { children: noticeText }) : null,
|
|
@@ -54414,26 +54639,39 @@ function OpenTuiApp(props) {
|
|
|
54414
54639
|
availableTerminalHeight: props.availableTerminalHeight
|
|
54415
54640
|
},
|
|
54416
54641
|
dialog.dialog
|
|
54417
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime.
|
|
54418
|
-
|
|
54642
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
54643
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(OpenTuiLoadingIndicator, { streaming: Boolean(streaming) }),
|
|
54644
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
54645
|
+
OpenTuiInputPrompt,
|
|
54646
|
+
{
|
|
54647
|
+
onSubmit: (text, imagePaths) => {
|
|
54648
|
+
void onSubmit(text, imagePaths);
|
|
54649
|
+
},
|
|
54650
|
+
userMessages,
|
|
54651
|
+
config,
|
|
54652
|
+
focus: true,
|
|
54653
|
+
streaming,
|
|
54654
|
+
onInterrupt,
|
|
54655
|
+
approvalMode,
|
|
54656
|
+
queueLength,
|
|
54657
|
+
onPopQueue,
|
|
54658
|
+
composerHandle: props.composerHandle,
|
|
54659
|
+
promptSuggestion,
|
|
54660
|
+
onPromptSuggestionDismiss,
|
|
54661
|
+
onPromptSuggestionAbort,
|
|
54662
|
+
shellModeActive,
|
|
54663
|
+
onToggleShellMode: toggleShellMode
|
|
54664
|
+
}
|
|
54665
|
+
)
|
|
54666
|
+
] }),
|
|
54667
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
54668
|
+
OpenTuiFooter,
|
|
54419
54669
|
{
|
|
54420
|
-
onSubmit: (text, imagePaths) => {
|
|
54421
|
-
void onSubmit(text, imagePaths);
|
|
54422
|
-
},
|
|
54423
|
-
userMessages,
|
|
54424
54670
|
config,
|
|
54425
|
-
|
|
54426
|
-
streaming,
|
|
54427
|
-
onInterrupt,
|
|
54671
|
+
streaming: Boolean(streaming),
|
|
54428
54672
|
approvalMode,
|
|
54429
54673
|
queueLength,
|
|
54430
|
-
|
|
54431
|
-
composerHandle: props.composerHandle,
|
|
54432
|
-
promptSuggestion,
|
|
54433
|
-
onPromptSuggestionDismiss,
|
|
54434
|
-
onPromptSuggestionAbort,
|
|
54435
|
-
shellModeActive,
|
|
54436
|
-
onToggleShellMode: toggleShellMode
|
|
54674
|
+
sessionName: host.sessionName
|
|
54437
54675
|
}
|
|
54438
54676
|
)
|
|
54439
54677
|
] })
|
|
@@ -54444,7 +54682,7 @@ __name(OpenTuiApp, "OpenTuiApp");
|
|
|
54444
54682
|
|
|
54445
54683
|
// packages/cli/src/ui/opentui/followup-generation.ts
|
|
54446
54684
|
init_esbuild_shims();
|
|
54447
|
-
var
|
|
54685
|
+
var import_react56 = __toESM(require_react(), 1);
|
|
54448
54686
|
function useFollowupSuggestionGeneration({
|
|
54449
54687
|
config,
|
|
54450
54688
|
settings,
|
|
@@ -54452,12 +54690,12 @@ function useFollowupSuggestionGeneration({
|
|
|
54452
54690
|
items,
|
|
54453
54691
|
waitingCalls
|
|
54454
54692
|
}) {
|
|
54455
|
-
const [promptSuggestion, setPromptSuggestion] = (0,
|
|
54456
|
-
const abortRef = (0,
|
|
54457
|
-
const streamingRef = (0,
|
|
54693
|
+
const [promptSuggestion, setPromptSuggestion] = (0, import_react56.useState)(null);
|
|
54694
|
+
const abortRef = (0, import_react56.useRef)(null);
|
|
54695
|
+
const streamingRef = (0, import_react56.useRef)(streaming);
|
|
54458
54696
|
const followupEnabled = settings.merged.ui?.enableFollowupSuggestions !== false;
|
|
54459
54697
|
const cacheSharingEnabled = settings.merged.ui?.enableCacheSharing !== false;
|
|
54460
|
-
(0,
|
|
54698
|
+
(0, import_react56.useEffect)(() => {
|
|
54461
54699
|
const wasStreaming = streamingRef.current;
|
|
54462
54700
|
if (!followupEnabled || wasStreaming !== streaming) {
|
|
54463
54701
|
abortRef.current?.abort();
|
|
@@ -54494,7 +54732,7 @@ function useFollowupSuggestionGeneration({
|
|
|
54494
54732
|
items,
|
|
54495
54733
|
waitingCalls
|
|
54496
54734
|
]);
|
|
54497
|
-
(0,
|
|
54735
|
+
(0, import_react56.useEffect)(
|
|
54498
54736
|
() => () => {
|
|
54499
54737
|
abortRef.current?.abort();
|
|
54500
54738
|
},
|
|
@@ -54646,7 +54884,7 @@ var OpenTuiRuntime = class _OpenTuiRuntime {
|
|
|
54646
54884
|
|
|
54647
54885
|
// packages/cli/src/ui/opentui/transcript-view.tsx
|
|
54648
54886
|
init_esbuild_shims();
|
|
54649
|
-
var
|
|
54887
|
+
var import_react57 = __toESM(require_react(), 1);
|
|
54650
54888
|
|
|
54651
54889
|
// packages/cli/src/ui/opentui/live-session-model.ts
|
|
54652
54890
|
init_esbuild_shims();
|
|
@@ -55844,7 +56082,7 @@ function AssistantRow({
|
|
|
55844
56082
|
}
|
|
55845
56083
|
__name(AssistantRow, "AssistantRow");
|
|
55846
56084
|
function ThinkingRow({ text, done }) {
|
|
55847
|
-
const [expanded, setExpanded] = (0,
|
|
56085
|
+
const [expanded, setExpanded] = (0, import_react57.useState)(false);
|
|
55848
56086
|
const meta = thinkingMeta(done, expanded, false);
|
|
55849
56087
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
55850
56088
|
"box",
|
|
@@ -55995,8 +56233,8 @@ function RetryRows({
|
|
|
55995
56233
|
delayMs,
|
|
55996
56234
|
startedAt
|
|
55997
56235
|
}) {
|
|
55998
|
-
const [now, setNow] = (0,
|
|
55999
|
-
(0,
|
|
56236
|
+
const [now, setNow] = (0, import_react57.useState)(() => Date.now());
|
|
56237
|
+
(0, import_react57.useEffect)(() => {
|
|
56000
56238
|
const timer = setInterval(() => setNow(Date.now()), 1e3);
|
|
56001
56239
|
return () => clearInterval(timer);
|
|
56002
56240
|
}, []);
|
|
@@ -56240,7 +56478,7 @@ __name(ArenaSessionRow, "ArenaSessionRow");
|
|
|
56240
56478
|
|
|
56241
56479
|
// packages/cli/src/ui/opentui/live-turn.ts
|
|
56242
56480
|
init_esbuild_shims();
|
|
56243
|
-
var
|
|
56481
|
+
var import_react58 = __toESM(require_react(), 1);
|
|
56244
56482
|
import { readFileSync } from "node:fs";
|
|
56245
56483
|
|
|
56246
56484
|
// packages/cli/src/ui/opentui/live-session.ts
|
|
@@ -56840,43 +57078,43 @@ function foldBatch(events) {
|
|
|
56840
57078
|
__name(foldBatch, "foldBatch");
|
|
56841
57079
|
function useOpenTuiLiveTurn(options) {
|
|
56842
57080
|
const { config } = options;
|
|
56843
|
-
const [items, setItems] = (0,
|
|
56844
|
-
const [streaming, setStreaming] = (0,
|
|
56845
|
-
const [waitingCalls, setWaitingCalls] = (0,
|
|
57081
|
+
const [items, setItems] = (0, import_react58.useState)([]);
|
|
57082
|
+
const [streaming, setStreaming] = (0, import_react58.useState)(false);
|
|
57083
|
+
const [waitingCalls, setWaitingCalls] = (0, import_react58.useState)(
|
|
56846
57084
|
[]
|
|
56847
57085
|
);
|
|
56848
|
-
const queueRef = (0,
|
|
56849
|
-
const [queueLength, setQueueLength] = (0,
|
|
56850
|
-
const abortRef = (0,
|
|
56851
|
-
const streamingRef = (0,
|
|
56852
|
-
const turnSeqRef = (0,
|
|
56853
|
-
const waitingCallsRef = (0,
|
|
57086
|
+
const queueRef = (0, import_react58.useRef)([]);
|
|
57087
|
+
const [queueLength, setQueueLength] = (0, import_react58.useState)(0);
|
|
57088
|
+
const abortRef = (0, import_react58.useRef)(null);
|
|
57089
|
+
const streamingRef = (0, import_react58.useRef)(false);
|
|
57090
|
+
const turnSeqRef = (0, import_react58.useRef)(0);
|
|
57091
|
+
const waitingCallsRef = (0, import_react58.useRef)([]);
|
|
56854
57092
|
waitingCallsRef.current = waitingCalls;
|
|
56855
|
-
const setBusy = (0,
|
|
57093
|
+
const setBusy = (0, import_react58.useCallback)((busy) => {
|
|
56856
57094
|
if (streamingRef.current === busy) return;
|
|
56857
57095
|
streamingRef.current = busy;
|
|
56858
57096
|
setStreaming(busy);
|
|
56859
57097
|
}, []);
|
|
56860
|
-
const apply = (0,
|
|
57098
|
+
const apply = (0, import_react58.useCallback)((ev) => {
|
|
56861
57099
|
setItems((prev) => foldLiveEvent(prev, ev));
|
|
56862
57100
|
}, []);
|
|
56863
|
-
const pushQueue = (0,
|
|
57101
|
+
const pushQueue = (0, import_react58.useCallback)((text) => {
|
|
56864
57102
|
queueRef.current.push(text);
|
|
56865
57103
|
setQueueLength(queueRef.current.length);
|
|
56866
57104
|
}, []);
|
|
56867
|
-
const drainQueue = (0,
|
|
57105
|
+
const drainQueue = (0, import_react58.useCallback)(() => {
|
|
56868
57106
|
const drained = queueRef.current;
|
|
56869
57107
|
queueRef.current = [];
|
|
56870
57108
|
setQueueLength(0);
|
|
56871
57109
|
return drained;
|
|
56872
57110
|
}, []);
|
|
56873
|
-
const restoreQueue = (0,
|
|
57111
|
+
const restoreQueue = (0, import_react58.useCallback)((texts) => {
|
|
56874
57112
|
const restored = texts.map((text) => text.trim()).filter(Boolean);
|
|
56875
57113
|
if (restored.length === 0) return;
|
|
56876
57114
|
queueRef.current = [...restored, ...queueRef.current];
|
|
56877
57115
|
setQueueLength(queueRef.current.length);
|
|
56878
57116
|
}, []);
|
|
56879
|
-
const runTurn = (0,
|
|
57117
|
+
const runTurn = (0, import_react58.useCallback)(
|
|
56880
57118
|
async (prompt, promptId, turnOptions) => {
|
|
56881
57119
|
const seq = ++turnSeqRef.current;
|
|
56882
57120
|
const abort = new AbortController();
|
|
@@ -56933,7 +57171,7 @@ function useOpenTuiLiveTurn(options) {
|
|
|
56933
57171
|
},
|
|
56934
57172
|
[config, apply, drainQueue, restoreQueue, setBusy]
|
|
56935
57173
|
);
|
|
56936
|
-
const submit = (0,
|
|
57174
|
+
const submit = (0, import_react58.useCallback)(
|
|
56937
57175
|
(content, imagePaths, options2) => {
|
|
56938
57176
|
const text = typeof content === "string" ? content : collectText(normalizeParts(content));
|
|
56939
57177
|
if (streamingRef.current) {
|
|
@@ -56957,10 +57195,10 @@ function useOpenTuiLiveTurn(options) {
|
|
|
56957
57195
|
},
|
|
56958
57196
|
[config, apply, pushQueue, runTurn]
|
|
56959
57197
|
);
|
|
56960
|
-
const interrupt = (0,
|
|
57198
|
+
const interrupt = (0, import_react58.useCallback)(() => {
|
|
56961
57199
|
abortRef.current?.abort();
|
|
56962
57200
|
}, []);
|
|
56963
|
-
const resetTranscript = (0,
|
|
57201
|
+
const resetTranscript = (0, import_react58.useCallback)(
|
|
56964
57202
|
(events) => {
|
|
56965
57203
|
turnSeqRef.current += 1;
|
|
56966
57204
|
const abort = abortRef.current;
|
|
@@ -56979,14 +57217,14 @@ function useOpenTuiLiveTurn(options) {
|
|
|
56979
57217
|
},
|
|
56980
57218
|
[setBusy]
|
|
56981
57219
|
);
|
|
56982
|
-
const settleWaitingCall = (0,
|
|
57220
|
+
const settleWaitingCall = (0, import_react58.useCallback)((callId) => {
|
|
56983
57221
|
setWaitingCalls((prev) => prev.filter((c2) => c2.callId !== callId));
|
|
56984
57222
|
}, []);
|
|
56985
|
-
const popQueue = (0,
|
|
57223
|
+
const popQueue = (0, import_react58.useCallback)(() => {
|
|
56986
57224
|
if (queueRef.current.length === 0) return null;
|
|
56987
57225
|
return drainQueue().join("\n\n");
|
|
56988
57226
|
}, [drainQueue]);
|
|
56989
|
-
(0,
|
|
57227
|
+
(0, import_react58.useEffect)(() => () => abortRef.current?.abort(), []);
|
|
56990
57228
|
return {
|
|
56991
57229
|
items,
|
|
56992
57230
|
streaming,
|
|
@@ -57076,29 +57314,29 @@ function OpenTuiEntryApp({
|
|
|
57076
57314
|
items: live.items,
|
|
57077
57315
|
waitingCalls: live.waitingCalls
|
|
57078
57316
|
});
|
|
57079
|
-
const statsRef = (0,
|
|
57080
|
-
(0,
|
|
57317
|
+
const statsRef = (0, import_react59.useRef)(stats);
|
|
57318
|
+
(0, import_react59.useEffect)(() => {
|
|
57081
57319
|
statsRef.current = stats;
|
|
57082
57320
|
}, [stats]);
|
|
57083
|
-
const getSessionStats = (0,
|
|
57084
|
-
const composerHandle = (0,
|
|
57085
|
-
(0,
|
|
57321
|
+
const getSessionStats = (0, import_react59.useCallback)(() => statsRef.current, []);
|
|
57322
|
+
const composerHandle = (0, import_react59.useRef)(null);
|
|
57323
|
+
(0, import_react59.useEffect)(
|
|
57086
57324
|
() => armCapturedInputInjection(() => composerHandle.current, capturedText),
|
|
57087
57325
|
[capturedText]
|
|
57088
57326
|
);
|
|
57089
|
-
(0,
|
|
57327
|
+
(0, import_react59.useEffect)(() => {
|
|
57090
57328
|
const resumeEvents = resumeEventsFromConfig(config);
|
|
57091
57329
|
if (resumeEvents) resetTranscript(resumeEvents);
|
|
57092
57330
|
for (const warning of startupWarnings) {
|
|
57093
57331
|
applyEvent({ type: "warning", text: warning });
|
|
57094
57332
|
}
|
|
57095
57333
|
}, []);
|
|
57096
|
-
const [updateNotice, setUpdateNotice] = (0,
|
|
57097
|
-
const isIdleRef = (0,
|
|
57098
|
-
(0,
|
|
57334
|
+
const [updateNotice, setUpdateNotice] = (0, import_react59.useState)(null);
|
|
57335
|
+
const isIdleRef = (0, import_react59.useRef)(true);
|
|
57336
|
+
(0, import_react59.useEffect)(() => {
|
|
57099
57337
|
isIdleRef.current = !live.streaming;
|
|
57100
57338
|
}, [live.streaming]);
|
|
57101
|
-
const addUpdateItem = (0,
|
|
57339
|
+
const addUpdateItem = (0, import_react59.useCallback)(
|
|
57102
57340
|
(item) => {
|
|
57103
57341
|
if (item.type === "info" /* INFO */) {
|
|
57104
57342
|
applyEvent({ type: "info", text: item.text });
|
|
@@ -57110,22 +57348,22 @@ function OpenTuiEntryApp({
|
|
|
57110
57348
|
},
|
|
57111
57349
|
[applyEvent]
|
|
57112
57350
|
);
|
|
57113
|
-
const setUpdateInfo = (0,
|
|
57351
|
+
const setUpdateInfo = (0, import_react59.useCallback)((info) => {
|
|
57114
57352
|
setUpdateNotice(info?.message ?? null);
|
|
57115
57353
|
}, []);
|
|
57116
57354
|
useUpdateNoticeFlush(addUpdateItem, setUpdateInfo, isIdleRef, live.streaming);
|
|
57117
|
-
const [exitHint, setExitHint] = (0,
|
|
57118
|
-
const exitGuard = (0,
|
|
57355
|
+
const [exitHint, setExitHint] = (0, import_react59.useState)(null);
|
|
57356
|
+
const exitGuard = (0, import_react59.useMemo)(
|
|
57119
57357
|
() => createExitGuard({ onWindowExpired: /* @__PURE__ */ __name(() => setExitHint(null), "onWindowExpired") }),
|
|
57120
57358
|
[]
|
|
57121
57359
|
);
|
|
57122
|
-
(0,
|
|
57123
|
-
const streamingRef = (0,
|
|
57124
|
-
(0,
|
|
57360
|
+
(0, import_react59.useEffect)(() => () => exitGuard.dispose(), [exitGuard]);
|
|
57361
|
+
const streamingRef = (0, import_react59.useRef)(live.streaming);
|
|
57362
|
+
(0, import_react59.useEffect)(() => {
|
|
57125
57363
|
streamingRef.current = live.streaming;
|
|
57126
57364
|
}, [live.streaming]);
|
|
57127
|
-
const waitingCallsRef = (0,
|
|
57128
|
-
(0,
|
|
57365
|
+
const waitingCallsRef = (0, import_react59.useRef)(live.waitingCalls);
|
|
57366
|
+
(0, import_react59.useEffect)(() => {
|
|
57129
57367
|
waitingCallsRef.current = live.waitingCalls;
|
|
57130
57368
|
}, [live.waitingCalls]);
|
|
57131
57369
|
useKeyboard((key) => {
|
|
@@ -57148,7 +57386,7 @@ function OpenTuiEntryApp({
|
|
|
57148
57386
|
setExitHint(exitGuardHint(guardKey));
|
|
57149
57387
|
}
|
|
57150
57388
|
});
|
|
57151
|
-
const renderMain = (0,
|
|
57389
|
+
const renderMain = (0, import_react59.useCallback)(
|
|
57152
57390
|
() => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", flexGrow: 1, children: [
|
|
57153
57391
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
57154
57392
|
OpenTuiTranscriptView,
|
|
@@ -57162,7 +57400,7 @@ function OpenTuiEntryApp({
|
|
|
57162
57400
|
] }),
|
|
57163
57401
|
[live.items, width, height, exitHint]
|
|
57164
57402
|
);
|
|
57165
|
-
const handleRenderError = (0,
|
|
57403
|
+
const handleRenderError = (0, import_react59.useCallback)(
|
|
57166
57404
|
(error) => {
|
|
57167
57405
|
debugLogger4.error(
|
|
57168
57406
|
`[FATAL_RENDER_ERROR] ${error.message}
|
|
@@ -57174,15 +57412,15 @@ ${error.stack ?? ""}`
|
|
|
57174
57412
|
},
|
|
57175
57413
|
[config]
|
|
57176
57414
|
);
|
|
57177
|
-
const handleStartNewSession = (0,
|
|
57415
|
+
const handleStartNewSession = (0, import_react59.useCallback)(
|
|
57178
57416
|
(sessionId) => startNewSession(sessionId),
|
|
57179
57417
|
[startNewSession]
|
|
57180
57418
|
);
|
|
57181
|
-
const handleSubmitPrompt = (0,
|
|
57419
|
+
const handleSubmitPrompt = (0, import_react59.useCallback)(
|
|
57182
57420
|
(content, imagePaths, options) => submit(content, imagePaths, options),
|
|
57183
57421
|
[submit]
|
|
57184
57422
|
);
|
|
57185
|
-
const handleQuit = (0,
|
|
57423
|
+
const handleQuit = (0, import_react59.useCallback)(() => {
|
|
57186
57424
|
void exitSession(config, 0);
|
|
57187
57425
|
}, [config]);
|
|
57188
57426
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -57253,7 +57491,7 @@ async function startOpenTuiUI(config, settings, startupWarnings, workspaceRoot =
|
|
|
57253
57491
|
// children must sit in the props object: the provider declares it as a
|
|
57254
57492
|
// required prop, which createElement's rest-children overloads can't fill.
|
|
57255
57493
|
// eslint-disable-next-line react/no-children-prop
|
|
57256
|
-
(0,
|
|
57494
|
+
(0, import_react59.createElement)(SessionStatsProvider, {
|
|
57257
57495
|
sessionId: config.getSessionId(),
|
|
57258
57496
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
57259
57497
|
OpenTuiEntryApp,
|
|
@@ -57312,7 +57550,8 @@ qwen --resume ${sessionId}`
|
|
|
57312
57550
|
registerSession({
|
|
57313
57551
|
sessionId: config.getSessionId(),
|
|
57314
57552
|
cwd: config.getTargetDir(),
|
|
57315
|
-
qwenVersion: version
|
|
57553
|
+
qwenVersion: version,
|
|
57554
|
+
kind: "tui"
|
|
57316
57555
|
})
|
|
57317
57556
|
);
|
|
57318
57557
|
registerCleanup(() => config.unregisterSessionRegistry());
|