@qwen-code/qwen-code 0.23.2-preview.0 → 0.23.2
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/qc-helper/docs/configuration/auth.md +1 -1
- package/bundled/qc-helper/docs/configuration/model-providers.md +19 -15
- 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 +48 -9
- package/bundled/qc-helper/docs/features/goals.md +2 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +8 -0
- package/bundled/qc-helper/docs/qwen-serve.md +62 -48
- package/chunks/{MaxSizedBox-ZZJT3PJF.js → MaxSizedBox-4C3BKKKY.js} +17 -16
- package/chunks/{StandaloneSessionPicker-DIOSZTMX.js → StandaloneSessionPicker-TXVF65YW.js} +32 -31
- package/chunks/{acpAgent-62JUP5A7.js → acpAgent-H5XBKGB4.js} +301 -166
- package/chunks/{agent-NLPEQQDZ.js → agent-T5LEFJIU.js} +10 -10
- package/chunks/{agent-headless-Y2GR5F2Q.js → agent-headless-VZKSRH36.js} +10 -10
- package/chunks/{anthropicContentGenerator-I7LQZH26.js → anthropicContentGenerator-PRJWWVYJ.js} +2 -2
- package/chunks/{artifact-tool-P52OKKEF.js → artifact-tool-G5LHNECG.js} +1 -1
- package/chunks/{bridge-Q66BD62H.js → bridge-AOX5IY44.js} +18 -17
- package/chunks/{channel-management-service-TRTLQTSV.js → channel-management-service-MWQGHPAS.js} +4 -4
- package/chunks/{channel-settings-store-R5STFWUW.js → channel-settings-store-XZCGDGHW.js} +26 -25
- 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-7L35FKPF.js → chunk-2BMXHB6N.js} +2 -2
- package/chunks/chunk-2WC3Y7YY.js +1033 -0
- package/chunks/{chunk-WZ4YULVF.js → chunk-3OAXF3UK.js} +210 -80
- package/chunks/{chunk-W673V2H3.js → chunk-46MMBZHI.js} +3 -3
- package/chunks/{chunk-6GRDHIVI.js → chunk-4I3WFI3U.js} +4 -4
- package/chunks/{chunk-QXXBW2G4.js → chunk-4JNHNVAZ.js} +3 -3
- package/chunks/{chunk-R2266LQ5.js → chunk-4WMGYG3F.js} +2 -2
- package/chunks/{chunk-Y6ZWXM44.js → chunk-5BH2AIEY.js} +1 -1
- package/chunks/{chunk-EA4NFWVG.js → chunk-5OZUKLL7.js} +3 -3
- package/chunks/{chunk-RX3FYFCN.js → chunk-67XTVRVB.js} +1 -1
- package/chunks/{chunk-MA5OUNN6.js → chunk-6G4V7SE4.js} +1 -1
- package/chunks/{chunk-B54PFQS5.js → chunk-7CLLH5TI.js} +1 -1
- package/chunks/{chunk-7GZCCHJL.js → chunk-7LTCFO6T.js} +3 -3
- package/chunks/{chunk-33MLFMCL.js → chunk-7NDZKE2M.js} +2 -2
- package/chunks/{chunk-5WC2ECUK.js → chunk-7PD7ZMX5.js} +17 -4
- package/chunks/{chunk-ZUNWKOAP.js → chunk-7SVM3RP2.js} +4 -24
- package/chunks/{chunk-5GD7LYOH.js → chunk-A7EFXK7P.js} +1 -1
- package/chunks/{chunk-RDV4NLI3.js → chunk-AO2VMS72.js} +2 -2
- package/chunks/{chunk-XAXTQURR.js → chunk-APXIW2TF.js} +3 -3
- package/chunks/{chunk-3BTHHXXE.js → chunk-AUTUFD5X.js} +1 -1
- package/chunks/{chunk-VH764G6B.js → chunk-B25JYXZE.js} +2 -2
- package/chunks/{chunk-MMMA36MN.js → chunk-BK7D2JR6.js} +3 -3
- package/chunks/{chunk-RPFJJ33Z.js → chunk-CALTQWTZ.js} +1 -1
- package/chunks/{chunk-EUXF6URV.js → chunk-CCBTNJB4.js} +16 -18
- package/chunks/{chunk-BF3RUIVP.js → chunk-CH2YDT6X.js} +36 -38
- package/chunks/{chunk-L6ZME3W7.js → chunk-CMWU6P4D.js} +1 -1
- package/chunks/{chunk-QJAFSFYA.js → chunk-CWVZBIZJ.js} +1 -1
- package/chunks/{chunk-JDPBJIKI.js → chunk-DAI65CMX.js} +1 -1
- package/chunks/{chunk-GM44O6F7.js → chunk-DARWOZY6.js} +1 -1
- package/chunks/{chunk-J4ECGDA3.js → chunk-ELD3OBPU.js} +3 -3
- package/chunks/{chunk-ZELCTN6Y.js → chunk-F23YN37B.js} +10 -0
- package/chunks/{chunk-OIPUQE3S.js → chunk-F2NYVASI.js} +14 -1
- package/chunks/{chunk-ODBNTMZW.js → chunk-FAJPLSYF.js} +36 -29
- package/chunks/{chunk-GXIHBIHC.js → chunk-FGHPZGOP.js} +29 -24
- package/chunks/{chunk-TK4XHPKW.js → chunk-G37O7YO6.js} +2 -2
- package/chunks/{chunk-4JKLPTV6.js → chunk-G3ZUMSFS.js} +12 -5
- package/chunks/{chunk-743XE7N7.js → chunk-G5VOXCRX.js} +1 -1
- package/chunks/{chunk-BL6B2QS2.js → chunk-GOEVQADN.js} +618 -1122
- package/chunks/{chunk-XI7RST4D.js → chunk-GOKAOSCN.js} +1 -1
- package/chunks/{chunk-FDOGGKAA.js → chunk-GSFV5RQW.js} +2 -0
- package/chunks/{chunk-43CI6YWJ.js → chunk-HJ5UJQQL.js} +1384 -1245
- package/chunks/{chunk-LUVXLLMS.js → chunk-IR6JKBAP.js} +1 -1
- package/chunks/{chunk-CPJRFFPH.js → chunk-IRGDIDGJ.js} +558 -158
- package/chunks/{chunk-DCPRCDSR.js → chunk-IWABUX6T.js} +1 -1
- package/chunks/{chunk-DTB5BXRG.js → chunk-JO77FGNZ.js} +16 -15
- package/chunks/{chunk-45ROPFQY.js → chunk-JYGIJA4W.js} +1 -1
- package/chunks/{chunk-M6YLOETP.js → chunk-KCF2436G.js} +1 -1
- package/chunks/{chunk-CABDNUJ4.js → chunk-KEPC5BOL.js} +5 -5
- package/chunks/{chunk-RN6V5HKE.js → chunk-KFECPHLV.js} +3 -3
- package/chunks/{chunk-WIRYFL2L.js → chunk-LEAOJ43M.js} +17 -15
- package/chunks/{chunk-IUJLW6ZI.js → chunk-LUNC5KCL.js} +3 -3
- package/chunks/{chunk-WZS3X663.js → chunk-LWX4WDFF.js} +2 -5
- package/chunks/{chunk-ISPBBKJN.js → chunk-MV5DTLJV.js} +7 -2
- package/chunks/chunk-NFXXBWSE.js +463 -0
- package/chunks/{chunk-PQSCGZT2.js → chunk-NPKCVSXX.js} +26 -2
- package/chunks/{chunk-7RXOEUFF.js → chunk-NX7ZTXFF.js} +1 -1
- package/chunks/{chunk-G5QLLD53.js → chunk-OXR34GCD.js} +14 -2
- package/chunks/{chunk-VHPG7BH6.js → chunk-PDN7FJZV.js} +1 -1
- package/chunks/{chunk-UHUT4IDM.js → chunk-PFKGV6PO.js} +9 -9
- package/chunks/{chunk-NFIDVZND.js → chunk-QB3KS3N3.js} +2 -21
- package/chunks/{chunk-QLM7D7W3.js → chunk-QFJZAY7W.js} +7 -7
- package/chunks/{chunk-NVS4Z6GT.js → chunk-QHLHE2OT.js} +1 -1
- package/chunks/{chunk-B44JBZBB.js → chunk-QQK4L3UU.js} +1 -1
- package/chunks/{chunk-63ACHB2H.js → chunk-QTB4VP4K.js} +50 -18
- package/chunks/{chunk-4BLTSTF6.js → chunk-R3JIDRUL.js} +4 -4
- package/chunks/{chunk-VEQBVJYH.js → chunk-R457KFV7.js} +3 -3
- package/chunks/{chunk-CG2PDIGD.js → chunk-RM244SCQ.js} +1 -1
- package/chunks/{chunk-W7PXLIZJ.js → chunk-RNAJVXUG.js} +5 -5
- package/chunks/{chunk-VF6D6EGV.js → chunk-S5QR6CB5.js} +52 -6
- package/chunks/{chunk-IRKQ4YYX.js → chunk-SVWWF5TZ.js} +29 -1
- package/chunks/{chunk-5HBA2Z7V.js → chunk-TGNNLRC3.js} +2 -3
- package/chunks/{chunk-ORREXWOM.js → chunk-TODNHE76.js} +3 -3
- package/chunks/{chunk-W3ONSAYO.js → chunk-TOOOLHVS.js} +2 -2
- package/chunks/{chunk-EHTKOO6W.js → chunk-TRQNRP2H.js} +2 -2
- package/chunks/{chunk-PQWM4SX2.js → chunk-U6REWGVR.js} +2 -2
- package/chunks/{chunk-UXDVUFKU.js → chunk-ULZECEIP.js} +2 -2
- package/chunks/{chunk-6YEOCHSE.js → chunk-VBLAI2HA.js} +101 -0
- package/chunks/{chunk-M73KHGNR.js → chunk-VJJXG73H.js} +404 -226
- package/chunks/{chunk-Q2F43WTJ.js → chunk-WBU2PIZ5.js} +23 -6
- package/chunks/{chunk-UULHYZ4W.js → chunk-WDN64MVT.js} +74 -15
- package/chunks/{chunk-XVTCSVBK.js → chunk-WDVV3LRM.js} +193 -169
- package/chunks/{chunk-LBKYQ33T.js → chunk-WK7P62DV.js} +16 -10
- package/chunks/{chunk-ULY4ISY2.js → chunk-WXD7INFV.js} +19 -4
- package/chunks/{chunk-ZIPYCXQP.js → chunk-WXPPUPHM.js} +1 -1
- package/chunks/{chunk-5Z4FCEPY.js → chunk-X7LFJF5D.js} +600 -46
- package/chunks/{chunk-YHDGABDC.js → chunk-XKBFYTCD.js} +1 -1
- package/chunks/{chunk-MWEF5MUK.js → chunk-XSOXPG2L.js} +8 -8
- package/chunks/{chunk-5VZFJTL2.js → chunk-YLOHCA6I.js} +2 -2
- package/chunks/{chunk-LN3WBOKU.js → chunk-YQGW3M6Z.js} +2 -2
- package/chunks/{chunk-2OR32P5M.js → chunk-ZN5TKAVR.js} +125 -10
- package/chunks/{chunk-XBLG564H.js → chunk-ZP5XDLSA.js} +10 -10
- package/chunks/{config-utils-37FHWPTP.js → config-utils-GPLIABL2.js} +21 -20
- package/chunks/{contextCommand-R4JUBV5N.js → contextCommand-NCUQUDBY.js} +18 -17
- package/chunks/{core-runtime-6U4OXU5C.js → core-runtime-WKYKWVYU.js} +23 -21
- package/chunks/{create-sub-session-LLUYAGZN.js → create-sub-session-PPLXB3JJ.js} +17 -16
- package/chunks/{daemon-UI6SQSBV.js → daemon-2CKIAO3I.js} +2 -2
- package/chunks/{daemon-git-worktree-guard-O2UTNFJC.js → daemon-git-worktree-guard-73ZWOLKL.js} +17 -16
- package/chunks/{daemon-status-provider-7GMAKSTX.js → daemon-status-provider-OK7VONJG.js} +22 -21
- package/chunks/{daemon-trust-policy-VNP76VMO.js → daemon-trust-policy-CAUCREG2.js} +22 -21
- package/chunks/{daemon-trust-policy-monitor-TD5O3BZA.js → daemon-trust-policy-monitor-3Y36OOEQ.js} +22 -21
- package/chunks/{deferred-core-runtime-NJM63YJS.js → deferred-core-runtime-Q7WFWYD3.js} +17 -16
- 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-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-24TCWK5H.js → dist-Y5KC3IHW.js} +1 -2
- package/chunks/{dist-FDISN4AK.js → dist-ZDNJK74R.js} +3 -7
- package/chunks/{edit-GL7OA6RV.js → edit-YJD6IETK.js} +10 -10
- package/chunks/{enterPlanMode-VC4BCSZE.js → enterPlanMode-EFPVTWIH.js} +10 -10
- package/chunks/{environment-BI6IBAZJ.js → environment-HP3AXFTB.js} +19 -18
- package/chunks/{errors-D6G2ZM2R.js → errors-22ON46G7.js} +19 -18
- package/chunks/{exitPlanMode-DX446CA6.js → exitPlanMode-MOQUNCBH.js} +10 -10
- package/chunks/{fast-path-MAYDLJIP.js → fast-path-2X7BPMXX.js} +3 -3
- package/chunks/{glob-TVKRFY36.js → glob-Y7ACIB3P.js} +10 -10
- package/chunks/{goal-tools-CA6YANRN.js → goal-tools-DABMICUC.js} +10 -10
- package/chunks/{handleAutoUpdate-AW4ZAHON.js → handleAutoUpdate-MCAMHYDI.js} +19 -18
- package/chunks/{i18n-IH5CRAY7.js → i18n-C3GDCALP.js} +17 -16
- package/chunks/{initializer-UBR37ZNM.js → initializer-4URDQL2G.js} +22 -21
- package/chunks/{installationInfo-Y52756EC.js → installationInfo-LBOL6SBV.js} +17 -16
- package/chunks/{list-7V5JDZPO.js → list-JOGBAC2R.js} +25 -24
- package/chunks/{list-agents-I5TRH3J7.js → list-agents-2CXPGJUE.js} +3 -3
- package/chunks/{llm-QDB6JVF5.js → llm-2KPNSAVY.js} +65 -59
- package/chunks/{llm-content-generator-EO6MZCEO.js → llm-content-generator-GR3FOHLB.js} +2 -2
- package/chunks/{loadedSettingsAdapter-I3YQKMC4.js → loadedSettingsAdapter-DVKROEJD.js} +22 -21
- package/chunks/{loggingContentGenerator-MNXYUGDG.js → loggingContentGenerator-P4K6K5W4.js} +12 -12
- package/chunks/{managed-npm-update-EA3EXPTO.js → managed-npm-update-VWBKHNIN.js} +17 -16
- package/chunks/{mcp-QTAJ544Y.js → mcp-6YYNSYLK.js} +22 -21
- package/chunks/{monitor-6FQKQOTP.js → monitor-A255TNZR.js} +10 -10
- package/chunks/{nonInteractiveCli-MRCTZL5X.js → nonInteractiveCli-LXGIKQAT.js} +55 -54
- package/chunks/{notebook-edit-BQQCKI7K.js → notebook-edit-5UYHS2DM.js} +10 -10
- package/chunks/{open-with-auth-D6JD6LDS.js → open-with-auth-6MVIHMXB.js} +1 -1
- package/chunks/{openaiContentGenerator-TTSKXNVH.js → openaiContentGenerator-A6MAMEO5.js} +7 -7
- package/chunks/{pidfile-KPIS6RIT.js → pidfile-B7DZC4TP.js} +20 -17
- package/chunks/{processUtils-ZCASPKK4.js → processUtils-BPZ2MCZS.js} +2 -2
- package/chunks/{prompt-terminal-ledger-D6HM6TV7.js → prompt-terminal-ledger-FYYTAOXS.js} +18 -17
- package/chunks/{qwenContentGenerator-GGZEFLBD.js → qwenContentGenerator-4IOJFD4S.js} +13 -13
- package/chunks/{read-file-VE5GDFLP.js → read-file-A4H4O3VQ.js} +2 -2
- package/chunks/{resumeHistoryUtils-HSSGMYDC.js → resumeHistoryUtils-YQQ43E4N.js} +19 -18
- package/chunks/{ripGrep-SEJE7AA6.js → ripGrep-W32NWFTA.js} +3 -3
- package/chunks/{run-qwen-serve-OJYVH7N6.js → run-qwen-serve-WBSWWIRV.js} +216 -64
- package/chunks/{runtime-KGMQQFJD.js → runtime-VRVBX2E5.js} +29 -26
- package/chunks/{scheduled-tasks-7H5HWHYD.js → scheduled-tasks-D65KJDA3.js} +20 -19
- package/chunks/{scheduler-BE42AKDG.js → scheduler-M2YPN7Z7.js} +19 -18
- package/chunks/{send-message-AWKUDJBH.js → send-message-76BKWKFZ.js} +3 -3
- package/chunks/{serve-KZVKYMSL.js → serve-BE3H2P6P.js} +22 -21
- package/chunks/{server-PJRALPJQ.js → server-FLY5JERG.js} +84 -148
- package/chunks/{session-IHITXU2S.js → session-JVN62R5K.js} +85 -57
- package/chunks/{session-attachments-root-GQ2TUI3Y.js → session-attachments-root-7ACGLHXA.js} +17 -16
- package/chunks/{session-pr-refresh-H43LULTE.js → session-pr-refresh-TQS57SDK.js} +19 -18
- package/chunks/{settings-RKEQQDFC.js → settings-D44YMZFT.js} +21 -20
- package/chunks/{shell-6PJ444U5.js → shell-3VE6I4V5.js} +10 -10
- package/chunks/{skill-Q3UP7B5V.js → skill-FHEGRRZU.js} +2 -2
- package/chunks/{skill-settings-LZR5YRRW.js → skill-settings-VHEJMBFL.js} +21 -20
- package/chunks/{spawnChannel-WM3DT2BF.js → spawnChannel-T6MX2ZDN.js} +17 -16
- package/chunks/{standalone-update-E5474IBI.js → standalone-update-QUGHFMCS.js} +18 -17
- package/chunks/{start-opentui-ui-WLWZNQ2I.js → start-opentui-ui-IHIIZ2LE.js} +438 -203
- package/chunks/{startInteractiveUI-FBQSGWGO.js → startInteractiveUI-LR7K2ARZ.js} +1171 -1234
- 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-VIGUFUT4.js → team-create-GY3VFY47.js} +10 -10
- package/chunks/{team-delete-CBHVBTPB.js → team-delete-IQZ6XGFI.js} +2 -2
- package/chunks/{team-plan-approval-HQVZA3MD.js → team-plan-approval-BQPGZOT5.js} +10 -10
- package/chunks/{terminal-image-renderer-LUKNCOVM.js → terminal-image-renderer-YNYW5CQG.js} +17 -16
- package/chunks/{theme-manager-LOENKYLY.js → theme-manager-U6CIK3GM.js} +17 -16
- package/chunks/{tool-search-ZIFAQCE2.js → tool-search-XI3QWD5I.js} +2 -2
- package/chunks/{total-session-admission-FUUJH3QH.js → total-session-admission-3SNSJJ32.js} +18 -17
- package/chunks/{trustedFolders-C76KYROP.js → trustedFolders-OVAQKNV5.js} +18 -17
- package/chunks/{update-relaunch-4G2SRXKX.js → update-relaunch-XV5O74E3.js} +5 -5
- package/chunks/{updateCheck-EIZIO7HI.js → updateCheck-CHUYWD6L.js} +17 -16
- package/chunks/{useAutoAcceptIndicator-EAA6KSY4.js → useAutoAcceptIndicator-VKSVIXZC.js} +23 -22
- package/chunks/{validateNonInterActiveAuth-BRX22QCN.js → validateNonInterActiveAuth-ZNUTD3E5.js} +53 -52
- package/chunks/{version-E56RU7PR.js → version-EK7VAGSI.js} +3 -1
- package/chunks/{web-fetch-AAUCD7RM.js → web-fetch-24KZO763.js} +2 -2
- package/chunks/{web-search-HFUQF44Q.js → web-search-CRNXKZ2X.js} +184 -7
- package/chunks/{web-shell-static-POZHGGXE.js → web-shell-static-BFDESDD4.js} +5 -4
- package/chunks/{workflow-3MABM53N.js → workflow-HD5NYMW5.js} +201 -65
- package/chunks/{workspace-providers-status-2FRLBZ5I.js → workspace-providers-status-MAM42IZS.js} +24 -23
- package/chunks/{workspace-registration-store-YL7HLYYI.js → workspace-registration-store-HKLJEDQX.js} +1 -2
- package/chunks/{workspace-registry-BNRP2ELW.js → workspace-registry-7RDDOBLN.js} +18 -17
- package/chunks/{workspace-runtime-coordinator-WKGF7VHS.js → workspace-runtime-coordinator-LEPDPXJO.js} +18 -17
- package/chunks/{workspace-service-4MYO72MM.js → workspace-service-5IFDCNN3.js} +23 -22
- package/chunks/{workspace-skills-status-SU66TJLZ.js → workspace-skills-status-FJ3HNH4H.js} +22 -21
- package/chunks/{workspace-trust-reconciler-D5QT7WQB.js → workspace-trust-reconciler-PQFHIWLR.js} +23 -22
- package/chunks/{write-file-NVPQE2AZ.js → write-file-ERG67ZFX.js} +11 -11
- package/chunks/{zoom-image-RJHC66WG.js → zoom-image-WQYEC3SR.js} +2 -2
- package/cli.js +12 -12
- package/export-transcript-document.js +82 -82
- package/package.json +4 -4
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DHc6plZn.js → abnfDiagram-VCTEODGH-BRLgQbnT.js} +1 -1
- package/web-shell/assets/{arc-BQ9m8TDV.js → arc-qAF9_XsR.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-D5ap3oVB.js → architectureDiagram-5GKGNRK7-BorUttEz.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-BIbnyNph.js → blockDiagram-NRAW4CY4-Bj0qZVxu.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BRsdx_iG.js → c4Diagram-UCG6FXSJ-BTqJis32.js} +1 -1
- package/web-shell/assets/channel-COIuCrVH.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-3lf1fNlx.js → chunk-2Q5K7J3B-RrQ5X8m-.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-DP8VNRc4.js → chunk-5VM5RSS4-uUjDl8wO.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-DrohDmZ6.js → chunk-F27PBJKO-C3JhpyzI.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-UZ2QhSx6.js → chunk-G27WJ6UU-C8ZNFs7F.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-BIMHVcZK.js → chunk-JWPE2WC7-DNpXtEOs.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-izRxdSDd.js → chunk-LCL6LL3I-DagA2ZLw.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-CXADD4PP.js → chunk-POPQ4Y6H-R23uH7Xm.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-B96d8Y_1.js → chunk-SVP7TREG-Qz9RN_BR.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-CF2sVQpv.js → chunk-XXDRQBXY-jYb1_hni.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-CT6tXVAS.js → cose-bilkent-JH36ORCC-Cv2OunpE.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-X1NS4vtV.js → cynefin-OW5HDTMX-LH42KFJx.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DNsKNOT4.js → cynefinDiagram-5FMLGOSQ-Dha4_OoR.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-9-AHKqsb.js → dagre-3AP2YEHR-Br5lnUKD.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-Bjgms7j6.js → diagram-S7CK7UJ4-dpKq2bBX.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-h6bCprbE.js → diagram-UQ7AKVKN-BAgHWpXr.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-4SbQXVLt.js → diagram-VSXAHHWV-GRRzpyE2.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-B5gPCzzB.js → diagram-VX7I27RA-BNFiaYpG.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-DFJXIA3A.js → diagram-Z3DM3KII-BisZzB_h.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-FwyaU7VY.js → ebnfDiagram-PWID7BFC-B1xbwycf.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-8vJQh2te.js → erDiagram-SSCWMZ5O-CQMzbGE5.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-BzA_1gMN.js → flowDiagram-A5DVABFB-CZ_Zondl.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-Co-ABbVX.js → ganttDiagram-EL5Y4UJY-BTh2ShxS.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DW_FcyrX.js → gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js} +1 -1
- package/web-shell/assets/{index-Bu-rZoJ-.js → index-CI1ysIEv.js} +478 -474
- package/web-shell/assets/index-CpxXGH-8.css +36 -0
- package/web-shell/assets/{index-BbMXfhNG.js → index-DWoFMu5x.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-BEgfhUFN.js → infoDiagram-RXCK75RN-C0QpudbG.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-DCsMxQmc.js → ishikawaDiagram-5VMMS53U-a6B741uT.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-DyIEYoHz.js → journeyDiagram-EYS64GPL-Dbht9ICp.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-CkxjqCNr.js → kanban-definition-3QL26DDD-D4OFR8-h.js} +1 -1
- package/web-shell/assets/{layout-BEWc0Al9.js → layout-Dvdh5jRH.js} +1 -1
- package/web-shell/assets/{linear-CNuNxirL.js → linear-Dvc6KIW2.js} +1 -1
- package/web-shell/assets/{mermaid.core-DZBre674.js → mermaid.core-CB36RfIb.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-CpafFz_F.js → mindmap-definition-FBJOCRG2-Fmqo1CjP.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DfZqk_dq.js → pegDiagram-XKGWAZYB-CCxYBoA4.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-S0UWXlgC.js → pieDiagram-E7YTZNPT-BVHKQFzt.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-dd37_Ohj.js → quadrantDiagram-AXDQQJYC-l95IznwR.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CH8NJZ7u.js → railroadDiagram-O6MQD6OU-BlLdRdXp.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CFdqWYih.js → requirementDiagram-EFPCY7ZU-BkDLBR5w.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CsddcEGD.js → sankeyDiagram-P5KCCOFB-jAIqRp65.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BZ270mGw.js → sequenceDiagram-WJ2MYXX4-f-soZYPr.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CGaS4DBV.js → sizeCapture-X5ZJPWSS-BzOuAfB2.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-COpIzMu6.js → stateDiagram-HBIQ2CUA-BPLSs12r.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-CMF889m3.js → swimlanes-XN3QIQJK-D-9E_RIR.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-BelnxYz5.js → timeline-definition-24CTP7MA-CT56K-gV.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-CU-NRqIB.js → vennDiagram-4TSXK5OY-B-vi4IyO.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CDNKqWh-.js → wardleyDiagram-VM6X3IG4-C9O7Ju98.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CLqguL5D.js → xychartDiagram-S5SC5T6Z-6d8w3jg2.js} +1 -1
- package/web-shell/index.html +2 -2
- 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-IRGDIDGJ.js";
|
|
23
28
|
import "./chunk-CALNF3Z3.js";
|
|
24
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-R3JIDRUL.js";
|
|
25
30
|
import {
|
|
26
31
|
startPostRenderPrefetches
|
|
27
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-ZP5XDLSA.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-B25JYXZE.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-WXD7INFV.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-4JNHNVAZ.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-FAJPLSYF.js";
|
|
93
101
|
import {
|
|
94
102
|
EXTENSION_RELOAD_FAILED_REASON,
|
|
95
103
|
ExtensionRefreshState
|
|
96
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-3OAXF3UK.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-CWVZBIZJ.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-TOOOLHVS.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-2BMXHB6N.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-46MMBZHI.js";
|
|
140
150
|
import {
|
|
141
151
|
getErrorMessage as getErrorMessage2
|
|
142
|
-
} from "./chunk-
|
|
143
|
-
import "./chunk-
|
|
152
|
+
} from "./chunk-R457KFV7.js";
|
|
153
|
+
import "./chunk-RM244SCQ.js";
|
|
144
154
|
import "./chunk-XQ4RDO5B.js";
|
|
145
155
|
import {
|
|
146
156
|
setUpdateHandler
|
|
147
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-PDN7FJZV.js";
|
|
148
158
|
import "./chunk-EKTCKZV5.js";
|
|
149
|
-
import "./chunk-
|
|
159
|
+
import "./chunk-IR6JKBAP.js";
|
|
150
160
|
import "./chunk-YAF2MQZ6.js";
|
|
151
161
|
import "./chunk-24FVUD5P.js";
|
|
152
|
-
import "./chunk-
|
|
162
|
+
import "./chunk-QFJZAY7W.js";
|
|
153
163
|
import "./chunk-6H67XLET.js";
|
|
154
|
-
import "./chunk-
|
|
164
|
+
import "./chunk-WDN64MVT.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-5OZUKLL7.js";
|
|
197
|
+
import "./chunk-4WMGYG3F.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-ZN5TKAVR.js";
|
|
203
|
+
import "./chunk-7LTCFO6T.js";
|
|
192
204
|
import "./chunk-HWVUSYSN.js";
|
|
193
|
-
import "./chunk-
|
|
194
|
-
import "./chunk-
|
|
195
|
-
import "./chunk-
|
|
205
|
+
import "./chunk-7PD7ZMX5.js";
|
|
206
|
+
import "./chunk-G3ZUMSFS.js";
|
|
207
|
+
import "./chunk-TODNHE76.js";
|
|
196
208
|
import "./chunk-57OAHC2Y.js";
|
|
197
|
-
import "./chunk-
|
|
198
|
-
import "./chunk-
|
|
199
|
-
import "./chunk-
|
|
209
|
+
import "./chunk-ULZECEIP.js";
|
|
210
|
+
import "./chunk-PFKGV6PO.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-QHLHE2OT.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-RNAJVXUG.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-WBU2PIZ5.js";
|
|
241
254
|
import {
|
|
242
255
|
TOGGLE_TYPES
|
|
243
|
-
} from "./chunk-
|
|
256
|
+
} from "./chunk-XSOXPG2L.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-5BH2AIEY.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-MV5DTLJV.js";
|
|
258
272
|
import "./chunk-W3N5XAZ6.js";
|
|
259
|
-
import "./chunk-
|
|
273
|
+
import "./chunk-NX7ZTXFF.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-BL6B2QS2.js";
|
|
281
|
+
generatePromptSuggestion
|
|
282
|
+
} from "./chunk-GOEVQADN.js";
|
|
278
283
|
import "./chunk-GELRJXE2.js";
|
|
279
284
|
import "./chunk-32CM56LO.js";
|
|
280
|
-
import "./chunk-
|
|
285
|
+
import "./chunk-OXR34GCD.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-2WC3Y7YY.js";
|
|
301
|
+
import "./chunk-IWABUX6T.js";
|
|
286
302
|
import "./chunk-DJXSOEFB.js";
|
|
287
|
-
import "./chunk-
|
|
303
|
+
import "./chunk-YQGW3M6Z.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-X7LFJF5D.js";
|
|
292
308
|
import "./chunk-BUQN5LTI.js";
|
|
293
309
|
import "./chunk-XDNFODER.js";
|
|
294
|
-
import "./chunk-
|
|
310
|
+
import "./chunk-GOKAOSCN.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-HJ5UJQQL.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-QQK4L3UU.js";
|
|
374
|
+
import "./chunk-CH2YDT6X.js";
|
|
359
375
|
import {
|
|
360
376
|
APPROVAL_MODES
|
|
361
377
|
} from "./chunk-JX6XHPTX.js";
|
|
@@ -366,7 +382,7 @@ import "./chunk-MLXTMF7H.js";
|
|
|
366
382
|
import "./chunk-3LPJ776W.js";
|
|
367
383
|
import "./chunk-3CZ2BQV6.js";
|
|
368
384
|
import "./chunk-PQEISIKS.js";
|
|
369
|
-
import "./chunk-
|
|
385
|
+
import "./chunk-S5QR6CB5.js";
|
|
370
386
|
import "./chunk-H3Q3RSKZ.js";
|
|
371
387
|
import "./chunk-S6LOFUVP.js";
|
|
372
388
|
import "./chunk-NAVJD2PQ.js";
|
|
@@ -377,7 +393,7 @@ import "./chunk-CFKIH3D3.js";
|
|
|
377
393
|
import {
|
|
378
394
|
REASONING_EFFORT_TIERS,
|
|
379
395
|
applyReasoningEffort
|
|
380
|
-
} from "./chunk-
|
|
396
|
+
} from "./chunk-VBLAI2HA.js";
|
|
381
397
|
import "./chunk-DJ2GSRLV.js";
|
|
382
398
|
import "./chunk-4ALNJDHL.js";
|
|
383
399
|
import "./chunk-NOO4QFXM.js";
|
|
@@ -406,7 +422,7 @@ import {
|
|
|
406
422
|
shouldRunVisionBridge,
|
|
407
423
|
splitImageParts,
|
|
408
424
|
uiTelemetryService
|
|
409
|
-
} from "./chunk-
|
|
425
|
+
} from "./chunk-F2NYVASI.js";
|
|
410
426
|
import "./chunk-5ETULJLP.js";
|
|
411
427
|
import "./chunk-XBVNNDPK.js";
|
|
412
428
|
import "./chunk-VGC4I5JJ.js";
|
|
@@ -420,7 +436,7 @@ import "./chunk-HD7O6WLV.js";
|
|
|
420
436
|
import "./chunk-WZAD4ZNJ.js";
|
|
421
437
|
import "./chunk-FPGTNKCP.js";
|
|
422
438
|
import "./chunk-TIGXX4PA.js";
|
|
423
|
-
import "./chunk-
|
|
439
|
+
import "./chunk-JO77FGNZ.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-CMWU6P4D.js";
|
|
451
469
|
import "./chunk-HRPFBHW7.js";
|
|
452
470
|
import {
|
|
453
471
|
registerCleanup,
|
|
454
472
|
runExitCleanup
|
|
455
|
-
} from "./chunk-
|
|
473
|
+
} from "./chunk-DAI65CMX.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();
|
|
@@ -47184,7 +47202,7 @@ __name(filterSettingsItems, "filterSettingsItems");
|
|
|
47184
47202
|
function nextToggleValue(definition, currentValue) {
|
|
47185
47203
|
if (!definition || !TOGGLE_TYPES.has(definition.type)) return void 0;
|
|
47186
47204
|
if (definition.type === "boolean") {
|
|
47187
|
-
return
|
|
47205
|
+
return nextBooleanSettingValue(currentValue, definition.default);
|
|
47188
47206
|
}
|
|
47189
47207
|
if (definition.type === "enum" && definition.options) {
|
|
47190
47208
|
const options = definition.options;
|
|
@@ -53464,9 +53482,212 @@ ${current}` : popped);
|
|
|
53464
53482
|
}
|
|
53465
53483
|
__name(OpenTuiInputPrompt, "OpenTuiInputPrompt");
|
|
53466
53484
|
|
|
53467
|
-
// packages/cli/src/ui/opentui/
|
|
53485
|
+
// packages/cli/src/ui/opentui/opentui-header.tsx
|
|
53468
53486
|
init_esbuild_shims();
|
|
53469
53487
|
var import_react48 = __toESM(require_react(), 1);
|
|
53488
|
+
var LOGO_GRADIENT = ["#4796E4", "#847ACE", "#C3677F"];
|
|
53489
|
+
function lerpHex(a, b3, t3) {
|
|
53490
|
+
const pa = [1, 3, 5].map((i) => parseInt(a.slice(i, i + 2), 16));
|
|
53491
|
+
const pb = [1, 3, 5].map((i) => parseInt(b3.slice(i, i + 2), 16));
|
|
53492
|
+
return "#" + pa.map(
|
|
53493
|
+
(v3, i) => Math.round(v3 + (pb[i] - v3) * t3).toString(16).padStart(2, "0")
|
|
53494
|
+
).join("");
|
|
53495
|
+
}
|
|
53496
|
+
__name(lerpHex, "lerpHex");
|
|
53497
|
+
function gradientAt(stops, t3) {
|
|
53498
|
+
if (stops.length === 0) return C2.accent;
|
|
53499
|
+
if (stops.length === 1) return stops[0];
|
|
53500
|
+
const seg = Math.min(stops.length - 1, Math.floor(t3 * (stops.length - 1)));
|
|
53501
|
+
const lt = t3 * (stops.length - 1) - seg;
|
|
53502
|
+
return lerpHex(stops[seg], stops[seg + 1], lt);
|
|
53503
|
+
}
|
|
53504
|
+
__name(gradientAt, "gradientAt");
|
|
53505
|
+
function GradientLogo({ logo }) {
|
|
53506
|
+
const lines = logo.replace(/^\n/, "").split("\n");
|
|
53507
|
+
const w3 = Math.max(...lines.map((l) => [...l].length), 1);
|
|
53508
|
+
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)) });
|
|
53509
|
+
}
|
|
53510
|
+
__name(GradientLogo, "GradientLogo");
|
|
53511
|
+
function buildBanner(config, settings, width) {
|
|
53512
|
+
const versionLabel = formatVersionLabel(config.getCliVersion() ?? "unknown");
|
|
53513
|
+
const cg = config.getContentGeneratorConfig();
|
|
53514
|
+
const model = config.getModelDisplayName();
|
|
53515
|
+
const targetDir = config.getTargetDir();
|
|
53516
|
+
let authLabel = "";
|
|
53517
|
+
try {
|
|
53518
|
+
if (cg?.authType) {
|
|
53519
|
+
const matched = findProviderByCredentials(cg.baseUrl, cg.apiKeyEnvKey);
|
|
53520
|
+
authLabel = matched && resolveMetadataKey(matched) && matched.label || (cg.authType === "qwen-oauth" ? "Qwen OAuth" : "API Key");
|
|
53521
|
+
}
|
|
53522
|
+
} catch {
|
|
53523
|
+
authLabel = "";
|
|
53524
|
+
}
|
|
53525
|
+
const authModelText = authLabel ? `${authLabel} | ${model}` : model;
|
|
53526
|
+
const hint = " (/model to change)";
|
|
53527
|
+
const custom = resolveCustomBanner(settings);
|
|
53528
|
+
const containerMarginX = 2;
|
|
53529
|
+
const logoGap = 2;
|
|
53530
|
+
const infoPanelChromeWidth = 2 + 1 * 2;
|
|
53531
|
+
const minInfoPanelWidth = 40 + infoPanelChromeWidth;
|
|
53532
|
+
const available = Math.max(0, width - containerMarginX * 2);
|
|
53533
|
+
const hasCustomArt = Boolean(custom.asciiArt.small || custom.asciiArt.large);
|
|
53534
|
+
const customTier = pickAsciiArtTier(
|
|
53535
|
+
custom.asciiArt.small,
|
|
53536
|
+
custom.asciiArt.large,
|
|
53537
|
+
available,
|
|
53538
|
+
logoGap,
|
|
53539
|
+
minInfoPanelWidth,
|
|
53540
|
+
getAsciiArtWidth
|
|
53541
|
+
);
|
|
53542
|
+
const displayLogo = customTier ?? (hasCustomArt ? "" : shortAsciiLogo);
|
|
53543
|
+
const logoWidth = getAsciiArtWidth(displayLogo);
|
|
53544
|
+
const showLogo = displayLogo !== "" && available >= logoWidth + logoGap + minInfoPanelWidth;
|
|
53545
|
+
const maxInfoPanelWidth = 60;
|
|
53546
|
+
const infoPanelWidth = showLogo ? Math.min(available - logoWidth - logoGap, maxInfoPanelWidth) : available;
|
|
53547
|
+
const maxPathLength = Math.max(0, infoPanelWidth - infoPanelChromeWidth);
|
|
53548
|
+
const infoPanelContentWidth = Math.max(
|
|
53549
|
+
0,
|
|
53550
|
+
infoPanelWidth - infoPanelChromeWidth
|
|
53551
|
+
);
|
|
53552
|
+
const showModelHint = infoPanelContentWidth > 0 && getCachedStringWidth(authModelText + hint) <= infoPanelContentWidth;
|
|
53553
|
+
const shortenedPath = shortenPath(
|
|
53554
|
+
tildeifyPath(targetDir),
|
|
53555
|
+
Math.max(3, maxPathLength)
|
|
53556
|
+
);
|
|
53557
|
+
const displayPath = maxPathLength <= 0 ? "" : shortenedPath.length > maxPathLength ? shortenedPath.slice(0, maxPathLength) : shortenedPath;
|
|
53558
|
+
const infoPanel = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
53559
|
+
"box",
|
|
53560
|
+
{
|
|
53561
|
+
flexDirection: "column",
|
|
53562
|
+
borderStyle: "single",
|
|
53563
|
+
paddingX: 1,
|
|
53564
|
+
width: infoPanelWidth,
|
|
53565
|
+
flexGrow: showLogo ? 0 : 1,
|
|
53566
|
+
children: [
|
|
53567
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "row", children: [
|
|
53568
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.accent, attributes: 1, children: custom.title ?? ">_ Qwen Code" }),
|
|
53569
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: ` (${versionLabel})` })
|
|
53570
|
+
] }),
|
|
53571
|
+
custom.subtitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: custom.subtitle }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { children: " " }),
|
|
53572
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "row", children: [
|
|
53573
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: authModelText }),
|
|
53574
|
+
showModelHint && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: hint })
|
|
53575
|
+
] }),
|
|
53576
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: displayPath })
|
|
53577
|
+
]
|
|
53578
|
+
}
|
|
53579
|
+
);
|
|
53580
|
+
if (!showLogo) {
|
|
53581
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
53582
|
+
"box",
|
|
53583
|
+
{
|
|
53584
|
+
marginLeft: containerMarginX,
|
|
53585
|
+
marginRight: containerMarginX,
|
|
53586
|
+
flexShrink: 0,
|
|
53587
|
+
children: infoPanel
|
|
53588
|
+
}
|
|
53589
|
+
);
|
|
53590
|
+
}
|
|
53591
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
53592
|
+
"box",
|
|
53593
|
+
{
|
|
53594
|
+
flexDirection: "row",
|
|
53595
|
+
alignItems: "center",
|
|
53596
|
+
marginLeft: containerMarginX,
|
|
53597
|
+
marginRight: containerMarginX,
|
|
53598
|
+
flexShrink: 0,
|
|
53599
|
+
children: [
|
|
53600
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(GradientLogo, { logo: displayLogo }),
|
|
53601
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("box", { width: logoGap }),
|
|
53602
|
+
infoPanel
|
|
53603
|
+
]
|
|
53604
|
+
}
|
|
53605
|
+
);
|
|
53606
|
+
}
|
|
53607
|
+
__name(buildBanner, "buildBanner");
|
|
53608
|
+
function OpenTuiBanner({ config, settings }) {
|
|
53609
|
+
const { width } = useTerminalDimensions();
|
|
53610
|
+
const showBanner = !config.getScreenReader() && !settings.merged.ui?.hideBanner;
|
|
53611
|
+
const banner = (0, import_react48.useMemo)(
|
|
53612
|
+
() => showBanner ? buildBanner(config, settings, width) : null,
|
|
53613
|
+
[showBanner, config, settings, width]
|
|
53614
|
+
);
|
|
53615
|
+
return banner;
|
|
53616
|
+
}
|
|
53617
|
+
__name(OpenTuiBanner, "OpenTuiBanner");
|
|
53618
|
+
|
|
53619
|
+
// packages/cli/src/ui/opentui/opentui-footer.tsx
|
|
53620
|
+
init_esbuild_shims();
|
|
53621
|
+
var import_react50 = __toESM(require_react(), 1);
|
|
53622
|
+
import nodePath2 from "node:path";
|
|
53623
|
+
function Spinner() {
|
|
53624
|
+
const [frame, setFrame] = (0, import_react50.useState)(0);
|
|
53625
|
+
(0, import_react50.useEffect)(() => {
|
|
53626
|
+
const spin = setInterval(() => setFrame((f2) => f2 + 1), SPINNER_INTERVAL_MS);
|
|
53627
|
+
return () => clearInterval(spin);
|
|
53628
|
+
}, []);
|
|
53629
|
+
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] }) });
|
|
53630
|
+
}
|
|
53631
|
+
__name(Spinner, "Spinner");
|
|
53632
|
+
function OpenTuiLoadingIndicator({
|
|
53633
|
+
streaming
|
|
53634
|
+
}) {
|
|
53635
|
+
const [elapsed, setElapsed] = (0, import_react50.useState)(0);
|
|
53636
|
+
const { width } = useTerminalDimensions();
|
|
53637
|
+
const phrase = usePhraseCycler(streaming, false);
|
|
53638
|
+
(0, import_react50.useEffect)(() => {
|
|
53639
|
+
if (!streaming) return;
|
|
53640
|
+
setElapsed(0);
|
|
53641
|
+
const tick = setInterval(() => setElapsed((s) => s + 1), 1e3);
|
|
53642
|
+
return () => clearInterval(tick);
|
|
53643
|
+
}, [streaming]);
|
|
53644
|
+
if (!streaming) return null;
|
|
53645
|
+
const suffix2 = t("({{time}}{{tokens}} \xB7 esc to cancel)", {
|
|
53646
|
+
time: `${elapsed}s`,
|
|
53647
|
+
tokens: ""
|
|
53648
|
+
});
|
|
53649
|
+
const phraseBudget = Math.max(0, width - 5 - getCachedStringWidth(suffix2));
|
|
53650
|
+
const line = [truncateToWidth(phrase, phraseBudget), suffix2].filter(Boolean).join(" ");
|
|
53651
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { paddingLeft: 1, paddingRight: 1, flexDirection: "row", children: [
|
|
53652
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Spinner, {}),
|
|
53653
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: line })
|
|
53654
|
+
] });
|
|
53655
|
+
}
|
|
53656
|
+
__name(OpenTuiLoadingIndicator, "OpenTuiLoadingIndicator");
|
|
53657
|
+
function OpenTuiFooter({
|
|
53658
|
+
config,
|
|
53659
|
+
streaming,
|
|
53660
|
+
queueLength = 0,
|
|
53661
|
+
sessionName = null,
|
|
53662
|
+
approvalMode
|
|
53663
|
+
}) {
|
|
53664
|
+
const { width } = useTerminalDimensions();
|
|
53665
|
+
const targetDir = config.getTargetDir();
|
|
53666
|
+
const gitBranch = useGitBranchName(targetDir) ?? "";
|
|
53667
|
+
const footerModel = config.getModel();
|
|
53668
|
+
const promptTokenCount = uiTelemetryService.getLastPromptTokenCount();
|
|
53669
|
+
const contextWindowSize = config.getContentGeneratorConfig()?.contextWindowSize;
|
|
53670
|
+
const contextLabel = contextWindowSize && promptTokenCount > 0 ? ` \xB7 ${fmtTokens(contextWindowSize)} ${formatPercentageUsed(
|
|
53671
|
+
promptTokenCount / contextWindowSize
|
|
53672
|
+
)}${contextUsageLabel(width)}` : "";
|
|
53673
|
+
const footerLine1 = `\u279C ${nodePath2.basename(targetDir)}` + (sessionName ? ` \xB7 ${sessionName}` : "") + (gitBranch ? ` \xB7 git:(${gitBranch})` : "") + (footerModel ? ` \xB7 ${footerModel}` : "") + contextLabel;
|
|
53674
|
+
const hintSegments = [
|
|
53675
|
+
streaming ? t("Enter to steer \xB7 Ctrl+Q to queue") : null,
|
|
53676
|
+
approvalMode ? formatApprovalModeName(approvalMode) : null,
|
|
53677
|
+
queueLength > 0 ? `\u23F3 ${t("{{count}} queued", { count: String(queueLength) })}` : null
|
|
53678
|
+
].filter((segment) => segment !== null);
|
|
53679
|
+
const footerLine2 = hintSegments.join(" \xB7 ");
|
|
53680
|
+
const rowBudget = Math.max(0, width - 2);
|
|
53681
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", paddingLeft: 1, paddingRight: 1, flexShrink: 0, children: [
|
|
53682
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: truncateToWidth(footerLine1, rowBudget) }),
|
|
53683
|
+
footerLine2 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { fg: C2.dim, children: truncateToWidth(footerLine2, rowBudget) })
|
|
53684
|
+
] });
|
|
53685
|
+
}
|
|
53686
|
+
__name(OpenTuiFooter, "OpenTuiFooter");
|
|
53687
|
+
|
|
53688
|
+
// packages/cli/src/ui/opentui/dialogs-confirm.tsx
|
|
53689
|
+
init_esbuild_shims();
|
|
53690
|
+
var import_react52 = __toESM(require_react(), 1);
|
|
53470
53691
|
|
|
53471
53692
|
// packages/cli/src/ui/opentui/diff-render.ts
|
|
53472
53693
|
init_esbuild_shims();
|
|
@@ -53587,7 +53808,7 @@ function buildOutcomeOptions(details) {
|
|
|
53587
53808
|
}
|
|
53588
53809
|
__name(buildOutcomeOptions, "buildOutcomeOptions");
|
|
53589
53810
|
function DiffBody({ fileDiff }) {
|
|
53590
|
-
const lines = (0,
|
|
53811
|
+
const lines = (0, import_react52.useMemo)(() => renderDiffBody(fileDiff), [fileDiff]);
|
|
53591
53812
|
const window = tailWindow(lines, MAX_BODY_ROWS);
|
|
53592
53813
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", children: [
|
|
53593
53814
|
window.hiddenCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -53602,14 +53823,14 @@ function DiffBody({ fileDiff }) {
|
|
|
53602
53823
|
}
|
|
53603
53824
|
__name(DiffBody, "DiffBody");
|
|
53604
53825
|
function TextBody({ text }) {
|
|
53605
|
-
const [expanded, setExpanded] = (0,
|
|
53826
|
+
const [expanded, setExpanded] = (0, import_react52.useState)(false);
|
|
53606
53827
|
const { width, height } = useTerminalDimensions();
|
|
53607
|
-
const rows = (0,
|
|
53608
|
-
const window = (0,
|
|
53828
|
+
const rows = (0, import_react52.useMemo)(() => sanitizeTerminalText(text).split("\n"), [text]);
|
|
53829
|
+
const window = (0, import_react52.useMemo)(
|
|
53609
53830
|
() => headWindowPhysical(rows, width, MAX_BODY_ROWS),
|
|
53610
53831
|
[rows, width]
|
|
53611
53832
|
);
|
|
53612
|
-
const expandedWindow = (0,
|
|
53833
|
+
const expandedWindow = (0, import_react52.useMemo)(
|
|
53613
53834
|
() => tailWindowPhysical(
|
|
53614
53835
|
rows,
|
|
53615
53836
|
width,
|
|
@@ -53691,7 +53912,7 @@ function ConfirmationBody({
|
|
|
53691
53912
|
}
|
|
53692
53913
|
__name(ConfirmationBody, "ConfirmationBody");
|
|
53693
53914
|
function OutcomeSelect(props) {
|
|
53694
|
-
const items = (0,
|
|
53915
|
+
const items = (0, import_react52.useMemo)(
|
|
53695
53916
|
() => props.options.map((option, index) => ({
|
|
53696
53917
|
key: `${option.value}-${index}`,
|
|
53697
53918
|
value: option.value,
|
|
@@ -53724,8 +53945,8 @@ __name(OutcomeSelect, "OutcomeSelect");
|
|
|
53724
53945
|
function OpenTuiToolConfirmation(props) {
|
|
53725
53946
|
const { call, onSettled } = props;
|
|
53726
53947
|
const details = call.confirmationDetails;
|
|
53727
|
-
const settledRef = (0,
|
|
53728
|
-
const settle = (0,
|
|
53948
|
+
const settledRef = (0, import_react52.useRef)(false);
|
|
53949
|
+
const settle = (0, import_react52.useCallback)(
|
|
53729
53950
|
(outcome, payload) => {
|
|
53730
53951
|
if (settledRef.current) return;
|
|
53731
53952
|
settledRef.current = true;
|
|
@@ -53779,12 +54000,12 @@ function OpenTuiToolConfirmation(props) {
|
|
|
53779
54000
|
__name(OpenTuiToolConfirmation, "OpenTuiToolConfirmation");
|
|
53780
54001
|
function AskUserQuestionFlow(props) {
|
|
53781
54002
|
const { details, onAnswered } = props;
|
|
53782
|
-
const [index, setIndex] = (0,
|
|
53783
|
-
const [answers, setAnswers] = (0,
|
|
53784
|
-
const [selected, setSelected] = (0,
|
|
54003
|
+
const [index, setIndex] = (0, import_react52.useState)(0);
|
|
54004
|
+
const [answers, setAnswers] = (0, import_react52.useState)({});
|
|
54005
|
+
const [selected, setSelected] = (0, import_react52.useState)(/* @__PURE__ */ new Set());
|
|
53785
54006
|
const question = details.questions[index];
|
|
53786
54007
|
const isMulti = question?.multiSelect === true;
|
|
53787
|
-
const commitQuestion = (0,
|
|
54008
|
+
const commitQuestion = (0, import_react52.useCallback)(
|
|
53788
54009
|
(value) => {
|
|
53789
54010
|
if (value === void 0) return;
|
|
53790
54011
|
const nextAnswers = { ...answers, [index]: value };
|
|
@@ -53802,7 +54023,7 @@ function AskUserQuestionFlow(props) {
|
|
|
53802
54023
|
},
|
|
53803
54024
|
[answers, index, details.questions.length, onAnswered]
|
|
53804
54025
|
);
|
|
53805
|
-
const items = (0,
|
|
54026
|
+
const items = (0, import_react52.useMemo)(
|
|
53806
54027
|
() => (question?.options ?? []).map((option, i) => ({
|
|
53807
54028
|
key: `${option.label}-${i}`,
|
|
53808
54029
|
value: option.label
|
|
@@ -53837,7 +54058,7 @@ function AskUserQuestionFlow(props) {
|
|
|
53837
54058
|
commitQuestion([...selected].join(", "));
|
|
53838
54059
|
}
|
|
53839
54060
|
});
|
|
53840
|
-
(0,
|
|
54061
|
+
(0, import_react52.useEffect)(() => {
|
|
53841
54062
|
if (details.questions.length === 0 || !question?.options?.length) {
|
|
53842
54063
|
onAnswered(null);
|
|
53843
54064
|
}
|
|
@@ -53880,7 +54101,7 @@ function AskUserQuestionFlow(props) {
|
|
|
53880
54101
|
__name(AskUserQuestionFlow, "AskUserQuestionFlow");
|
|
53881
54102
|
function OpenTuiShellConfirmation(props) {
|
|
53882
54103
|
const { commands, onResolve } = props;
|
|
53883
|
-
const options = (0,
|
|
54104
|
+
const options = (0, import_react52.useMemo)(
|
|
53884
54105
|
() => [
|
|
53885
54106
|
{
|
|
53886
54107
|
label: t("Yes, allow once"),
|
|
@@ -53927,7 +54148,7 @@ function OpenTuiShellConfirmation(props) {
|
|
|
53927
54148
|
__name(OpenTuiShellConfirmation, "OpenTuiShellConfirmation");
|
|
53928
54149
|
function OpenTuiActionConfirmation(props) {
|
|
53929
54150
|
const { prompt, onResolve } = props;
|
|
53930
|
-
const options = (0,
|
|
54151
|
+
const options = (0, import_react52.useMemo)(
|
|
53931
54152
|
() => [
|
|
53932
54153
|
{ key: "yes", value: true },
|
|
53933
54154
|
{ key: "no", value: false }
|
|
@@ -53995,22 +54216,22 @@ function OpenTuiApp(props) {
|
|
|
53995
54216
|
onPromptSuggestionDismiss,
|
|
53996
54217
|
onPromptSuggestionAbort
|
|
53997
54218
|
} = props;
|
|
53998
|
-
const [dialog, setDialog] = (0,
|
|
54219
|
+
const [dialog, setDialog] = (0, import_react54.useState)(
|
|
53999
54220
|
props.initialDialog ?? null
|
|
54000
54221
|
);
|
|
54001
|
-
const [noticeText, setNoticeText] = (0,
|
|
54002
|
-
const [commandList, setCommandList] = (0,
|
|
54222
|
+
const [noticeText, setNoticeText] = (0, import_react54.useState)(null);
|
|
54223
|
+
const [commandList, setCommandList] = (0, import_react54.useState)(
|
|
54003
54224
|
commands ?? []
|
|
54004
54225
|
);
|
|
54005
|
-
const notify = (0,
|
|
54006
|
-
const [shellModeActive, setShellModeActive] = (0,
|
|
54007
|
-
const shellControllersRef = (0,
|
|
54226
|
+
const notify = (0, import_react54.useCallback)((text) => setNoticeText(text), []);
|
|
54227
|
+
const [shellModeActive, setShellModeActive] = (0, import_react54.useState)(false);
|
|
54228
|
+
const shellControllersRef = (0, import_react54.useRef)(/* @__PURE__ */ new Set());
|
|
54008
54229
|
const { width: terminalWidth, height: terminalHeight } = useTerminalDimensions();
|
|
54009
|
-
const toggleShellMode = (0,
|
|
54230
|
+
const toggleShellMode = (0, import_react54.useCallback)(
|
|
54010
54231
|
() => setShellModeActive((active) => !active),
|
|
54011
54232
|
[]
|
|
54012
54233
|
);
|
|
54013
|
-
const runShellCommand = (0,
|
|
54234
|
+
const runShellCommand = (0, import_react54.useCallback)(
|
|
54014
54235
|
(command) => {
|
|
54015
54236
|
const emit = props.onTranscriptEvent;
|
|
54016
54237
|
if (!emit) return;
|
|
@@ -54041,7 +54262,7 @@ function OpenTuiApp(props) {
|
|
|
54041
54262
|
},
|
|
54042
54263
|
[config, props.onTranscriptEvent, terminalWidth, terminalHeight]
|
|
54043
54264
|
);
|
|
54044
|
-
(0,
|
|
54265
|
+
(0, import_react54.useEffect)(
|
|
54045
54266
|
() => () => {
|
|
54046
54267
|
for (const controller of shellControllersRef.current) {
|
|
54047
54268
|
controller.abort();
|
|
@@ -54049,7 +54270,7 @@ function OpenTuiApp(props) {
|
|
|
54049
54270
|
},
|
|
54050
54271
|
[]
|
|
54051
54272
|
);
|
|
54052
|
-
const handleSelectSetting = (0,
|
|
54273
|
+
const handleSelectSetting = (0, import_react54.useCallback)((name) => {
|
|
54053
54274
|
if (name === "ui.theme") setDialog({ dialog: "theme" });
|
|
54054
54275
|
else if (name === "general.preferredEditor")
|
|
54055
54276
|
setDialog({ dialog: "editor" });
|
|
@@ -54058,15 +54279,15 @@ function OpenTuiApp(props) {
|
|
|
54058
54279
|
setDialog({ dialog: "model", mode: "vision" });
|
|
54059
54280
|
else setDialog(null);
|
|
54060
54281
|
}, []);
|
|
54061
|
-
const fillComposer = (0,
|
|
54282
|
+
const fillComposer = (0, import_react54.useCallback)(
|
|
54062
54283
|
(text) => {
|
|
54063
54284
|
injectCapturedInput(() => props.composerHandle?.current ?? null, text);
|
|
54064
54285
|
},
|
|
54065
54286
|
[props.composerHandle]
|
|
54066
54287
|
);
|
|
54067
|
-
const [modals, setModals] = (0,
|
|
54068
|
-
const modalSeq = (0,
|
|
54069
|
-
const confirmations = (0,
|
|
54288
|
+
const [modals, setModals] = (0, import_react54.useState)([]);
|
|
54289
|
+
const modalSeq = (0, import_react54.useRef)(0);
|
|
54290
|
+
const confirmations = (0, import_react54.useMemo)(
|
|
54070
54291
|
() => ({
|
|
54071
54292
|
presentShell: /* @__PURE__ */ __name((commandsToRun) => new Promise((resolve4) => {
|
|
54072
54293
|
modalSeq.current += 1;
|
|
@@ -54091,14 +54312,14 @@ function OpenTuiApp(props) {
|
|
|
54091
54312
|
[]
|
|
54092
54313
|
);
|
|
54093
54314
|
const activeModal = modals[0] ?? null;
|
|
54094
|
-
const closeShellModal = (0,
|
|
54315
|
+
const closeShellModal = (0, import_react54.useCallback)(
|
|
54095
54316
|
(modal, resolution) => {
|
|
54096
54317
|
setModals((prev) => prev.filter((m3) => m3.id !== modal.id));
|
|
54097
54318
|
modal.resolve(resolution);
|
|
54098
54319
|
},
|
|
54099
54320
|
[]
|
|
54100
54321
|
);
|
|
54101
|
-
const closeActionModal = (0,
|
|
54322
|
+
const closeActionModal = (0, import_react54.useCallback)(
|
|
54102
54323
|
(modal, confirmed) => {
|
|
54103
54324
|
setModals((prev) => prev.filter((m3) => m3.id !== modal.id));
|
|
54104
54325
|
modal.resolve(confirmed);
|
|
@@ -54106,7 +54327,7 @@ function OpenTuiApp(props) {
|
|
|
54106
54327
|
[]
|
|
54107
54328
|
);
|
|
54108
54329
|
const activeToolCall = waitingToolCalls?.[0] ?? null;
|
|
54109
|
-
const transcript = (0,
|
|
54330
|
+
const transcript = (0, import_react54.useMemo)(
|
|
54110
54331
|
() => ({
|
|
54111
54332
|
reset: /* @__PURE__ */ __name((events) => onTranscriptReset?.(events), "reset"),
|
|
54112
54333
|
// /clear semantics: a fresh transcript — the live turn's reset with an
|
|
@@ -54116,7 +54337,7 @@ function OpenTuiApp(props) {
|
|
|
54116
54337
|
}),
|
|
54117
54338
|
[onTranscriptReset, onTranscriptEvent]
|
|
54118
54339
|
);
|
|
54119
|
-
const host = (0,
|
|
54340
|
+
const host = (0, import_react54.useMemo)(
|
|
54120
54341
|
() => new OpenTuiAppHost({
|
|
54121
54342
|
config,
|
|
54122
54343
|
settings,
|
|
@@ -54145,27 +54366,27 @@ function OpenTuiApp(props) {
|
|
|
54145
54366
|
getSessionStats
|
|
54146
54367
|
]
|
|
54147
54368
|
);
|
|
54148
|
-
(0,
|
|
54149
|
-
(0,
|
|
54150
|
-
(0,
|
|
54369
|
+
(0, import_react54.useSyncExternalStore)(
|
|
54370
|
+
(0, import_react54.useCallback)((cb) => host.subscribe(cb), [host]),
|
|
54371
|
+
(0, import_react54.useCallback)(() => host.getVersion(), [host])
|
|
54151
54372
|
);
|
|
54152
|
-
(0,
|
|
54373
|
+
(0, import_react54.useEffect)(() => {
|
|
54153
54374
|
host.setStreaming(!!streaming);
|
|
54154
54375
|
}, [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,
|
|
54376
|
+
const gateway = (0, import_react54.useMemo)(() => new OpenTuiSlashGateway(), []);
|
|
54377
|
+
const reloadRef = (0, import_react54.useRef)(null);
|
|
54378
|
+
const deferredCommandsRef = (0, import_react54.useRef)([]);
|
|
54379
|
+
const [deferredRevision, setDeferredRevision] = (0, import_react54.useState)(0);
|
|
54380
|
+
const drainingRef = (0, import_react54.useRef)(false);
|
|
54381
|
+
const streamingRef = (0, import_react54.useRef)(streaming);
|
|
54382
|
+
(0, import_react54.useEffect)(() => {
|
|
54162
54383
|
streamingRef.current = streaming;
|
|
54163
54384
|
}, [streaming]);
|
|
54164
|
-
const dialogRef = (0,
|
|
54165
|
-
(0,
|
|
54385
|
+
const dialogRef = (0, import_react54.useRef)(dialog);
|
|
54386
|
+
(0, import_react54.useEffect)(() => {
|
|
54166
54387
|
dialogRef.current = dialog;
|
|
54167
54388
|
}, [dialog]);
|
|
54168
|
-
(0,
|
|
54389
|
+
(0, import_react54.useEffect)(() => {
|
|
54169
54390
|
const dispatcher = new OpenTuiSlashDispatcher(
|
|
54170
54391
|
host,
|
|
54171
54392
|
{ config, settings, logger, extensionRefreshState },
|
|
@@ -54200,7 +54421,7 @@ function OpenTuiApp(props) {
|
|
|
54200
54421
|
commands,
|
|
54201
54422
|
extensionRefreshState
|
|
54202
54423
|
]);
|
|
54203
|
-
const applyOutcome = (0,
|
|
54424
|
+
const applyOutcome = (0, import_react54.useCallback)(
|
|
54204
54425
|
(outcome) => {
|
|
54205
54426
|
switch (outcome.kind) {
|
|
54206
54427
|
case "handled":
|
|
@@ -54238,7 +54459,7 @@ function OpenTuiApp(props) {
|
|
|
54238
54459
|
},
|
|
54239
54460
|
[onSubmitPrompt, onQuit, onInterrupt, onPopQueue, notify]
|
|
54240
54461
|
);
|
|
54241
|
-
const onSubmit = (0,
|
|
54462
|
+
const onSubmit = (0, import_react54.useCallback)(
|
|
54242
54463
|
async (text, imagePaths) => {
|
|
54243
54464
|
setNoticeText(null);
|
|
54244
54465
|
const submission = normalizeQuitSubmission(text);
|
|
@@ -54296,7 +54517,7 @@ function OpenTuiApp(props) {
|
|
|
54296
54517
|
runShellCommand
|
|
54297
54518
|
]
|
|
54298
54519
|
);
|
|
54299
|
-
(0,
|
|
54520
|
+
(0, import_react54.useEffect)(() => {
|
|
54300
54521
|
if (isExitInProgress()) return;
|
|
54301
54522
|
if (streaming || dialog || shellControllersRef.current.size > 0 || deferredCommandsRef.current.length === 0) {
|
|
54302
54523
|
return;
|
|
@@ -54363,7 +54584,7 @@ function OpenTuiApp(props) {
|
|
|
54363
54584
|
onSubmitPrompt,
|
|
54364
54585
|
runShellCommand
|
|
54365
54586
|
]);
|
|
54366
|
-
const userMessages = (0,
|
|
54587
|
+
const userMessages = (0, import_react54.useMemo)(
|
|
54367
54588
|
() => host.getHistory().filter((item) => item.type === "user").map((item) => item.text ?? ""),
|
|
54368
54589
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
54369
54590
|
[host, host.getVersion()]
|
|
@@ -54374,6 +54595,7 @@ function OpenTuiApp(props) {
|
|
|
54374
54595
|
recordForExitEcho: true,
|
|
54375
54596
|
onError: (error) => onRenderError?.(error),
|
|
54376
54597
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", flexGrow: 1, flexShrink: 0, children: [
|
|
54598
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(OpenTuiBanner, { config, settings }),
|
|
54377
54599
|
renderMain ? renderMain() : null,
|
|
54378
54600
|
!dialog && !activeModal && !activeToolCall && updateNotice ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { children: updateNotice }) : null,
|
|
54379
54601
|
noticeText ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("text", { children: noticeText }) : null,
|
|
@@ -54414,26 +54636,39 @@ function OpenTuiApp(props) {
|
|
|
54414
54636
|
availableTerminalHeight: props.availableTerminalHeight
|
|
54415
54637
|
},
|
|
54416
54638
|
dialog.dialog
|
|
54417
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime.
|
|
54418
|
-
|
|
54639
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
54640
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(OpenTuiLoadingIndicator, { streaming: Boolean(streaming) }),
|
|
54641
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
54642
|
+
OpenTuiInputPrompt,
|
|
54643
|
+
{
|
|
54644
|
+
onSubmit: (text, imagePaths) => {
|
|
54645
|
+
void onSubmit(text, imagePaths);
|
|
54646
|
+
},
|
|
54647
|
+
userMessages,
|
|
54648
|
+
config,
|
|
54649
|
+
focus: true,
|
|
54650
|
+
streaming,
|
|
54651
|
+
onInterrupt,
|
|
54652
|
+
approvalMode,
|
|
54653
|
+
queueLength,
|
|
54654
|
+
onPopQueue,
|
|
54655
|
+
composerHandle: props.composerHandle,
|
|
54656
|
+
promptSuggestion,
|
|
54657
|
+
onPromptSuggestionDismiss,
|
|
54658
|
+
onPromptSuggestionAbort,
|
|
54659
|
+
shellModeActive,
|
|
54660
|
+
onToggleShellMode: toggleShellMode
|
|
54661
|
+
}
|
|
54662
|
+
)
|
|
54663
|
+
] }),
|
|
54664
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
54665
|
+
OpenTuiFooter,
|
|
54419
54666
|
{
|
|
54420
|
-
onSubmit: (text, imagePaths) => {
|
|
54421
|
-
void onSubmit(text, imagePaths);
|
|
54422
|
-
},
|
|
54423
|
-
userMessages,
|
|
54424
54667
|
config,
|
|
54425
|
-
|
|
54426
|
-
streaming,
|
|
54427
|
-
onInterrupt,
|
|
54668
|
+
streaming: Boolean(streaming),
|
|
54428
54669
|
approvalMode,
|
|
54429
54670
|
queueLength,
|
|
54430
|
-
|
|
54431
|
-
composerHandle: props.composerHandle,
|
|
54432
|
-
promptSuggestion,
|
|
54433
|
-
onPromptSuggestionDismiss,
|
|
54434
|
-
onPromptSuggestionAbort,
|
|
54435
|
-
shellModeActive,
|
|
54436
|
-
onToggleShellMode: toggleShellMode
|
|
54671
|
+
sessionName: host.sessionName
|
|
54437
54672
|
}
|
|
54438
54673
|
)
|
|
54439
54674
|
] })
|
|
@@ -54444,7 +54679,7 @@ __name(OpenTuiApp, "OpenTuiApp");
|
|
|
54444
54679
|
|
|
54445
54680
|
// packages/cli/src/ui/opentui/followup-generation.ts
|
|
54446
54681
|
init_esbuild_shims();
|
|
54447
|
-
var
|
|
54682
|
+
var import_react56 = __toESM(require_react(), 1);
|
|
54448
54683
|
function useFollowupSuggestionGeneration({
|
|
54449
54684
|
config,
|
|
54450
54685
|
settings,
|
|
@@ -54452,12 +54687,12 @@ function useFollowupSuggestionGeneration({
|
|
|
54452
54687
|
items,
|
|
54453
54688
|
waitingCalls
|
|
54454
54689
|
}) {
|
|
54455
|
-
const [promptSuggestion, setPromptSuggestion] = (0,
|
|
54456
|
-
const abortRef = (0,
|
|
54457
|
-
const streamingRef = (0,
|
|
54690
|
+
const [promptSuggestion, setPromptSuggestion] = (0, import_react56.useState)(null);
|
|
54691
|
+
const abortRef = (0, import_react56.useRef)(null);
|
|
54692
|
+
const streamingRef = (0, import_react56.useRef)(streaming);
|
|
54458
54693
|
const followupEnabled = settings.merged.ui?.enableFollowupSuggestions !== false;
|
|
54459
54694
|
const cacheSharingEnabled = settings.merged.ui?.enableCacheSharing !== false;
|
|
54460
|
-
(0,
|
|
54695
|
+
(0, import_react56.useEffect)(() => {
|
|
54461
54696
|
const wasStreaming = streamingRef.current;
|
|
54462
54697
|
if (!followupEnabled || wasStreaming !== streaming) {
|
|
54463
54698
|
abortRef.current?.abort();
|
|
@@ -54494,7 +54729,7 @@ function useFollowupSuggestionGeneration({
|
|
|
54494
54729
|
items,
|
|
54495
54730
|
waitingCalls
|
|
54496
54731
|
]);
|
|
54497
|
-
(0,
|
|
54732
|
+
(0, import_react56.useEffect)(
|
|
54498
54733
|
() => () => {
|
|
54499
54734
|
abortRef.current?.abort();
|
|
54500
54735
|
},
|
|
@@ -54646,7 +54881,7 @@ var OpenTuiRuntime = class _OpenTuiRuntime {
|
|
|
54646
54881
|
|
|
54647
54882
|
// packages/cli/src/ui/opentui/transcript-view.tsx
|
|
54648
54883
|
init_esbuild_shims();
|
|
54649
|
-
var
|
|
54884
|
+
var import_react57 = __toESM(require_react(), 1);
|
|
54650
54885
|
|
|
54651
54886
|
// packages/cli/src/ui/opentui/live-session-model.ts
|
|
54652
54887
|
init_esbuild_shims();
|
|
@@ -55844,7 +56079,7 @@ function AssistantRow({
|
|
|
55844
56079
|
}
|
|
55845
56080
|
__name(AssistantRow, "AssistantRow");
|
|
55846
56081
|
function ThinkingRow({ text, done }) {
|
|
55847
|
-
const [expanded, setExpanded] = (0,
|
|
56082
|
+
const [expanded, setExpanded] = (0, import_react57.useState)(false);
|
|
55848
56083
|
const meta = thinkingMeta(done, expanded, false);
|
|
55849
56084
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
55850
56085
|
"box",
|
|
@@ -55995,8 +56230,8 @@ function RetryRows({
|
|
|
55995
56230
|
delayMs,
|
|
55996
56231
|
startedAt
|
|
55997
56232
|
}) {
|
|
55998
|
-
const [now, setNow] = (0,
|
|
55999
|
-
(0,
|
|
56233
|
+
const [now, setNow] = (0, import_react57.useState)(() => Date.now());
|
|
56234
|
+
(0, import_react57.useEffect)(() => {
|
|
56000
56235
|
const timer = setInterval(() => setNow(Date.now()), 1e3);
|
|
56001
56236
|
return () => clearInterval(timer);
|
|
56002
56237
|
}, []);
|
|
@@ -56240,7 +56475,7 @@ __name(ArenaSessionRow, "ArenaSessionRow");
|
|
|
56240
56475
|
|
|
56241
56476
|
// packages/cli/src/ui/opentui/live-turn.ts
|
|
56242
56477
|
init_esbuild_shims();
|
|
56243
|
-
var
|
|
56478
|
+
var import_react58 = __toESM(require_react(), 1);
|
|
56244
56479
|
import { readFileSync } from "node:fs";
|
|
56245
56480
|
|
|
56246
56481
|
// packages/cli/src/ui/opentui/live-session.ts
|
|
@@ -56840,43 +57075,43 @@ function foldBatch(events) {
|
|
|
56840
57075
|
__name(foldBatch, "foldBatch");
|
|
56841
57076
|
function useOpenTuiLiveTurn(options) {
|
|
56842
57077
|
const { config } = options;
|
|
56843
|
-
const [items, setItems] = (0,
|
|
56844
|
-
const [streaming, setStreaming] = (0,
|
|
56845
|
-
const [waitingCalls, setWaitingCalls] = (0,
|
|
57078
|
+
const [items, setItems] = (0, import_react58.useState)([]);
|
|
57079
|
+
const [streaming, setStreaming] = (0, import_react58.useState)(false);
|
|
57080
|
+
const [waitingCalls, setWaitingCalls] = (0, import_react58.useState)(
|
|
56846
57081
|
[]
|
|
56847
57082
|
);
|
|
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,
|
|
57083
|
+
const queueRef = (0, import_react58.useRef)([]);
|
|
57084
|
+
const [queueLength, setQueueLength] = (0, import_react58.useState)(0);
|
|
57085
|
+
const abortRef = (0, import_react58.useRef)(null);
|
|
57086
|
+
const streamingRef = (0, import_react58.useRef)(false);
|
|
57087
|
+
const turnSeqRef = (0, import_react58.useRef)(0);
|
|
57088
|
+
const waitingCallsRef = (0, import_react58.useRef)([]);
|
|
56854
57089
|
waitingCallsRef.current = waitingCalls;
|
|
56855
|
-
const setBusy = (0,
|
|
57090
|
+
const setBusy = (0, import_react58.useCallback)((busy) => {
|
|
56856
57091
|
if (streamingRef.current === busy) return;
|
|
56857
57092
|
streamingRef.current = busy;
|
|
56858
57093
|
setStreaming(busy);
|
|
56859
57094
|
}, []);
|
|
56860
|
-
const apply = (0,
|
|
57095
|
+
const apply = (0, import_react58.useCallback)((ev) => {
|
|
56861
57096
|
setItems((prev) => foldLiveEvent(prev, ev));
|
|
56862
57097
|
}, []);
|
|
56863
|
-
const pushQueue = (0,
|
|
57098
|
+
const pushQueue = (0, import_react58.useCallback)((text) => {
|
|
56864
57099
|
queueRef.current.push(text);
|
|
56865
57100
|
setQueueLength(queueRef.current.length);
|
|
56866
57101
|
}, []);
|
|
56867
|
-
const drainQueue = (0,
|
|
57102
|
+
const drainQueue = (0, import_react58.useCallback)(() => {
|
|
56868
57103
|
const drained = queueRef.current;
|
|
56869
57104
|
queueRef.current = [];
|
|
56870
57105
|
setQueueLength(0);
|
|
56871
57106
|
return drained;
|
|
56872
57107
|
}, []);
|
|
56873
|
-
const restoreQueue = (0,
|
|
57108
|
+
const restoreQueue = (0, import_react58.useCallback)((texts) => {
|
|
56874
57109
|
const restored = texts.map((text) => text.trim()).filter(Boolean);
|
|
56875
57110
|
if (restored.length === 0) return;
|
|
56876
57111
|
queueRef.current = [...restored, ...queueRef.current];
|
|
56877
57112
|
setQueueLength(queueRef.current.length);
|
|
56878
57113
|
}, []);
|
|
56879
|
-
const runTurn = (0,
|
|
57114
|
+
const runTurn = (0, import_react58.useCallback)(
|
|
56880
57115
|
async (prompt, promptId, turnOptions) => {
|
|
56881
57116
|
const seq = ++turnSeqRef.current;
|
|
56882
57117
|
const abort = new AbortController();
|
|
@@ -56933,7 +57168,7 @@ function useOpenTuiLiveTurn(options) {
|
|
|
56933
57168
|
},
|
|
56934
57169
|
[config, apply, drainQueue, restoreQueue, setBusy]
|
|
56935
57170
|
);
|
|
56936
|
-
const submit = (0,
|
|
57171
|
+
const submit = (0, import_react58.useCallback)(
|
|
56937
57172
|
(content, imagePaths, options2) => {
|
|
56938
57173
|
const text = typeof content === "string" ? content : collectText(normalizeParts(content));
|
|
56939
57174
|
if (streamingRef.current) {
|
|
@@ -56957,10 +57192,10 @@ function useOpenTuiLiveTurn(options) {
|
|
|
56957
57192
|
},
|
|
56958
57193
|
[config, apply, pushQueue, runTurn]
|
|
56959
57194
|
);
|
|
56960
|
-
const interrupt = (0,
|
|
57195
|
+
const interrupt = (0, import_react58.useCallback)(() => {
|
|
56961
57196
|
abortRef.current?.abort();
|
|
56962
57197
|
}, []);
|
|
56963
|
-
const resetTranscript = (0,
|
|
57198
|
+
const resetTranscript = (0, import_react58.useCallback)(
|
|
56964
57199
|
(events) => {
|
|
56965
57200
|
turnSeqRef.current += 1;
|
|
56966
57201
|
const abort = abortRef.current;
|
|
@@ -56979,14 +57214,14 @@ function useOpenTuiLiveTurn(options) {
|
|
|
56979
57214
|
},
|
|
56980
57215
|
[setBusy]
|
|
56981
57216
|
);
|
|
56982
|
-
const settleWaitingCall = (0,
|
|
57217
|
+
const settleWaitingCall = (0, import_react58.useCallback)((callId) => {
|
|
56983
57218
|
setWaitingCalls((prev) => prev.filter((c2) => c2.callId !== callId));
|
|
56984
57219
|
}, []);
|
|
56985
|
-
const popQueue = (0,
|
|
57220
|
+
const popQueue = (0, import_react58.useCallback)(() => {
|
|
56986
57221
|
if (queueRef.current.length === 0) return null;
|
|
56987
57222
|
return drainQueue().join("\n\n");
|
|
56988
57223
|
}, [drainQueue]);
|
|
56989
|
-
(0,
|
|
57224
|
+
(0, import_react58.useEffect)(() => () => abortRef.current?.abort(), []);
|
|
56990
57225
|
return {
|
|
56991
57226
|
items,
|
|
56992
57227
|
streaming,
|
|
@@ -57076,29 +57311,29 @@ function OpenTuiEntryApp({
|
|
|
57076
57311
|
items: live.items,
|
|
57077
57312
|
waitingCalls: live.waitingCalls
|
|
57078
57313
|
});
|
|
57079
|
-
const statsRef = (0,
|
|
57080
|
-
(0,
|
|
57314
|
+
const statsRef = (0, import_react59.useRef)(stats);
|
|
57315
|
+
(0, import_react59.useEffect)(() => {
|
|
57081
57316
|
statsRef.current = stats;
|
|
57082
57317
|
}, [stats]);
|
|
57083
|
-
const getSessionStats = (0,
|
|
57084
|
-
const composerHandle = (0,
|
|
57085
|
-
(0,
|
|
57318
|
+
const getSessionStats = (0, import_react59.useCallback)(() => statsRef.current, []);
|
|
57319
|
+
const composerHandle = (0, import_react59.useRef)(null);
|
|
57320
|
+
(0, import_react59.useEffect)(
|
|
57086
57321
|
() => armCapturedInputInjection(() => composerHandle.current, capturedText),
|
|
57087
57322
|
[capturedText]
|
|
57088
57323
|
);
|
|
57089
|
-
(0,
|
|
57324
|
+
(0, import_react59.useEffect)(() => {
|
|
57090
57325
|
const resumeEvents = resumeEventsFromConfig(config);
|
|
57091
57326
|
if (resumeEvents) resetTranscript(resumeEvents);
|
|
57092
57327
|
for (const warning of startupWarnings) {
|
|
57093
57328
|
applyEvent({ type: "warning", text: warning });
|
|
57094
57329
|
}
|
|
57095
57330
|
}, []);
|
|
57096
|
-
const [updateNotice, setUpdateNotice] = (0,
|
|
57097
|
-
const isIdleRef = (0,
|
|
57098
|
-
(0,
|
|
57331
|
+
const [updateNotice, setUpdateNotice] = (0, import_react59.useState)(null);
|
|
57332
|
+
const isIdleRef = (0, import_react59.useRef)(true);
|
|
57333
|
+
(0, import_react59.useEffect)(() => {
|
|
57099
57334
|
isIdleRef.current = !live.streaming;
|
|
57100
57335
|
}, [live.streaming]);
|
|
57101
|
-
const addUpdateItem = (0,
|
|
57336
|
+
const addUpdateItem = (0, import_react59.useCallback)(
|
|
57102
57337
|
(item) => {
|
|
57103
57338
|
if (item.type === "info" /* INFO */) {
|
|
57104
57339
|
applyEvent({ type: "info", text: item.text });
|
|
@@ -57110,22 +57345,22 @@ function OpenTuiEntryApp({
|
|
|
57110
57345
|
},
|
|
57111
57346
|
[applyEvent]
|
|
57112
57347
|
);
|
|
57113
|
-
const setUpdateInfo = (0,
|
|
57348
|
+
const setUpdateInfo = (0, import_react59.useCallback)((info) => {
|
|
57114
57349
|
setUpdateNotice(info?.message ?? null);
|
|
57115
57350
|
}, []);
|
|
57116
57351
|
useUpdateNoticeFlush(addUpdateItem, setUpdateInfo, isIdleRef, live.streaming);
|
|
57117
|
-
const [exitHint, setExitHint] = (0,
|
|
57118
|
-
const exitGuard = (0,
|
|
57352
|
+
const [exitHint, setExitHint] = (0, import_react59.useState)(null);
|
|
57353
|
+
const exitGuard = (0, import_react59.useMemo)(
|
|
57119
57354
|
() => createExitGuard({ onWindowExpired: /* @__PURE__ */ __name(() => setExitHint(null), "onWindowExpired") }),
|
|
57120
57355
|
[]
|
|
57121
57356
|
);
|
|
57122
|
-
(0,
|
|
57123
|
-
const streamingRef = (0,
|
|
57124
|
-
(0,
|
|
57357
|
+
(0, import_react59.useEffect)(() => () => exitGuard.dispose(), [exitGuard]);
|
|
57358
|
+
const streamingRef = (0, import_react59.useRef)(live.streaming);
|
|
57359
|
+
(0, import_react59.useEffect)(() => {
|
|
57125
57360
|
streamingRef.current = live.streaming;
|
|
57126
57361
|
}, [live.streaming]);
|
|
57127
|
-
const waitingCallsRef = (0,
|
|
57128
|
-
(0,
|
|
57362
|
+
const waitingCallsRef = (0, import_react59.useRef)(live.waitingCalls);
|
|
57363
|
+
(0, import_react59.useEffect)(() => {
|
|
57129
57364
|
waitingCallsRef.current = live.waitingCalls;
|
|
57130
57365
|
}, [live.waitingCalls]);
|
|
57131
57366
|
useKeyboard((key) => {
|
|
@@ -57148,7 +57383,7 @@ function OpenTuiEntryApp({
|
|
|
57148
57383
|
setExitHint(exitGuardHint(guardKey));
|
|
57149
57384
|
}
|
|
57150
57385
|
});
|
|
57151
|
-
const renderMain = (0,
|
|
57386
|
+
const renderMain = (0, import_react59.useCallback)(
|
|
57152
57387
|
() => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("box", { flexDirection: "column", flexGrow: 1, children: [
|
|
57153
57388
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
57154
57389
|
OpenTuiTranscriptView,
|
|
@@ -57162,7 +57397,7 @@ function OpenTuiEntryApp({
|
|
|
57162
57397
|
] }),
|
|
57163
57398
|
[live.items, width, height, exitHint]
|
|
57164
57399
|
);
|
|
57165
|
-
const handleRenderError = (0,
|
|
57400
|
+
const handleRenderError = (0, import_react59.useCallback)(
|
|
57166
57401
|
(error) => {
|
|
57167
57402
|
debugLogger4.error(
|
|
57168
57403
|
`[FATAL_RENDER_ERROR] ${error.message}
|
|
@@ -57174,15 +57409,15 @@ ${error.stack ?? ""}`
|
|
|
57174
57409
|
},
|
|
57175
57410
|
[config]
|
|
57176
57411
|
);
|
|
57177
|
-
const handleStartNewSession = (0,
|
|
57412
|
+
const handleStartNewSession = (0, import_react59.useCallback)(
|
|
57178
57413
|
(sessionId) => startNewSession(sessionId),
|
|
57179
57414
|
[startNewSession]
|
|
57180
57415
|
);
|
|
57181
|
-
const handleSubmitPrompt = (0,
|
|
57416
|
+
const handleSubmitPrompt = (0, import_react59.useCallback)(
|
|
57182
57417
|
(content, imagePaths, options) => submit(content, imagePaths, options),
|
|
57183
57418
|
[submit]
|
|
57184
57419
|
);
|
|
57185
|
-
const handleQuit = (0,
|
|
57420
|
+
const handleQuit = (0, import_react59.useCallback)(() => {
|
|
57186
57421
|
void exitSession(config, 0);
|
|
57187
57422
|
}, [config]);
|
|
57188
57423
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -57253,7 +57488,7 @@ async function startOpenTuiUI(config, settings, startupWarnings, workspaceRoot =
|
|
|
57253
57488
|
// children must sit in the props object: the provider declares it as a
|
|
57254
57489
|
// required prop, which createElement's rest-children overloads can't fill.
|
|
57255
57490
|
// eslint-disable-next-line react/no-children-prop
|
|
57256
|
-
(0,
|
|
57491
|
+
(0, import_react59.createElement)(SessionStatsProvider, {
|
|
57257
57492
|
sessionId: config.getSessionId(),
|
|
57258
57493
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
57259
57494
|
OpenTuiEntryApp,
|