@qwen-code/qwen-code 0.21.6-preview.0 → 0.21.7
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/settings.md +19 -9
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
- package/bundled/qc-helper/docs/features/channels/github.md +31 -19
- package/bundled/qc-helper/docs/features/code-review.md +30 -1
- package/bundled/qc-helper/docs/qwen-serve.md +1 -1
- package/bundled/review/SKILL.md +59 -22
- package/chunks/{MaxSizedBox-A3UYJS6B.js → MaxSizedBox-ANWZBPTS.js} +38 -38
- package/chunks/{StandaloneSessionPicker-NGLY26I4.js → StandaloneSessionPicker-XKS3VU3A.js} +56 -55
- package/chunks/{acp-startup-profiler-3RICG2YW.js → acp-startup-profiler-ORIQ2CCQ.js} +2 -2
- package/chunks/{acpAgent-V54T2EEL.js → acpAgent-KUAZ3GCZ.js} +1091 -150
- package/chunks/{agent-2P53VL2L.js → agent-T6PTGX5R.js} +35 -35
- package/chunks/{agent-headless-6X4GCFRD.js → agent-headless-PR7YCB7S.js} +35 -35
- package/chunks/{anthropicContentGenerator-3CAHEZBM.js → anthropicContentGenerator-DTMVEL5M.js} +7 -7
- package/chunks/{artifact-tool-RROCCJDA.js → artifact-tool-U4VOZIK5.js} +2 -2
- package/chunks/{askUserQuestion-2EPPBPUZ.js → askUserQuestion-XOBQLPFA.js} +2 -2
- package/chunks/{bridge-TCFMLKHR.js → bridge-NU6YEEHK.js} +41 -41
- package/chunks/{channel-management-service-5XPPTWUQ.js → channel-management-service-FSQ7SHYI.js} +1 -1
- package/chunks/{channel-settings-store-B4HNMNQV.js → channel-settings-store-35VQVUVV.js} +42 -42
- package/chunks/{channel-worker-group-SVGPDH2C.js → channel-worker-group-JWQK224X.js} +5 -5
- package/chunks/{channel-worker-manager-72ZK2GTS.js → channel-worker-manager-77E3OXRQ.js} +5 -5
- package/chunks/{channel-worker-supervisor-NUEDVHX4.js → channel-worker-supervisor-62YWUGP2.js} +3 -3
- package/chunks/{chunk-XC656O42.js → chunk-22NBYCPD.js} +3 -3
- package/chunks/{chunk-WXS647W5.js → chunk-23RZCH76.js} +3 -3
- package/chunks/{chunk-O656RSMC.js → chunk-2U3WZGZG.js} +18 -10
- package/chunks/chunk-2VSTGY6M.js +107 -0
- package/chunks/{chunk-AU3XNTMV.js → chunk-33ACCIIY.js} +3 -3
- package/chunks/{chunk-MBEMTXQT.js → chunk-3K7FH2KQ.js} +1 -32
- package/chunks/{chunk-CJBRIJ7W.js → chunk-3NB7TSE2.js} +3 -3
- package/chunks/{chunk-QYPT3QUD.js → chunk-3ULCB3NE.js} +3 -3
- package/chunks/{chunk-7FUVSN4D.js → chunk-55LYDVPU.js} +1 -1
- package/chunks/{chunk-3ZRS2XNY.js → chunk-5KH532V7.js} +1 -1
- package/chunks/{chunk-P7LKADIT.js → chunk-6EOI4HOK.js} +7 -7
- package/chunks/{chunk-X6DV3WKN.js → chunk-6GONZVLS.js} +1 -1
- package/chunks/{chunk-T4XY5CT4.js → chunk-6HVUFDS2.js} +7 -7
- package/chunks/{chunk-5L6CQ4ZU.js → chunk-6M26GBKX.js} +2 -2
- package/chunks/{chunk-SPUDIAHX.js → chunk-6UWFTUQL.js} +530 -388
- package/chunks/{chunk-EKWNNQQD.js → chunk-6XJMFJ4D.js} +16 -10
- package/chunks/{chunk-72DZPDH4.js → chunk-6XU3PH66.js} +10 -5
- package/chunks/{chunk-WIPQR44Y.js → chunk-72LNFGUY.js} +3 -3
- package/chunks/{chunk-33FNCQSY.js → chunk-7MH4J33A.js} +2 -2
- package/chunks/{chunk-2AGOQ7QO.js → chunk-7UFKAV7Y.js} +118 -6
- package/chunks/{chunk-HKNSU4WX.js → chunk-AE77C5ZU.js} +198 -35
- package/chunks/{chunk-JELIWHXD.js → chunk-AOHJKPKL.js} +1 -1
- package/chunks/{chunk-GLNBDYUX.js → chunk-AXMWHKXA.js} +6 -2
- package/chunks/{chunk-H36SETQS.js → chunk-B2GJNDTV.js} +1 -1
- package/chunks/{chunk-QMBEW7EW.js → chunk-BGG4MBYD.js} +2 -2
- package/chunks/{chunk-QL4TN4HS.js → chunk-BRVWYMKV.js} +1 -1
- package/chunks/{chunk-6WBWIPBF.js → chunk-BVWVWGLE.js} +2 -2
- package/chunks/{chunk-WPKIU4PA.js → chunk-CB2464BK.js} +6 -6
- package/chunks/{chunk-2UISUFHQ.js → chunk-CJXIIILK.js} +3 -3
- package/chunks/{chunk-WK4TJUEA.js → chunk-CKASRHZI.js} +1 -1
- package/chunks/{chunk-Z7JILXGX.js → chunk-CNIID3TV.js} +3 -3
- package/chunks/{chunk-6KEN3RIC.js → chunk-CSZEXZBE.js} +3 -3
- package/chunks/{chunk-KKN2IE7Q.js → chunk-CTJLZLB5.js} +1 -1
- package/chunks/{chunk-5CDI4UOY.js → chunk-CXE7E23H.js} +131 -48
- package/chunks/{chunk-URJHXOSO.js → chunk-CYR3HI5X.js} +3 -3
- package/chunks/{chunk-546CDN6D.js → chunk-DBOFL3LQ.js} +3 -3
- package/chunks/{chunk-4LKVQFHM.js → chunk-DREZZAZM.js} +2 -2
- package/chunks/{chunk-2U7GPHA6.js → chunk-E33LOKRA.js} +1 -1
- package/chunks/{chunk-2DNKEBXY.js → chunk-EI3HZX6C.js} +1 -1
- package/chunks/{chunk-U25CMJYY.js → chunk-EKPKKXY2.js} +1 -1
- package/chunks/{chunk-QG2ACINA.js → chunk-EORNAQDT.js} +1 -1
- package/chunks/{chunk-432XCUHF.js → chunk-EQL65XGA.js} +1 -1
- package/chunks/{chunk-TYERNYH4.js → chunk-EUNWC2VS.js} +2 -2
- package/chunks/{chunk-CDHNGCJI.js → chunk-EUQTXRKZ.js} +7 -7
- package/chunks/{chunk-UH7Z7Y45.js → chunk-FOGU3LJX.js} +1 -1
- package/chunks/{chunk-BU4BRCPX.js → chunk-FPM27XN4.js} +5 -5
- package/chunks/{chunk-E4WHKETF.js → chunk-FVKHVJZQ.js} +2 -49
- package/chunks/{chunk-NKST54XA.js → chunk-FZBZSYKU.js} +1 -1
- package/chunks/{chunk-XZCMQUOF.js → chunk-GDXET5XU.js} +31 -3387
- package/chunks/{chunk-A5YZ3FA2.js → chunk-GM463R2B.js} +1 -1
- package/chunks/{chunk-MOHAWIAW.js → chunk-GNPNYXJB.js} +2 -2
- package/chunks/{chunk-AFZTZLFB.js → chunk-GSS34377.js} +3 -3
- package/chunks/{chunk-MVLM6PJK.js → chunk-H2UQ2M5Z.js} +6 -2
- package/chunks/{chunk-BK2UNYWD.js → chunk-HIBNSEJE.js} +12 -0
- package/chunks/{chunk-CXYBX4AL.js → chunk-HQB2KUAN.js} +1 -1
- package/chunks/{chunk-ZQL73PPE.js → chunk-HYRDKNUY.js} +2 -2
- package/chunks/{chunk-D7D7RXIJ.js → chunk-IC4Z6LX6.js} +1 -1
- package/chunks/{chunk-HU5TUALO.js → chunk-IIJEYBNH.js} +3 -3
- package/chunks/{chunk-DTAPI453.js → chunk-IUFV6FYU.js} +2 -2
- package/chunks/{chunk-MISUEWB4.js → chunk-J6SZID63.js} +12 -8
- package/chunks/{chunk-OWAK7LMW.js → chunk-KGJGEEVR.js} +7 -0
- package/chunks/{chunk-BFHXDAR7.js → chunk-KKBPOU75.js} +1 -1
- package/chunks/{chunk-XOZ2R6XI.js → chunk-KKJJB5X6.js} +3578 -1487
- package/chunks/{chunk-PQTK2FVO.js → chunk-KR4ZSC7K.js} +4 -4
- package/chunks/{chunk-NAYPZ72V.js → chunk-KXSDEOFU.js} +1 -1
- package/chunks/{chunk-MGSSJT27.js → chunk-L4N6TIP7.js} +5 -3
- package/chunks/{chunk-4T6QMNX2.js → chunk-LA7YLSR6.js} +185 -12
- package/chunks/{chunk-4E5PO6R7.js → chunk-LEMXGVEP.js} +4 -4
- package/chunks/{chunk-WVAESIM6.js → chunk-LZC3B5N2.js} +4 -4
- package/chunks/{chunk-6O5DVH27.js → chunk-M6HMMKVG.js} +1 -1
- package/chunks/{chunk-Z5S6KH2B.js → chunk-MAJS7AT4.js} +6 -6
- package/chunks/{chunk-XNZBXQCG.js → chunk-MKVZE4ZJ.js} +1 -1
- package/chunks/{chunk-I7JDGNG6.js → chunk-MVUQRLOH.js} +9 -5
- package/chunks/{chunk-GLWP3FDB.js → chunk-MZSJ43WV.js} +31 -2
- package/chunks/{chunk-ZPPP6VCL.js → chunk-NG2R4N5O.js} +1 -1
- package/chunks/chunk-NKLP3DCK.js +22 -0
- package/chunks/{chunk-WIRAPZ62.js → chunk-NLREQJFK.js} +7 -1
- package/chunks/{chunk-N47ZM2KI.js → chunk-OFI7IGST.js} +12 -12
- package/chunks/{chunk-DBIEZC7T.js → chunk-OH2VKQXH.js} +42 -16
- package/chunks/{chunk-C4GRKMUL.js → chunk-OHJLEW5J.js} +5 -5
- package/chunks/{chunk-3RXUYQJI.js → chunk-OIVKILPI.js} +49 -0
- package/chunks/{chunk-VDLXPEI5.js → chunk-OMKQH5C5.js} +3 -3
- package/chunks/{chunk-LBWNSLJK.js → chunk-ONSZH6VM.js} +2 -2
- package/chunks/{chunk-DYA25Y7U.js → chunk-OWMAZHIX.js} +1 -1
- package/chunks/{chunk-WAOLM6SQ.js → chunk-P2AJ7FTI.js} +1 -1
- package/chunks/{chunk-MFBUJMQ3.js → chunk-P3LEG54R.js} +4 -4
- package/chunks/{chunk-WVRJKSIG.js → chunk-PJOBIWUG.js} +1 -1
- package/chunks/{chunk-YUVTZ4UH.js → chunk-PQBHU2IA.js} +114 -18
- package/chunks/{chunk-GTM6IHBB.js → chunk-Q3JQ7OSU.js} +2 -1
- package/chunks/{chunk-IISDPZ5X.js → chunk-QETYKPMG.js} +1 -1
- package/chunks/{chunk-UKZEXS6K.js → chunk-R574ATRM.js} +11 -0
- package/chunks/{chunk-DOICUTPO.js → chunk-RERATVSK.js} +11 -10
- package/chunks/chunk-RGSBTHSU.js +3381 -0
- package/chunks/{chunk-6D6V55ZQ.js → chunk-RMH5OWLD.js} +1 -1
- package/chunks/{chunk-AVDEBBMI.js → chunk-RNVQB725.js} +2 -2
- package/chunks/{chunk-QWUYFMAR.js → chunk-RUL4S3K3.js} +87 -67
- package/chunks/{chunk-RTWF7FF7.js → chunk-RZHU3ILK.js} +5 -5
- package/chunks/{chunk-3DTM3RPU.js → chunk-S7CV4KO6.js} +3 -3
- package/chunks/{chunk-ZH7G3A4U.js → chunk-SCI7K3GM.js} +4 -4
- package/chunks/{chunk-YAVY33G4.js → chunk-SEZ556DZ.js} +1 -1
- package/chunks/{chunk-6KZP75GT.js → chunk-SHZYHGQH.js} +1 -1
- package/chunks/chunk-SOORFWKY.js +155 -0
- package/chunks/{chunk-NYZAL2W2.js → chunk-SPMY6CX6.js} +4 -4
- package/chunks/{chunk-EHMN6SEG.js → chunk-TDXGKHDN.js} +4 -4
- package/chunks/{chunk-XKTCA6BW.js → chunk-TLV2IMHR.js} +5 -5
- package/chunks/{chunk-XSGQKR37.js → chunk-TRLYP7OF.js} +358 -20
- package/chunks/{chunk-DG563ZCS.js → chunk-TYKC75AX.js} +3 -3
- package/chunks/{chunk-KVUBYJDM.js → chunk-TZEZYNYD.js} +1 -1
- package/chunks/{chunk-XC2VAFVZ.js → chunk-UVX4Y6IN.js} +1 -1
- package/chunks/{chunk-IKXE3AAC.js → chunk-VOARQPTA.js} +2 -2
- package/chunks/{chunk-TVFC3XF5.js → chunk-W4B7UBUS.js} +7 -7
- package/chunks/{chunk-M744OFVE.js → chunk-W7U4ESW2.js} +1 -1
- package/chunks/{chunk-URN76TKR.js → chunk-WCG5O7IP.js} +2 -2
- package/chunks/{chunk-A6SX5TAH.js → chunk-XCWO3SMQ.js} +9 -5
- package/chunks/{chunk-FDV3CXTD.js → chunk-Y4EWSQF7.js} +3 -3
- package/chunks/{chunk-3PRJYMXC.js → chunk-Y4NGLFGJ.js} +1 -1
- package/chunks/{chunk-DOA7MCDY.js → chunk-Y7E5LNLO.js} +973 -892
- package/chunks/{chunk-3LGZEYOF.js → chunk-YHEEE624.js} +2 -2
- package/chunks/{chunk-Y5HIDFKZ.js → chunk-YJQCUTT2.js} +4 -4
- package/chunks/{chunk-QONSRAEV.js → chunk-YP5KH5Y7.js} +1 -1
- package/chunks/{chunk-SQ3ZJOYL.js → chunk-ZJ3VGYHK.js} +20 -20
- package/chunks/{chunk-7GYP5COR.js → chunk-ZXU5UHMI.js} +1 -1
- package/chunks/{computer-use-GTOP2CVH.js → computer-use-KEAPATUY.js} +35 -35
- package/chunks/{config-utils-LIRO7NSU.js → config-utils-K7SCOWHD.js} +2 -2
- package/chunks/{contextCommand-K6T6RRF3.js → contextCommand-ZJA6A5K5.js} +38 -38
- package/chunks/{core-runtime-D2626QQU.js → core-runtime-QMJPWHCI.js} +35 -35
- package/chunks/create-sub-session-DJE6XICH.js +772 -0
- package/chunks/{create-sub-session-6EWLAZD5.js → create-sub-session-E4PBYXV5.js} +2 -2
- package/chunks/{cron-create-CCRIULJE.js → cron-create-GRBWYMIJ.js} +4 -4
- package/chunks/{cron-delete-FCFW6BGP.js → cron-delete-4CMKBR2M.js} +4 -4
- package/chunks/{cron-list-QDBVCHRF.js → cron-list-W7K4ASOA.js} +4 -4
- package/chunks/{daemon-CCIX4BMG.js → daemon-SCTQMM7Z.js} +165 -5
- package/chunks/{daemon-status-provider-2EHRZZVF.js → daemon-status-provider-FSWDPE2G.js} +45 -45
- package/chunks/{daemon-trust-policy-B3EPDJDR.js → daemon-trust-policy-P5L5VFAY.js} +41 -41
- package/chunks/{daemon-trust-policy-monitor-MFM5X26G.js → daemon-trust-policy-monitor-73JYN6ET.js} +41 -41
- package/chunks/{deferred-core-runtime-KXN7HLN7.js → deferred-core-runtime-BWRCCFTE.js} +35 -35
- package/chunks/discovery-XLHITE74.js +220 -0
- package/chunks/{display-image-GUJA352B.js → display-image-O2XFPQTC.js} +4 -4
- package/chunks/{dist-A7H2KKUC.js → dist-K4WWQBHS.js} +277 -98
- package/chunks/{dist-IKGVITP3.js → dist-KS4O2NKE.js} +99 -6
- package/chunks/{earlyInputCapture-WUNYYFOS.js → earlyInputCapture-L5ST23A6.js} +36 -36
- package/chunks/{edit-DMFCBP2D.js → edit-LHHRFNFK.js} +35 -35
- package/chunks/{enter-worktree-5SVBCXFC.js → enter-worktree-6NXCRZPF.js} +35 -35
- package/chunks/{enterPlanMode-QUIZFQ4M.js → enterPlanMode-ZVQT4U7D.js} +35 -35
- package/chunks/{environment-U6QP23VJ.js → environment-GJ2HWJOS.js} +38 -38
- package/chunks/{errors-GZWFA6ON.js → errors-6RLH3XXC.js} +38 -38
- package/chunks/{exit-worktree-FUB44KAF.js → exit-worktree-I2YLUHHY.js} +35 -35
- package/chunks/{exitPlanMode-XSHHYR73.js → exitPlanMode-7CCWKO7I.js} +35 -35
- package/chunks/{fast-path-JHQJSIMZ.js → fast-path-DVFD4HQD.js} +2 -2
- package/chunks/{gemini-O44ETOKT.js → gemini-7FWGOYD4.js} +78 -78
- package/chunks/{geminiContentGenerator-TTM4TZJM.js → geminiContentGenerator-V2WVLIXU.js} +6 -6
- package/chunks/{glob-YECOWTRW.js → glob-3N6GGI75.js} +35 -35
- package/chunks/{goal-tools-3AZKX5WQ.js → goal-tools-APOW6UXL.js} +3 -3
- package/chunks/{grep-BZO4LOTA.js → grep-V43ILZVX.js} +35 -35
- package/chunks/{handleAutoUpdate-TOO52D6H.js → handleAutoUpdate-A5WFVWIA.js} +40 -40
- package/chunks/{i18n-ARJYXZQ5.js → i18n-PLVQ4FBZ.js} +37 -37
- package/chunks/{image-gen-J6Q2YBEU.js → image-gen-7C6IK6DC.js} +9 -9
- package/chunks/{initializer-CEZ4RPQV.js → initializer-CVAIKZYL.js} +42 -42
- package/chunks/{installationInfo-AEGIIQAT.js → installationInfo-J6QDHNTK.js} +36 -36
- package/chunks/{keychain-token-storage-7BT4TQ2A.js → keychain-token-storage-TVAMTNP7.js} +2 -2
- package/chunks/{list-7XLPV5GC.js → list-ZZ4OUUWV.js} +44 -44
- package/chunks/{list-agents-GC4BRET7.js → list-agents-KFFIIS2G.js} +2 -2
- package/chunks/{loadedSettingsAdapter-YK5SBHOT.js → loadedSettingsAdapter-QRYRJSWL.js} +41 -41
- package/chunks/{loggingContentGenerator-I7QDXS43.js → loggingContentGenerator-OJCO75HM.js} +17 -17
- package/chunks/{loop-wakeup-SQQSBMEY.js → loop-wakeup-TLMJPMMP.js} +5 -5
- package/chunks/{ls-63CC3NNX.js → ls-UVVE2XGE.js} +4 -4
- package/chunks/{lsp-P6NVJVNT.js → lsp-QMEA2VLB.js} +2 -2
- package/chunks/{managed-npm-update-YSL7PA7G.js → managed-npm-update-PCOSCP2N.js} +48 -39
- package/chunks/{mcp-RKFQZXP6.js → mcp-M3WKKWKY.js} +41 -41
- package/chunks/{monitor-QHHJIKGL.js → monitor-GN24FH6C.js} +35 -35
- package/chunks/{nonInteractiveCli-XEBIE7MG.js → nonInteractiveCli-KPTU3VSQ.js} +75 -75
- package/chunks/{notebook-edit-SG7X2EQA.js → notebook-edit-4YM65BBO.js} +35 -35
- package/chunks/{openaiContentGenerator-63CVR33K.js → openaiContentGenerator-EDQT6GTV.js} +19 -19
- package/chunks/{pidfile-I3CXJGQD.js → pidfile-JOIIRN2C.js} +36 -36
- package/chunks/{processUtils-LJ3DSANX.js → processUtils-5SV4MX3Q.js} +2 -2
- package/chunks/{qwenContentGenerator-JINBVCH6.js → qwenContentGenerator-ODRJSUGR.js} +40 -40
- package/chunks/{qwenOAuth2-SY2O3NRR.js → qwenOAuth2-NESCMZ47.js} +8 -8
- package/chunks/{read-file-PGTXF25I.js → read-file-HPSODLPK.js} +10 -10
- package/chunks/{read-mcp-resource-RTSSEER5.js → read-mcp-resource-2TNSJTC3.js} +2 -2
- package/chunks/{record-artifact-E6AWQU2Z.js → record-artifact-RAON52FC.js} +3 -3
- package/chunks/{resumeHistoryUtils-FB2NFVZ2.js → resumeHistoryUtils-TXCOFFMQ.js} +42 -41
- package/chunks/{ripGrep-IY3KGPM6.js → ripGrep-ZKQGTQAO.js} +35 -35
- package/chunks/{run-qwen-serve-UYEMGPKA.js → run-qwen-serve-ZPKPKECF.js} +516 -87
- package/chunks/{runtime-CG3BKRFE.js → runtime-2FLNNM36.js} +44 -44
- package/chunks/{scheduler-VFUVGDE5.js → scheduler-365PJHNR.js} +35 -35
- package/chunks/{sdk-exporters-http-IL2346MJ.js → sdk-exporters-http-KHAB5JSD.js} +2 -2
- package/chunks/{sdk-impl-SYKGVWOZ.js → sdk-impl-KD7FSTC3.js} +2 -2
- package/chunks/{send-message-TL6FIMMN.js → send-message-ZM7MRUGP.js} +5 -5
- package/chunks/{serve-ZCCQ2G2L.js → serve-QD2RNLKJ.js} +42 -42
- package/chunks/{server-WS7LWXPP.js → server-XLJVLTYM.js} +7952 -611
- package/chunks/{session-IQLCT32T.js → session-3VTUHH4Q.js} +78 -78
- package/chunks/{settings-NX4EUIE6.js → settings-KULVPCQC.js} +40 -40
- package/chunks/{shell-THDYM4CS.js → shell-3SWW22MH.js} +35 -35
- package/chunks/{skill-OXXZBNQB.js → skill-KDHWYS7W.js} +14 -14
- package/chunks/{skill-settings-T3JZ33T2.js → skill-settings-NMY4JEJC.js} +40 -40
- package/chunks/{spawnChannel-COLJMSA7.js → spawnChannel-ZKS4Q5OU.js} +37 -37
- package/chunks/{standalone-update-ICW7H5IF.js → standalone-update-7CXPGAQ4.js} +38 -38
- package/chunks/{startInteractiveUI-6BDRXSMF.js → startInteractiveUI-2QQLEKM6.js} +473 -233
- package/chunks/{stdioHelpers-HGIYTWAY.js → stdioHelpers-7A2EE64Z.js} +5 -3
- package/chunks/{syntheticOutput-BN7E626U.js → syntheticOutput-ZLCUTKO2.js} +3 -3
- package/chunks/{task-create-2X4UP4F3.js → task-create-CQP5UEA3.js} +9 -9
- package/chunks/{task-list-WOLJPZ64.js → task-list-XLEZOJXP.js} +5 -5
- package/chunks/{task-stop-TNXRNAL2.js → task-stop-7ZQM5CFF.js} +2 -2
- package/chunks/{task-update-VDUSN36E.js → task-update-JA75U2SN.js} +9 -9
- package/chunks/{team-create-BCSMDK4Z.js → team-create-2WTNGAOX.js} +35 -35
- package/chunks/{team-delete-D2VMSDOT.js → team-delete-MHY3UZGY.js} +5 -5
- package/chunks/{team-plan-approval-B5YRLJFV.js → team-plan-approval-LZTYLEG4.js} +35 -35
- package/chunks/{terminal-image-renderer-PW6Z6VFY.js → terminal-image-renderer-R5HHAFJN.js} +41 -36
- package/chunks/{theme-manager-CMVKD2JH.js → theme-manager-PAUCSJFF.js} +36 -36
- package/chunks/{todoWrite-MHWHO5UO.js → todoWrite-UPVOHYGD.js} +4 -4
- package/chunks/{tool-search-SQTUSG6P.js → tool-search-2BFCGLI6.js} +13 -13
- package/chunks/{total-session-admission-XAXOSE46.js → total-session-admission-MK4SINFK.js} +41 -41
- package/chunks/{trustedFolders-Z2UAEG2V.js → trustedFolders-TJ5S26N7.js} +37 -37
- package/chunks/{update-relaunch-JBLI6LJF.js → update-relaunch-N7AYLARF.js} +6 -6
- package/chunks/{updateCheck-FDAVGOFT.js → updateCheck-QRZ3DVT5.js} +39 -39
- package/chunks/{useAutoAcceptIndicator-PDZFIYRM.js → useAutoAcceptIndicator-DBJ7Y5AF.js} +44 -44
- package/chunks/{validateNonInterActiveAuth-Q4763ONQ.js → validateNonInterActiveAuth-6ZQWUDS3.js} +72 -72
- package/chunks/{version-C7MPCGWD.js → version-AJQGQWXC.js} +1 -1
- package/chunks/{web-fetch-L7RAPOJB.js → web-fetch-QWJYRXFL.js} +13 -13
- package/chunks/{web-search-IDOYUOWX.js → web-search-2AOXJGHU.js} +9 -9
- package/chunks/web-shell-static-O73YPVVC.js +33 -0
- package/chunks/{workflow-HXURUJB5.js → workflow-ERH3SJG2.js} +36 -36
- package/chunks/{workspace-providers-status-JZ3GPWNU.js → workspace-providers-status-HZ474RA4.js} +44 -44
- package/chunks/{workspace-registration-store-SM2PWB6L.js → workspace-registration-store-6EUP4JXG.js} +1 -1
- package/chunks/{workspace-registry-6W4ES7BJ.js → workspace-registry-R4APRRNC.js} +41 -41
- package/chunks/{workspace-service-V47ZFJRX.js → workspace-service-HFIFDMU7.js} +46 -46
- package/chunks/{workspace-skills-status-6ZQ45XKA.js → workspace-skills-status-HAHEIHGK.js} +42 -42
- package/chunks/{workspace-trust-reconciler-6V25LMCN.js → workspace-trust-reconciler-65GTAGDK.js} +50 -50
- package/chunks/{write-file-H2QOF25K.js → write-file-B34CDELV.js} +35 -35
- package/chunks/{zoom-image-JTUSS43N.js → zoom-image-HPRBZHSS.js} +10 -10
- package/cli.js +15 -15
- package/package.json +3 -3
- package/web-shell/assets/{arc-DtI1rZcQ.js → arc-Ip-FFDJ0.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BPZwSVct.js → architectureDiagram-3BPJPVTR-CChqgwIb.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BIQ03j4C.js → blockDiagram-GPEHLZMM-BHN-Tfss.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-CB0RyFGm.js → c4Diagram-AAUBKEIU-BhyjzDjN.js} +1 -1
- package/web-shell/assets/channel-Cu8qd6OB.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-B3WoS-4H.js → chunk-2J33WTMH-BB9eyHrx.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-C98xYZ1X.js → chunk-4BX2VUAB-BeV7ce_J.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-CbTIWRwQ.js → chunk-55IACEB6-DO7kXDiV.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DWGnKTPu.js → chunk-727SXJPM-B27MPznD.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-4__QyCEX.js → chunk-AQP2D5EJ-DHIjqjD_.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DFtG1YCW.js → chunk-FMBD7UC4-DabMqyN2.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-rvAhW51N.js → chunk-ND2GUHAM-Dw7Nnnxc.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-DfiU9pwZ.js → chunk-QZHKN3VN-DdaZew1Q.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-Cc4EIdxu.js → cose-bilkent-S5V4N54A-CgBpCYH5.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-CZNj4dGW.js → dagre-BM42HDAG-BB4IU8G0.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-D5tiqQCr.js → diagram-2AECGRRQ-BcUTHU37.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-pwzw0jVO.js → diagram-5GNKFQAL-B6Lyihyv.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-4CWiM00x.js → diagram-KO2AKTUF-CRIJOjpG.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Dd7rc7Qf.js → diagram-LMA3HP47-DdNiwWWT.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-_vzV52ml.js → diagram-OG6HWLK6-Dz4b32Do.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CqbE2bx_.js → erDiagram-TEJ5UH35-D-8NGw77.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CaxNr7w4.js → flowDiagram-I6XJVG4X-Dun26LyM.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-AGjrtfUA.js → ganttDiagram-6RSMTGT7-F10Hu1Gc.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-ADG2zSkc.js → gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js} +1 -1
- package/web-shell/assets/{index-BOryKCqt.js → index-BXqw-nGq.js} +1 -1
- package/web-shell/assets/index-QQlUCJGg.css +5 -0
- package/web-shell/assets/index-hcgjV7vS.js +1768 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CE3B_IoZ.js → infoDiagram-5YYISTIA-DVgTMLvj.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CN-Frhoi.js → ishikawaDiagram-YF4QCWOH-uT-KepvK.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CGgezS93.js → journeyDiagram-JHISSGLW-Vg_XadQf.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BqWijky5.js → kanban-definition-UN3LZRKU-Dyv1ESBE.js} +1 -1
- package/web-shell/assets/{linear-D8sfpZf6.js → linear-BMIepYX3.js} +1 -1
- package/web-shell/assets/{mermaid.core-3PA4QrzM.js → mermaid.core-zA8pJ9ag.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D9QxwiCY.js → mindmap-definition-RKZ34NQL-BCW_BZ_5.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-Bioaf6uE.js → pieDiagram-4H26LBE5-DseNEGp2.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DBb2AS73.js → quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-DXOvZ3KB.js → requirementDiagram-4Y6WPE33-CVOlCRPf.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-D9qg09Dm.js → sankeyDiagram-5OEKKPKP-CGhgrUJZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DSAUIfpw.js → sequenceDiagram-3UESZ5HK-dlqmpLuQ.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-BPZkzfQ3.js → stateDiagram-AJRCARHV-B9EW10Xb.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-UDaQp9sP.js → timeline-definition-PNZ67QCA-BBRh0mgZ.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-2ouhAnHO.js → vennDiagram-CIIHVFJN-B8Gs-REP.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-Cq_WEvTK.js → wardley-L42UT6IY-D_y80Ur7.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Dt24aXOM.js → wardleyDiagram-YWT4CUSO-D-CNfHJ-.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-A5Xk2WCH.js → xychartDiagram-2RQKCTM6-DQ5CvELo.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/create-sub-session-MWUWNBM6.js +0 -401
- package/web-shell/assets/channel-vfbVFuM1.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cvr8atq3.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvr8atq3.js +0 -1
- package/web-shell/assets/index-Cb1LjsCv.css +0 -5
- package/web-shell/assets/index-CvJDaIy8.js +0 -1756
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DInOqnhZ.js +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
formatHistoryGapNotice
|
|
5
|
+
} from "./chunk-KXSDEOFU.js";
|
|
3
6
|
import {
|
|
4
7
|
sanitizeTerminalText
|
|
5
8
|
} from "./chunk-4NFY2S7N.js";
|
|
6
|
-
import {
|
|
7
|
-
formatHistoryGapNotice
|
|
8
|
-
} from "./chunk-NAYPZ72V.js";
|
|
9
9
|
import {
|
|
10
10
|
isGoalStatusKind,
|
|
11
11
|
isTerminalGoalStatusKind
|
|
@@ -19,22 +19,22 @@ import {
|
|
|
19
19
|
setGoalTerminalObserver,
|
|
20
20
|
setLastGoalTerminal,
|
|
21
21
|
unregisterGoalHook
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-Y7E5LNLO.js";
|
|
23
23
|
import {
|
|
24
24
|
apiActivityTracker,
|
|
25
25
|
formatVisionBridgeNoticeDisplay,
|
|
26
26
|
isVisionBridgeNoticeDisplay
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-2U3WZGZG.js";
|
|
28
28
|
import {
|
|
29
29
|
ToolNames
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-IC4Z6LX6.js";
|
|
31
31
|
import {
|
|
32
32
|
createDebugLogger
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-OIVKILPI.js";
|
|
34
34
|
import {
|
|
35
35
|
writeStderrLine,
|
|
36
36
|
writeStderrLineSafe
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-KGJGEEVR.js";
|
|
38
38
|
import {
|
|
39
39
|
init_esbuild_shims
|
|
40
40
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1094,7 +1094,13 @@ var DefaultTranscriptReplayMachine = class {
|
|
|
1094
1094
|
}), "emit");
|
|
1095
1095
|
const meta = {
|
|
1096
1096
|
timestamp: record.timestamp,
|
|
1097
|
-
sourceRecordIds: [record.uuid]
|
|
1097
|
+
sourceRecordIds: [record.uuid],
|
|
1098
|
+
...record.subtype === "realtime_message" ? {
|
|
1099
|
+
extra: {
|
|
1100
|
+
source: "realtime_voice",
|
|
1101
|
+
qwenDiscreteMessage: true
|
|
1102
|
+
}
|
|
1103
|
+
} : {}
|
|
1098
1104
|
};
|
|
1099
1105
|
const gap = this.gapByChild.get(record.uuid);
|
|
1100
1106
|
if (gap) {
|
|
@@ -2863,7 +2869,7 @@ async function extractMetadata(conversation, config) {
|
|
|
2863
2869
|
const gitBranch = firstRecord?.gitBranch;
|
|
2864
2870
|
let gitRepo;
|
|
2865
2871
|
if (cwd) {
|
|
2866
|
-
const { getGitRepoName } = await import("./deferred-core-runtime-
|
|
2872
|
+
const { getGitRepoName } = await import("./deferred-core-runtime-BWRCCFTE.js");
|
|
2867
2873
|
gitRepo = getGitRepoName(cwd);
|
|
2868
2874
|
}
|
|
2869
2875
|
let model;
|
|
@@ -10,21 +10,22 @@ import {
|
|
|
10
10
|
} from "./chunk-MR3PXB6E.js";
|
|
11
11
|
import {
|
|
12
12
|
ideContextStore
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-Y7E5LNLO.js";
|
|
14
14
|
import {
|
|
15
15
|
require_proper_lockfile
|
|
16
16
|
} from "./chunk-KRXPRVGL.js";
|
|
17
17
|
import {
|
|
18
18
|
atomicWriteFileSync
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-FOGU3LJX.js";
|
|
20
20
|
import {
|
|
21
21
|
FatalConfigError,
|
|
22
22
|
Storage,
|
|
23
|
+
createDebugLogger,
|
|
23
24
|
getErrorMessage
|
|
24
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-OIVKILPI.js";
|
|
25
26
|
import {
|
|
26
27
|
writeStderrLine
|
|
27
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-KGJGEEVR.js";
|
|
28
29
|
import {
|
|
29
30
|
init_esbuild_shims
|
|
30
31
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1845,6 +1846,7 @@ function pathsEqual(left, right) {
|
|
|
1845
1846
|
__name(pathsEqual, "pathsEqual");
|
|
1846
1847
|
|
|
1847
1848
|
// packages/cli/src/config/trustedFolders.ts
|
|
1849
|
+
var debugLogger = createDebugLogger("TRUSTED_FOLDERS");
|
|
1848
1850
|
var TRUSTED_FOLDERS_FILENAME = "trustedFolders.json";
|
|
1849
1851
|
function getTrustedFoldersPath() {
|
|
1850
1852
|
if (process.env["QWEN_CODE_TRUSTED_FOLDERS_PATH"]) {
|
|
@@ -2001,7 +2003,10 @@ function writeTrustedFolders(filePath, update) {
|
|
|
2001
2003
|
}
|
|
2002
2004
|
const release = import_proper_lockfile.default.lockSync(filePath, {
|
|
2003
2005
|
realpath: false,
|
|
2004
|
-
stale: 1e4
|
|
2006
|
+
stale: 1e4,
|
|
2007
|
+
onCompromised: /* @__PURE__ */ __name((err) => {
|
|
2008
|
+
debugLogger.warn("trusted folders lock compromised:", err);
|
|
2009
|
+
}, "onCompromised")
|
|
2005
2010
|
});
|
|
2006
2011
|
try {
|
|
2007
2012
|
let originalContent = "{}";
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
functionResponsePartsToString
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-RUL4S3K3.js";
|
|
6
6
|
import {
|
|
7
7
|
parseAndFormatApiError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-Y7E5LNLO.js";
|
|
9
9
|
import {
|
|
10
10
|
formatVisionBridgeNoticeDisplay,
|
|
11
11
|
isVisionBridgeNoticeDisplay
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2U3WZGZG.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
15
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -10,11 +10,11 @@ import {
|
|
|
10
10
|
} from "./chunk-CPBF7KYF.js";
|
|
11
11
|
import {
|
|
12
12
|
atomicWriteJSON
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-FOGU3LJX.js";
|
|
14
14
|
import {
|
|
15
15
|
Storage,
|
|
16
16
|
isNodeError
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-OIVKILPI.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esbuild_shims
|
|
20
20
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
MAX_INLINE_IMAGE_ENCODED_LENGTH
|
|
5
|
+
} from "./chunk-2VSTGY6M.js";
|
|
3
6
|
import {
|
|
4
7
|
MAX_TERMINAL_IMAGE_BYTES
|
|
5
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-IC4Z6LX6.js";
|
|
6
9
|
import {
|
|
7
10
|
init_esbuild_shims
|
|
8
11
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -847,11 +850,15 @@ var MAX_PREVIEW_ROWS = 24;
|
|
|
847
850
|
var ESTIMATED_CELL_WIDTH_PX = 8;
|
|
848
851
|
var ESTIMATED_CELL_HEIGHT_PX = 16;
|
|
849
852
|
var MAX_REASON_CHARS = 200;
|
|
853
|
+
var MAX_INLINE_IMAGE_DIMENSION = 1e6;
|
|
854
|
+
var MAX_INLINE_IMAGE_PIXELS = 64e6;
|
|
850
855
|
var CMD_SHELL_METACHARACTERS = /[&|<>^%"!()\n\r]/;
|
|
851
856
|
var RENDER_CACHE_LIMIT = 40;
|
|
852
857
|
var RENDER_CACHE_BYTE_LIMIT = 32 * 1024 * 1024;
|
|
853
858
|
var renderCache = /* @__PURE__ */ new Map();
|
|
854
859
|
var renderCacheBytes = 0;
|
|
860
|
+
var INLINE_DECODE_CACHE_LIMIT = 4;
|
|
861
|
+
var inlineDecodeCache = /* @__PURE__ */ new Map();
|
|
855
862
|
var TRANSMITTED_KEY_LIMIT = 256;
|
|
856
863
|
var transmittedKeys = /* @__PURE__ */ new Set();
|
|
857
864
|
function wasKittyImageWritten(key) {
|
|
@@ -896,6 +903,44 @@ function containsCmdShellMetacharacters(filePath) {
|
|
|
896
903
|
return CMD_SHELL_METACHARACTERS.test(filePath);
|
|
897
904
|
}
|
|
898
905
|
__name(containsCmdShellMetacharacters, "containsCmdShellMetacharacters");
|
|
906
|
+
function prepareInlineTerminalImage({
|
|
907
|
+
data,
|
|
908
|
+
mimeType,
|
|
909
|
+
contentWidth,
|
|
910
|
+
availableTerminalHeight,
|
|
911
|
+
env = process.env,
|
|
912
|
+
stdoutIsTTY = process.stdout.isTTY,
|
|
913
|
+
disabled = false
|
|
914
|
+
}) {
|
|
915
|
+
const format = getImageFormat(mimeType);
|
|
916
|
+
const emptyFallback = format ? `[image: ${format}]` : "[image]";
|
|
917
|
+
if (format !== "png") {
|
|
918
|
+
return { fallbackText: emptyFallback, result: null };
|
|
919
|
+
}
|
|
920
|
+
const decoded = getDecodedInlinePng(data);
|
|
921
|
+
if (!decoded) {
|
|
922
|
+
return { fallbackText: emptyFallback, result: null };
|
|
923
|
+
}
|
|
924
|
+
const { png, size } = decoded;
|
|
925
|
+
const fallbackText = `[image: ${size.width}x${size.height} png]`;
|
|
926
|
+
if (disabled) {
|
|
927
|
+
return { fallbackText, result: null };
|
|
928
|
+
}
|
|
929
|
+
const shape = fitImageToTerminal2(size, contentWidth, availableTerminalHeight);
|
|
930
|
+
const useKitty = supportsKittyImageProtocol(env, stdoutIsTTY);
|
|
931
|
+
const chafaPath = useKitty ? null : findExecutable("chafa", env);
|
|
932
|
+
const cacheKey = createInlineRenderCacheKey(png, shape, useKitty, chafaPath);
|
|
933
|
+
const cached = getCachedRenderResult(cacheKey);
|
|
934
|
+
if (cached) {
|
|
935
|
+
return { fallbackText, result: cached };
|
|
936
|
+
}
|
|
937
|
+
const result = useKitty ? { ...renderKitty(png, shape), key: cacheKey } : renderWithChafa({ data: png }, shape, env, chafaPath);
|
|
938
|
+
if (result.kind !== "unavailable") {
|
|
939
|
+
rememberRenderResult(cacheKey, result);
|
|
940
|
+
}
|
|
941
|
+
return { fallbackText, result };
|
|
942
|
+
}
|
|
943
|
+
__name(prepareInlineTerminalImage, "prepareInlineTerminalImage");
|
|
899
944
|
function renderTerminalImage({
|
|
900
945
|
display,
|
|
901
946
|
contentWidth,
|
|
@@ -959,7 +1004,7 @@ function renderTerminalImage({
|
|
|
959
1004
|
reason: `Image exceeds the ${MAX_TERMINAL_IMAGE_BYTES} byte display limit.`
|
|
960
1005
|
};
|
|
961
1006
|
}
|
|
962
|
-
const result = useKitty ? { ...renderKitty(png, shape), key: cacheKey } : renderWithChafa(display.filePath, shape, env, chafaPath);
|
|
1007
|
+
const result = useKitty ? { ...renderKitty(png, shape), key: cacheKey } : renderWithChafa({ filePath: display.filePath }, shape, env, chafaPath);
|
|
963
1008
|
if (result.kind !== "unavailable") {
|
|
964
1009
|
rememberRenderResult(cacheKey, result);
|
|
965
1010
|
}
|
|
@@ -996,6 +1041,70 @@ function createRenderCacheKey(filePath, stat, shape, useKitty, chafaPath) {
|
|
|
996
1041
|
].join("\0");
|
|
997
1042
|
}
|
|
998
1043
|
__name(createRenderCacheKey, "createRenderCacheKey");
|
|
1044
|
+
function createInlineRenderCacheKey(png, shape, useKitty, chafaPath) {
|
|
1045
|
+
return [
|
|
1046
|
+
"inline",
|
|
1047
|
+
crypto2.createHash("sha256").update(png).digest("hex"),
|
|
1048
|
+
shape.widthCells,
|
|
1049
|
+
shape.rows,
|
|
1050
|
+
useKitty ? "kitty" : chafaPath ?? "none"
|
|
1051
|
+
].join("\0");
|
|
1052
|
+
}
|
|
1053
|
+
__name(createInlineRenderCacheKey, "createInlineRenderCacheKey");
|
|
1054
|
+
function getImageFormat(mimeType) {
|
|
1055
|
+
const match = /^image\/([a-z0-9][a-z0-9.+-]*)$/.exec(
|
|
1056
|
+
mimeType.trim().toLowerCase()
|
|
1057
|
+
);
|
|
1058
|
+
return match?.[1] ?? null;
|
|
1059
|
+
}
|
|
1060
|
+
__name(getImageFormat, "getImageFormat");
|
|
1061
|
+
function decodeInlineImage(data) {
|
|
1062
|
+
if (data.length === 0 || data.length > MAX_INLINE_IMAGE_ENCODED_LENGTH) {
|
|
1063
|
+
return null;
|
|
1064
|
+
}
|
|
1065
|
+
const normalized = data.replace(/\s/g, "");
|
|
1066
|
+
if (normalized.length === 0 || normalized.length % 4 === 1 || !/^[A-Za-z0-9+/]*={0,2}$/.test(normalized)) {
|
|
1067
|
+
return null;
|
|
1068
|
+
}
|
|
1069
|
+
const decoded = Buffer.from(normalized, "base64");
|
|
1070
|
+
if (decoded.length === 0 || decoded.length > MAX_TERMINAL_IMAGE_BYTES || decoded.toString("base64").replace(/=+$/, "") !== normalized.replace(/=+$/, "")) {
|
|
1071
|
+
return null;
|
|
1072
|
+
}
|
|
1073
|
+
return decoded;
|
|
1074
|
+
}
|
|
1075
|
+
__name(decodeInlineImage, "decodeInlineImage");
|
|
1076
|
+
function getDecodedInlinePng(data) {
|
|
1077
|
+
const cached = inlineDecodeCache.get(data);
|
|
1078
|
+
if (cached) {
|
|
1079
|
+
inlineDecodeCache.delete(data);
|
|
1080
|
+
inlineDecodeCache.set(data, cached);
|
|
1081
|
+
return cached;
|
|
1082
|
+
}
|
|
1083
|
+
const png = decodeInlineImage(data);
|
|
1084
|
+
if (!png) return null;
|
|
1085
|
+
const size = readValidatedInlinePngSize(png);
|
|
1086
|
+
if (!size) return null;
|
|
1087
|
+
const decoded = { png, size };
|
|
1088
|
+
inlineDecodeCache.set(data, decoded);
|
|
1089
|
+
while (inlineDecodeCache.size > INLINE_DECODE_CACHE_LIMIT) {
|
|
1090
|
+
const oldest = inlineDecodeCache.keys().next().value;
|
|
1091
|
+
if (oldest === void 0) break;
|
|
1092
|
+
inlineDecodeCache.delete(oldest);
|
|
1093
|
+
}
|
|
1094
|
+
return decoded;
|
|
1095
|
+
}
|
|
1096
|
+
__name(getDecodedInlinePng, "getDecodedInlinePng");
|
|
1097
|
+
function readValidatedInlinePngSize(png) {
|
|
1098
|
+
if (png.length < 24 || png.readUInt32BE(8) !== 13 || png.subarray(12, 16).toString("ascii") !== "IHDR") {
|
|
1099
|
+
return null;
|
|
1100
|
+
}
|
|
1101
|
+
const size = readPngSize(png);
|
|
1102
|
+
if (!size || !Number.isInteger(size.width) || !Number.isInteger(size.height) || size.width <= 0 || size.height <= 0 || size.width > MAX_INLINE_IMAGE_DIMENSION || size.height > MAX_INLINE_IMAGE_DIMENSION || size.width * size.height > MAX_INLINE_IMAGE_PIXELS) {
|
|
1103
|
+
return null;
|
|
1104
|
+
}
|
|
1105
|
+
return size;
|
|
1106
|
+
}
|
|
1107
|
+
__name(readValidatedInlinePngSize, "readValidatedInlinePngSize");
|
|
999
1108
|
function getCachedRenderResult(key) {
|
|
1000
1109
|
const cached = renderCache.get(key);
|
|
1001
1110
|
if (cached) {
|
|
@@ -1097,7 +1206,7 @@ function renderKitty(png, shape) {
|
|
|
1097
1206
|
};
|
|
1098
1207
|
}
|
|
1099
1208
|
__name(renderKitty, "renderKitty");
|
|
1100
|
-
function renderWithChafa(
|
|
1209
|
+
function renderWithChafa(source, shape, env, chafaPath) {
|
|
1101
1210
|
if (!chafaPath) {
|
|
1102
1211
|
return {
|
|
1103
1212
|
kind: "unavailable",
|
|
@@ -1105,7 +1214,7 @@ function renderWithChafa(filePath, shape, env, chafaPath) {
|
|
|
1105
1214
|
};
|
|
1106
1215
|
}
|
|
1107
1216
|
const useShell = shouldRunThroughShell(chafaPath);
|
|
1108
|
-
if (useShell && containsCmdShellMetacharacters(filePath)) {
|
|
1217
|
+
if (useShell && "filePath" in source && containsCmdShellMetacharacters(source.filePath)) {
|
|
1109
1218
|
return {
|
|
1110
1219
|
kind: "unavailable",
|
|
1111
1220
|
reason: "Image path contains characters that cannot be safely passed to the renderer on this platform."
|
|
@@ -1120,14 +1229,15 @@ function renderWithChafa(filePath, shape, env, chafaPath) {
|
|
|
1120
1229
|
"--format=symbols",
|
|
1121
1230
|
"--symbols=block",
|
|
1122
1231
|
`--size=${shape.widthCells}x${shape.rows}`,
|
|
1123
|
-
filePath
|
|
1232
|
+
"filePath" in source ? source.filePath : "-"
|
|
1124
1233
|
],
|
|
1125
1234
|
{
|
|
1126
1235
|
encoding: "utf8",
|
|
1127
1236
|
env: createRendererChildEnv(env),
|
|
1128
1237
|
shell: useShell,
|
|
1129
1238
|
maxBuffer: CHAFA_MAX_OUTPUT_BYTES,
|
|
1130
|
-
timeout: CHAFA_TIMEOUT_MS
|
|
1239
|
+
timeout: CHAFA_TIMEOUT_MS,
|
|
1240
|
+
..."data" in source ? { input: source.data } : {}
|
|
1131
1241
|
}
|
|
1132
1242
|
);
|
|
1133
1243
|
const lines = stdout.split(/\r?\n/).filter((line) => line.length > 0);
|
|
@@ -1150,12 +1260,14 @@ __name(firstLineBounded, "firstLineBounded");
|
|
|
1150
1260
|
|
|
1151
1261
|
export {
|
|
1152
1262
|
renderMermaidImageAsync,
|
|
1263
|
+
MAX_INLINE_IMAGE_PIXELS,
|
|
1153
1264
|
TRANSMITTED_KEY_LIMIT,
|
|
1154
1265
|
wasKittyImageWritten,
|
|
1155
1266
|
markKittyImageWritten,
|
|
1156
1267
|
supportsKittyImageProtocol,
|
|
1157
1268
|
getTerminalImageRenderSupport,
|
|
1158
1269
|
containsCmdShellMetacharacters,
|
|
1270
|
+
prepareInlineTerminalImage,
|
|
1159
1271
|
renderTerminalImage
|
|
1160
1272
|
};
|
|
1161
1273
|
/**
|