@qwen-code/qwen-code 0.21.0 → 0.21.1-simplify-system-prompt.0
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/chunks/{MaxSizedBox-5DPPWPGT.js → MaxSizedBox-INHRH72H.js} +11 -10
- package/chunks/{StandaloneSessionPicker-BIRMPLRD.js → StandaloneSessionPicker-O6RKBPU4.js} +25 -24
- package/chunks/{acpAgent-6J2U72PQ.js → acpAgent-HYFVXVDR.js} +119 -74
- package/chunks/{agent-6ODUANDO.js → agent-VXDAN5JK.js} +10 -9
- package/chunks/{agent-headless-7BYQTMHW.js → agent-headless-K4ZMMNBD.js} +10 -9
- package/chunks/{anthropicContentGenerator-75BKLTSP.js → anthropicContentGenerator-LXUXMOE7.js} +20 -9
- package/chunks/{bridge-ZUB64FAE.js → bridge-LGPZCFHO.js} +14 -13
- package/chunks/channel-management-service-G74LFADV.js +403 -0
- package/chunks/channel-settings-store-CHCDRTPY.js +89 -0
- package/chunks/{channel-worker-group-2ZD7TVAT.js → channel-worker-group-PTJIJSKC.js} +6 -5
- package/chunks/{channel-worker-manager-4OA4BCGB.js → channel-worker-manager-WIMGM2FD.js} +6 -5
- package/chunks/{channel-worker-supervisor-V7KCFJTS.js → channel-worker-supervisor-KUFTR6P5.js} +5 -4
- package/chunks/{chunk-OFDOK3VM.js → chunk-2JM6GZ5D.js} +3 -3
- package/chunks/{chunk-H4SBPHSA.js → chunk-2OM7GEXO.js} +1 -1
- package/chunks/{chunk-TGILQ3YH.js → chunk-2Q3OT4OV.js} +7 -7
- package/chunks/{chunk-PC6JANNU.js → chunk-2YZJCM5T.js} +4 -4
- package/chunks/{chunk-QAF7NMK7.js → chunk-32MVHM4T.js} +1 -1
- package/chunks/{chunk-K36B6G2O.js → chunk-3HBZKBMQ.js} +3 -3
- package/chunks/{chunk-GSN55ZRI.js → chunk-3IXOIAKE.js} +4 -4
- package/chunks/{chunk-IJTOWOD7.js → chunk-3JAQDSXN.js} +12 -0
- package/chunks/{chunk-UDX5OBWR.js → chunk-3MSHSCSN.js} +2 -2
- package/chunks/{chunk-ZFDTEDCF.js → chunk-4M377AZG.js} +3 -3
- package/chunks/{chunk-U7M2DMGW.js → chunk-52O2CIUL.js} +2 -2
- package/chunks/{chunk-R5AFZNQW.js → chunk-5THCYPLO.js} +3 -3
- package/chunks/{chunk-7MVVZO4N.js → chunk-5U4IPFBR.js} +4 -4
- package/chunks/{chunk-KIM5GUMA.js → chunk-66RMLJHC.js} +21 -21
- package/chunks/{chunk-FSITMZJH.js → chunk-6PSLCFQ2.js} +5 -5
- package/chunks/{chunk-ACY3A37B.js → chunk-7FZEBPKS.js} +3 -3
- package/chunks/{chunk-7JURR4JT.js → chunk-A6UO2C7C.js} +1 -1
- package/chunks/{chunk-JLU636DO.js → chunk-ALMR3E6Q.js} +1 -0
- package/chunks/{chunk-PWVFN2LF.js → chunk-B4UMZKMU.js} +1 -1
- package/chunks/{chunk-SQCQ4KO2.js → chunk-B6ZJ7SI6.js} +14 -14
- package/chunks/{chunk-YPE6A4GC.js → chunk-B7QDM6Z7.js} +1 -1
- package/chunks/{chunk-NIBLUX3Y.js → chunk-BO4XCS7P.js} +195 -3
- package/chunks/{chunk-WCXCRJYB.js → chunk-BRRAJXPA.js} +1 -1
- package/chunks/{chunk-TPRQ7RZH.js → chunk-BYFNTGKI.js} +37 -35
- package/chunks/{chunk-Y34KJKDC.js → chunk-C3NS4F2Q.js} +1 -1
- package/chunks/{chunk-Q4M4MDQ4.js → chunk-CC4N4M36.js} +1 -1
- package/chunks/{chunk-EBJQ6AXW.js → chunk-DM22XS4K.js} +5 -5
- package/chunks/{chunk-PHOF65IG.js → chunk-DM4Q4JJH.js} +1059 -722
- package/chunks/{chunk-JXJFVC6E.js → chunk-DN6ZX5AY.js} +3 -3
- package/chunks/{chunk-J24WCGIN.js → chunk-E5WH5O3C.js} +4 -4
- package/chunks/{chunk-4WIZGAH3.js → chunk-ER5LWJR6.js} +5 -57
- package/chunks/chunk-FY3M44RD.js +463 -0
- package/chunks/{chunk-IO3IX5Q4.js → chunk-G4WFQUYQ.js} +1 -1
- package/chunks/{chunk-VULLI6WQ.js → chunk-GDIPH4JY.js} +3 -3
- package/chunks/chunk-HV3G62R6.js +76 -0
- package/chunks/{chunk-YX324OPW.js → chunk-I7XZ3RY5.js} +1 -1
- package/chunks/{chunk-BULDBTYC.js → chunk-INADJJGW.js} +1 -26
- package/chunks/{chunk-RIBKPMRP.js → chunk-J6D3VXCC.js} +3 -3
- package/chunks/{chunk-TEHGS6UP.js → chunk-JALU3ZDU.js} +6 -6
- package/chunks/{chunk-YBL3QUDD.js → chunk-KIUFNBHR.js} +1 -1
- package/chunks/{chunk-VIA5XA4U.js → chunk-KU5XMLDK.js} +1 -1
- package/chunks/{chunk-KMQ33DO4.js → chunk-LG4GZIVV.js} +3 -3
- package/chunks/{chunk-ZNAUOR2I.js → chunk-LNARWLZQ.js} +1 -1
- package/chunks/{chunk-LQIW3YFY.js → chunk-LNURQEMZ.js} +4 -4
- package/chunks/{chunk-VRYUBFMC.js → chunk-LZEMEFKY.js} +1 -1
- package/chunks/{chunk-LB6DUZ26.js → chunk-M4UKFCZ2.js} +65 -46
- package/chunks/chunk-MK7VQDN3.js +79 -0
- package/chunks/{chunk-RWTEFFPU.js → chunk-ML52PL6O.js} +211 -209
- package/chunks/{chunk-RF3EXIHJ.js → chunk-MSLKI6C2.js} +12 -12
- package/chunks/{chunk-X5XDDSSH.js → chunk-MVS3NS2N.js} +1 -1
- package/chunks/{chunk-5NBDS5S6.js → chunk-N3FAY5CM.js} +7 -5
- package/chunks/{chunk-55DJUCI2.js → chunk-OJGCZBB7.js} +14 -9
- package/chunks/{chunk-BKHWX6I2.js → chunk-P5V4T7NK.js} +3 -3
- package/chunks/{chunk-LH2BYDQ5.js → chunk-PANH4R3B.js} +1 -1
- package/chunks/{chunk-RZIX2G32.js → chunk-PHVR5UUY.js} +1 -1
- package/chunks/{chunk-MZAXJAUM.js → chunk-PSWQZHEA.js} +1 -1
- package/chunks/{chunk-3RN6GBKS.js → chunk-QPDRAXDJ.js} +1 -1
- package/chunks/{chunk-2X55UKQE.js → chunk-QY5MMZ6O.js} +2 -2
- package/chunks/{chunk-CIKQ7KKO.js → chunk-RWS5VYWC.js} +14 -8
- package/chunks/{chunk-MVSUYZDT.js → chunk-SASBXAQL.js} +3 -3
- package/chunks/chunk-SQBYH7PX.js +1252 -0
- package/chunks/{chunk-MB4MZHMJ.js → chunk-SRZ6DXVG.js} +170 -389
- package/chunks/chunk-TF2X2WCT.js +363 -0
- package/chunks/{chunk-2SCDWPXI.js → chunk-TQCBGUHN.js} +2 -2
- package/chunks/{chunk-LK7CHLVP.js → chunk-U4VTUMMK.js} +0 -60
- package/chunks/{chunk-IKCX4CCL.js → chunk-U7TXFVUN.js} +6 -6
- package/chunks/{chunk-2NH6DYI4.js → chunk-V6VRAM7B.js} +10 -10
- package/chunks/{chunk-Z2BC6UJ5.js → chunk-VCBZUOSI.js} +1 -1
- package/chunks/{chunk-IKYJHJNF.js → chunk-VFSJ5VRH.js} +2 -2
- package/chunks/{chunk-LKEJ26GS.js → chunk-VV6XU5L7.js} +1 -1
- package/chunks/{chunk-7ZCNENPP.js → chunk-W4CQXHT6.js} +1 -1
- package/chunks/{chunk-HTR4WV6U.js → chunk-W4RQUHY3.js} +31 -1
- package/chunks/{chunk-ETSW4KLJ.js → chunk-WDSWXQU3.js} +1 -1
- package/chunks/{chunk-PSOO6YXD.js → chunk-XHRTVPG2.js} +8 -6
- package/chunks/{chunk-ZJHVAS7M.js → chunk-YAF5VNU7.js} +1 -1
- package/chunks/{chunk-JVPM2ULZ.js → chunk-Z5BLYMZM.js} +4 -4
- package/chunks/{chunk-M4FMGVY4.js → chunk-ZE5WPL4I.js} +2 -2
- package/chunks/{computer-use-SOQ4E3VX.js → computer-use-DOFAHZAB.js} +10 -9
- package/chunks/{config-utils-7V7GGIW6.js → config-utils-VFQXVGNR.js} +4 -3
- package/chunks/{contextCommand-JLHYA34Z.js → contextCommand-QIZYHDR5.js} +12 -11
- package/chunks/{create-sub-session-QRJLW5BV.js → create-sub-session-7543K2QA.js} +10 -9
- package/chunks/{daemon-YO6433NF.js → daemon-VOMQW7KZ.js} +189 -0
- package/chunks/{daemon-status-provider-2233Q37D.js → daemon-status-provider-OS5UWBHV.js} +18 -17
- package/chunks/{dist-WEAHOXDM.js → dist-ANLAT3GS.js} +1 -1
- package/chunks/{dist-BBLXMS3N.js → dist-BRB6EXK4.js} +1 -1
- package/chunks/{dist-YFNEUWSE.js → dist-K6Y4E7FX.js} +1 -1
- package/chunks/{dist-F6IBUDR4.js → dist-KTYYJ2C5.js} +1 -1
- package/chunks/{dist-46NQKLTW.js → dist-NNVBBOGU.js} +2 -2
- package/chunks/{dist-AIKFMUKK.js → dist-RTJFMNEZ.js} +1 -1
- package/chunks/{earlyInputCapture-A7NDU3PF.js → earlyInputCapture-WQT24RWD.js} +10 -9
- package/chunks/{edit-OBDSQURM.js → edit-RIEOJWKB.js} +10 -9
- package/chunks/{enter-worktree-U6MRPQ2P.js → enter-worktree-OGK5FQ3R.js} +10 -9
- package/chunks/{enterPlanMode-BC5QUZZ2.js → enterPlanMode-IWZYALIB.js} +10 -9
- package/chunks/{environment-W5UFC2CH.js → environment-VZ7BRI4Q.js} +12 -11
- package/chunks/{errors-M7CLORXH.js → errors-PCX25DVP.js} +12 -11
- package/chunks/{exit-worktree-DGNYMECB.js → exit-worktree-4TEYVIVP.js} +10 -9
- package/chunks/{exitPlanMode-GXTBWQAR.js → exitPlanMode-GHPUHBZJ.js} +38 -18
- package/chunks/{fast-path-JJZFJANL.js → fast-path-HYE7IFEV.js} +5 -5
- package/chunks/{gemini-QS36EBZV.js → gemini-NGRQX3YJ.js} +54 -51
- package/chunks/{geminiContentGenerator-AG4KB6CV.js → geminiContentGenerator-FQHPFZSR.js} +36 -7
- package/chunks/{glob-V7R3PSK3.js → glob-FRTM3X2E.js} +10 -9
- package/chunks/{grep-QYPSK7OP.js → grep-RKWVROCW.js} +10 -9
- package/chunks/{handleAutoUpdate-6DBEZYPV.js → handleAutoUpdate-2CZQRJ66.js} +14 -13
- package/chunks/{i18n-VUJJZIMU.js → i18n-XEQVMRKN.js} +11 -10
- package/chunks/{image-gen-Z3VPGKRC.js → image-gen-WIEM7KZA.js} +1 -1
- package/chunks/{initializer-UWAK5U5O.js → initializer-OVGZ4FLY.js} +15 -14
- package/chunks/{installationInfo-6O2YAA52.js → installationInfo-5UUQJI6Y.js} +11 -10
- package/chunks/{list-GB4ESM3T.js → list-HODU6RXD.js} +18 -17
- package/chunks/{loadedSettingsAdapter-OT6JVQ7U.js → loadedSettingsAdapter-TYNLBALY.js} +15 -14
- package/chunks/{loggingContentGenerator-HS3S5H3Q.js → loggingContentGenerator-WGM27QAW.js} +55 -91
- package/chunks/{managed-npm-update-JYEMMXA3.js → managed-npm-update-JQ2CG3RH.js} +11 -10
- package/chunks/{mcp-6DBDJPFU.js → mcp-J3DFWX4A.js} +15 -14
- package/chunks/{monitor-R3ODH5U6.js → monitor-7FEWXX5F.js} +10 -9
- package/chunks/{nonInteractiveCli-MOYCYBBU.js → nonInteractiveCli-F4GYSMHT.js} +50 -47
- package/chunks/{notebook-edit-BNOK452R.js → notebook-edit-JGJV2K6J.js} +10 -9
- package/chunks/{openaiContentGenerator-WMCU3O2H.js → openaiContentGenerator-JPVXDTAO.js} +8 -7
- package/chunks/{pidfile-TFRZZZIO.js → pidfile-4VNAR3EP.js} +10 -9
- package/chunks/{processUtils-RT7UNCC2.js → processUtils-V2LCK6T6.js} +2 -2
- package/chunks/{qwenContentGenerator-HHCRK4SX.js → qwenContentGenerator-TICV2W2Z.js} +12 -11
- package/chunks/{qwenOAuth2-OWLB5AKH.js → qwenOAuth2-XGFI5XJG.js} +1 -1
- package/chunks/{read-file-APMO3PSX.js → read-file-LZXUR4TO.js} +5 -5
- package/chunks/{resumeHistoryUtils-6KRYEAWZ.js → resumeHistoryUtils-65OX3SGJ.js} +14 -13
- package/chunks/{ripGrep-BEJDEDXW.js → ripGrep-2U2FRGMV.js} +10 -9
- package/chunks/{run-qwen-serve-FU6HEM4J.js → run-qwen-serve-3VCV4I7E.js} +69 -33
- package/chunks/{runtime-XXRRTNP6.js → runtime-AXJWIEDU.js} +20 -18
- package/chunks/{scheduler-G2ZS2Z7E.js → scheduler-RS2I6RU5.js} +10 -9
- package/chunks/{sdk-exporters-http-FYBSUCPD.js → sdk-exporters-http-FS6ZV7MF.js} +2 -2
- package/chunks/{sdk-impl-GMVPB7NB.js → sdk-impl-7FZSCSXB.js} +6 -6
- package/chunks/{serve-7BSTXJ4T.js → serve-W2GC47CM.js} +16 -15
- package/chunks/{server-4UMH7OIZ.js → server-HRZ23U7M.js} +499 -93
- package/chunks/{session-K3O3Q2SV.js → session-7XHZKTVV.js} +51 -48
- package/chunks/{settings-CR2EWTBA.js → settings-7ZGZDXAS.js} +14 -13
- package/chunks/{shell-HH3PF3A2.js → shell-45IPBDP5.js} +10 -9
- package/chunks/{skill-I3SDA4MB.js → skill-LIWXNLDW.js} +7 -6
- package/chunks/{spawnChannel-RWNDBXGA.js → spawnChannel-PVXQ5AGV.js} +12 -11
- package/chunks/{src-GE4TTTML.js → src-AY65BYR7.js} +36 -17
- package/chunks/{standalone-update-Q6WFRZZQ.js → standalone-update-ZMFNKAEY.js} +12 -11
- package/chunks/{startInteractiveUI-SLZGHRPH.js → startInteractiveUI-IW3CSKHA.js} +87 -88
- package/chunks/{team-create-YJALH5D2.js → team-create-O2FROQ4R.js} +10 -9
- package/chunks/{team-plan-approval-34QFYKGN.js → team-plan-approval-Q6WDBXTQ.js} +10 -9
- package/chunks/{theme-manager-SWRILQHI.js → theme-manager-YYPZFBAH.js} +10 -9
- package/chunks/{tool-search-NF7GB6LE.js → tool-search-APECNQ3Z.js} +5 -5
- package/chunks/{total-session-admission-DLHHHLD3.js → total-session-admission-JXES723M.js} +14 -13
- package/chunks/{tree-sitter-4D7QS7F6.js → tree-sitter-FS4VPMZA.js} +1 -1
- package/chunks/{tree-sitter-bash-VEJGF5XF.js → tree-sitter-bash-6B46JJCV.js} +1 -1
- package/chunks/{trustedFolders-KHXHY6PY.js → trustedFolders-HVI7IXUH.js} +11 -10
- package/chunks/{update-relaunch-WBUZJC5O.js → update-relaunch-ON5MDJQG.js} +5 -5
- package/chunks/{updateCheck-RKL6M5XN.js → updateCheck-WUJGHWZZ.js} +13 -12
- package/chunks/{useAutoAcceptIndicator-CFQ5BUJL.js → useAutoAcceptIndicator-CHSTZLZD.js} +17 -16
- package/chunks/{validateNonInterActiveAuth-3R223G3R.js → validateNonInterActiveAuth-JBLKBKRD.js} +47 -44
- package/chunks/{version-HS7YSFHV.js → version-LTNUBQJY.js} +1 -1
- package/chunks/{web-fetch-NKCSG7ZE.js → web-fetch-L5UTI53V.js} +5 -5
- package/chunks/{web-search-S62WAP4S.js → web-search-KM33JOS3.js} +2 -2
- package/chunks/{workflow-QAGU5RU4.js → workflow-K7FAWV77.js} +11 -10
- package/chunks/{workspace-providers-status-QSVZUETE.js → workspace-providers-status-GAKSF4LL.js} +18 -17
- package/chunks/{workspace-registration-store-24JMHDGF.js → workspace-registration-store-6TGVDJV5.js} +1 -1
- package/chunks/{workspace-registry-UT4RBNBM.js → workspace-registry-A7NQUONG.js} +14 -13
- package/chunks/{workspace-service-JFWRUS4V.js → workspace-service-STGVSO4N.js} +19 -18
- package/chunks/{workspace-skills-status-ZBBKJOI2.js → workspace-skills-status-66AK3DUA.js} +16 -15
- package/chunks/{write-file-VHIXW5M7.js → write-file-HUUCEG4P.js} +10 -9
- package/cli.js +12 -12
- package/package.json +3 -3
- package/web-shell/assets/{arc-DcbWnB9T.js → arc-BbHijhiN.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-kMMF5sud.js → architectureDiagram-3BPJPVTR-Cb4B_JD0.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-Htl9vTJS.js → blockDiagram-GPEHLZMM-Dsjlh3H-.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BnZnm0mQ.js → c4Diagram-AAUBKEIU-Cp5AeR4U.js} +1 -1
- package/web-shell/assets/channel-Bzdx6E8P.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DziB7kDG.js → chunk-2J33WTMH-CLcY7W2e.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-CmkD8daw.js → chunk-4BX2VUAB-BUhvY2LR.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-CHAd9A_U.js → chunk-55IACEB6-kDIFC_71.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-Dqaam3fE.js → chunk-727SXJPM-CIBO15f2.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-D_-saBYM.js → chunk-AQP2D5EJ-BJ_T_slV.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-B9r_veWD.js → chunk-FMBD7UC4-BEkW35J8.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-B3EaCSpL.js → chunk-ND2GUHAM-GGPxofay.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-CYq8x9mn.js → chunk-QZHKN3VN-Bifllrb6.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cd6wbiuK.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cd6wbiuK.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-D0ng4uiB.js → cose-bilkent-S5V4N54A-C-Add_Dp.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-DCZollQv.js → dagre-BM42HDAG-B7MfwNq2.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-Dfk2pWS0.js → diagram-2AECGRRQ-CY_0zuDz.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-kX38ltWR.js → diagram-5GNKFQAL-VyYSbCgA.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CJz2vsXh.js → diagram-KO2AKTUF-CBiIZ2PL.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BvMLZm_7.js → diagram-LMA3HP47-BL3CrVOx.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-l7kfStkO.js → diagram-OG6HWLK6-CZUPx96P.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-BSVa8GGT.js → erDiagram-TEJ5UH35-B81xHr1-.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CoawKIXH.js → flowDiagram-I6XJVG4X-EZWhir-J.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFUDH0zF.js → ganttDiagram-6RSMTGT7-CVFSuIAg.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Y2pvpT4e.js → gitGraphDiagram-PVQCEYII-C1H2uQDv.js} +1 -1
- package/web-shell/assets/{index-ckX9Pq5k.js → index-B2bXx96W.js} +273 -254
- package/web-shell/assets/{index-D0GX0zZf.js → index-BYo99NBH.js} +1 -1
- package/web-shell/assets/{index-D9haPt0X.css → index-_8mKjx8q.css} +1 -1
- package/web-shell/assets/{infoDiagram-5YYISTIA-CU8_zLiX.js → infoDiagram-5YYISTIA-BwyFMlF8.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AVQiV0DU.js → ishikawaDiagram-YF4QCWOH-CQ7Yhn2Y.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DQ0VSKa3.js → journeyDiagram-JHISSGLW-CJn2sf0l.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BqnWqsE_.js → kanban-definition-UN3LZRKU-DaNRqwVN.js} +1 -1
- package/web-shell/assets/{linear-BkoihsaA.js → linear-DCKODZe2.js} +1 -1
- package/web-shell/assets/{mermaid.core-5RJs-31j.js → mermaid.core-CTGJOk27.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D33Bxnpd.js → mindmap-definition-RKZ34NQL-BKU3_3rg.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BuEAw3BH.js → pieDiagram-4H26LBE5-COcwBJ82.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Kox_usEq.js → quadrantDiagram-W4KKPZXB-CQnQ443x.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CNjeUif0.js → requirementDiagram-4Y6WPE33-CZ2oj5cD.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BCd2OL_U.js → sankeyDiagram-5OEKKPKP-BxAv5mNu.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CF2ZTsz0.js → sequenceDiagram-3UESZ5HK-CztaySPs.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-qenSzHtm.js → stateDiagram-AJRCARHV-CTQT1oGD.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BjMdT6E_.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-B5DyWdgs.js → timeline-definition-PNZ67QCA-K9Mkex5A.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DqP4I_o_.js → vennDiagram-CIIHVFJN-B2rVIw76.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CJe2e4mg.js → wardley-L42UT6IY-Z1w2JR4M.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BMDSw-Rr.js → wardleyDiagram-YWT4CUSO-CIX9aKXf.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BTVZYkxD.js → xychartDiagram-2RQKCTM6-CI9DLIKB.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-LEH5C7FV.js +0 -232
- package/web-shell/assets/channel-Cq7YKtfC.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +0 -1
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
getPlugin
|
|
5
|
+
} from "./chunk-MK7VQDN3.js";
|
|
6
|
+
import {
|
|
7
|
+
loadSettings,
|
|
8
|
+
saveSettings
|
|
9
|
+
} from "./chunk-JALU3ZDU.js";
|
|
10
|
+
import {
|
|
11
|
+
init_esbuild_shims
|
|
12
|
+
} from "./chunk-5O2XNYP6.js";
|
|
13
|
+
import {
|
|
14
|
+
__name
|
|
15
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
16
|
+
|
|
17
|
+
// packages/cli/src/serve/channel-settings-store.ts
|
|
18
|
+
init_esbuild_shims();
|
|
19
|
+
import { createHash } from "node:crypto";
|
|
20
|
+
import { isDeepStrictEqual } from "node:util";
|
|
21
|
+
var ChannelSettingsError = class extends Error {
|
|
22
|
+
constructor(code, message) {
|
|
23
|
+
super(message);
|
|
24
|
+
this.code = code;
|
|
25
|
+
this.name = "ChannelSettingsError";
|
|
26
|
+
}
|
|
27
|
+
static {
|
|
28
|
+
__name(this, "ChannelSettingsError");
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
function revisionOf(channels, startupNames) {
|
|
32
|
+
return createHash("sha256").update(JSON.stringify({ channels, startupNames })).digest("hex");
|
|
33
|
+
}
|
|
34
|
+
__name(revisionOf, "revisionOf");
|
|
35
|
+
function applySecretUpdate(current, update) {
|
|
36
|
+
validateSecretUpdate(update);
|
|
37
|
+
if (update.operation === "preserve") return current;
|
|
38
|
+
if (update.operation === "clear") return void 0;
|
|
39
|
+
if (typeof update.value !== "string" || update.value.length === 0) {
|
|
40
|
+
throw invalidSecret("Secret replacements must be non-empty strings.");
|
|
41
|
+
}
|
|
42
|
+
return update.value;
|
|
43
|
+
}
|
|
44
|
+
__name(applySecretUpdate, "applySecretUpdate");
|
|
45
|
+
function invalidSecret(message) {
|
|
46
|
+
return new ChannelSettingsError("channel_settings_invalid_secret", message);
|
|
47
|
+
}
|
|
48
|
+
__name(invalidSecret, "invalidSecret");
|
|
49
|
+
function invalidConfig(message) {
|
|
50
|
+
return new ChannelSettingsError("channel_settings_invalid_config", message);
|
|
51
|
+
}
|
|
52
|
+
__name(invalidConfig, "invalidConfig");
|
|
53
|
+
var UNSAFE_OBJECT_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
|
|
54
|
+
function assertSafeChannelName(name) {
|
|
55
|
+
if (UNSAFE_OBJECT_KEYS.has(name)) {
|
|
56
|
+
throw new ChannelSettingsError(
|
|
57
|
+
"channel_settings_invalid_name",
|
|
58
|
+
`Channel name ${JSON.stringify(name)} is not allowed.`
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
__name(assertSafeChannelName, "assertSafeChannelName");
|
|
63
|
+
function assertUpsertChannelName(name) {
|
|
64
|
+
assertSafeChannelName(name);
|
|
65
|
+
if (isAllStartupName(name)) {
|
|
66
|
+
throw new ChannelSettingsError(
|
|
67
|
+
"channel_settings_invalid_name",
|
|
68
|
+
`Channel name ${JSON.stringify(name)} is reserved for startup selection.`
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
__name(assertUpsertChannelName, "assertUpsertChannelName");
|
|
73
|
+
function isAllStartupName(name) {
|
|
74
|
+
return name.trim() === "all";
|
|
75
|
+
}
|
|
76
|
+
__name(isAllStartupName, "isAllStartupName");
|
|
77
|
+
function isRecord(value) {
|
|
78
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
79
|
+
}
|
|
80
|
+
__name(isRecord, "isRecord");
|
|
81
|
+
function isEnvironmentReference(value) {
|
|
82
|
+
return /^\$[A-Za-z_][A-Za-z0-9_]*$/.test(value);
|
|
83
|
+
}
|
|
84
|
+
__name(isEnvironmentReference, "isEnvironmentReference");
|
|
85
|
+
function assertStringRecord(key, value, allowedKeys) {
|
|
86
|
+
if (!isRecord(value)) {
|
|
87
|
+
throw invalidConfig(`Channel field "${key}" must be an object.`);
|
|
88
|
+
}
|
|
89
|
+
for (const [nestedKey, nestedValue] of Object.entries(value)) {
|
|
90
|
+
if (!allowedKeys.has(nestedKey) || typeof nestedValue !== "string") {
|
|
91
|
+
throw invalidConfig(`Channel field "${key}.${nestedKey}" is invalid.`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
__name(assertStringRecord, "assertStringRecord");
|
|
96
|
+
function assertNumberRecord(key, value, allowedKeys) {
|
|
97
|
+
if (!isRecord(value)) {
|
|
98
|
+
throw invalidConfig(`Channel field "${key}" must be an object.`);
|
|
99
|
+
}
|
|
100
|
+
for (const [nestedKey, nestedValue] of Object.entries(value)) {
|
|
101
|
+
if (!allowedKeys.has(nestedKey) || typeof nestedValue !== "number" || !Number.isFinite(nestedValue)) {
|
|
102
|
+
throw invalidConfig(`Channel field "${key}.${nestedKey}" is invalid.`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
__name(assertNumberRecord, "assertNumberRecord");
|
|
107
|
+
function assertSharedField(key, value) {
|
|
108
|
+
const enumValues = {
|
|
109
|
+
senderPolicy: /* @__PURE__ */ new Set(["allowlist", "pairing", "open"]),
|
|
110
|
+
dmPolicy: /* @__PURE__ */ new Set(["open", "disabled"]),
|
|
111
|
+
groupPolicy: /* @__PURE__ */ new Set(["disabled", "allowlist", "open"]),
|
|
112
|
+
sessionScope: /* @__PURE__ */ new Set(["user", "thread", "single"]),
|
|
113
|
+
dispatchMode: /* @__PURE__ */ new Set(["steer", "followup", "collect"]),
|
|
114
|
+
blockStreaming: /* @__PURE__ */ new Set(["on", "off"])
|
|
115
|
+
};
|
|
116
|
+
if (Object.hasOwn(enumValues, key)) {
|
|
117
|
+
if (typeof value !== "string" || !enumValues[key].has(value)) {
|
|
118
|
+
throw invalidConfig(`Channel field "${key}" has an invalid value.`);
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
if (["model", "cwd", "approvalMode", "instructions"].includes(key)) {
|
|
123
|
+
if (typeof value !== "string") {
|
|
124
|
+
throw invalidConfig(`Channel field "${key}" must be a string.`);
|
|
125
|
+
}
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
if (key === "allowedUsers") {
|
|
129
|
+
if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
|
|
130
|
+
throw invalidConfig(`Channel field "${key}" must be a string array.`);
|
|
131
|
+
}
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
if (key === "groupHistoryLimit") {
|
|
135
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
136
|
+
throw invalidConfig(`Channel field "${key}" must be a number.`);
|
|
137
|
+
}
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
if (key === "identity") {
|
|
141
|
+
assertStringRecord(
|
|
142
|
+
key,
|
|
143
|
+
value,
|
|
144
|
+
/* @__PURE__ */ new Set(["id", "displayName", "description"])
|
|
145
|
+
);
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
if (key === "blockStreamingChunk") {
|
|
149
|
+
assertNumberRecord(key, value, /* @__PURE__ */ new Set(["minChars", "maxChars"]));
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
if (key === "blockStreamingCoalesce") {
|
|
153
|
+
assertNumberRecord(key, value, /* @__PURE__ */ new Set(["idleMs"]));
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
if (key === "memoryScope") {
|
|
157
|
+
if (!isRecord(value)) {
|
|
158
|
+
throw invalidConfig(`Channel field "${key}" must be an object.`);
|
|
159
|
+
}
|
|
160
|
+
for (const [nestedKey, nestedValue] of Object.entries(value)) {
|
|
161
|
+
const valid = nestedKey === "namespace" && typeof nestedValue === "string" || nestedKey === "mode" && nestedValue === "metadata-only";
|
|
162
|
+
if (!valid) {
|
|
163
|
+
throw invalidConfig(`Channel field "${key}.${nestedKey}" is invalid.`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
__name(assertSharedField, "assertSharedField");
|
|
171
|
+
function assertDescriptorValue(field, value) {
|
|
172
|
+
const invalidEnvironment = typeof value === "string" && isEnvironmentReference(value) && field.envResolvable !== true;
|
|
173
|
+
if (invalidEnvironment) {
|
|
174
|
+
throw invalidConfig(
|
|
175
|
+
`Channel field "${field.key}" does not support environment references.`
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
const valid = (field.kind === "string" || field.kind === "secret") && typeof value === "string" && value.length > 0 || field.kind === "boolean" && typeof value === "boolean" || field.kind === "number" && typeof value === "number" && Number.isFinite(value) || field.kind === "enum" && typeof value === "string" && field.options?.some((option) => option.value === value) === true;
|
|
179
|
+
if (!valid) {
|
|
180
|
+
throw invalidConfig(`Channel field "${field.key}" has an invalid value.`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
__name(assertDescriptorValue, "assertDescriptorValue");
|
|
184
|
+
function assertManagedConfig(config, previous, fields) {
|
|
185
|
+
const descriptorFields = new Map(fields.map((field) => [field.key, field]));
|
|
186
|
+
for (const [key, value] of Object.entries(config)) {
|
|
187
|
+
if (key === "type") continue;
|
|
188
|
+
const field = descriptorFields.get(key);
|
|
189
|
+
if (field) {
|
|
190
|
+
assertDescriptorValue(field, value);
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
if (assertSharedField(key, value)) continue;
|
|
194
|
+
if (!Object.hasOwn(previous, key) || !isDeepStrictEqual(previous[key], value)) {
|
|
195
|
+
throw invalidConfig(`Channel field "${key}" is not manageable.`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
for (const field of fields) {
|
|
199
|
+
if (!field.required) continue;
|
|
200
|
+
const value = config[field.key];
|
|
201
|
+
if (value === void 0 || value === null || value === "") {
|
|
202
|
+
throw invalidConfig(`Channel field "${field.key}" is required.`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
__name(assertManagedConfig, "assertManagedConfig");
|
|
207
|
+
function validateSecretUpdate(update) {
|
|
208
|
+
if (!isRecord(update)) {
|
|
209
|
+
throw invalidSecret("Secret updates must be objects.");
|
|
210
|
+
}
|
|
211
|
+
const operation = update["operation"];
|
|
212
|
+
const keys = Object.keys(update).sort();
|
|
213
|
+
const valid = (operation === "preserve" || operation === "clear") && keys.length === 1 && keys[0] === "operation" || operation === "replace" && keys.length === 2 && keys[0] === "operation" && keys[1] === "value" && typeof update["value"] === "string" && update["value"].length > 0;
|
|
214
|
+
if (!valid) {
|
|
215
|
+
throw invalidSecret("Secret updates contain an invalid operation.");
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
__name(validateSecretUpdate, "validateSecretUpdate");
|
|
219
|
+
function assertValidChannelSecretUpdates(updates) {
|
|
220
|
+
if (!isRecord(updates)) {
|
|
221
|
+
throw invalidSecret("Secret updates must be objects.");
|
|
222
|
+
}
|
|
223
|
+
for (const [key, update] of Object.entries(updates)) {
|
|
224
|
+
if (UNSAFE_OBJECT_KEYS.has(key)) {
|
|
225
|
+
throw invalidSecret(`Secret update ${JSON.stringify(key)} is invalid.`);
|
|
226
|
+
}
|
|
227
|
+
validateSecretUpdate(update);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
__name(assertValidChannelSecretUpdates, "assertValidChannelSecretUpdates");
|
|
231
|
+
function workspaceValues(workspaceCwd) {
|
|
232
|
+
const settings = loadSettings(workspaceCwd, { skipLoadEnvironment: true }).workspace.settings;
|
|
233
|
+
const rawChannels = isRecord(settings.channels) ? settings.channels : {};
|
|
234
|
+
const channels = {};
|
|
235
|
+
for (const [name, config] of Object.entries(rawChannels)) {
|
|
236
|
+
if (isRecord(config)) channels[name] = config;
|
|
237
|
+
}
|
|
238
|
+
const startupNames = Array.isArray(settings.serve?.channels) ? settings.serve.channels.filter(
|
|
239
|
+
(name) => typeof name === "string"
|
|
240
|
+
) : [];
|
|
241
|
+
return { channels, startupNames };
|
|
242
|
+
}
|
|
243
|
+
__name(workspaceValues, "workspaceValues");
|
|
244
|
+
var WorkspaceChannelSettingsStore = class {
|
|
245
|
+
constructor(workspaceCwd) {
|
|
246
|
+
this.workspaceCwd = workspaceCwd;
|
|
247
|
+
}
|
|
248
|
+
static {
|
|
249
|
+
__name(this, "WorkspaceChannelSettingsStore");
|
|
250
|
+
}
|
|
251
|
+
snapshot() {
|
|
252
|
+
const { channels, startupNames } = workspaceValues(this.workspaceCwd);
|
|
253
|
+
return {
|
|
254
|
+
revision: revisionOf(channels, startupNames),
|
|
255
|
+
channels: { ...channels },
|
|
256
|
+
startupNames: [...startupNames]
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
async upsert(name, options) {
|
|
260
|
+
assertUpsertChannelName(name);
|
|
261
|
+
const secretUpdates = options.secrets === void 0 ? {} : options.secrets;
|
|
262
|
+
assertValidChannelSecretUpdates(secretUpdates);
|
|
263
|
+
const plugin = await getPlugin(options.config.type);
|
|
264
|
+
if (!plugin?.management) {
|
|
265
|
+
throw new ChannelSettingsError(
|
|
266
|
+
"channel_settings_unmanageable",
|
|
267
|
+
`Channel type "${options.config.type}" does not provide safe management metadata.`
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
const secretKeys = new Set(
|
|
271
|
+
plugin.management.fields.filter((field) => field.kind === "secret").map((field) => field.key)
|
|
272
|
+
);
|
|
273
|
+
for (const key of Object.keys(secretUpdates)) {
|
|
274
|
+
if (!secretKeys.has(key)) {
|
|
275
|
+
throw invalidSecret(
|
|
276
|
+
`Channel type "${options.config.type}" does not declare "${key}" as a secret.`
|
|
277
|
+
);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
for (const key of secretKeys) {
|
|
281
|
+
if (Object.hasOwn(options.config, key)) {
|
|
282
|
+
throw invalidSecret(
|
|
283
|
+
`Secret "${key}" must use an explicit preserve, replace, or clear operation.`
|
|
284
|
+
);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
const current = this.assertRevision(options.expectedRevision);
|
|
288
|
+
const storedPrevious = current.channels[name] ?? {};
|
|
289
|
+
const previous = storedPrevious["type"] === options.config.type ? storedPrevious : {};
|
|
290
|
+
const nextConfig = { ...options.config };
|
|
291
|
+
for (const key of secretKeys) {
|
|
292
|
+
const update = secretUpdates[key] ?? { operation: "preserve" };
|
|
293
|
+
const value = applySecretUpdate(previous[key], update);
|
|
294
|
+
if (value !== void 0) nextConfig[key] = value;
|
|
295
|
+
}
|
|
296
|
+
assertManagedConfig(nextConfig, previous, plugin.management.fields);
|
|
297
|
+
const channels = { ...current.channels, [name]: nextConfig };
|
|
298
|
+
const workspaceFile = loadSettings(this.workspaceCwd, {
|
|
299
|
+
skipLoadEnvironment: true
|
|
300
|
+
}).workspace;
|
|
301
|
+
saveSettings(workspaceFile, { channels }, ["channels"], {
|
|
302
|
+
throwOnWriteFailure: true
|
|
303
|
+
});
|
|
304
|
+
return this.snapshot();
|
|
305
|
+
}
|
|
306
|
+
async remove(name, options) {
|
|
307
|
+
assertSafeChannelName(name);
|
|
308
|
+
const current = this.assertRevision(options.expectedRevision);
|
|
309
|
+
const channels = { ...current.channels };
|
|
310
|
+
delete channels[name];
|
|
311
|
+
const hasAllSentinel = current.startupNames.some(isAllStartupName);
|
|
312
|
+
const startupNames = hasAllSentinel ? Object.keys(channels).some(
|
|
313
|
+
(channelName) => !isAllStartupName(channelName)
|
|
314
|
+
) ? ["all"] : [] : current.startupNames.filter((startupName) => startupName !== name);
|
|
315
|
+
const workspaceFile = loadSettings(this.workspaceCwd, {
|
|
316
|
+
skipLoadEnvironment: true
|
|
317
|
+
}).workspace;
|
|
318
|
+
saveSettings(
|
|
319
|
+
workspaceFile,
|
|
320
|
+
{ channels, serve: { channels: startupNames } },
|
|
321
|
+
["channels"],
|
|
322
|
+
{ throwOnWriteFailure: true }
|
|
323
|
+
);
|
|
324
|
+
return this.snapshot();
|
|
325
|
+
}
|
|
326
|
+
async setStartupNames(names, options) {
|
|
327
|
+
for (const name of names) {
|
|
328
|
+
assertSafeChannelName(name);
|
|
329
|
+
}
|
|
330
|
+
this.assertRevision(options.expectedRevision);
|
|
331
|
+
const workspaceFile = loadSettings(this.workspaceCwd, {
|
|
332
|
+
skipLoadEnvironment: true
|
|
333
|
+
}).workspace;
|
|
334
|
+
saveSettings(
|
|
335
|
+
workspaceFile,
|
|
336
|
+
{ serve: { channels: [...names] } },
|
|
337
|
+
["serve", "channels"],
|
|
338
|
+
{ throwOnWriteFailure: true }
|
|
339
|
+
);
|
|
340
|
+
return this.snapshot();
|
|
341
|
+
}
|
|
342
|
+
assertRevision(expectedRevision) {
|
|
343
|
+
const current = this.snapshot();
|
|
344
|
+
if (current.revision !== expectedRevision) {
|
|
345
|
+
throw new ChannelSettingsError(
|
|
346
|
+
"channel_settings_conflict",
|
|
347
|
+
"Channel settings changed; reload before trying again."
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
return current;
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
export {
|
|
355
|
+
ChannelSettingsError,
|
|
356
|
+
assertValidChannelSecretUpdates,
|
|
357
|
+
WorkspaceChannelSettingsStore
|
|
358
|
+
};
|
|
359
|
+
/**
|
|
360
|
+
* @license
|
|
361
|
+
* Copyright 2025 Qwen Team
|
|
362
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
363
|
+
*/
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
} from "./chunk-DP3IHZGG.js";
|
|
6
6
|
import {
|
|
7
7
|
getNpmCliPath
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-LNARWLZQ.js";
|
|
9
9
|
import {
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VV6XU5L7.js";
|
|
12
12
|
import {
|
|
13
13
|
getPackageJson
|
|
14
14
|
} from "./chunk-VJNBRRZG.js";
|
|
@@ -3,15 +3,6 @@
|
|
|
3
3
|
import {
|
|
4
4
|
CHANNEL_DELIVERY_ERROR_CODES
|
|
5
5
|
} from "./chunk-BK2UNYWD.js";
|
|
6
|
-
import {
|
|
7
|
-
redactLogCredentials
|
|
8
|
-
} from "./chunk-M5GB774H.js";
|
|
9
|
-
import {
|
|
10
|
-
sanitizeLogText
|
|
11
|
-
} from "./chunk-RWTEFFPU.js";
|
|
12
|
-
import {
|
|
13
|
-
stripAnsi
|
|
14
|
-
} from "./chunk-TWPJO254.js";
|
|
15
6
|
import {
|
|
16
7
|
init_esbuild_shims
|
|
17
8
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -142,54 +133,6 @@ function isChannelDeliveryResultMessage(value) {
|
|
|
142
133
|
}
|
|
143
134
|
__name(isChannelDeliveryResultMessage, "isChannelDeliveryResultMessage");
|
|
144
135
|
|
|
145
|
-
// packages/cli/src/serve/channel-worker-diagnostics.ts
|
|
146
|
-
init_esbuild_shims();
|
|
147
|
-
var WORKER_LOG_INVISIBLE_RE = new RegExp("[\\p{Cf}\\u2028\\u2029]|\\p{Variation_Selector}", "gu");
|
|
148
|
-
var WORKER_LOG_CONTROL_RE = /[\x00-\x1f\x7f-\x9f]/g;
|
|
149
|
-
function escapeRegExp(value) {
|
|
150
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
151
|
-
}
|
|
152
|
-
__name(escapeRegExp, "escapeRegExp");
|
|
153
|
-
function sensitiveEnvValues(env) {
|
|
154
|
-
const sensitiveKey = /(^|_)(TOKEN|SECRET|API_KEY|ACCESS_KEY|PRIVATE_KEY|CREDENTIAL|PASSWORD|PASSWD|PASSPHRASE|BASIC_AUTH|AUTH_TOKEN|AUTHORIZATION|SESSION_SECRET|SESSION_TOKEN|SESSION_KEY|SESSION_COOKIE|DSN|CONNECTION_STRING)($|_)/i;
|
|
155
|
-
return Object.entries(env).filter(([key, value]) => sensitiveKey.test(key) && value !== void 0).flatMap(([, value]) => {
|
|
156
|
-
const lines = value.split("\n").filter((line) => line.length >= 4);
|
|
157
|
-
return lines.length > 0 ? [value, ...lines] : [value];
|
|
158
|
-
}).filter((value) => value.length >= 4);
|
|
159
|
-
}
|
|
160
|
-
__name(sensitiveEnvValues, "sensitiveEnvValues");
|
|
161
|
-
function normalizeWorkerDiagnostic(value) {
|
|
162
|
-
return stripAnsi(value).replace(WORKER_LOG_INVISIBLE_RE, "").replace(WORKER_LOG_CONTROL_RE, "");
|
|
163
|
-
}
|
|
164
|
-
__name(normalizeWorkerDiagnostic, "normalizeWorkerDiagnostic");
|
|
165
|
-
function createWorkerDiagnosticRedactor(opts) {
|
|
166
|
-
const secretPatterns = [
|
|
167
|
-
...new Set(
|
|
168
|
-
[
|
|
169
|
-
...opts.daemonToken ? [opts.daemonToken] : [],
|
|
170
|
-
...sensitiveEnvValues(opts.workerEnv)
|
|
171
|
-
].flatMap((secret) => [
|
|
172
|
-
normalizeWorkerDiagnostic(secret),
|
|
173
|
-
normalizeWorkerDiagnostic(secret.replace(/\t/gu, " "))
|
|
174
|
-
]).filter((secret) => secret.length >= 4)
|
|
175
|
-
)
|
|
176
|
-
].sort((left, right) => right.length - left.length).map((secret) => new RegExp(escapeRegExp(secret), "g"));
|
|
177
|
-
return (value) => {
|
|
178
|
-
let redacted = value;
|
|
179
|
-
for (const secretPattern of secretPatterns) {
|
|
180
|
-
redacted = redacted.replace(secretPattern, "<redacted>");
|
|
181
|
-
}
|
|
182
|
-
return redactLogCredentials(redacted);
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
__name(createWorkerDiagnosticRedactor, "createWorkerDiagnosticRedactor");
|
|
186
|
-
function sanitizeWorkerDiagnostic(value, maxLength, opts) {
|
|
187
|
-
const normalized = normalizeWorkerDiagnostic(value);
|
|
188
|
-
const redacted = createWorkerDiagnosticRedactor(opts)(normalized);
|
|
189
|
-
return sanitizeLogText(redacted, maxLength);
|
|
190
|
-
}
|
|
191
|
-
__name(sanitizeWorkerDiagnostic, "sanitizeWorkerDiagnostic");
|
|
192
|
-
|
|
193
136
|
// packages/cli/src/serve/channel-worker-startup-ipc.ts
|
|
194
137
|
init_esbuild_shims();
|
|
195
138
|
var MAX_CHANNEL_STARTUP_FAILURES = 64;
|
|
@@ -285,9 +228,6 @@ export {
|
|
|
285
228
|
createChannelDeliveryMessage,
|
|
286
229
|
isChannelDeliveryMessage,
|
|
287
230
|
isChannelDeliveryResultMessage,
|
|
288
|
-
normalizeWorkerDiagnostic,
|
|
289
|
-
createWorkerDiagnosticRedactor,
|
|
290
|
-
sanitizeWorkerDiagnostic,
|
|
291
231
|
MAX_CHANNEL_STARTUP_FAILURES,
|
|
292
232
|
MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH,
|
|
293
233
|
MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH,
|
|
@@ -381,18 +381,18 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
381
381
|
try {
|
|
382
382
|
if (authType === "openai" /* USE_OPENAI */) {
|
|
383
383
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
384
|
-
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-
|
|
384
|
+
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-JPVXDTAO.js");
|
|
385
385
|
return createOpenAIContentGenerator(generatorConfig, config);
|
|
386
386
|
}, "loadBaseGenerator");
|
|
387
387
|
} else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
|
|
388
|
-
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-
|
|
388
|
+
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-XGFI5XJG.js");
|
|
389
389
|
try {
|
|
390
390
|
const qwenClient = await getQwenOauthClient(
|
|
391
391
|
config,
|
|
392
392
|
isInitialAuth ? { requireCachedCredentials: true } : void 0
|
|
393
393
|
);
|
|
394
394
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
395
|
-
const { QwenContentGenerator } = await import("./qwenContentGenerator-
|
|
395
|
+
const { QwenContentGenerator } = await import("./qwenContentGenerator-TICV2W2Z.js");
|
|
396
396
|
return new QwenContentGenerator(qwenClient, generatorConfig, config);
|
|
397
397
|
}, "loadBaseGenerator");
|
|
398
398
|
} catch (error) {
|
|
@@ -403,12 +403,12 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
403
403
|
}
|
|
404
404
|
} else if (authType === "anthropic" /* USE_ANTHROPIC */) {
|
|
405
405
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
406
|
-
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-
|
|
406
|
+
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-LXUXMOE7.js");
|
|
407
407
|
return createAnthropicContentGenerator(generatorConfig, config);
|
|
408
408
|
}, "loadBaseGenerator");
|
|
409
409
|
} else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
|
|
410
410
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
411
|
-
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-
|
|
411
|
+
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-FQHPFZSR.js");
|
|
412
412
|
return createGeminiContentGenerator(generatorConfig, config);
|
|
413
413
|
}, "loadBaseGenerator");
|
|
414
414
|
} else {
|
|
@@ -424,7 +424,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
424
424
|
try {
|
|
425
425
|
const [baseGenerator, { LoggingContentGenerator }] = await Promise.all([
|
|
426
426
|
loadBaseGenerator(),
|
|
427
|
-
import("./loggingContentGenerator-
|
|
427
|
+
import("./loggingContentGenerator-WGM27QAW.js")
|
|
428
428
|
]);
|
|
429
429
|
return new LoggingContentGenerator(
|
|
430
430
|
baseGenerator,
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
appEvents
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BYFNTGKI.js";
|
|
6
6
|
import {
|
|
7
7
|
CUSTOM_SANDBOX_IMAGE_ENV_VAR,
|
|
8
8
|
HOST_UPDATE_RELAUNCH_ENV_VAR,
|
|
9
9
|
SKIP_UPDATE_CHECK_ENV_VAR,
|
|
10
10
|
requestUpdateOnExit
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-C3NS4F2Q.js";
|
|
12
12
|
import {
|
|
13
13
|
loadUndici
|
|
14
14
|
} from "./chunk-3Z43GZUQ.js";
|
|
15
15
|
import {
|
|
16
16
|
IdeClient,
|
|
17
17
|
getAllProviderBaseUrls
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-DM4Q4JJH.js";
|
|
19
19
|
import {
|
|
20
20
|
detectRuntime,
|
|
21
21
|
getOrCreateSharedDispatcher,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
} from "./chunk-2JZBVYTU.js";
|
|
25
25
|
import {
|
|
26
26
|
initializeTelemetry
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-SRZ6DXVG.js";
|
|
28
28
|
import {
|
|
29
29
|
createDebugLogger
|
|
30
30
|
} from "./chunk-NL7LTRLR.js";
|
|
@@ -231,11 +231,11 @@ function startPostRenderPrefetches(config, settings, options = {}) {
|
|
|
231
231
|
{ updateEventEmitter },
|
|
232
232
|
{ t }
|
|
233
233
|
] = await Promise.all([
|
|
234
|
-
import("./updateCheck-
|
|
235
|
-
import("./handleAutoUpdate-
|
|
236
|
-
import("./installationInfo-
|
|
234
|
+
import("./updateCheck-WUJGHWZZ.js"),
|
|
235
|
+
import("./handleAutoUpdate-2CZQRJ66.js"),
|
|
236
|
+
import("./installationInfo-5UUQJI6Y.js"),
|
|
237
237
|
import("./updateEventEmitter-5MKC7BLQ.js"),
|
|
238
|
-
import("./i18n-
|
|
238
|
+
import("./i18n-XEQVMRKN.js")
|
|
239
239
|
]);
|
|
240
240
|
const updateCheckSkippedMessage = /* @__PURE__ */ __name((error) => t("Update check skipped ({{reason}}) \u2014 run /update to retry.", {
|
|
241
241
|
reason: describeUpdateCheckFailure(error)
|
|
@@ -308,7 +308,7 @@ ${t(
|
|
|
308
308
|
state: "connecting"
|
|
309
309
|
});
|
|
310
310
|
try {
|
|
311
|
-
const { connectIdeForStartup } = await import("./initializer-
|
|
311
|
+
const { connectIdeForStartup } = await import("./initializer-OVGZ4FLY.js");
|
|
312
312
|
await withTimeout(
|
|
313
313
|
connectIdeForStartup(config),
|
|
314
314
|
"ide_connect",
|
|
@@ -332,7 +332,7 @@ ${t(
|
|
|
332
332
|
}
|
|
333
333
|
if (config.isInteractive()) {
|
|
334
334
|
runDeferredTask("background_housekeeping", async () => {
|
|
335
|
-
const { startBackgroundHousekeeping } = await import("./scheduler-
|
|
335
|
+
const { startBackgroundHousekeeping } = await import("./scheduler-RS2I6RU5.js");
|
|
336
336
|
startBackgroundHousekeeping(config, settings);
|
|
337
337
|
});
|
|
338
338
|
}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
JsonFormatter,
|
|
8
8
|
parseAndFormatApiError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DM4Q4JJH.js";
|
|
10
10
|
import {
|
|
11
11
|
FatalBudgetExceededError,
|
|
12
12
|
FatalCancellationError,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-NL7LTRLR.js";
|
|
16
16
|
import {
|
|
17
17
|
runExitCleanup
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-B4UMZKMU.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -322,6 +322,36 @@ var require_src = __commonJS({
|
|
|
322
322
|
}
|
|
323
323
|
});
|
|
324
324
|
|
|
325
|
+
// packages/core/src/utils/safeJsonStringify.ts
|
|
326
|
+
init_esbuild_shims();
|
|
327
|
+
function safeJsonStringify(obj, space) {
|
|
328
|
+
const ancestors = [];
|
|
329
|
+
return JSON.stringify(
|
|
330
|
+
obj,
|
|
331
|
+
function(_key, value) {
|
|
332
|
+
if (typeof value !== "object" || value === null) {
|
|
333
|
+
return value;
|
|
334
|
+
}
|
|
335
|
+
while (ancestors.length > 0 && ancestors[ancestors.length - 1] !== this) {
|
|
336
|
+
ancestors.pop();
|
|
337
|
+
}
|
|
338
|
+
if (ancestors.includes(value)) {
|
|
339
|
+
return "[Circular]";
|
|
340
|
+
}
|
|
341
|
+
ancestors.push(value);
|
|
342
|
+
return value;
|
|
343
|
+
},
|
|
344
|
+
space
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
__name(safeJsonStringify, "safeJsonStringify");
|
|
348
|
+
|
|
325
349
|
export {
|
|
326
|
-
require_src
|
|
350
|
+
require_src,
|
|
351
|
+
safeJsonStringify
|
|
327
352
|
};
|
|
353
|
+
/**
|
|
354
|
+
* @license
|
|
355
|
+
* Copyright 2025 Google LLC
|
|
356
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
357
|
+
*/
|