@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
|
@@ -1245,118 +1245,6 @@ init_esbuild_shims();
|
|
|
1245
1245
|
import { basename as basename3, join as join5 } from "node:path";
|
|
1246
1246
|
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
1247
1247
|
|
|
1248
|
-
// packages/channels/base/dist/BlockStreamer.js
|
|
1249
|
-
init_esbuild_shims();
|
|
1250
|
-
var BlockStreamer = class {
|
|
1251
|
-
static {
|
|
1252
|
-
__name(this, "BlockStreamer");
|
|
1253
|
-
}
|
|
1254
|
-
buffer = "";
|
|
1255
|
-
idleTimer = null;
|
|
1256
|
-
sending = Promise.resolve();
|
|
1257
|
-
opts;
|
|
1258
|
-
/** Number of blocks emitted so far. */
|
|
1259
|
-
blockCount = 0;
|
|
1260
|
-
constructor(opts) {
|
|
1261
|
-
this.opts = opts;
|
|
1262
|
-
}
|
|
1263
|
-
/** Feed a new text chunk from the agent stream. */
|
|
1264
|
-
push(chunk) {
|
|
1265
|
-
this.buffer += chunk;
|
|
1266
|
-
this.clearIdleTimer();
|
|
1267
|
-
this.checkEmit();
|
|
1268
|
-
if (this.buffer.length > 0 && this.opts.idleMs > 0) {
|
|
1269
|
-
this.idleTimer = setTimeout(() => this.onIdle(), this.opts.idleMs);
|
|
1270
|
-
}
|
|
1271
|
-
}
|
|
1272
|
-
/** Flush all remaining buffered text. Awaits all pending sends. */
|
|
1273
|
-
async flush() {
|
|
1274
|
-
this.clearIdleTimer();
|
|
1275
|
-
if (this.buffer.length > 0) {
|
|
1276
|
-
this.emitBlock(this.buffer);
|
|
1277
|
-
this.buffer = "";
|
|
1278
|
-
}
|
|
1279
|
-
await this.sending;
|
|
1280
|
-
}
|
|
1281
|
-
/** Drop buffered text and cancel future idle emission. */
|
|
1282
|
-
stop() {
|
|
1283
|
-
this.clearIdleTimer();
|
|
1284
|
-
this.buffer = "";
|
|
1285
|
-
}
|
|
1286
|
-
/** Await already-queued sends without emitting the buffered text. */
|
|
1287
|
-
async drain() {
|
|
1288
|
-
await this.sending;
|
|
1289
|
-
}
|
|
1290
|
-
// ---------------------------------------------------------------------------
|
|
1291
|
-
// Internal
|
|
1292
|
-
// ---------------------------------------------------------------------------
|
|
1293
|
-
checkEmit() {
|
|
1294
|
-
while (this.buffer.length >= this.opts.maxChars) {
|
|
1295
|
-
const bp = this.findBreakPoint(this.buffer, this.opts.maxChars);
|
|
1296
|
-
this.emitBlock(this.buffer.slice(0, bp));
|
|
1297
|
-
this.buffer = this.buffer.slice(bp);
|
|
1298
|
-
}
|
|
1299
|
-
if (this.buffer.length >= this.opts.minChars) {
|
|
1300
|
-
const bp = this.findBlockBoundary(this.buffer);
|
|
1301
|
-
if (bp > 0) {
|
|
1302
|
-
this.emitBlock(this.buffer.slice(0, bp));
|
|
1303
|
-
this.buffer = this.buffer.slice(bp);
|
|
1304
|
-
}
|
|
1305
|
-
}
|
|
1306
|
-
}
|
|
1307
|
-
onIdle() {
|
|
1308
|
-
this.idleTimer = null;
|
|
1309
|
-
if (this.buffer.length >= this.opts.minChars) {
|
|
1310
|
-
this.emitBlock(this.buffer);
|
|
1311
|
-
this.buffer = "";
|
|
1312
|
-
}
|
|
1313
|
-
}
|
|
1314
|
-
emitBlock(text) {
|
|
1315
|
-
const trimmed = text.trim();
|
|
1316
|
-
if (!trimmed)
|
|
1317
|
-
return;
|
|
1318
|
-
const block = /\n[^\S\n]*$/.test(text) ? `${trimmed}
|
|
1319
|
-
` : trimmed;
|
|
1320
|
-
this.blockCount++;
|
|
1321
|
-
this.sending = this.sending.then(() => this.opts.send(block)).catch(() => {
|
|
1322
|
-
});
|
|
1323
|
-
}
|
|
1324
|
-
/**
|
|
1325
|
-
* Find the last paragraph boundary (\n\n) in the buffer.
|
|
1326
|
-
* Returns the position after the boundary, or -1 if no suitable boundary
|
|
1327
|
-
* exists at or after minChars.
|
|
1328
|
-
*/
|
|
1329
|
-
findBlockBoundary(text) {
|
|
1330
|
-
const last = text.lastIndexOf("\n\n");
|
|
1331
|
-
if (last < 0 || last < this.opts.minChars)
|
|
1332
|
-
return -1;
|
|
1333
|
-
return last + 2;
|
|
1334
|
-
}
|
|
1335
|
-
/**
|
|
1336
|
-
* Find the best break point at or before maxPos.
|
|
1337
|
-
* Prefers paragraph break > newline > space > maxPos.
|
|
1338
|
-
*/
|
|
1339
|
-
findBreakPoint(text, maxPos) {
|
|
1340
|
-
const sub = text.slice(0, maxPos);
|
|
1341
|
-
const para = sub.lastIndexOf("\n\n");
|
|
1342
|
-
if (para > 0)
|
|
1343
|
-
return para + 2;
|
|
1344
|
-
const nl = sub.lastIndexOf("\n");
|
|
1345
|
-
if (nl > 0)
|
|
1346
|
-
return nl + 1;
|
|
1347
|
-
const sp = sub.lastIndexOf(" ");
|
|
1348
|
-
if (sp > 0)
|
|
1349
|
-
return sp + 1;
|
|
1350
|
-
return maxPos;
|
|
1351
|
-
}
|
|
1352
|
-
clearIdleTimer() {
|
|
1353
|
-
if (this.idleTimer !== null) {
|
|
1354
|
-
clearTimeout(this.idleTimer);
|
|
1355
|
-
this.idleTimer = null;
|
|
1356
|
-
}
|
|
1357
|
-
}
|
|
1358
|
-
};
|
|
1359
|
-
|
|
1360
1248
|
// packages/channels/base/dist/ChannelProactiveDeliveryError.js
|
|
1361
1249
|
init_esbuild_shims();
|
|
1362
1250
|
var CHANNEL_PROACTIVE_DELIVERY_ERROR_CODE = "channel_proactive_delivery_error";
|
|
@@ -4330,6 +4218,45 @@ function isRecord2(value) {
|
|
|
4330
4218
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
4331
4219
|
}
|
|
4332
4220
|
__name(isRecord2, "isRecord");
|
|
4221
|
+
var PERMISSION_COPY = {
|
|
4222
|
+
en: {
|
|
4223
|
+
toolUse: "Tool use",
|
|
4224
|
+
allowOnce: "Allow once",
|
|
4225
|
+
allowAlwaysProject: "always allow for this project",
|
|
4226
|
+
allowAlwaysUser: "always allow for this user",
|
|
4227
|
+
allowAlways: "always allow",
|
|
4228
|
+
deny: "Deny",
|
|
4229
|
+
required: "Permission required to run a tool",
|
|
4230
|
+
request: "Request:",
|
|
4231
|
+
tool: "Tool:",
|
|
4232
|
+
action: "Action:",
|
|
4233
|
+
parameters: "Parameters:",
|
|
4234
|
+
replyWith: "Reply with:"
|
|
4235
|
+
},
|
|
4236
|
+
zh: {
|
|
4237
|
+
toolUse: "\u5DE5\u5177\u8C03\u7528",
|
|
4238
|
+
allowOnce: "\u4EC5\u5141\u8BB8\u672C\u6B21",
|
|
4239
|
+
allowAlwaysProject: "\u59CB\u7EC8\u5141\u8BB8\u6B64\u9879\u76EE",
|
|
4240
|
+
allowAlwaysUser: "\u59CB\u7EC8\u5141\u8BB8\u6B64\u7528\u6237",
|
|
4241
|
+
allowAlways: "\u59CB\u7EC8\u5141\u8BB8",
|
|
4242
|
+
deny: "\u62D2\u7EDD",
|
|
4243
|
+
required: "\u8FD0\u884C\u5DE5\u5177\u9700\u8981\u6388\u6743",
|
|
4244
|
+
request: "\u8BF7\u6C42\uFF1A",
|
|
4245
|
+
tool: "\u5DE5\u5177\uFF1A",
|
|
4246
|
+
action: "\u64CD\u4F5C\uFF1A",
|
|
4247
|
+
parameters: "\u53C2\u6570\uFF1A",
|
|
4248
|
+
replyWith: "\u56DE\u590D\u4EE5\u4E0B\u547D\u4EE4\uFF1A"
|
|
4249
|
+
}
|
|
4250
|
+
};
|
|
4251
|
+
function localizedScopedAlwaysLabel(label, stockLabel, localizedLabel) {
|
|
4252
|
+
if (label === stockLabel)
|
|
4253
|
+
return localizedLabel;
|
|
4254
|
+
const scopeSeparator = ": ";
|
|
4255
|
+
if (!label.startsWith(stockLabel + scopeSeparator))
|
|
4256
|
+
return void 0;
|
|
4257
|
+
return `${localizedLabel}\uFF1A${label.slice(stockLabel.length + scopeSeparator.length)}`;
|
|
4258
|
+
}
|
|
4259
|
+
__name(localizedScopedAlwaysLabel, "localizedScopedAlwaysLabel");
|
|
4333
4260
|
var COMMAND_TOKEN_CHARS = "a-zA-Z0-9_:-";
|
|
4334
4261
|
var PARSE_COMMAND_RE = new RegExp(`^\\/([${COMMAND_TOKEN_CHARS}]+)(?:@\\S+)?\\s*(.*)`, "s");
|
|
4335
4262
|
var COMMAND_TOKEN_RE = new RegExp(`^[${COMMAND_TOKEN_CHARS}]+(?:@\\S+)?$`);
|
|
@@ -4373,6 +4300,7 @@ var ChannelBase = class {
|
|
|
4373
4300
|
proxy;
|
|
4374
4301
|
/** Adapter-owned persistent state directory, when supplied by the runtime. */
|
|
4375
4302
|
stateDir;
|
|
4303
|
+
locale;
|
|
4376
4304
|
channelMemory;
|
|
4377
4305
|
memoryIntentClassifier;
|
|
4378
4306
|
channelMemoryRecallObserver;
|
|
@@ -4706,6 +4634,10 @@ No answer is available from the current conversation context.`;
|
|
|
4706
4634
|
if (presentation && await presentation) {
|
|
4707
4635
|
return;
|
|
4708
4636
|
}
|
|
4637
|
+
const permissionPresentation = this.tryPresentPermission(pending);
|
|
4638
|
+
if (permissionPresentation && await permissionPresentation) {
|
|
4639
|
+
return;
|
|
4640
|
+
}
|
|
4709
4641
|
const text = this.formatPermissionRequest(pending);
|
|
4710
4642
|
if (target.threadId !== void 0 && this.supportsProactiveSend() && this.supportsProactiveTarget(target)) {
|
|
4711
4643
|
await this.pushProactive(target, text, pending.sourceLabel);
|
|
@@ -4786,6 +4718,103 @@ No answer is available from the current conversation context.`;
|
|
|
4786
4718
|
}
|
|
4787
4719
|
})();
|
|
4788
4720
|
}
|
|
4721
|
+
tryPresentPermission(pending) {
|
|
4722
|
+
const active = this.activePrompts.get(pending.sessionId);
|
|
4723
|
+
const toolCall = pending.request.toolCall;
|
|
4724
|
+
const meta = isRecord2(toolCall["_meta"]) ? toolCall["_meta"] : void 0;
|
|
4725
|
+
const isUserQuestion = meta?.["qwenInteractionKind"] === "user_question" || meta?.["toolName"] === "ask_user_question" || toolCall["kind"] === "ask_user_question";
|
|
4726
|
+
const decisions = this.permissionPresentationDecisions(pending);
|
|
4727
|
+
if (!active || active.loopPrompt || !active.owner || isUserQuestion || !decisions) {
|
|
4728
|
+
return void 0;
|
|
4729
|
+
}
|
|
4730
|
+
const precedingSegment = this.closeOutputSegment(pending.sessionId, active, pending.target);
|
|
4731
|
+
let respondInvoked = false;
|
|
4732
|
+
const context = {
|
|
4733
|
+
requestId: pending.requestId,
|
|
4734
|
+
sessionId: pending.sessionId,
|
|
4735
|
+
runId: active.runId,
|
|
4736
|
+
owner: active.owner,
|
|
4737
|
+
target: pending.target,
|
|
4738
|
+
...precedingSegment ? { precedingSegmentId: precedingSegment.segmentId } : {},
|
|
4739
|
+
title: this.permissionTitle(pending.request.toolCall),
|
|
4740
|
+
decisions,
|
|
4741
|
+
onSettled: /* @__PURE__ */ __name((listener) => {
|
|
4742
|
+
if (pending.settled) {
|
|
4743
|
+
listener(pending.settled);
|
|
4744
|
+
return () => {
|
|
4745
|
+
};
|
|
4746
|
+
}
|
|
4747
|
+
pending.settlementListeners.add(listener);
|
|
4748
|
+
return () => {
|
|
4749
|
+
pending.settlementListeners.delete(listener);
|
|
4750
|
+
};
|
|
4751
|
+
}, "onSettled"),
|
|
4752
|
+
respond: /* @__PURE__ */ __name((decision) => {
|
|
4753
|
+
const response = this.permissionPresentationResponse(pending, decision);
|
|
4754
|
+
if (!response)
|
|
4755
|
+
return Promise.resolve(false);
|
|
4756
|
+
respondInvoked = true;
|
|
4757
|
+
return this.respondToUserInput(pending, response);
|
|
4758
|
+
}, "respond")
|
|
4759
|
+
};
|
|
4760
|
+
pending.permissionPresented = true;
|
|
4761
|
+
return (async () => {
|
|
4762
|
+
try {
|
|
4763
|
+
if (precedingSegment) {
|
|
4764
|
+
await this.notifyOutputSegmentEnd(pending.target.chatId, pending.sessionId, precedingSegment, "input_requested");
|
|
4765
|
+
}
|
|
4766
|
+
if (this.pendingPermissions.get(pending.requestId) !== pending) {
|
|
4767
|
+
return true;
|
|
4768
|
+
}
|
|
4769
|
+
const result = await this.presentPermissionRequest(context);
|
|
4770
|
+
if (this.pendingPermissions.get(pending.requestId) !== pending) {
|
|
4771
|
+
return true;
|
|
4772
|
+
}
|
|
4773
|
+
if (result.kind === "presented" || result.kind === "handled" && respondInvoked) {
|
|
4774
|
+
return true;
|
|
4775
|
+
}
|
|
4776
|
+
pending.permissionPresented = false;
|
|
4777
|
+
return false;
|
|
4778
|
+
} catch (err) {
|
|
4779
|
+
process.stderr.write(`[${this.name}] permission presentation failed for request ${sanitizeLogText(pending.requestId, 128)}: ${this.lifecycleError(err)}
|
|
4780
|
+
`);
|
|
4781
|
+
if (this.pendingPermissions.get(pending.requestId) !== pending) {
|
|
4782
|
+
return true;
|
|
4783
|
+
}
|
|
4784
|
+
pending.permissionPresented = false;
|
|
4785
|
+
return false;
|
|
4786
|
+
}
|
|
4787
|
+
})();
|
|
4788
|
+
}
|
|
4789
|
+
permissionPresentationDecisions(pending) {
|
|
4790
|
+
const allowOnce = this.approvalOption(pending);
|
|
4791
|
+
if (!allowOnce)
|
|
4792
|
+
return void 0;
|
|
4793
|
+
const copy = PERMISSION_COPY[this.locale];
|
|
4794
|
+
const allowAlways = this.approvalAlwaysOption(pending);
|
|
4795
|
+
return [
|
|
4796
|
+
{
|
|
4797
|
+
kind: "allow_once",
|
|
4798
|
+
label: sanitizeQuotedText(this.permissionOptionLabel(allowOnce, copy.allowOnce), 80)
|
|
4799
|
+
},
|
|
4800
|
+
...allowAlways ? [
|
|
4801
|
+
{
|
|
4802
|
+
kind: "allow_always",
|
|
4803
|
+
label: sanitizeQuotedText(allowAlways.label, 80)
|
|
4804
|
+
}
|
|
4805
|
+
] : [],
|
|
4806
|
+
{
|
|
4807
|
+
kind: "deny",
|
|
4808
|
+
label: sanitizeQuotedText(this.permissionOptionLabel(this.denialOption(pending), copy.deny), 80)
|
|
4809
|
+
}
|
|
4810
|
+
];
|
|
4811
|
+
}
|
|
4812
|
+
permissionPresentationResponse(pending, decision) {
|
|
4813
|
+
if (decision === "deny")
|
|
4814
|
+
return this.denialResponse(pending);
|
|
4815
|
+
const optionId = decision === "allow_once" ? this.approvalOptionId(pending) : this.approvalAlwaysOption(pending)?.optionId;
|
|
4816
|
+
return optionId ? { outcome: { outcome: "selected", optionId } } : void 0;
|
|
4817
|
+
}
|
|
4789
4818
|
normalizeUserQuestions(pending) {
|
|
4790
4819
|
const toolCall = pending.request.toolCall;
|
|
4791
4820
|
const meta = isRecord2(toolCall["_meta"]) ? toolCall["_meta"] : void 0;
|
|
@@ -4830,7 +4859,8 @@ No answer is available from the current conversation context.`;
|
|
|
4830
4859
|
}
|
|
4831
4860
|
async respondToUserInput(pending, response) {
|
|
4832
4861
|
if (pending.responsePromise) {
|
|
4833
|
-
|
|
4862
|
+
await pending.responsePromise;
|
|
4863
|
+
return false;
|
|
4834
4864
|
}
|
|
4835
4865
|
if (this.pendingPermissions.get(pending.requestId) !== pending || !this.bridge.respondToPermission) {
|
|
4836
4866
|
return false;
|
|
@@ -4883,6 +4913,7 @@ No answer is available from the current conversation context.`;
|
|
|
4883
4913
|
this.config = config;
|
|
4884
4914
|
this.messagePrefix = config.messagePrefix?.trim() || void 0;
|
|
4885
4915
|
this.bridge = bridge;
|
|
4916
|
+
this.locale = options?.locale ?? "en";
|
|
4886
4917
|
this.proxy = options?.proxy;
|
|
4887
4918
|
this.stateDir = options?.stateDir;
|
|
4888
4919
|
this.identity = Object.freeze(this.resolveIdentity(name, config));
|
|
@@ -4945,6 +4976,9 @@ No answer is available from the current conversation context.`;
|
|
|
4945
4976
|
async presentUserInputRequest(_context) {
|
|
4946
4977
|
return { kind: "unsupported" };
|
|
4947
4978
|
}
|
|
4979
|
+
async presentPermissionRequest(_context) {
|
|
4980
|
+
return { kind: "unsupported" };
|
|
4981
|
+
}
|
|
4948
4982
|
emitTaskLifecycle(event) {
|
|
4949
4983
|
try {
|
|
4950
4984
|
const result = this.onTaskLifecycle(event);
|
|
@@ -5837,7 +5871,6 @@ ${promptText}` : promptText;
|
|
|
5837
5871
|
return false;
|
|
5838
5872
|
}
|
|
5839
5873
|
active.cancelled = true;
|
|
5840
|
-
this.stopActiveStreaming(active, sessionId, reason);
|
|
5841
5874
|
this.dropCollectBuffer(sessionId);
|
|
5842
5875
|
this.removePendingPermissionsForSession(sessionId, "run_cancelled");
|
|
5843
5876
|
this.emitTaskCancellation(active, sessionId, reason);
|
|
@@ -6144,14 +6177,15 @@ ${promptText}` : promptText;
|
|
|
6144
6177
|
return { kind: "found", pending: matching[0] };
|
|
6145
6178
|
}
|
|
6146
6179
|
canEnvelopeAnswerPendingPermission(envelope, pending) {
|
|
6147
|
-
return pending.target.chatId === envelope.chatId && pending.target.threadId === envelope.threadId && (!pending.userInputPresented || pending.target.senderId === envelope.senderId) && (this.isSharedSessionTarget(pending.target) || pending.target.senderId === envelope.senderId);
|
|
6180
|
+
return pending.target.chatId === envelope.chatId && pending.target.threadId === envelope.threadId && (!pending.userInputPresented && !pending.permissionPresented || pending.target.senderId === envelope.senderId) && (this.isSharedSessionTarget(pending.target) || pending.target.senderId === envelope.senderId);
|
|
6148
6181
|
}
|
|
6149
6182
|
formatPermissionRequest(pending) {
|
|
6150
6183
|
const { toolCall } = pending.request;
|
|
6184
|
+
const copy = PERMISSION_COPY[this.locale];
|
|
6151
6185
|
const parameters = this.permissionParameterSummary(toolCall);
|
|
6152
|
-
const approveLabel = this.permissionOptionLabel(this.approvalOption(pending),
|
|
6186
|
+
const approveLabel = this.permissionOptionLabel(this.approvalOption(pending), copy.allowOnce.toLocaleLowerCase(this.locale));
|
|
6153
6187
|
const alwaysOption = this.approvalAlwaysOption(pending);
|
|
6154
|
-
const denyLabel = this.permissionOptionLabel(this.denialOption(pending),
|
|
6188
|
+
const denyLabel = this.permissionOptionLabel(this.denialOption(pending), copy.deny.toLocaleLowerCase(this.locale));
|
|
6155
6189
|
const requestSuffix = pending.taskName ? ` ${pending.requestId}` : "";
|
|
6156
6190
|
const replyPadding = pending.taskName ? { approve: " ", always: " ", deny: " " } : { approve: " ", always: " ", deny: " " };
|
|
6157
6191
|
const replies = [
|
|
@@ -6162,14 +6196,14 @@ ${promptText}` : promptText;
|
|
|
6162
6196
|
`${this.prefixedCommand(`/deny${requestSuffix}`)}${replyPadding.deny}${denyLabel}`
|
|
6163
6197
|
];
|
|
6164
6198
|
return [
|
|
6165
|
-
|
|
6166
|
-
...pending.taskName ? [
|
|
6199
|
+
copy.required,
|
|
6200
|
+
...pending.taskName ? [`${copy.request} ${pending.requestId}`] : [],
|
|
6167
6201
|
"",
|
|
6168
|
-
|
|
6169
|
-
|
|
6170
|
-
...parameters ? [
|
|
6202
|
+
`${copy.tool} ${this.permissionToolName(toolCall)}`,
|
|
6203
|
+
`${copy.action} ${this.permissionTitle(toolCall)}`,
|
|
6204
|
+
...parameters ? [`${copy.parameters} ${parameters}`] : [],
|
|
6171
6205
|
"",
|
|
6172
|
-
|
|
6206
|
+
copy.replyWith,
|
|
6173
6207
|
...replies
|
|
6174
6208
|
].join("\n");
|
|
6175
6209
|
}
|
|
@@ -6181,7 +6215,7 @@ ${promptText}` : promptText;
|
|
|
6181
6215
|
}
|
|
6182
6216
|
permissionTitle(toolCall) {
|
|
6183
6217
|
const rawTitle = typeof toolCall.title === "string" ? toolCall.title : void 0;
|
|
6184
|
-
return sanitizeQuotedText(rawTitle || "", 160).trim() ||
|
|
6218
|
+
return sanitizeQuotedText(rawTitle || "", 160).trim() || PERMISSION_COPY[this.locale].toolUse;
|
|
6185
6219
|
}
|
|
6186
6220
|
permissionToolName(toolCall) {
|
|
6187
6221
|
const rawToolCall = toolCall;
|
|
@@ -6221,7 +6255,31 @@ ${promptText}` : promptText;
|
|
|
6221
6255
|
permissionOptionLabel(option, fallback) {
|
|
6222
6256
|
const rawLabel = typeof option?.name === "string" ? option.name : "";
|
|
6223
6257
|
const label = sanitizeQuotedText(rawLabel, 160).trim();
|
|
6224
|
-
|
|
6258
|
+
if (!label)
|
|
6259
|
+
return fallback;
|
|
6260
|
+
return this.localizedPermissionOptionLabel(option, label) ?? label;
|
|
6261
|
+
}
|
|
6262
|
+
localizedPermissionOptionLabel(option, label) {
|
|
6263
|
+
if (this.locale !== "zh")
|
|
6264
|
+
return void 0;
|
|
6265
|
+
const copy = PERMISSION_COPY[this.locale];
|
|
6266
|
+
if (option?.kind === "allow_always") {
|
|
6267
|
+
if (option.optionId === "proceed_always_project") {
|
|
6268
|
+
return localizedScopedAlwaysLabel(label, "Always Allow in project", copy.allowAlwaysProject);
|
|
6269
|
+
}
|
|
6270
|
+
if (option.optionId === "proceed_always_user") {
|
|
6271
|
+
return localizedScopedAlwaysLabel(label, "Always Allow for user", copy.allowAlwaysUser);
|
|
6272
|
+
}
|
|
6273
|
+
if (option.optionId === "proceed_always" && label === "Allow All Edits") {
|
|
6274
|
+
return copy.allowAlways;
|
|
6275
|
+
}
|
|
6276
|
+
return void 0;
|
|
6277
|
+
}
|
|
6278
|
+
if (label === "Allow" || label === "Allow once")
|
|
6279
|
+
return copy.allowOnce;
|
|
6280
|
+
if (label === "Deny" || label === "Reject")
|
|
6281
|
+
return copy.deny;
|
|
6282
|
+
return void 0;
|
|
6225
6283
|
}
|
|
6226
6284
|
approvalOption(pending) {
|
|
6227
6285
|
const options = pending.request.options;
|
|
@@ -6245,13 +6303,14 @@ ${promptText}` : promptText;
|
|
|
6245
6303
|
return options.find((option) => option.optionId === `proceed_always_${scope}`);
|
|
6246
6304
|
}
|
|
6247
6305
|
approvalAlwaysLabel(option) {
|
|
6306
|
+
const copy = PERMISSION_COPY[this.locale];
|
|
6248
6307
|
if (option.optionId === "proceed_always_project") {
|
|
6249
|
-
return
|
|
6308
|
+
return copy.allowAlwaysProject;
|
|
6250
6309
|
}
|
|
6251
6310
|
if (option.optionId === "proceed_always_user") {
|
|
6252
|
-
return
|
|
6311
|
+
return copy.allowAlwaysUser;
|
|
6253
6312
|
}
|
|
6254
|
-
return
|
|
6313
|
+
return copy.allowAlways;
|
|
6255
6314
|
}
|
|
6256
6315
|
denialResponse(pending) {
|
|
6257
6316
|
const option = this.denialOption(pending);
|
|
@@ -6317,7 +6376,7 @@ ${requestList}`);
|
|
|
6317
6376
|
}
|
|
6318
6377
|
let accepted;
|
|
6319
6378
|
try {
|
|
6320
|
-
accepted = pending.userInputPresented ? await this.respondToUserInput(pending, response) : await this.bridge.respondToPermission(pending.requestId, response);
|
|
6379
|
+
accepted = pending.userInputPresented || pending.permissionPresented ? await this.respondToUserInput(pending, response) : await this.bridge.respondToPermission(pending.requestId, response);
|
|
6321
6380
|
} catch (err) {
|
|
6322
6381
|
this.removePendingPermission(pending.requestId);
|
|
6323
6382
|
process.stderr.write(`[${this.name}] permission response failed for request ${sanitizeLogText(pending.requestId, 128)}: ${this.lifecycleError(err)}
|
|
@@ -7629,17 +7688,8 @@ ${sanitizePromptText(entry.text).trim()}` : `No channel memory entry ${intent.id
|
|
|
7629
7688
|
const active = this.activePrompts.get(sessionId);
|
|
7630
7689
|
return active?.senderName || active?.senderId || target.senderId || "agent";
|
|
7631
7690
|
}
|
|
7632
|
-
stopActiveStreaming(active, sessionId, reason) {
|
|
7633
|
-
try {
|
|
7634
|
-
active.stopStreaming?.();
|
|
7635
|
-
} catch (err) {
|
|
7636
|
-
process.stderr.write(`[${this.name}] stopStreaming threw during ${reason} for session ${sessionId}: ${err instanceof Error ? err.message : err}
|
|
7637
|
-
`);
|
|
7638
|
-
}
|
|
7639
|
-
}
|
|
7640
7691
|
/**
|
|
7641
|
-
* Cancel the active turn and wait (bounded) for it to wind down.
|
|
7642
|
-
* BlockStreamer so buffered text can't leak via the idle timer, then fires a
|
|
7692
|
+
* Cancel the active turn and wait (bounded) for it to wind down. Fires a
|
|
7643
7693
|
* best-effort cancelSession (NOT awaited — a wedged child/daemon can leave the
|
|
7644
7694
|
* request pending forever). Returns true if active.done settled first, false
|
|
7645
7695
|
* if the CLEAR_CANCEL_TIMEOUT_MS bound won (the turn never wound down). Used by
|
|
@@ -7650,7 +7700,6 @@ ${sanitizePromptText(entry.text).trim()}` : `No channel memory entry ${intent.id
|
|
|
7650
7700
|
*/
|
|
7651
7701
|
async cancelAndAwaitActive(active, sessionId) {
|
|
7652
7702
|
active.cancelled = true;
|
|
7653
|
-
this.stopActiveStreaming(active, sessionId, "cancel");
|
|
7654
7703
|
void this.bridge.cancelSession(sessionId).catch((err) => {
|
|
7655
7704
|
process.stderr.write(`[${this.name}] cancelSession failed for session=${sessionId} (clear/await): ${err instanceof Error ? err.message : err}
|
|
7656
7705
|
`);
|
|
@@ -8340,7 +8389,6 @@ ${promptText}`;
|
|
|
8340
8389
|
if (firstCancellation) {
|
|
8341
8390
|
process.stderr.write(`[${this.name}] steer: cancelled active turn for ${envelope.senderId} in session ${sessionId}
|
|
8342
8391
|
`);
|
|
8343
|
-
this.stopActiveStreaming(active, sessionId, "steer");
|
|
8344
8392
|
void this.bridge.cancelSession(sessionId).catch((err) => {
|
|
8345
8393
|
process.stderr.write(`[${this.name}] cancelSession failed for session=${sessionId} (steer): ${err instanceof Error ? err.message : err}
|
|
8346
8394
|
`);
|
|
@@ -8375,7 +8423,6 @@ ${promptText}`;
|
|
|
8375
8423
|
}
|
|
8376
8424
|
const prev = this.sessionQueues.get(sessionId) ?? Promise.resolve();
|
|
8377
8425
|
const generation = namedTurn?.generation ?? this.sessionGenerations.get(sessionId) ?? 0;
|
|
8378
|
-
const useBlockStreaming = this.config.blockStreaming === "on";
|
|
8379
8426
|
if (namedTurn) {
|
|
8380
8427
|
namedTurn.claimed = true;
|
|
8381
8428
|
} else {
|
|
@@ -8478,18 +8525,9 @@ ${promptToSend}`;
|
|
|
8478
8525
|
process.stderr.write(`[${this.name}] onPromptStart threw for session ${sessionId}: ${this.lifecycleError(err)}
|
|
8479
8526
|
`);
|
|
8480
8527
|
}
|
|
8481
|
-
const streamer = useBlockStreaming ? new BlockStreamer({
|
|
8482
|
-
minChars: this.config.blockStreamingChunk?.minChars ?? 400,
|
|
8483
|
-
maxChars: this.config.blockStreamingChunk?.maxChars ?? 1e3,
|
|
8484
|
-
idleMs: this.config.blockStreamingCoalesce?.idleMs ?? 1500,
|
|
8485
|
-
send: /* @__PURE__ */ __name((text) => this.sendResponseMessage(envelope.chatId, text, sessionId, sourceLabel), "send")
|
|
8486
|
-
}) : null;
|
|
8487
|
-
promptState.stopStreaming = () => streamer?.stop();
|
|
8488
8528
|
const heldChunks = [];
|
|
8489
|
-
let hasStreamedText = false;
|
|
8490
8529
|
const releaseHeldChunks = /* @__PURE__ */ __name(() => {
|
|
8491
8530
|
for (const held of heldChunks.splice(0)) {
|
|
8492
|
-
hasStreamedText = true;
|
|
8493
8531
|
const segment = this.ensureOutputSegment(sessionId, promptState);
|
|
8494
8532
|
this.emitTaskLifecycle({
|
|
8495
8533
|
...this.lifecycleBase(envelope.chatId, sessionId, envelope.messageId),
|
|
@@ -8497,7 +8535,6 @@ ${promptToSend}`;
|
|
|
8497
8535
|
chunk: held
|
|
8498
8536
|
});
|
|
8499
8537
|
this.onResponseChunk(envelope.chatId, held, sessionId, segment);
|
|
8500
|
-
streamer?.push(held);
|
|
8501
8538
|
}
|
|
8502
8539
|
}, "releaseHeldChunks");
|
|
8503
8540
|
const onChunk = /* @__PURE__ */ __name((sid, chunk) => {
|
|
@@ -8514,10 +8551,8 @@ ${promptToSend}`;
|
|
|
8514
8551
|
return;
|
|
8515
8552
|
}
|
|
8516
8553
|
heldChunks.length = 0;
|
|
8517
|
-
hasStreamedText = false;
|
|
8518
8554
|
const segment = this.closeOutputSegment(sessionId, promptState);
|
|
8519
8555
|
void this.notifyOutputSegmentEnd(envelope.chatId, sessionId, segment, "response_boundary");
|
|
8520
|
-
streamer?.stop();
|
|
8521
8556
|
}, "onResponseBoundary");
|
|
8522
8557
|
await this.waitForBridgeRecovery();
|
|
8523
8558
|
const promptBridge = this.bridge;
|
|
@@ -8536,17 +8571,10 @@ ${promptToSend}`;
|
|
|
8536
8571
|
}
|
|
8537
8572
|
if (!promptState.cancelled && response) {
|
|
8538
8573
|
promptState.deliveryStarted = true;
|
|
8539
|
-
|
|
8540
|
-
|
|
8541
|
-
|
|
8542
|
-
|
|
8543
|
-
await streamer.flush();
|
|
8544
|
-
} else {
|
|
8545
|
-
const segment = this.ensureOutputSegment(sessionId, promptState);
|
|
8546
|
-
await this.onResponseComplete(envelope.chatId, response, sessionId, segment);
|
|
8547
|
-
if (segment && promptState.activeSegmentId === segment.segmentId) {
|
|
8548
|
-
promptState.activeSegmentId = void 0;
|
|
8549
|
-
}
|
|
8574
|
+
const segment = this.ensureOutputSegment(sessionId, promptState);
|
|
8575
|
+
await this.onResponseComplete(envelope.chatId, response, sessionId, segment);
|
|
8576
|
+
if (segment && promptState.activeSegmentId === segment.segmentId) {
|
|
8577
|
+
promptState.activeSegmentId = void 0;
|
|
8550
8578
|
}
|
|
8551
8579
|
}
|
|
8552
8580
|
if (!promptState.deliveryStarted) {
|
|
@@ -8591,10 +8619,6 @@ ${promptToSend}`;
|
|
|
8591
8619
|
} finally {
|
|
8592
8620
|
promptBridge.off("textChunk", onChunk);
|
|
8593
8621
|
promptBridge.off("responseBoundary", onResponseBoundary);
|
|
8594
|
-
if (streamer) {
|
|
8595
|
-
streamer.stop();
|
|
8596
|
-
await streamer.drain();
|
|
8597
|
-
}
|
|
8598
8622
|
const stillCurrent = this.activePrompts.get(sessionId) === promptState;
|
|
8599
8623
|
if (!promptState.clearEvicted) {
|
|
8600
8624
|
try {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import {
|
|
4
4
|
buildModelReasoningConfigPreview,
|
|
5
5
|
resolvePersistedReasoningConfigState
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZN5TKAVR.js";
|
|
7
7
|
import {
|
|
8
8
|
ACP_ROUTE_ID_PREFIX,
|
|
9
9
|
buildAcpModelOptions,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
parseAcpBaseModelId,
|
|
13
13
|
resolveCliGenerationConfig,
|
|
14
14
|
sanitizeProviderBaseUrl
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-7LTCFO6T.js";
|
|
16
16
|
import {
|
|
17
17
|
snapshotProcessEnv
|
|
18
18
|
} from "./chunk-6RZX2HIH.js";
|
|
@@ -21,10 +21,10 @@ import {
|
|
|
21
21
|
} from "./chunk-FETY36NQ.js";
|
|
22
22
|
import {
|
|
23
23
|
loadSettings
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-WBU2PIZ5.js";
|
|
25
25
|
import {
|
|
26
26
|
ModelsConfig
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-HJ5UJQQL.js";
|
|
28
28
|
import {
|
|
29
29
|
APPROVAL_MODES
|
|
30
30
|
} from "./chunk-JX6XHPTX.js";
|
|
@@ -121,19 +121,25 @@ function buildWorkspaceProvidersStatus(workspaceCwd, acpChannelLive, options) {
|
|
|
121
121
|
providers.set(authType, provider);
|
|
122
122
|
}
|
|
123
123
|
const isCurrent = currentAuth === model.authType && currentAcpModelId === modelId;
|
|
124
|
+
const resolved = modelId.startsWith(ACP_ROUTE_ID_PREFIX) ? void 0 : modelsConfig.getResolvedModel(
|
|
125
|
+
model.authType,
|
|
126
|
+
model.id,
|
|
127
|
+
model.registryBaseUrl ?? model.baseUrl
|
|
128
|
+
);
|
|
124
129
|
const configOptions = modelId.startsWith(ACP_ROUTE_ID_PREFIX) ? void 0 : buildModelReasoningConfigPreview(
|
|
125
130
|
model.id,
|
|
126
131
|
resolvePersistedReasoningConfigState(
|
|
127
132
|
model.id,
|
|
128
133
|
settings.model?.reasoningEffort,
|
|
129
|
-
|
|
130
|
-
model.authType,
|
|
131
|
-
model.id,
|
|
132
|
-
model.registryBaseUrl ?? model.baseUrl
|
|
133
|
-
)?.generationConfig.thinkingMandatory === true,
|
|
134
|
+
resolved?.generationConfig.thinkingMandatory === true,
|
|
134
135
|
model.capabilities?.reasoning
|
|
135
136
|
),
|
|
136
|
-
model.capabilities?.reasoning
|
|
137
|
+
model.capabilities?.reasoning,
|
|
138
|
+
resolved ? {
|
|
139
|
+
...resolved.generationConfig,
|
|
140
|
+
model: model.id,
|
|
141
|
+
baseUrl: resolved.baseUrl
|
|
142
|
+
} : void 0
|
|
137
143
|
);
|
|
138
144
|
const providerModel = {
|
|
139
145
|
modelId,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
formatDuration
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-22GORRNY.js";
|
|
6
6
|
import {
|
|
7
7
|
theme
|
|
8
8
|
} from "./chunk-4LIPOIXS.js";
|
|
@@ -36,18 +36,18 @@ import {
|
|
|
36
36
|
} from "./chunk-CRZBDVP2.js";
|
|
37
37
|
import {
|
|
38
38
|
isGoalCheckpointBookkeepingRecord
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-GOEVQADN.js";
|
|
40
40
|
import {
|
|
41
41
|
GoalPersistenceUnavailableError,
|
|
42
42
|
getToolResponseDisplayText,
|
|
43
43
|
parseGoalStateRecordPayloadV2
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-HJ5UJQQL.js";
|
|
45
45
|
import {
|
|
46
46
|
stripAnsi
|
|
47
47
|
} from "./chunk-TWPJO254.js";
|
|
48
48
|
import {
|
|
49
49
|
projectUserTranscriptForDisplay
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-GSFV5RQW.js";
|
|
51
51
|
import {
|
|
52
52
|
ToolDisplayNames
|
|
53
53
|
} from "./chunk-MWIO7MF6.js";
|
|
@@ -2419,6 +2419,19 @@ var ICON = {
|
|
|
2419
2419
|
CHECK: `\u2713${_VS15}`,
|
|
2420
2420
|
CROSS: `\u2716${_VS15}`
|
|
2421
2421
|
};
|
|
2422
|
+
var SPINNER_FRAMES = [
|
|
2423
|
+
"\u280B",
|
|
2424
|
+
"\u2819",
|
|
2425
|
+
"\u2839",
|
|
2426
|
+
"\u2838",
|
|
2427
|
+
"\u283C",
|
|
2428
|
+
"\u2834",
|
|
2429
|
+
"\u2826",
|
|
2430
|
+
"\u2827",
|
|
2431
|
+
"\u2807",
|
|
2432
|
+
"\u280F"
|
|
2433
|
+
];
|
|
2434
|
+
var SPINNER_INTERVAL_MS = 80;
|
|
2422
2435
|
|
|
2423
2436
|
// packages/cli/src/ui/components/shared/ToolStatusIndicator.tsx
|
|
2424
2437
|
init_esbuild_shims();
|
|
@@ -3493,6 +3506,8 @@ export {
|
|
|
3493
3506
|
SHELL_COMMAND_NAME,
|
|
3494
3507
|
SHELL_NAME,
|
|
3495
3508
|
ICON,
|
|
3509
|
+
SPINNER_FRAMES,
|
|
3510
|
+
SPINNER_INTERVAL_MS,
|
|
3496
3511
|
wrapAnsi,
|
|
3497
3512
|
SCREEN_READER_USER_PREFIX,
|
|
3498
3513
|
SCREEN_READER_MODEL_PREFIX,
|