@qwen-code/qwen-code 0.19.10 → 0.19.11-nightly.20260718.767a32484
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/model-providers.md +11 -0
- package/bundled/qc-helper/docs/configuration/settings.md +15 -14
- package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +30 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +66 -17
- package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
- package/bundled/qc-helper/docs/features/sandbox.md +2 -0
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +42 -7
- package/bundled/qc-helper/docs/qwen-serve.md +77 -46
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/SKILL.md +163 -403
- package/chunks/{MaxSizedBox-67ODZ4SZ.js → MaxSizedBox-ZFHA4QEQ.js} +30 -30
- package/chunks/{StandaloneSessionPicker-SIPBQT5Z.js → StandaloneSessionPicker-YRWOQVQA.js} +44 -44
- package/chunks/{acpAgent-VPZJXLFX.js → acpAgent-U2P2IESZ.js} +1423 -487
- package/chunks/{agent-Z7NWL6XL.js → agent-GQXX6X5Y.js} +26 -26
- package/chunks/{agent-headless-73HZ6ROQ.js → agent-headless-3572NBCK.js} +26 -26
- package/chunks/{anthropicContentGenerator-56U3YCP2.js → anthropicContentGenerator-Y65DMM64.js} +103 -18
- package/chunks/{artifact-tool-BWZZJ42H.js → artifact-tool-WR7I2XON.js} +2 -2
- package/chunks/{askUserQuestion-WU3S5A5T.js → askUserQuestion-B4FUTPHD.js} +2 -44
- package/chunks/{bridge-XFKW6S7Q.js → bridge-N5RMGD7G.js} +31 -33
- package/chunks/{ca-C2JTT2N5.js → ca-M3GQQ26D.js} +7 -2
- package/chunks/channel-worker-group-HZVJKLGX.js +21 -0
- package/chunks/{channel-worker-manager-5RWKSGEU.js → channel-worker-manager-3WDK4HNS.js} +34 -10
- package/chunks/{channel-worker-supervisor-PCDAZN4D.js → channel-worker-supervisor-U2W6Q5F7.js} +6 -4
- package/chunks/{chunk-YYPXHMWO.js → chunk-2XRGFF5K.js} +6 -6
- package/chunks/{chunk-ZKMGAFYV.js → chunk-2YSZE74N.js} +2 -2
- package/chunks/{chunk-L5U3ELZX.js → chunk-335ECZTA.js} +1 -1
- package/chunks/{chunk-5EBKKSBX.js → chunk-336KPNNV.js} +2 -2
- package/chunks/{chunk-Q5GLXH5Q.js → chunk-3CL5SEDT.js} +6 -6
- package/chunks/{chunk-2FO5GFKZ.js → chunk-3DJY4IFO.js} +1 -1
- package/chunks/{chunk-CJFNEBYB.js → chunk-3NWYQ7FX.js} +2 -2
- package/chunks/{chunk-WIASPMLX.js → chunk-3X2CFOUM.js} +358 -298
- package/chunks/{chunk-K7CRWKOE.js → chunk-3YJZ6WNY.js} +5812 -4520
- package/chunks/{chunk-Y66VOBRP.js → chunk-4CA4WUMS.js} +2 -2
- package/chunks/{chunk-LQIDP6K5.js → chunk-4CHDYDG3.js} +1 -1
- package/chunks/{chunk-TISZXPAX.js → chunk-4HCYNDMG.js} +1 -1
- package/chunks/chunk-4JBTZBCW.js +140 -0
- package/chunks/{chunk-TV6K2FB4.js → chunk-4RPARQ5D.js} +2 -2
- package/chunks/{chunk-RCEEXIOO.js → chunk-4XCVGEEX.js} +3 -3
- package/chunks/{chunk-N6FXRR6P.js → chunk-57RWF6R7.js} +1 -1
- package/chunks/chunk-5O34IMY5.js +59 -0
- package/chunks/{chunk-5LROA5W4.js → chunk-5QRK2VZG.js} +8 -8
- package/chunks/{chunk-7L4XBYVW.js → chunk-632KROVU.js} +10 -3
- package/chunks/{chunk-65N2J6V2.js → chunk-64XGKNSI.js} +3 -3
- package/chunks/{chunk-P6LART6G.js → chunk-66IT3EY2.js} +1059 -129
- package/chunks/{chunk-FXMC7SL2.js → chunk-6ITLKEOZ.js} +3 -3
- package/chunks/{chunk-F7NXQH4Y.js → chunk-6YIRYY3P.js} +1 -1
- package/chunks/{chunk-GGJII3FM.js → chunk-6Z5NRZVU.js} +92 -3
- package/chunks/{chunk-DPFBNG72.js → chunk-AEKYFMYE.js} +1 -1
- package/chunks/{chunk-2UUAIFQO.js → chunk-ANRANWVE.js} +9 -1
- package/chunks/{chunk-SXU3KKNI.js → chunk-ATJ7H5AS.js} +419 -76
- package/chunks/{chunk-6GETGQWP.js → chunk-C5NSOSF4.js} +64 -18
- package/chunks/{chunk-TQBODCFD.js → chunk-CMVFTMRD.js} +251 -3
- package/chunks/{chunk-DK33QJ3V.js → chunk-CZSAIBUB.js} +733 -14
- package/chunks/{chunk-3MX7D6QN.js → chunk-DASWPKXR.js} +32 -4
- package/chunks/{chunk-JSJFKYWT.js → chunk-DPSHAB47.js} +2 -2
- package/chunks/{chunk-7MJAZMXK.js → chunk-ECZFTRTP.js} +29 -78
- package/chunks/{chunk-H3FQOPPS.js → chunk-EKG3BHQY.js} +4 -4
- package/chunks/{chunk-FSA7ERJ2.js → chunk-F2RR4HO2.js} +1 -1
- package/chunks/{chunk-EQY6POVO.js → chunk-F5XYN5VF.js} +2 -2
- package/chunks/chunk-FEOZBUMT.js +77 -0
- package/chunks/{chunk-L62SEJWY.js → chunk-FHUXCRAF.js} +4 -4
- package/chunks/{chunk-OFEVHGVU.js → chunk-FSJGBUQI.js} +818 -31
- package/chunks/{chunk-FBU7WRZI.js → chunk-FUTHTZVV.js} +1 -1
- package/chunks/{chunk-ZRKBI3DP.js → chunk-FZRES4GK.js} +1 -1
- package/chunks/{chunk-OKAIGAYW.js → chunk-G274ETR6.js} +3 -3
- package/chunks/{chunk-6GKMJPOC.js → chunk-GA3WUOO7.js} +5 -5
- package/chunks/{chunk-X362TMXZ.js → chunk-GAQOQMHY.js} +8 -6
- package/chunks/{chunk-WLXYAKV7.js → chunk-GG6RSNWS.js} +9 -4
- package/chunks/{chunk-CEW4HDPK.js → chunk-GUNTLALV.js} +2484 -362
- package/chunks/{chunk-LXLTBIDP.js → chunk-HCCR43AY.js} +1 -1
- package/chunks/{chunk-RDRVMDWV.js → chunk-HIMIG6PI.js} +11 -11
- package/chunks/{chunk-MO7O5722.js → chunk-HQXQCIT2.js} +45 -5
- package/chunks/{chunk-LTNI523B.js → chunk-HT7L5FCZ.js} +28 -5
- package/chunks/{chunk-7NAWTFVY.js → chunk-IENO2YAT.js} +3 -3
- package/chunks/{chunk-3XJFUTNM.js → chunk-IK5TYYVR.js} +59 -12
- package/chunks/{chunk-AAR5SGMD.js → chunk-IVKLDHU6.js} +7 -5
- package/chunks/{chunk-6W6DI34P.js → chunk-IX7O5WI3.js} +180 -8
- package/chunks/{chunk-SPJQO2CE.js → chunk-J2MKYJKZ.js} +2 -2
- package/chunks/{chunk-SPUYQB4T.js → chunk-JBAQ5BYX.js} +1 -1
- package/chunks/{chunk-TYLOFD2U.js → chunk-JCJPZMJV.js} +1 -1
- package/chunks/chunk-JDIUK2Y3.js +226 -0
- package/chunks/{chunk-L37RC7MQ.js → chunk-JUVTV4NF.js} +1 -1
- package/chunks/{chunk-WDWJ4OQJ.js → chunk-K2GBHL73.js} +4 -4
- package/chunks/{chunk-HHEFI4RP.js → chunk-KEVDWH3U.js} +857 -137
- package/chunks/{chunk-YU56QGXX.js → chunk-KTKETHMY.js} +1 -1
- package/chunks/{chunk-WDW64OW3.js → chunk-LGY7PG7Q.js} +5 -5
- package/chunks/{chunk-E67NFMF4.js → chunk-LKR7QQ63.js} +37 -3
- package/chunks/{chunk-4YWLED2A.js → chunk-LSFVUGXT.js} +9 -6
- package/chunks/{chunk-W34A5MJH.js → chunk-LTD3CHGS.js} +1 -1
- package/chunks/chunk-LXXMOYPL.js +22 -0
- package/chunks/{chunk-BBNVFRGD.js → chunk-MI2V6IWU.js} +1 -1
- package/chunks/{chunk-UFOKA4PR.js → chunk-O2K6BLPZ.js} +114 -4
- package/chunks/{chunk-B5I2IIWY.js → chunk-OBYAX5QZ.js} +6 -6
- package/chunks/{chunk-V7EQTZYR.js → chunk-OCQ2QTFJ.js} +203 -47
- package/chunks/{chunk-VBRRNQB7.js → chunk-OPVIKLKK.js} +112 -25
- package/chunks/{chunk-2Z5UX4KI.js → chunk-OSSDHJDU.js} +1 -1
- package/chunks/{chunk-TTUO4DNG.js → chunk-OXOEOOQU.js} +126 -734
- package/chunks/{chunk-4FMG7EDJ.js → chunk-PWYLF7SS.js} +79 -16
- package/chunks/chunk-QFEY6OXH.js +45 -0
- package/chunks/{chunk-YX4LLZ3D.js → chunk-QPRDXJIC.js} +115 -40
- package/chunks/{chunk-7R4DPSRA.js → chunk-R3VWUU2E.js} +1 -1
- package/chunks/{chunk-XLIRF7IK.js → chunk-S4N3G4BB.js} +1 -1
- package/chunks/{chunk-ARKANCNX.js → chunk-SGPFJMRP.js} +1 -1
- package/chunks/{chunk-WTSXKLG5.js → chunk-SUARMD4Q.js} +1 -1
- package/chunks/{chunk-PZL23GTM.js → chunk-T3W4SDRB.js} +2 -0
- package/chunks/chunk-T4TZQJ7W.js +48 -0
- package/chunks/{chunk-K4PZ5F5T.js → chunk-TVYM3Q3J.js} +101 -8
- package/chunks/{chunk-4LD5APFL.js → chunk-TYQMGACW.js} +1 -0
- package/chunks/{chunk-6OATMEYN.js → chunk-U2LNTX56.js} +12 -4
- package/chunks/{chunk-422XAKCK.js → chunk-U2XBPBO3.js} +4 -3
- package/chunks/{chunk-LNUXFLLJ.js → chunk-U4FJ26D2.js} +54 -6
- package/chunks/{chunk-ZQTZXVHP.js → chunk-U6OPT4H2.js} +4 -18
- package/chunks/{chunk-7NFB7LBQ.js → chunk-UE5TZ55T.js} +8 -0
- package/chunks/{chunk-CUUXANEQ.js → chunk-URP6O2PP.js} +6 -1
- package/chunks/{chunk-GDQQRV43.js → chunk-V2FRLYHN.js} +3 -3
- package/chunks/{chunk-WIEO4CWB.js → chunk-VAJS2E2D.js} +1 -1
- package/chunks/{chunk-TXY2C3D2.js → chunk-VNN3JNYT.js} +1 -1
- package/chunks/{chunk-YHN5SUIJ.js → chunk-W7H223ZZ.js} +1 -1
- package/chunks/{chunk-WX6SD4IQ.js → chunk-WEPXQKGP.js} +1 -1
- package/chunks/{chunk-KSO42X3Z.js → chunk-X6YQWCIJ.js} +21 -2
- package/chunks/{chunk-URU5UEK6.js → chunk-XA7OKDWM.js} +135 -68
- package/chunks/{chunk-Q6TUALBE.js → chunk-XAAEDML2.js} +1 -1
- package/chunks/{chunk-KKRTYONM.js → chunk-XSPFQQRE.js} +3 -3
- package/chunks/{chunk-OATTJGPJ.js → chunk-Y72B36CP.js} +7 -7
- package/chunks/{chunk-ZPAHLFZU.js → chunk-Z2LBNX3R.js} +2 -2
- package/chunks/{chunk-XXJKGHZV.js → chunk-ZTSDZQZO.js} +131 -4
- package/chunks/{computer-use-IYTX45WA.js → computer-use-UIFBH25Y.js} +26 -26
- package/chunks/{config-utils-CFT33LTP.js → config-utils-2LHI7JXU.js} +3 -3
- package/chunks/{contextCommand-272V77WU.js → contextCommand-VGZHKEH2.js} +28 -28
- package/chunks/{create-sub-session-WNX2OQVX.js → create-sub-session-DIJOV6HV.js} +2 -2
- package/chunks/{create-sub-session-CBJMQLYP.js → create-sub-session-OFVI4H6I.js} +26 -26
- package/chunks/{cron-create-36TIFKRT.js → cron-create-34GVLSW5.js} +4 -4
- package/chunks/{cron-delete-OQD3WULU.js → cron-delete-NMVKUL45.js} +4 -4
- package/chunks/{cron-list-4533T2FH.js → cron-list-277ZOR7L.js} +4 -4
- package/chunks/{daemon-RNGFPMAB.js → daemon-72MEV3TY.js} +361 -84
- package/chunks/daemon-status-provider-ZJJ6AOG2.js +75 -0
- package/chunks/{de-2VCDRDGU.js → de-56TMDIKS.js} +7 -2
- package/chunks/{dist-3V3ZV6ML.js → dist-4W3UGU2A.js} +1 -1
- package/chunks/{dist-HNN7DR2L.js → dist-G6QCGO2K.js} +58 -30
- package/chunks/{dist-ERCPDVA6.js → dist-ILVRL322.js} +4 -51
- package/chunks/{dist-PHEPJLXD.js → dist-KEZ5JWH4.js} +2 -2
- package/chunks/{dist-JZE7F6YR.js → dist-LQHDHBPP.js} +1 -1
- package/chunks/{dist-MOEC47TR.js → dist-SVHAGOLN.js} +1 -1
- package/chunks/{earlyInputCapture-EN4BRREQ.js → earlyInputCapture-NPF4PVUE.js} +27 -27
- package/chunks/{edit-OMAF2QDR.js → edit-F7CT6NZH.js} +27 -27
- package/chunks/{en-NJCA3TAA.js → en-AXS2N62H.js} +12 -3
- package/chunks/{enter-worktree-BBZX52HG.js → enter-worktree-Z4ET3MZL.js} +26 -26
- package/chunks/{enterPlanMode-5NNFMBUY.js → enterPlanMode-VYR7T5NX.js} +27 -29
- package/chunks/{environment-7TEWMJYN.js → environment-MBTXL57Q.js} +28 -28
- package/chunks/{errors-I4VKVX3F.js → errors-HN36J4FR.js} +28 -28
- package/chunks/{exit-worktree-FUWRJI33.js → exit-worktree-RU7JYFMF.js} +26 -26
- package/chunks/exitPlanMode-LUBAWMZQ.js +390 -0
- package/chunks/{fast-path-ZA57TOH4.js → fast-path-RFT3CDNZ.js} +2 -2
- package/chunks/{fr-5F3E7WKD.js → fr-ZJPE5OVN.js} +7 -2
- package/chunks/{gemini-UOAKVXBG.js → gemini-37NTNKZF.js} +215 -231
- package/chunks/{geminiContentGenerator-G6UCE6MW.js → geminiContentGenerator-76HNOYNQ.js} +5 -5
- package/chunks/{glob-4GJQ2UFF.js → glob-DWD7JCZE.js} +32 -27
- package/chunks/{grep-5QSYXF2E.js → grep-NJRXFV5C.js} +32 -27
- package/chunks/{handleAutoUpdate-ULHNWL6R.js → handleAutoUpdate-7GBDXW6U.js} +30 -30
- package/chunks/{i18n-CYDUTF6F.js → i18n-MYD5VGED.js} +27 -27
- package/chunks/{initializer-NRFKUGIO.js → initializer-4DHPNAZG.js} +32 -32
- package/chunks/{installationInfo-WELKRHHE.js → installationInfo-RWOW6BZO.js} +27 -27
- package/chunks/{ja-66J6B53L.js → ja-57GG4QSL.js} +7 -2
- package/chunks/{keychain-token-storage-AU22CQI6.js → keychain-token-storage-K23CFKGN.js} +2 -2
- package/chunks/{list-JVDXEG2E.js → list-MMCNNHE7.js} +34 -34
- package/chunks/{loadedSettingsAdapter-WAM4VUTG.js → loadedSettingsAdapter-UK4JWPYU.js} +31 -31
- package/chunks/{loop-wakeup-MVUKDVCP.js → loop-wakeup-KCLY4XQM.js} +5 -5
- package/chunks/{ls-RXNIAQDE.js → ls-UNI4LAJ3.js} +4 -4
- package/chunks/{lsp-HB5LM5IL.js → lsp-HPACPJAN.js} +2 -2
- package/chunks/{mcp-YHOZN3ZM.js → mcp-AFCVA4UV.js} +31 -31
- package/chunks/{monitor-R7XZPJHQ.js → monitor-RK637BNO.js} +28 -27
- package/chunks/nonInteractiveCli-OUGWLHNV.js +129 -0
- package/chunks/{notebook-edit-6RNKE2L2.js → notebook-edit-LY2X3CMF.js} +27 -27
- package/chunks/{openaiContentGenerator-XNS5S64I.js → openaiContentGenerator-MDYDW7IA.js} +14 -14
- package/chunks/{pidfile-XE4RRR2P.js → pidfile-2NUYRLKB.js} +27 -27
- package/chunks/processUtils-7QH3VBVN.js +29 -0
- package/chunks/{pt-TFZO5Y6T.js → pt-MCGZ3RZ4.js} +7 -2
- package/chunks/{qwenContentGenerator-APDPJ3VN.js → qwenContentGenerator-3HT4TVDL.js} +28 -28
- package/chunks/{qwenOAuth2-LEYOU7RU.js → qwenOAuth2-3A4TJVZT.js} +5 -5
- package/chunks/{read-file-XSUWXSR7.js → read-file-NE4FREFR.js} +10 -10
- package/chunks/{read-mcp-resource-6LRTZKXI.js → read-mcp-resource-C6NT52T6.js} +2 -2
- package/chunks/{record-artifact-PMDTY4OS.js → record-artifact-ENCU7QCL.js} +2 -2
- package/chunks/{ripGrep-APB3CDMU.js → ripGrep-DBLXWQCJ.js} +26 -26
- package/chunks/{ru-4L4LFHIT.js → ru-GA3NZW5Q.js} +7 -2
- package/chunks/{run-qwen-serve-NWTGPERT.js → run-qwen-serve-3NOCI6IL.js} +63 -39
- package/chunks/{runtime-EIO3NQKR.js → runtime-ZI7DSZSS.js} +35 -35
- package/chunks/{scheduler-JJDZBDRN.js → scheduler-SOVEP5K7.js} +26 -26
- package/chunks/{send-message-SR4WSXP2.js → send-message-5IFPZTPE.js} +3 -3
- package/chunks/{serve-WTIPB3EI.js → serve-DB6OCXIA.js} +31 -31
- package/chunks/{server-NJPHQHLH.js → server-LDY4YVU4.js} +2257 -648
- package/chunks/{session-O4AO7FTS.js → session-D6OG5SKX.js} +99 -72
- package/chunks/{settings-HQNDK7TG.js → settings-L52ZV5LO.js} +30 -30
- package/chunks/{shell-UIXM6PWG.js → shell-IU27OY3Q.js} +28 -26
- package/chunks/{skill-3XMB4ULV.js → skill-BSOJT7LE.js} +12 -12
- package/chunks/{spawnChannel-3R632QRM.js → spawnChannel-HQAM25DD.js} +28 -29
- package/chunks/{src-USZKPUOC.js → src-7ZBIMTJZ.js} +130 -51
- package/chunks/{standalone-update-L5XW3D7K.js → standalone-update-77457VVK.js} +28 -28
- package/chunks/{startInteractiveUI-CPZOL2WB.js → startInteractiveUI-S7WC6EZG.js} +2310 -1835
- package/chunks/{syntheticOutput-YKFNUQZD.js → syntheticOutput-ULOVVLY4.js} +3 -3
- package/chunks/{task-create-NUFOHU53.js → task-create-V2DCDSET.js} +7 -7
- package/chunks/{task-list-Z2IKQY3S.js → task-list-DPL5ZN55.js} +5 -5
- package/chunks/{task-stop-KQFIVQTJ.js → task-stop-CPEQWOT6.js} +2 -2
- package/chunks/{task-update-HKADXSTD.js → task-update-ZR45M5Q7.js} +7 -7
- package/chunks/{team-create-XXPRF3IQ.js → team-create-CO7HSUON.js} +26 -26
- package/chunks/{team-delete-SDNTGZLG.js → team-delete-HIWXCWJU.js} +5 -5
- package/chunks/{team-plan-approval-EOTTKHDW.js → team-plan-approval-QDZF5YZY.js} +26 -26
- package/chunks/{theme-manager-P6UITO2L.js → theme-manager-UTUT3I4P.js} +27 -27
- package/chunks/todoWrite-HK6B3RHJ.js +358 -0
- package/chunks/{tool-search-DDNGK2LR.js → tool-search-2UUORA35.js} +11 -11
- package/chunks/{total-session-admission-PL5N7DNY.js → total-session-admission-NTWG6G3F.js} +32 -34
- package/chunks/{trustedFolders-C5LMF3UR.js → trustedFolders-YF37ZCN5.js} +27 -27
- package/chunks/update-relaunch-QFNHPMZZ.js +87 -0
- package/chunks/{updateCheck-QTVVISH7.js → updateCheck-B6O42VMD.js} +30 -28
- package/chunks/{validateNonInterActiveAuth-RY4RKBQG.js → validateNonInterActiveAuth-SCIWJ4CX.js} +65 -65
- package/chunks/{version-U45RYOSD.js → version-7DA6LAI3.js} +1 -1
- package/chunks/{web-fetch-ZSPR3PRR.js → web-fetch-B62SJXM2.js} +5 -6
- package/chunks/{workflow-TCIAQYOA.js → workflow-Q5WG4THP.js} +27 -27
- package/chunks/{workspace-providers-status-I3G2HYLY.js → workspace-providers-status-WWLAGWQW.js} +34 -34
- package/chunks/{workspace-registration-store-IH5GLZ6Y.js → workspace-registration-store-BVYQVY2H.js} +1 -1
- package/chunks/{workspace-registry-QEKBELIX.js → workspace-registry-OD7ACADD.js} +32 -34
- package/chunks/{workspace-service-ORKHGLP3.js → workspace-service-4LYJWS63.js} +37 -38
- package/chunks/{workspace-skills-status-D7QCNDYY.js → workspace-skills-status-P2AQLZZS.js} +32 -32
- package/chunks/{write-file-JGRQR5VM.js → write-file-TEPGXNM3.js} +60 -27
- package/chunks/{zh-FSAH32JB.js → zh-E34DZ2S3.js} +12 -3
- package/chunks/{zh-TW-D2YIE2LO.js → zh-TW-PEI2ZWUR.js} +12 -3
- package/cli-entry.js +92 -8
- package/cli.js +11 -11
- package/locales/ca.js +12 -2
- package/locales/de.js +12 -2
- package/locales/en.js +20 -5
- package/locales/fr.js +12 -2
- package/locales/ja.js +12 -2
- package/locales/pt.js +12 -2
- package/locales/ru.js +12 -2
- package/locales/zh-TW.js +19 -3
- package/locales/zh.js +19 -3
- package/package.json +3 -3
- package/web-shell/assets/{arc-CUeDlxvE.js → arc-Dh-N5oEG.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-PiUszkQA.js → architectureDiagram-3BPJPVTR-DBOQgtfF.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-s2wYSO7e.js → blockDiagram-GPEHLZMM-Dyxbuyju.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DyLxZoz9.js → c4Diagram-AAUBKEIU-DCJR5HPT.js} +1 -1
- package/web-shell/assets/channel-DY0fkcKT.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-Dsdai7Tk.js → chunk-2J33WTMH-BkMUcy3O.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DEosOjV7.js → chunk-4BX2VUAB-BSm4pLQk.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-sNsRLTXf.js → chunk-55IACEB6-CuRr-XgW.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DkRNZzmh.js → chunk-727SXJPM-CLv7-w3t.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BrsRNpzd.js → chunk-AQP2D5EJ-Cz_n3-JW.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CI039lpl.js → chunk-FMBD7UC4-CFT_62Hq.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-M-pkeIfu.js → chunk-ND2GUHAM-DWz6DOZ6.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-C4ckGNbH.js → chunk-QZHKN3VN-C-mRhUzw.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-DBvJ6PZo.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DBvJ6PZo.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BciKUAFq.js → cose-bilkent-S5V4N54A-BqCZS3i1.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-C1nTSgU6.js → dagre-BM42HDAG-BGasdP8i.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BDPNWr1m.js → diagram-2AECGRRQ-BSyLDkMy.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-CNFhTszL.js → diagram-5GNKFQAL-CM-ZJxWC.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CjPa4p5a.js → diagram-KO2AKTUF-wJdzt_C5.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-ZzPykSyG.js → diagram-LMA3HP47-DiH2fhpL.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-0UVtZ9A4.js → diagram-OG6HWLK6-BZ9z1ZBl.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CajDZCat.js → erDiagram-TEJ5UH35-BsyWDziR.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BRuFBIvL.js → flowDiagram-I6XJVG4X-CzdkxIrq.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BevGmJqG.js → ganttDiagram-6RSMTGT7-javIv2r2.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DvPMpBMb.js → gitGraphDiagram-PVQCEYII-CjHstylC.js} +1 -1
- package/web-shell/assets/{index-DzHwQkQq.js → index-BnJGxpah.js} +1 -1
- package/web-shell/assets/index-DhXB9nTa.js +1161 -0
- package/web-shell/assets/index-vYHgZ7bL.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-Oixn7tA9.js → infoDiagram-5YYISTIA-yXuQsomo.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BgKpeg-j.js → ishikawaDiagram-YF4QCWOH-a85JhE6F.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-74mwxIaA.js → journeyDiagram-JHISSGLW-Dak_4BVj.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-D4D6cEqA.js → kanban-definition-UN3LZRKU-COA-LuCV.js} +1 -1
- package/web-shell/assets/{linear-atZRE_L2.js → linear-DNAAAQWq.js} +1 -1
- package/web-shell/assets/{mermaid.core-KKudX-JC.js → mermaid.core-7Ff3aIUD.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-CMCej9yG.js → mindmap-definition-RKZ34NQL-_rCOIODU.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-nhx40X7q.js → pieDiagram-4H26LBE5-C9QCQ8EW.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CUmVcN3M.js → quadrantDiagram-W4KKPZXB-CsaE4FA8.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-C_vyEwyy.js → requirementDiagram-4Y6WPE33-tV78naTg.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DU6G4VWR.js → sankeyDiagram-5OEKKPKP-Dk3Rw7BZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DdeRR_KJ.js → sequenceDiagram-3UESZ5HK-BGsAWcMX.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-C6iCI8ps.js → stateDiagram-AJRCARHV-zSxdtdoB.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-vLEEtDpO.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-B_Ea8Cb7.js → timeline-definition-PNZ67QCA-j0BQh9Go.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BPUVZEJA.js → vennDiagram-CIIHVFJN-CRaUFFIu.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-BWEj0lKY.js → wardley-L42UT6IY-D7Py_ofm.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BvDsdIQw.js → wardleyDiagram-YWT4CUSO-BrDIAZcp.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-crz0QhF_.js → xychartDiagram-2RQKCTM6-Cecdw-w2.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/channel-worker-group-K7QKH6IG.js +0 -13
- package/chunks/chunk-2HRYPZT5.js +0 -25
- package/chunks/chunk-B7NUUEXC.js +0 -311
- package/chunks/chunk-CARU2RR2.js +0 -24
- package/chunks/chunk-GYTKQYDB.js +0 -23
- package/chunks/chunk-LQU7EVFA.js +0 -30
- package/chunks/chunk-OCPBI7J5.js +0 -18
- package/chunks/chunk-OJAMDVF5.js +0 -66
- package/chunks/chunk-QAW7PIHT.js +0 -168
- package/chunks/chunk-TEGEBB2I.js +0 -122
- package/chunks/daemon-status-provider-L4STG5VO.js +0 -76
- package/chunks/exitPlanMode-IHCJ5EEI.js +0 -909
- package/chunks/nonInteractiveCli-NSOB6D74.js +0 -129
- package/chunks/todoWrite-YNXB27GB.js +0 -531
- package/web-shell/assets/channel-DkuJJ0qd.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CwqHc0TB.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwqHc0TB.js +0 -1
- package/web-shell/assets/index-Cnvv4VcI.css +0 -5
- package/web-shell/assets/index-D1Uyklxa.js +0 -1088
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C0_6nR6C.js +0 -1
|
@@ -2,33 +2,37 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
CHANNEL_DAEMON_WORKER_SENTINEL,
|
|
5
|
+
CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
|
|
5
6
|
CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
|
|
7
|
+
ChannelWebhookEnqueueError,
|
|
8
|
+
MAX_CHANNEL_STARTUP_FAILURES,
|
|
9
|
+
MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH,
|
|
10
|
+
MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH,
|
|
11
|
+
MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH,
|
|
6
12
|
QWEN_DAEMON_TOKEN_ENV,
|
|
7
13
|
QWEN_DAEMON_URL_ENV,
|
|
8
14
|
QWEN_DAEMON_WORKSPACE_ENV,
|
|
9
|
-
QWEN_SERVER_TOKEN_ENV
|
|
10
|
-
|
|
15
|
+
QWEN_SERVER_TOKEN_ENV,
|
|
16
|
+
createChannelWebhookTaskMessage,
|
|
17
|
+
createWorkerDiagnosticRedactor,
|
|
18
|
+
isChannelStartupReportMessage,
|
|
19
|
+
isChannelStartupReportType,
|
|
20
|
+
isChannelWebhookEnqueueErrorCode,
|
|
21
|
+
isChannelWebhookTaskResultMessage,
|
|
22
|
+
normalizeWorkerDiagnostic,
|
|
23
|
+
sanitizeWorkerDiagnostic
|
|
24
|
+
} from "./chunk-JDIUK2Y3.js";
|
|
11
25
|
import {
|
|
12
26
|
channelSelectionNames
|
|
13
27
|
} from "./chunk-TJTKSVIV.js";
|
|
14
|
-
import {
|
|
15
|
-
redactLogCredentials
|
|
16
|
-
} from "./chunk-M5GB774H.js";
|
|
17
28
|
import {
|
|
18
29
|
CHANNEL_WORKER_KILL_GRACE_MS,
|
|
19
30
|
CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
|
|
20
31
|
CHANNEL_WORKER_STOP_GRACE_MS
|
|
21
32
|
} from "./chunk-5HBA2Z7V.js";
|
|
22
|
-
import {
|
|
23
|
-
CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
|
|
24
|
-
ChannelWebhookEnqueueError,
|
|
25
|
-
createChannelWebhookTaskMessage,
|
|
26
|
-
isChannelWebhookEnqueueErrorCode,
|
|
27
|
-
isChannelWebhookTaskResultMessage
|
|
28
|
-
} from "./chunk-OJAMDVF5.js";
|
|
29
33
|
import {
|
|
30
34
|
sanitizeLogText
|
|
31
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-ATJ7H5AS.js";
|
|
32
36
|
import {
|
|
33
37
|
init_esbuild_shims
|
|
34
38
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -44,12 +48,6 @@ var DEFAULT_CHANNEL_WORKER_HEARTBEAT_TIMEOUT_MS = 45e3;
|
|
|
44
48
|
var MAX_WORKER_LOG_LINE_LENGTH = 4096;
|
|
45
49
|
var MAX_WORKER_LOG_BUFFER_LENGTH = 64 * 1024;
|
|
46
50
|
var MAX_WORKER_LOG_DISCARDED_REMAINDER_LENGTH = MAX_WORKER_LOG_BUFFER_LENGTH;
|
|
47
|
-
var ANSI_CSI_SEQUENCE_RE = new RegExp(
|
|
48
|
-
`${String.fromCharCode(27)}\\[[0-?]*[ -/]*[@-~]`,
|
|
49
|
-
"g"
|
|
50
|
-
);
|
|
51
|
-
var WORKER_LOG_INVISIBLE_RE = new RegExp("[\\p{Cf}\\u2028\\u2029]|\\p{Variation_Selector}", "gu");
|
|
52
|
-
var WORKER_LOG_CONTROL_RE = /[\x00-\x08\x0a-\x1f\x7f]/g;
|
|
53
51
|
var ChannelWorkerStopError = class extends Error {
|
|
54
52
|
static {
|
|
55
53
|
__name(this, "ChannelWorkerStopError");
|
|
@@ -59,6 +57,22 @@ var ChannelWorkerStopError = class extends Error {
|
|
|
59
57
|
this.name = "ChannelWorkerStopError";
|
|
60
58
|
}
|
|
61
59
|
};
|
|
60
|
+
var ChannelWorkerStartupError = class extends Error {
|
|
61
|
+
static {
|
|
62
|
+
__name(this, "ChannelWorkerStartupError");
|
|
63
|
+
}
|
|
64
|
+
startupFailures;
|
|
65
|
+
startupFailuresTruncated;
|
|
66
|
+
constructor(message, details) {
|
|
67
|
+
super(message);
|
|
68
|
+
this.name = "ChannelWorkerStartupError";
|
|
69
|
+
this.startupFailures = details.startupFailures.map((failure) => ({
|
|
70
|
+
...failure,
|
|
71
|
+
workspaceCwd: details.workspaceCwd
|
|
72
|
+
}));
|
|
73
|
+
this.startupFailuresTruncated = details.startupFailuresTruncated === true;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
62
76
|
var DEFAULT_RESTART_POLICY = {
|
|
63
77
|
maxRestarts: 3,
|
|
64
78
|
windowMs: 5 * 6e4,
|
|
@@ -101,9 +115,7 @@ function workerLogRedactionOptions(daemonToken, workerEnv) {
|
|
|
101
115
|
}
|
|
102
116
|
__name(workerLogRedactionOptions, "workerLogRedactionOptions");
|
|
103
117
|
function sanitizeWorkerError(error, redaction) {
|
|
104
|
-
|
|
105
|
-
const redacted = redaction ? redactWorkerLogLine(normalized, redaction) : normalized;
|
|
106
|
-
return Array.from(sanitizeLogText(redacted, 512)).slice(0, 512).join("");
|
|
118
|
+
return redaction ? sanitizeWorkerDiagnostic(error, 512, redaction) : sanitizeLogText(normalizeWorkerDiagnostic(error), 512);
|
|
107
119
|
}
|
|
108
120
|
__name(sanitizeWorkerError, "sanitizeWorkerError");
|
|
109
121
|
function notifyExit(onExit, snapshot) {
|
|
@@ -162,58 +174,20 @@ function createWorkerEnv(opts) {
|
|
|
162
174
|
return env;
|
|
163
175
|
}
|
|
164
176
|
__name(createWorkerEnv, "createWorkerEnv");
|
|
165
|
-
function escapeRegExp(value) {
|
|
166
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
167
|
-
}
|
|
168
|
-
__name(escapeRegExp, "escapeRegExp");
|
|
169
|
-
function sensitiveEnvValues(env) {
|
|
170
|
-
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;
|
|
171
|
-
return Object.entries(env).filter(([key, value]) => sensitiveKey.test(key) && value !== void 0).flatMap(([, value]) => {
|
|
172
|
-
const lines = value.split("\n").filter((l) => l.length >= 4);
|
|
173
|
-
return lines.length > 0 ? [value, ...lines] : [value];
|
|
174
|
-
}).filter((value) => value.length >= 4);
|
|
175
|
-
}
|
|
176
|
-
__name(sensitiveEnvValues, "sensitiveEnvValues");
|
|
177
|
-
function redactWorkerLogLine(line, opts) {
|
|
178
|
-
return createWorkerLogRedactor(opts)(line);
|
|
179
|
-
}
|
|
180
|
-
__name(redactWorkerLogLine, "redactWorkerLogLine");
|
|
181
|
-
function createWorkerLogRedactor(opts) {
|
|
182
|
-
const secretPatterns = [
|
|
183
|
-
.../* @__PURE__ */ new Set([
|
|
184
|
-
...opts.daemonToken && opts.daemonToken.length >= 4 ? [opts.daemonToken] : [],
|
|
185
|
-
...sensitiveEnvValues(opts.workerEnv)
|
|
186
|
-
])
|
|
187
|
-
].sort((a, b) => b.length - a.length).map((secret) => new RegExp(escapeRegExp(secret), "g"));
|
|
188
|
-
return (line) => {
|
|
189
|
-
let redacted = line.replace(
|
|
190
|
-
/\b([a-z][a-z0-9+.-]{0,31}:\/\/)([^\s/]*@)([^\s/]+)([^\s]*)/gi,
|
|
191
|
-
"$1<redacted>@$3$4"
|
|
192
|
-
);
|
|
193
|
-
for (const secretPattern of secretPatterns) {
|
|
194
|
-
redacted = redacted.replace(secretPattern, "<redacted>");
|
|
195
|
-
}
|
|
196
|
-
return redactLogCredentials(redacted);
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
__name(createWorkerLogRedactor, "createWorkerLogRedactor");
|
|
200
|
-
function normalizeWorkerLogLineForRedaction(line) {
|
|
201
|
-
return line.replace(ANSI_CSI_SEQUENCE_RE, "").replace(WORKER_LOG_INVISIBLE_RE, "").replace(WORKER_LOG_CONTROL_RE, "");
|
|
202
|
-
}
|
|
203
|
-
__name(normalizeWorkerLogLineForRedaction, "normalizeWorkerLogLineForRedaction");
|
|
204
177
|
function attachWorkerLogStream(stream, streamName, opts) {
|
|
205
178
|
if (!stream) return () => {
|
|
206
179
|
};
|
|
207
180
|
let buffer = "";
|
|
208
181
|
let discardingOversizedLineRemainder = false;
|
|
209
182
|
let discardedOversizedLineRemainderLength = 0;
|
|
210
|
-
const redactWorkerLogLineForStream =
|
|
183
|
+
const redactWorkerLogLineForStream = createWorkerDiagnosticRedactor({
|
|
211
184
|
...opts.daemonToken ? { daemonToken: opts.daemonToken } : {},
|
|
212
185
|
workerEnv: opts.workerEnv
|
|
213
186
|
});
|
|
214
187
|
const flushLine = /* @__PURE__ */ __name((line) => {
|
|
188
|
+
const displayLine = line.replace(/\t/gu, " ");
|
|
215
189
|
const redacted = redactWorkerLogLineForStream(
|
|
216
|
-
|
|
190
|
+
normalizeWorkerDiagnostic(displayLine)
|
|
217
191
|
);
|
|
218
192
|
notifyLog(opts.onLog, {
|
|
219
193
|
stream: streamName,
|
|
@@ -294,7 +268,12 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
294
268
|
const snapshotCopy = /* @__PURE__ */ __name(() => ({
|
|
295
269
|
...snapshot,
|
|
296
270
|
channels: [...snapshot.channels],
|
|
297
|
-
...snapshot.requestedChannels ? { requestedChannels: [...snapshot.requestedChannels] } : {}
|
|
271
|
+
...snapshot.requestedChannels ? { requestedChannels: [...snapshot.requestedChannels] } : {},
|
|
272
|
+
...snapshot.startupFailures ? {
|
|
273
|
+
startupFailures: snapshot.startupFailures.map((failure) => ({
|
|
274
|
+
...failure
|
|
275
|
+
}))
|
|
276
|
+
} : {}
|
|
298
277
|
}), "snapshotCopy");
|
|
299
278
|
const clearRestartTimer = /* @__PURE__ */ __name(() => {
|
|
300
279
|
if (restartTimer) {
|
|
@@ -557,6 +536,89 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
557
536
|
resolve();
|
|
558
537
|
}
|
|
559
538
|
}, "failBeforeReady");
|
|
539
|
+
const startupError = /* @__PURE__ */ __name((message) => {
|
|
540
|
+
const failures = snapshot.startupFailures;
|
|
541
|
+
return failures && failures.length > 0 ? new ChannelWorkerStartupError(message, {
|
|
542
|
+
workspaceCwd: opts.workspace,
|
|
543
|
+
startupFailures: failures,
|
|
544
|
+
...snapshot.startupFailuresTruncated ? { startupFailuresTruncated: true } : {}
|
|
545
|
+
}) : new Error(message);
|
|
546
|
+
}, "startupError");
|
|
547
|
+
const failStartupProtocol = /* @__PURE__ */ __name((detail) => {
|
|
548
|
+
if (settled || ready || child !== startedChild) return;
|
|
549
|
+
const error = sanitizeWorkerError(
|
|
550
|
+
`Channel worker startup IPC protocol error: ${detail}`,
|
|
551
|
+
redaction
|
|
552
|
+
);
|
|
553
|
+
snapshot = { ...snapshot, state: "failed", error };
|
|
554
|
+
failBeforeReady(startupError(error));
|
|
555
|
+
terminateBeforeReady();
|
|
556
|
+
}, "failStartupProtocol");
|
|
557
|
+
const acknowledgeStartupReport = /* @__PURE__ */ __name(() => {
|
|
558
|
+
const send = startedChild.send;
|
|
559
|
+
if (!send) {
|
|
560
|
+
failStartupProtocol("acknowledgement is unavailable.");
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
try {
|
|
564
|
+
send.call(
|
|
565
|
+
startedChild,
|
|
566
|
+
{ type: "channel_startup_report_ack" },
|
|
567
|
+
(err) => {
|
|
568
|
+
if (err) {
|
|
569
|
+
failStartupProtocol("acknowledgement failed.");
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
);
|
|
573
|
+
} catch {
|
|
574
|
+
failStartupProtocol("acknowledgement failed.");
|
|
575
|
+
}
|
|
576
|
+
}, "acknowledgeStartupReport");
|
|
577
|
+
const handleStartupReport = /* @__PURE__ */ __name((message) => {
|
|
578
|
+
if (!isChannelStartupReportMessage(message)) {
|
|
579
|
+
failStartupProtocol("invalid startup report.");
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
582
|
+
if (message.type === "channel_startup_failures_truncated") {
|
|
583
|
+
if (snapshot.startupFailuresTruncated || snapshot.startupFailures?.length !== MAX_CHANNEL_STARTUP_FAILURES) {
|
|
584
|
+
failStartupProtocol("invalid truncation marker.");
|
|
585
|
+
return;
|
|
586
|
+
}
|
|
587
|
+
snapshot = { ...snapshot, startupFailuresTruncated: true };
|
|
588
|
+
acknowledgeStartupReport();
|
|
589
|
+
return;
|
|
590
|
+
}
|
|
591
|
+
if (snapshot.startupFailuresTruncated || (snapshot.startupFailures?.length ?? 0) >= MAX_CHANNEL_STARTUP_FAILURES) {
|
|
592
|
+
failStartupProtocol("too many startup failures.");
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
const safeChannel = sanitizeWorkerDiagnostic(
|
|
596
|
+
message.failure.channel,
|
|
597
|
+
MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH,
|
|
598
|
+
redaction
|
|
599
|
+
) || "<unnamed>";
|
|
600
|
+
const safeMessage = sanitizeWorkerDiagnostic(
|
|
601
|
+
message.failure.message,
|
|
602
|
+
MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH,
|
|
603
|
+
redaction
|
|
604
|
+
) || "Channel connection failed.";
|
|
605
|
+
const safeCode = message.failure.code ? sanitizeWorkerDiagnostic(
|
|
606
|
+
message.failure.code,
|
|
607
|
+
MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH,
|
|
608
|
+
redaction
|
|
609
|
+
) : void 0;
|
|
610
|
+
const failure = {
|
|
611
|
+
channel: safeChannel,
|
|
612
|
+
phase: "connect",
|
|
613
|
+
...safeCode ? { code: safeCode } : {},
|
|
614
|
+
message: safeMessage
|
|
615
|
+
};
|
|
616
|
+
snapshot = {
|
|
617
|
+
...snapshot,
|
|
618
|
+
startupFailures: [...snapshot.startupFailures ?? [], failure]
|
|
619
|
+
};
|
|
620
|
+
acknowledgeStartupReport();
|
|
621
|
+
}, "handleStartupReport");
|
|
560
622
|
const completeReady = /* @__PURE__ */ __name((message) => {
|
|
561
623
|
if (settled || child !== startedChild) return;
|
|
562
624
|
settled = true;
|
|
@@ -597,7 +659,9 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
597
659
|
if (settleWebhookTask(message)) {
|
|
598
660
|
return;
|
|
599
661
|
}
|
|
600
|
-
if (!ready &&
|
|
662
|
+
if (!ready && isChannelStartupReportType(message)) {
|
|
663
|
+
handleStartupReport(message);
|
|
664
|
+
} else if (!ready && isReadyMessage(message)) {
|
|
601
665
|
completeReady(message);
|
|
602
666
|
} else if (isHeartbeatMessage(message)) {
|
|
603
667
|
handleHeartbeat(message);
|
|
@@ -626,7 +690,7 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
626
690
|
notifyExit(opts.onExit, snapshotCopy());
|
|
627
691
|
}
|
|
628
692
|
if (!settled) {
|
|
629
|
-
failBeforeReady(
|
|
693
|
+
failBeforeReady(startupError(snapshot.error ?? message));
|
|
630
694
|
}
|
|
631
695
|
}
|
|
632
696
|
__name(settleExit, "settleExit");
|
|
@@ -647,7 +711,9 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
647
711
|
};
|
|
648
712
|
terminateBeforeReady();
|
|
649
713
|
if (!settled) {
|
|
650
|
-
failBeforeReady(
|
|
714
|
+
failBeforeReady(
|
|
715
|
+
startupError(snapshot.error ?? "Channel worker failed to start.")
|
|
716
|
+
);
|
|
651
717
|
}
|
|
652
718
|
}
|
|
653
719
|
__name(settleError, "settleError");
|
|
@@ -659,7 +725,7 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
659
725
|
state: "failed",
|
|
660
726
|
error: sanitizeWorkerError(error, redaction)
|
|
661
727
|
};
|
|
662
|
-
failBeforeReady(
|
|
728
|
+
failBeforeReady(startupError(error));
|
|
663
729
|
if (child === startedChild) {
|
|
664
730
|
terminateBeforeReady();
|
|
665
731
|
}
|
|
@@ -817,5 +883,6 @@ __name(createChannelWorkerSupervisor, "createChannelWorkerSupervisor");
|
|
|
817
883
|
|
|
818
884
|
export {
|
|
819
885
|
ChannelWorkerStopError,
|
|
886
|
+
ChannelWorkerStartupError,
|
|
820
887
|
createChannelWorkerSupervisor
|
|
821
888
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getTasksDir
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4RPARQ5D.js";
|
|
6
6
|
import {
|
|
7
7
|
require_proper_lockfile
|
|
8
8
|
} from "./chunk-E2UVIFI2.js";
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
} from "./chunk-VGC4I5JJ.js";
|
|
12
12
|
import {
|
|
13
13
|
atomicWriteJSON
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-VAJS2E2D.js";
|
|
15
15
|
import {
|
|
16
16
|
createDebugLogger,
|
|
17
17
|
isNodeError
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-UE5TZ55T.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
resolveChannelCwd
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-FZRES4GK.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esbuild_shims
|
|
8
8
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -21,12 +21,12 @@ function ensureBuiltins() {
|
|
|
21
21
|
if (!builtinsPromise) {
|
|
22
22
|
builtinsPromise = (async () => {
|
|
23
23
|
const labelled = [
|
|
24
|
-
{ name: "telegram", promise: import("./dist-
|
|
25
|
-
{ name: "weixin", promise: import("./dist-
|
|
26
|
-
{ name: "dingtalk", promise: import("./dist-
|
|
27
|
-
{ name: "wecom", promise: import("./dist-
|
|
28
|
-
{ name: "feishu", promise: import("./dist-
|
|
29
|
-
{ name: "qqbot", promise: import("./dist-
|
|
24
|
+
{ name: "telegram", promise: import("./dist-LQHDHBPP.js") },
|
|
25
|
+
{ name: "weixin", promise: import("./dist-KEZ5JWH4.js") },
|
|
26
|
+
{ name: "dingtalk", promise: import("./dist-G6QCGO2K.js") },
|
|
27
|
+
{ name: "wecom", promise: import("./dist-ILVRL322.js") },
|
|
28
|
+
{ name: "feishu", promise: import("./dist-SVHAGOLN.js") },
|
|
29
|
+
{ name: "qqbot", promise: import("./dist-4W3UGU2A.js") }
|
|
30
30
|
];
|
|
31
31
|
const results = await Promise.allSettled(labelled.map((l) => l.promise));
|
|
32
32
|
for (let i = 0; i < results.length; i++) {
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isTlsVerificationDisabled
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4CHDYDG3.js";
|
|
6
6
|
import {
|
|
7
7
|
getErrorMessage,
|
|
8
8
|
isNodeError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UE5TZ55T.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esbuild_shims
|
|
12
12
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getEffectiveSupportedModes
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CZSAIBUB.js";
|
|
6
6
|
import {
|
|
7
7
|
require_jsx_runtime
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-TVYM3Q3J.js";
|
|
9
9
|
import {
|
|
10
10
|
require_react
|
|
11
11
|
} from "./chunk-HTHUX2T5.js";
|
|
12
12
|
import {
|
|
13
13
|
getCachedStringWidth
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SUARMD4Q.js";
|
|
15
15
|
import {
|
|
16
16
|
uiTelemetryService
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-66IT3EY2.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esbuild_shims
|
|
20
20
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -555,6 +555,129 @@ function fitPendingSlice(allLines, contentWidth, budget, tableClampRows) {
|
|
|
555
555
|
}
|
|
556
556
|
__name(fitPendingSlice, "fitPendingSlice");
|
|
557
557
|
|
|
558
|
+
// packages/cli/src/ui/utils/markdownUtilities.ts
|
|
559
|
+
init_esbuild_shims();
|
|
560
|
+
var findNextFence = /* @__PURE__ */ __name((content, from) => {
|
|
561
|
+
const backtick = content.indexOf("```", from);
|
|
562
|
+
const tilde = content.indexOf("~~~", from);
|
|
563
|
+
if (backtick === -1 && tilde === -1) return null;
|
|
564
|
+
let index;
|
|
565
|
+
let char;
|
|
566
|
+
if (tilde === -1 || backtick !== -1 && backtick < tilde) {
|
|
567
|
+
index = backtick;
|
|
568
|
+
char = "`";
|
|
569
|
+
} else {
|
|
570
|
+
index = tilde;
|
|
571
|
+
char = "~";
|
|
572
|
+
}
|
|
573
|
+
let length = 0;
|
|
574
|
+
while (content[index + length] === char) length++;
|
|
575
|
+
return { index, char, length };
|
|
576
|
+
}, "findNextFence");
|
|
577
|
+
var getEnclosingFence = /* @__PURE__ */ __name((content, indexToTest) => {
|
|
578
|
+
let open = null;
|
|
579
|
+
let searchPos = 0;
|
|
580
|
+
while (searchPos < content.length) {
|
|
581
|
+
const fence = findNextFence(content, searchPos);
|
|
582
|
+
if (!fence || fence.index >= indexToTest) break;
|
|
583
|
+
if (!open) {
|
|
584
|
+
open = { char: fence.char, len: fence.length, index: fence.index };
|
|
585
|
+
} else if (fence.char === open.char && fence.length >= open.len) {
|
|
586
|
+
open = null;
|
|
587
|
+
}
|
|
588
|
+
searchPos = fence.index + fence.length;
|
|
589
|
+
}
|
|
590
|
+
if (!open) return null;
|
|
591
|
+
const newlineIndex = content.indexOf("\n", open.index);
|
|
592
|
+
const fenceLineEnd = newlineIndex === -1 ? content.length : newlineIndex;
|
|
593
|
+
return {
|
|
594
|
+
startIndex: open.index,
|
|
595
|
+
delimiter: content.slice(open.index, open.index + open.len),
|
|
596
|
+
infoString: content.slice(open.index + open.len, fenceLineEnd)
|
|
597
|
+
};
|
|
598
|
+
}, "getEnclosingFence");
|
|
599
|
+
var isIndexInsideCodeBlock = /* @__PURE__ */ __name((content, index) => getEnclosingFence(content, index) !== null, "isIndexInsideCodeBlock");
|
|
600
|
+
var findEnclosingCodeBlockStart = /* @__PURE__ */ __name((content, index) => getEnclosingFence(content, index)?.startIndex ?? -1, "findEnclosingCodeBlockStart");
|
|
601
|
+
var getEnclosingFenceInfo = /* @__PURE__ */ __name((content, index) => {
|
|
602
|
+
const fence = getEnclosingFence(content, index);
|
|
603
|
+
return fence ? parseCodeFenceInfo(fence.infoString) : null;
|
|
604
|
+
}, "getEnclosingFenceInfo");
|
|
605
|
+
var findLastSafeSplitPoint = /* @__PURE__ */ __name((content, idealMaxLength) => {
|
|
606
|
+
const hasLengthCap = idealMaxLength !== void 0;
|
|
607
|
+
const searchEnd = hasLengthCap ? Math.min(Math.max(idealMaxLength, 0), content.length) : content.length;
|
|
608
|
+
if (hasLengthCap && content.length <= searchEnd) {
|
|
609
|
+
return content.length;
|
|
610
|
+
}
|
|
611
|
+
const enclosingBlockStart = findEnclosingCodeBlockStart(content, searchEnd);
|
|
612
|
+
if (enclosingBlockStart !== -1) {
|
|
613
|
+
return hasLengthCap && enclosingBlockStart === 0 ? searchEnd : enclosingBlockStart;
|
|
614
|
+
}
|
|
615
|
+
let searchStartIndex = searchEnd;
|
|
616
|
+
while (searchStartIndex >= 0) {
|
|
617
|
+
const dnlIndex = content.lastIndexOf("\n\n", searchStartIndex);
|
|
618
|
+
if (dnlIndex === -1) {
|
|
619
|
+
break;
|
|
620
|
+
}
|
|
621
|
+
const potentialSplitPoint = dnlIndex + 2;
|
|
622
|
+
if (potentialSplitPoint <= searchEnd && !isIndexInsideCodeBlock(content, potentialSplitPoint)) {
|
|
623
|
+
return potentialSplitPoint;
|
|
624
|
+
}
|
|
625
|
+
searchStartIndex = dnlIndex - 1;
|
|
626
|
+
}
|
|
627
|
+
if (hasLengthCap) {
|
|
628
|
+
searchStartIndex = searchEnd;
|
|
629
|
+
while (searchStartIndex >= 0) {
|
|
630
|
+
const nlIndex = content.lastIndexOf("\n", searchStartIndex);
|
|
631
|
+
if (nlIndex === -1) {
|
|
632
|
+
break;
|
|
633
|
+
}
|
|
634
|
+
const potentialSplitPoint = nlIndex + 1;
|
|
635
|
+
if (potentialSplitPoint <= searchEnd && !isIndexInsideCodeBlock(content, potentialSplitPoint)) {
|
|
636
|
+
return potentialSplitPoint;
|
|
637
|
+
}
|
|
638
|
+
searchStartIndex = nlIndex - 1;
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
return hasLengthCap ? searchEnd : content.length;
|
|
642
|
+
}, "findLastSafeSplitPoint");
|
|
643
|
+
var START_LINE_DIRECTIVE_RE = /\s*\bqwen-code:start-line=(\d+)\b/;
|
|
644
|
+
var parseCodeFenceInfo = /* @__PURE__ */ __name((info) => {
|
|
645
|
+
const raw = info ?? "";
|
|
646
|
+
const directive = raw.match(START_LINE_DIRECTIVE_RE);
|
|
647
|
+
const startLine = directive ? Math.max(1, Number(directive[1])) : 1;
|
|
648
|
+
const lang = raw.replace(START_LINE_DIRECTIVE_RE, "").trim().split(/\s+/)[0];
|
|
649
|
+
return { lang: lang || null, startLine };
|
|
650
|
+
}, "parseCodeFenceInfo");
|
|
651
|
+
var countHeadContentLines = /* @__PURE__ */ __name((content, fenceStartIndex, splitPoint) => {
|
|
652
|
+
const headFromFence = content.slice(fenceStartIndex, splitPoint);
|
|
653
|
+
const newlineCount = (headFromFence.match(/\n/g) || []).length;
|
|
654
|
+
return headFromFence.endsWith("\n") ? newlineCount - 1 : newlineCount;
|
|
655
|
+
}, "countHeadContentLines");
|
|
656
|
+
var splitFencedMarkdown = /* @__PURE__ */ __name((content, splitPoint) => {
|
|
657
|
+
const before = content.slice(0, splitPoint);
|
|
658
|
+
const after = content.slice(splitPoint);
|
|
659
|
+
if (splitPoint <= 0 || splitPoint >= content.length) {
|
|
660
|
+
return { before, after };
|
|
661
|
+
}
|
|
662
|
+
const fence = getEnclosingFence(content, splitPoint);
|
|
663
|
+
if (!fence) {
|
|
664
|
+
return { before, after };
|
|
665
|
+
}
|
|
666
|
+
const closingFence = fence.delimiter;
|
|
667
|
+
const { startLine: headStart } = parseCodeFenceInfo(fence.infoString);
|
|
668
|
+
const tailStart = headStart + countHeadContentLines(content, fence.startIndex, splitPoint);
|
|
669
|
+
const baseInfo = fence.infoString.replace(START_LINE_DIRECTIVE_RE, "").replace(/\s+$/, "");
|
|
670
|
+
const directive = `qwen-code:start-line=${tailStart}`;
|
|
671
|
+
const reopeningFence = `${fence.delimiter}${baseInfo ? `${baseInfo} ${directive}` : directive}`;
|
|
672
|
+
const beforeWithClose = before.endsWith("\n") ? `${before}${closingFence}
|
|
673
|
+
` : `${before}
|
|
674
|
+
${closingFence}
|
|
675
|
+
`;
|
|
676
|
+
const afterWithReopen = `${reopeningFence}
|
|
677
|
+
${after}`;
|
|
678
|
+
return { before: beforeWithClose, after: afterWithReopen };
|
|
679
|
+
}, "splitFencedMarkdown");
|
|
680
|
+
|
|
558
681
|
export {
|
|
559
682
|
TABLE_MAX_ROW_LINES,
|
|
560
683
|
TABLE_ROW_RE,
|
|
@@ -562,6 +685,10 @@ export {
|
|
|
562
685
|
CODE_FENCE_RE,
|
|
563
686
|
splitMarkdownTableRow,
|
|
564
687
|
fitPendingSlice,
|
|
688
|
+
getEnclosingFenceInfo,
|
|
689
|
+
findLastSafeSplitPoint,
|
|
690
|
+
parseCodeFenceInfo,
|
|
691
|
+
splitFencedMarkdown,
|
|
565
692
|
SessionStatsProvider,
|
|
566
693
|
useSessionStats,
|
|
567
694
|
getCommandSourceBadge,
|
|
@@ -4,56 +4,56 @@ import {
|
|
|
4
4
|
Client,
|
|
5
5
|
So,
|
|
6
6
|
StdioClientTransport
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3YJZ6WNY.js";
|
|
8
|
+
import "./chunk-T4TZQJ7W.js";
|
|
8
9
|
import "./chunk-H6XPXXMH.js";
|
|
9
10
|
import "./chunk-5M6IDOMF.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-LKR7QQ63.js";
|
|
12
|
+
import "./chunk-4XCVGEEX.js";
|
|
13
|
+
import "./chunk-XSPFQQRE.js";
|
|
14
|
+
import "./chunk-4RPARQ5D.js";
|
|
14
15
|
import "./chunk-E2UVIFI2.js";
|
|
15
|
-
import "./chunk-6OATMEYN.js";
|
|
16
16
|
import "./chunk-XU457J4V.js";
|
|
17
17
|
import "./chunk-VDDGDZMA.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-J2MKYJKZ.js";
|
|
19
19
|
import "./chunk-SZRN75WQ.js";
|
|
20
20
|
import "./chunk-HTO4JFDZ.js";
|
|
21
21
|
import "./chunk-CPBF7KYF.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-VNN3JNYT.js";
|
|
23
23
|
import "./chunk-6AM5D4ME.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-OSSDHJDU.js";
|
|
25
|
+
import "./chunk-SGPFJMRP.js";
|
|
26
|
+
import "./chunk-335ECZTA.js";
|
|
27
|
+
import "./chunk-JCJPZMJV.js";
|
|
28
28
|
import {
|
|
29
29
|
safeJsonStringify
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-66IT3EY2.js";
|
|
31
31
|
import "./chunk-4WKAA4KS.js";
|
|
32
32
|
import "./chunk-CR3C7WXL.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-U2LNTX56.js";
|
|
34
34
|
import "./chunk-VGC4I5JJ.js";
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-FUTHTZVV.js";
|
|
36
|
+
import "./chunk-4CA4WUMS.js";
|
|
37
|
+
import "./chunk-WEPXQKGP.js";
|
|
38
38
|
import {
|
|
39
39
|
BaseDeclarativeTool,
|
|
40
40
|
BaseToolInvocation
|
|
41
|
-
} from "./chunk-
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
41
|
+
} from "./chunk-ANRANWVE.js";
|
|
42
|
+
import "./chunk-G274ETR6.js";
|
|
43
|
+
import "./chunk-Z2LBNX3R.js";
|
|
44
44
|
import "./chunk-JESCGQM3.js";
|
|
45
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-VAJS2E2D.js";
|
|
46
46
|
import "./chunk-XVNQMZ2I.js";
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-FEOZBUMT.js";
|
|
48
|
+
import "./chunk-CMVFTMRD.js";
|
|
49
49
|
import "./chunk-A4UCTEB5.js";
|
|
50
50
|
import "./chunk-XWRJCPHC.js";
|
|
51
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-TYQMGACW.js";
|
|
52
52
|
import "./chunk-TYAMGABM.js";
|
|
53
53
|
import "./chunk-FCMNKVXT.js";
|
|
54
54
|
import "./chunk-DJ2GSRLV.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-4CHDYDG3.js";
|
|
56
|
+
import "./chunk-UE5TZ55T.js";
|
|
57
57
|
import "./chunk-75DOP5OR.js";
|
|
58
58
|
import "./chunk-DMTGGOSA.js";
|
|
59
59
|
import "./chunk-YQ3U5MUC.js";
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
parseChannelWebhookConfig,
|
|
6
6
|
parseChannelWebhookConfigLenient,
|
|
7
7
|
resolveEnvVars
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-Y72B36CP.js";
|
|
9
|
+
import "./chunk-FZRES4GK.js";
|
|
10
10
|
import {
|
|
11
11
|
findCliEntryPath
|
|
12
12
|
} from "./chunk-V6WHFGST.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-ATJ7H5AS.js";
|
|
14
14
|
import "./chunk-UDXSXLER.js";
|
|
15
15
|
import "./chunk-H6XPXXMH.js";
|
|
16
16
|
import "./chunk-5O2XNYP6.js";
|