@qwen-code/qwen-code 0.22.2 → 0.22.3-nightly.20260829.e5cb60ad48
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/computer-use/SKILL.md +3 -3
- package/bundled/qc-helper/docs/configuration/settings.md +37 -36
- package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
- package/bundled/qc-helper/docs/features/code-review.md +3 -3
- package/bundled/qc-helper/docs/features/computer-use.md +2 -2
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +1 -1
- package/bundled/review/SKILL.md +81 -31
- package/bundled/review/references/persistence.md +7 -3
- package/bundled/review/references/posting.md +10 -4
- package/chunks/{MaxSizedBox-X5FZSNAJ.js → MaxSizedBox-JK4LFKJ3.js} +36 -37
- package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-UA2MQCCS.js} +54 -55
- package/chunks/{acpAgent-MXEAN54C.js → acpAgent-ZKIVHQKW.js} +276 -191
- package/chunks/{agent-PJIPDWHB.js → agent-Z3Q5C3RX.js} +27 -28
- package/chunks/{agent-headless-B4JVD7UK.js → agent-headless-BIVZ3KYZ.js} +27 -28
- package/chunks/{anthropicContentGenerator-HGMBACVE.js → anthropicContentGenerator-YVTB6QX7.js} +43 -47
- package/chunks/{artifact-tool-5YT4QF7Y.js → artifact-tool-XSMPHZBT.js} +9 -1
- package/chunks/{askUserQuestion-4SWJY65V.js → askUserQuestion-66I3U2QX.js} +29 -5
- package/chunks/{bridge-FKZTVIS3.js → bridge-KDQTHAR7.js} +40 -41
- package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-HQ6KDS7C.js} +6 -6
- package/chunks/{channel-settings-store-4UFCLBBG.js → channel-settings-store-X4WWBVYW.js} +50 -46
- package/chunks/{channel-worker-group-27HMGD5S.js → channel-worker-group-6NA6BBZV.js} +5 -5
- package/chunks/{channel-worker-manager-QEGX646Z.js → channel-worker-manager-NEZ2J6RK.js} +5 -5
- package/chunks/{channel-worker-supervisor-UEW2WWCC.js → channel-worker-supervisor-FKU7DIHJ.js} +4 -4
- package/chunks/{chunk-V2NDP3I4.js → chunk-2AEHQRY2.js} +1 -1
- package/chunks/{chunk-EOGELB3H.js → chunk-2SXSLSQE.js} +1 -1
- package/chunks/chunk-36LGBEM6.js +130 -0
- package/chunks/{chunk-2K6ORIHJ.js → chunk-3CAI35FS.js} +11 -11
- package/chunks/{chunk-H2WDGQ6D.js → chunk-3JXM2CVW.js} +1 -1
- package/chunks/{chunk-JSHHYW6T.js → chunk-3WJLDA3X.js} +3 -3
- package/chunks/{chunk-HVEYF6VT.js → chunk-3WK3QDNV.js} +1 -1
- package/chunks/{chunk-5XBFCMWD.js → chunk-3XKLXHGK.js} +17 -9
- package/chunks/{chunk-SFPGAQUL.js → chunk-42IDLQWS.js} +24 -18
- package/chunks/{chunk-KEKZFOL6.js → chunk-44LKG3IY.js} +1 -1
- package/chunks/{chunk-43GGFFLY.js → chunk-4K7KNVWH.js} +1 -1
- package/chunks/{chunk-F6FV3C5K.js → chunk-4NDLQAY2.js} +24 -272
- package/chunks/{chunk-VVW4ZNFY.js → chunk-4QHPPXK2.js} +15 -7
- package/chunks/chunk-4VQBQLIZ.js +293 -0
- package/chunks/{chunk-ZFKOCECU.js → chunk-5CALJAH7.js} +2 -2
- package/chunks/{chunk-F7TNAPZ4.js → chunk-5SBVOOA2.js} +5 -5
- package/chunks/{chunk-IK5BW3CS.js → chunk-5ZJL3AIV.js} +2 -2
- package/chunks/{chunk-OIVXBW3W.js → chunk-62GQFYID.js} +1 -1
- package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
- package/chunks/{chunk-77RG5SFQ.js → chunk-6XOIV7MI.js} +1 -1
- package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
- package/chunks/chunk-7GUOXWPY.js +2597 -0
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
- package/chunks/{chunk-XRSOI3DL.js → chunk-A3LWD5MK.js} +1 -1
- package/chunks/{chunk-FBSSIAAQ.js → chunk-AMLXTTJJ.js} +7 -7
- package/chunks/{chunk-Z7FLBQPR.js → chunk-ARF6IJHM.js} +7 -7
- package/chunks/{chunk-4CDSK5AZ.js → chunk-AYFA7MZV.js} +2 -2
- package/chunks/{chunk-4JWNNLPT.js → chunk-B42A5ZHA.js} +3 -3
- package/chunks/{chunk-3JGZSIDA.js → chunk-B466ZSHZ.js} +1 -1
- package/chunks/{chunk-L6BZRIUL.js → chunk-B5PHIJGI.js} +182 -4
- package/chunks/{chunk-KUX5D6DK.js → chunk-BFYGL2XL.js} +11383 -11020
- package/chunks/{chunk-W5MJJ2V7.js → chunk-BIJEBAAQ.js} +1 -1
- package/chunks/{chunk-3I6UTTDX.js → chunk-BKWNKLZB.js} +19 -19
- package/chunks/{chunk-3FDFA4MZ.js → chunk-BOWFGCEU.js} +1 -1
- package/chunks/{chunk-F5SZP77N.js → chunk-BP5PTNCU.js} +79 -71
- package/chunks/{chunk-3AFMQUTI.js → chunk-C2X7KY45.js} +1 -1
- package/chunks/{chunk-FDY5RMGH.js → chunk-CFJY4DGX.js} +1 -1
- package/chunks/{chunk-LDP5OD6N.js → chunk-CLWO3B77.js} +2 -2
- package/chunks/{chunk-L6YT5H34.js → chunk-CVUBULIX.js} +4 -4
- package/chunks/{chunk-JU4EEXC7.js → chunk-CWQZUDB7.js} +2 -2
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-4J657AJR.js → chunk-DJECZIJX.js} +40 -40
- package/chunks/{chunk-RUGNCYNO.js → chunk-DMLVSW7L.js} +532 -22
- package/chunks/{chunk-4FTKQNWJ.js → chunk-DYXFD5RO.js} +181 -2
- package/chunks/{chunk-PDMJ3KGS.js → chunk-EB6QRGHM.js} +1 -1
- package/chunks/{chunk-TGWAQ5RB.js → chunk-ECE3UYVO.js} +4704 -5894
- package/chunks/{chunk-5O72BNDD.js → chunk-F5RB4S23.js} +7 -7
- package/chunks/{chunk-IJKTMLBE.js → chunk-FIKYKQOO.js} +1 -1
- package/chunks/{chunk-BNMF3K5X.js → chunk-FKET6VOO.js} +52 -36
- package/chunks/{chunk-Z7TGYN5F.js → chunk-FROAFEFB.js} +2 -2
- package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
- package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
- package/chunks/{chunk-43UYNAWX.js → chunk-G6FECKTJ.js} +2 -2
- package/chunks/{chunk-7UYV53BC.js → chunk-GIHXH2KO.js} +1 -1
- package/chunks/{chunk-V4QXXQJ2.js → chunk-H4LCV44K.js} +2 -2
- package/chunks/{chunk-LXIBMVRN.js → chunk-H5WQZTAW.js} +13 -7
- package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
- package/chunks/{chunk-RJC5EIKY.js → chunk-HHQJANFM.js} +3 -3
- package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
- package/chunks/{chunk-TRZTNIQ6.js → chunk-I6LYRJPB.js} +2 -2
- package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
- package/chunks/{chunk-66KDY3LV.js → chunk-IJMEPQ5N.js} +2 -2
- package/chunks/{chunk-4HV6HH33.js → chunk-ISKH4QX3.js} +9 -9
- package/chunks/{chunk-6CGL7E7G.js → chunk-IZDKYNKN.js} +2 -2
- package/chunks/{chunk-A7YP63XN.js → chunk-J7SS77YW.js} +5 -5
- package/chunks/{chunk-XDFHY4R3.js → chunk-JCMS65DJ.js} +2 -2
- package/chunks/{chunk-6LFJEACX.js → chunk-JHDPOPQG.js} +7 -7
- package/chunks/{chunk-WKK5BQNP.js → chunk-JHYH6PYQ.js} +43 -420
- package/chunks/{chunk-PFCQ62V4.js → chunk-JWDMKJG5.js} +6 -6
- package/chunks/{chunk-6IUNAPLR.js → chunk-K5KXUXWC.js} +1 -1
- package/chunks/{chunk-Y6LSMB6J.js → chunk-K6CTN5TU.js} +1 -1
- package/chunks/{chunk-G34IR3D6.js → chunk-KEIMKAM4.js} +26 -109
- package/chunks/{chunk-JHS74YAB.js → chunk-KID24ZFN.js} +1 -1
- package/chunks/{chunk-EFUM7RVY.js → chunk-KJO2LBUK.js} +942 -16
- package/chunks/{chunk-B7CDU2SL.js → chunk-KYWTPLBJ.js} +17 -20
- package/chunks/chunk-LGO7DEXL.js +1186 -0
- package/chunks/{chunk-P2SU6ZTI.js → chunk-LUEHOUHM.js} +1 -1
- package/chunks/{chunk-P5GGM4KS.js → chunk-MAQ2W4IF.js} +3 -3
- package/chunks/{chunk-RIEFGNTP.js → chunk-MVDPFLWM.js} +207 -43
- package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
- package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
- package/chunks/{chunk-BBWV7ONL.js → chunk-NEBSNUMX.js} +6 -6
- package/chunks/{chunk-3SGB2UHX.js → chunk-NENQE7VH.js} +23 -11
- package/chunks/{chunk-SJ3ZUWFK.js → chunk-NHDNYMBU.js} +4 -4
- package/chunks/{chunk-K2NQPH5D.js → chunk-OJEMXKA4.js} +3 -3
- package/chunks/{chunk-QP4C6WCE.js → chunk-PI6HYGBE.js} +2 -2
- package/chunks/{chunk-OIP7C4FE.js → chunk-PO6YCWIQ.js} +4 -4
- package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
- package/chunks/{chunk-4MQEPP3Y.js → chunk-PQZBDDNG.js} +5 -119
- package/chunks/{chunk-SMPR7SPO.js → chunk-QJNDUTOL.js} +45 -239
- package/chunks/{chunk-L2M46FP5.js → chunk-QYMAKPY5.js} +5 -5
- package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
- package/chunks/{chunk-JSC3H3TD.js → chunk-RZKOA4JE.js} +14 -6
- package/chunks/{chunk-CPGJJJLU.js → chunk-SEDFP3ZI.js} +1 -1
- package/chunks/chunk-SEONHUS3.js +275 -0
- package/chunks/{chunk-ZGXYO7DY.js → chunk-SS4MRMKE.js} +122 -13
- package/chunks/{chunk-T32W2JHI.js → chunk-SS5SDCD3.js} +2 -2
- package/chunks/{chunk-MIIVI25Q.js → chunk-ST5V3ZOC.js} +2 -2
- package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
- package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
- package/chunks/{chunk-BAJKAAOY.js → chunk-TGJ2PKCW.js} +4315 -1386
- package/chunks/{chunk-6LFTG244.js → chunk-TU6WVK67.js} +15 -5
- package/chunks/{chunk-T3WXYEZ4.js → chunk-U54AYGEC.js} +38 -5
- package/chunks/{chunk-CSMI4FP5.js → chunk-UAOTD2BN.js} +1 -1
- package/chunks/{chunk-CCBZDVUA.js → chunk-UI4DXRZW.js} +33 -20
- package/chunks/{chunk-JCQD3INC.js → chunk-URE3QBBB.js} +1 -1
- package/chunks/chunk-UVY67MSH.js +205 -0
- package/chunks/{chunk-Y3QL45LS.js → chunk-V4264FEG.js} +8 -8
- package/chunks/{chunk-R4PMVSR5.js → chunk-VBCPNIQD.js} +18 -20
- package/chunks/{chunk-Q26AYA62.js → chunk-VKCJPNGU.js} +2 -2
- package/chunks/{chunk-IOPCFOTF.js → chunk-VKIGT4OG.js} +2 -2
- package/chunks/{chunk-3DXFGHAJ.js → chunk-VNMZLAVG.js} +1 -1
- package/chunks/{chunk-FY76G3G5.js → chunk-W3CY4QIO.js} +4 -4
- package/chunks/{chunk-O2UN57NX.js → chunk-W4XG7IZ4.js} +19 -2
- package/chunks/{chunk-C6K43ZDE.js → chunk-W7HH77GN.js} +5 -5
- package/chunks/{chunk-2NYCN6F2.js → chunk-WD3WSEW3.js} +43 -26
- package/chunks/chunk-WLEYH7CD.js +332 -0
- package/chunks/{chunk-PKAYJDB3.js → chunk-WNPDGUJO.js} +21 -2
- package/chunks/{chunk-IZIVM7LZ.js → chunk-WXEA74YB.js} +1 -1
- package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
- package/chunks/{chunk-HVQ3B7FF.js → chunk-Y5S7LBOZ.js} +43 -6
- package/chunks/{chunk-AGR5UROZ.js → chunk-YN44TEOZ.js} +17 -29
- package/chunks/{chunk-DZWPESIF.js → chunk-Z44FUM77.js} +3 -3
- package/chunks/{chunk-XDLEZ5HX.js → chunk-ZZUKP7HV.js} +1 -1
- package/chunks/{config-utils-BBOCOGZW.js → config-utils-NOCNFTQP.js} +42 -41
- package/chunks/{contextCommand-EET67MQ2.js → contextCommand-DH2NOQBI.js} +39 -40
- package/chunks/{core-runtime-677KFX6Q.js → core-runtime-OLW4OXMV.js} +43 -44
- package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-ZCGPQTIE.js} +37 -38
- package/chunks/{daemon-MJQUO7RA.js → daemon-3GNHB3M2.js} +495 -7
- package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-SHIU7MPJ.js} +36 -37
- package/chunks/{daemon-status-provider-RFKZOK3S.js → daemon-status-provider-WECDBDF7.js} +45 -46
- package/chunks/{daemon-trust-policy-DRZPFB4Q.js → daemon-trust-policy-MX4OYXF3.js} +44 -45
- package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-73WXIKNL.js} +44 -45
- package/chunks/{deferred-core-runtime-BBVIOP24.js → deferred-core-runtime-BKS7O3D6.js} +36 -37
- package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
- package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
- package/chunks/{dist-QODVOVWI.js → dist-6BPYWHVD.js} +31 -30
- package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
- package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
- package/chunks/{dist-ILDBUWDB.js → dist-LVZCXVPF.js} +1 -1
- package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
- package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
- package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
- package/chunks/{earlyInputCapture-2JOMMNQ4.js → earlyInputCapture-5NNZSVL7.js} +36 -37
- package/chunks/{edit-BSV6YRVW.js → edit-IGHPT4I2.js} +27 -28
- package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-35QCAAFP.js} +3 -3
- package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-LVTPJSAA.js} +32 -33
- package/chunks/{environment-MOZMPUHR.js → environment-HC2PPYDO.js} +40 -41
- package/chunks/{errors-DMPQVYJL.js → errors-VCWSG25A.js} +39 -40
- package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-XQD6D543.js} +3 -3
- package/chunks/{exitPlanMode-UE4FGCY4.js → exitPlanMode-RHI2K2O7.js} +27 -28
- package/chunks/{fast-path-773PV7PU.js → fast-path-IQNCJOPE.js} +4 -4
- package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
- package/chunks/{glob-CZHOWUEA.js → glob-EANAXPNR.js} +27 -28
- package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-PTD3MBA7.js} +2 -1
- package/chunks/{grep-5GPICQBU.js → grep-3REG7TO6.js} +4 -2
- package/chunks/{handleAutoUpdate-SGXKTQM6.js → handleAutoUpdate-PVVFLDQ4.js} +41 -42
- package/chunks/{i18n-B42HKHKH.js → i18n-VOKX5QIF.js} +38 -39
- package/chunks/{image-gen-HAYOEQ4O.js → image-gen-J6FDGUZP.js} +4 -6
- package/chunks/{initializer-FB66WYR3.js → initializer-SZVVTGZL.js} +44 -45
- package/chunks/{installationInfo-Y7AULNMX.js → installationInfo-R22453J5.js} +37 -38
- package/chunks/{list-2HWGSVRA.js → list-LK5M5W2N.js} +47 -48
- package/chunks/{gemini-IP4FJAP5.js → llm-6RQJUVIS.js} +89 -85
- package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-Q7JJDSJR.js} +25 -25
- package/chunks/{loadedSettingsAdapter-7Y7IEI6T.js → loadedSettingsAdapter-KF2ZPSPG.js} +44 -45
- package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-SBCIJG2J.js} +307 -27
- package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-UG324XFY.js} +37 -38
- package/chunks/{mcp-QGG5NMJJ.js → mcp-PUSCFGS5.js} +44 -45
- package/chunks/{monitor-FI7PY36Z.js → monitor-RJW5AP64.js} +27 -28
- package/chunks/{nonInteractiveCli-4LO2TL72.js → nonInteractiveCli-OIXN4WSR.js} +82 -81
- package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-5MWEIMS2.js} +27 -28
- package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
- package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-AGTNYSCJ.js} +13 -15
- package/chunks/{pidfile-JMF2CLMY.js → pidfile-LTA6NT3P.js} +36 -37
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-IQZBYWSB.js → processUtils-GY3Q66CJ.js} +2 -2
- package/chunks/{prompt-terminal-ledger-DCZO6S7C.js → prompt-terminal-ledger-3QS6TCMF.js} +37 -38
- package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-NU6PCDA7.js} +31 -32
- package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-OF5WRBQT.js} +4 -6
- package/chunks/{read-file-QE2B5FTX.js → read-file-DTQL5V62.js} +5 -5
- package/chunks/{record-artifact-RZGZBENU.js → record-artifact-VW23GS4F.js} +2 -2
- package/chunks/{report-findings-Q3SYKKW5.js → report-findings-AO5VYFLR.js} +7 -3
- package/chunks/{resumeHistoryUtils-CZ4JRDVW.js → resumeHistoryUtils-PZ4BER55.js} +40 -41
- package/chunks/{ripGrep-R6B6HWPX.js → ripGrep-A2FGBZGY.js} +7 -7
- package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-AESOSKFC.js} +271 -86
- package/chunks/{runtime-TTIGSBM4.js → runtime-YQHSEKG4.js} +49 -50
- package/chunks/{scheduled-tasks-QB4ZVUQS.js → scheduled-tasks-XG6KK6NY.js} +42 -43
- package/chunks/{scheduler-YRUG22M7.js → scheduler-I4WKXWRZ.js} +38 -39
- package/chunks/{sdk-exporters-http-KCJ4ZFG7.js → sdk-exporters-http-TTU2CHBU.js} +1 -1
- package/chunks/{sdk-impl-HLSEDAEP.js → sdk-impl-UUMVYMAL.js} +10 -4
- package/chunks/{send-message-Y5I6NYAM.js → send-message-AJ4OCUBV.js} +18 -2
- package/chunks/{serve-MXXCDAQN.js → serve-MQDTVC7X.js} +44 -45
- package/chunks/{server-DFUSSSHI.js → server-L5ETIKEW.js} +4153 -3351
- package/chunks/{session-3TEHNENZ.js → session-LKKXRUJM.js} +87 -86
- package/chunks/session-pr-refresh-5OWA6MC2.js +365 -0
- package/chunks/{settings-VOZYKLTT.js → settings-S6KG7JST.js} +43 -44
- package/chunks/{shell-6RTKZVMI.js → shell-JEQE5AHC.js} +27 -28
- package/chunks/{skill-FEOKFX26.js → skill-QEGMZXKI.js} +58 -14
- package/chunks/{skill-settings-VA4XVYVL.js → skill-settings-EVY7QF4H.js} +44 -45
- package/chunks/{spawnChannel-F6WVP723.js → spawnChannel-AQP72WPN.js} +38 -39
- package/chunks/{standalone-update-RGILUQVK.js → standalone-update-JUJA4BKV.js} +39 -40
- package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-5ZMSJZ3J.js} +408 -338
- package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
- package/chunks/{task-create-TMSV7RD5.js → task-create-QN4LYRSE.js} +3 -3
- package/chunks/{task-list-W55RBFRX.js → task-list-JPLGK45U.js} +2 -2
- package/chunks/{task-update-N536I4GQ.js → task-update-IWEOJFV2.js} +3 -3
- package/chunks/{team-create-QYSWCYCL.js → team-create-ZEGP7KVD.js} +27 -28
- package/chunks/{team-delete-FJRFX33M.js → team-delete-RZVVSGCY.js} +2 -2
- package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-SXWT2WZN.js} +27 -28
- package/chunks/{terminal-image-renderer-SMQE46UJ.js → terminal-image-renderer-42B6N55E.js} +36 -37
- package/chunks/{theme-manager-RFO5WWFF.js → theme-manager-DDYUBC25.js} +36 -37
- package/chunks/{tool-search-F2EMIAPV.js → tool-search-GDDBA4X4.js} +9 -9
- package/chunks/{total-session-admission-HTVTP4BS.js → total-session-admission-6MYP4GBA.js} +40 -41
- package/chunks/{trustedFolders-7OCNMUQE.js → trustedFolders-LPEIY3GE.js} +38 -39
- package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
- package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-BOIIZNT3.js} +6 -6
- package/chunks/{updateCheck-7QBDXZRT.js → updateCheck-KSVHYJYE.js} +40 -41
- package/chunks/{useAutoAcceptIndicator-UI4SNL2O.js → useAutoAcceptIndicator-43D2A4ZN.js} +46 -47
- package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-WSD4SOIM.js} +79 -78
- package/chunks/{version-ANP4TS6O.js → version-B4CM7RNG.js} +1 -1
- package/chunks/{web-fetch-QJADSAH3.js → web-fetch-MOHILUZL.js} +8 -10
- package/chunks/{web-search-7TTQKEKM.js → web-search-G4HIMY2V.js} +5 -7
- package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
- package/chunks/{workflow-5XN6XSOT.js → workflow-H3PCYU5F.js} +50 -60
- package/chunks/{workspace-providers-status-PDFZWL5Q.js → workspace-providers-status-AAX7VWMT.js} +48 -49
- package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-YTHZ6SL4.js} +1 -1
- package/chunks/{workspace-registry-23R7XRB5.js → workspace-registry-URHGBL4U.js} +40 -41
- package/chunks/{workspace-service-MUYO2QIC.js → workspace-service-XJMSLRCU.js} +49 -53
- package/chunks/{workspace-skills-status-IKECTOOQ.js → workspace-skills-status-JGEDANNT.js} +47 -48
- package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-ZHI5TDYB.js} +48 -49
- package/chunks/{write-file-GGRBB5TZ.js → write-file-5O4S63L6.js} +29 -30
- package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-N2IBUVXE.js} +5 -5
- package/cli.js +128 -91
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-OJQpqC9m.js} +1 -1
- package/web-shell/assets/{arc-BSTnk5pu.js → arc-BxH0YR17.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-CxyWiGfF.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-DukXbJQ7.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-DvS1T6pK.js} +1 -1
- package/web-shell/assets/channel-Dbbg7P-u.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-qvqfJ7VZ.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-BJ3kJYte.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-BYPVESil.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-B4UYFElk.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-8zGKVNUU.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-CbaHONpI.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-f8kAjzlF.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-Dm8ahq7K.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.js → chunk-XXDRQBXY-yrcLzv8z.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-cDYs8iT0.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-cDYs8iT0.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-CGLLUbF8.js → cose-bilkent-JH36ORCC-DN1C22IH.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-B2oF7XD_.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-DGgIKpiM.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-BHKawzoP.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-6UgKqreR.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-BXJbPJ6F.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-DVnYFPkS.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-CjBoC0Rq.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-KZdUceQT.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-5UekGScM.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-TRWexoj1.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-Di5bhBVo.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-DpJUJ8Dp.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-b08xIx2C.js} +1 -1
- package/web-shell/assets/index-BvDpDHTN.css +36 -0
- package/web-shell/assets/index-Cg60lhnI.js +1913 -0
- package/web-shell/assets/{index-CBGz4Qjl.js → index-n6dFH09O.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-B6DAOyXe.js → infoDiagram-RXCK75RN-Cz14FAt7.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-7nxp2bIU.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-CjL47fk0.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-CWFl-mHs.js} +1 -1
- package/web-shell/assets/{layout-CEz_1L8z.js → layout-BUP1BcwB.js} +1 -1
- package/web-shell/assets/{linear-CBjTq9Hc.js → linear-CqbwqSbW.js} +1 -1
- package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-C_50HLol.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-DbyD_AoU.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-VozWyqyY.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-O7EKamBL.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-DOmPZxHg.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-ElyfC2zE.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-DbnqPbzR.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-yPWliSHr.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-BImQFomC.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-DEvqeEHo.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-BbLtiF9u.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DGtlzdpx.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.js → swimlanes-XN3QIQJK-RFewDF6v.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-CITCVFdx.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-D4gdDL_d.js → timeline-definition-24CTP7MA-DF4L3-UR.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-BtlSJXaA.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-C8ogG8Fh.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-C5QVfsGQ.js} +1 -1
- package/web-shell/index.html +3 -3
- package/chunks/chunk-7DJCPZE3.js +0 -945
- package/chunks/chunk-J2OSJFP3.js +0 -202
- package/chunks/chunk-K2OJUPOE.js +0 -78
- package/chunks/chunk-P3QQPMQA.js +0 -19
- package/chunks/chunk-T26EAKDL.js +0 -13
- package/chunks/process-registry-PMJOA5CO.js +0 -172
- package/web-shell/assets/channel-CENAhErJ.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +0 -1
- package/web-shell/assets/index-8hXIpvo4.js +0 -1865
- package/web-shell/assets/index-DclEv91i.css +0 -5
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +0 -8
|
@@ -85,6 +85,14 @@ function managementFieldsWithSharedControls(fields, defaultSessionScope) {
|
|
|
85
85
|
description: "Controls how conversations share persistent agent sessions",
|
|
86
86
|
options: SESSION_SCOPE_OPTIONS
|
|
87
87
|
}
|
|
88
|
+
],
|
|
89
|
+
...declared.has("multiSession") ? [] : [
|
|
90
|
+
{
|
|
91
|
+
key: "multiSession",
|
|
92
|
+
label: "Named Sessions",
|
|
93
|
+
kind: "boolean",
|
|
94
|
+
description: "Retain an owner-scoped catalog of named tasks in daemon-managed mode"
|
|
95
|
+
}
|
|
88
96
|
]
|
|
89
97
|
];
|
|
90
98
|
}
|
|
@@ -232,15 +240,15 @@ function ensureBuiltins() {
|
|
|
232
240
|
if (!builtinsPromise) {
|
|
233
241
|
builtinsPromise = (async () => {
|
|
234
242
|
const labelled = [
|
|
235
|
-
{ name: "telegram", promise: import("./dist-
|
|
236
|
-
{ name: "weixin", promise: import("./dist-
|
|
237
|
-
{ name: "dingtalk", promise: import("./dist-
|
|
238
|
-
{ name: "dws", promise: import("./dist-
|
|
239
|
-
{ name: "wecom", promise: import("./dist-
|
|
240
|
-
{ name: "feishu", promise: import("./dist-
|
|
241
|
-
{ name: "qqbot", promise: import("./dist-
|
|
242
|
-
{ name: "github", promise: import("./dist-
|
|
243
|
-
{ name: "gitlab", promise: import("./dist-
|
|
243
|
+
{ name: "telegram", promise: import("./dist-N6W6E753.js") },
|
|
244
|
+
{ name: "weixin", promise: import("./dist-6BPYWHVD.js") },
|
|
245
|
+
{ name: "dingtalk", promise: import("./dist-5VXFRTWU.js") },
|
|
246
|
+
{ name: "dws", promise: import("./dist-NSV4NBPK.js") },
|
|
247
|
+
{ name: "wecom", promise: import("./dist-SWQMYP2Q.js") },
|
|
248
|
+
{ name: "feishu", promise: import("./dist-GFN5DCBX.js") },
|
|
249
|
+
{ name: "qqbot", promise: import("./dist-LVZCXVPF.js") },
|
|
250
|
+
{ name: "github", promise: import("./dist-HZNT6GQS.js") },
|
|
251
|
+
{ name: "gitlab", promise: import("./dist-4WXLCBDR.js") }
|
|
244
252
|
];
|
|
245
253
|
const results = await Promise.allSettled(labelled.map((l) => l.promise));
|
|
246
254
|
for (let i = 0; i < results.length; i++) {
|
|
@@ -178,19 +178,6 @@ function classifyShutdownResponse(message) {
|
|
|
178
178
|
return void 0;
|
|
179
179
|
}
|
|
180
180
|
__name(classifyShutdownResponse, "classifyShutdownResponse");
|
|
181
|
-
async function readTeamFile(teamName) {
|
|
182
|
-
const filePath = getTeamFilePath(teamName);
|
|
183
|
-
try {
|
|
184
|
-
const raw = await fs2.readFile(filePath, "utf-8");
|
|
185
|
-
return JSON.parse(raw);
|
|
186
|
-
} catch (err) {
|
|
187
|
-
if (isNodeError(err) && err.code === "ENOENT") {
|
|
188
|
-
return void 0;
|
|
189
|
-
}
|
|
190
|
-
throw err;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
__name(readTeamFile, "readTeamFile");
|
|
194
181
|
async function writeTeamFile(teamName, teamFile) {
|
|
195
182
|
const filePath = getTeamFilePath(teamName);
|
|
196
183
|
await fs2.mkdir(path.dirname(filePath), { recursive: true });
|
|
@@ -207,22 +194,41 @@ async function createTeamFile(teamName, teamFile) {
|
|
|
207
194
|
}
|
|
208
195
|
__name(createTeamFile, "createTeamFile");
|
|
209
196
|
async function tryReclaimStaleTeam(teamName) {
|
|
197
|
+
const configPath = getTeamFilePath(teamName);
|
|
198
|
+
let inspectedRaw;
|
|
199
|
+
try {
|
|
200
|
+
inspectedRaw = await fs2.readFile(configPath, "utf-8");
|
|
201
|
+
} catch (err) {
|
|
202
|
+
if (isNodeError(err) && err.code === "ENOENT") {
|
|
203
|
+
await deleteTeamDirs(teamName);
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
210
208
|
let existing;
|
|
211
209
|
try {
|
|
212
|
-
|
|
210
|
+
const parsed = JSON.parse(inspectedRaw);
|
|
211
|
+
if (parsed === null || typeof parsed !== "object") {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
existing = parsed;
|
|
213
215
|
} catch {
|
|
214
216
|
return false;
|
|
215
217
|
}
|
|
216
|
-
if (!existing) {
|
|
217
|
-
await deleteTeamDirs(teamName);
|
|
218
|
-
return true;
|
|
219
|
-
}
|
|
220
218
|
if (typeof existing.leadPid !== "number" || existing.leadPid <= 0) {
|
|
221
219
|
return false;
|
|
222
220
|
}
|
|
223
221
|
if (existing.leadPid !== process.pid && isPidAlive(existing.leadPid)) {
|
|
224
222
|
return false;
|
|
225
223
|
}
|
|
224
|
+
try {
|
|
225
|
+
const currentRaw = await fs2.readFile(configPath, "utf-8");
|
|
226
|
+
if (currentRaw !== inspectedRaw) {
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
} catch {
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
226
232
|
await deleteTeamDirs(teamName);
|
|
227
233
|
return true;
|
|
228
234
|
}
|
|
@@ -2,31 +2,25 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
parseToolWriteOriginMeta
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-U54AYGEC.js";
|
|
6
|
+
import {
|
|
7
|
+
isLoopbackBind
|
|
8
|
+
} from "./chunk-RXFQM6FQ.js";
|
|
6
9
|
import {
|
|
7
10
|
MAX_CHILD_HEAP_MB,
|
|
8
11
|
MIN_CHILD_HEAP_MB,
|
|
9
12
|
recommendedChildShareMb
|
|
10
13
|
} from "./chunk-UXEO7E3V.js";
|
|
11
14
|
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
normalizeSessionIdForLookup
|
|
16
|
-
} from "./chunk-ZEZKIS2K.js";
|
|
15
|
+
CLIENT_ID_RE,
|
|
16
|
+
MAX_CLIENT_ID_LENGTH
|
|
17
|
+
} from "./chunk-SEONHUS3.js";
|
|
17
18
|
import {
|
|
18
19
|
isInternalWorkspaceRuntime
|
|
19
20
|
} from "./chunk-NYWWQ437.js";
|
|
20
21
|
import {
|
|
21
22
|
CLIENT_MCP_OVER_WS_CONFIG_FLAG
|
|
22
23
|
} from "./chunk-OZ6KS6KW.js";
|
|
23
|
-
import {
|
|
24
|
-
MAX_WORKSPACE_PATH_LENGTH,
|
|
25
|
-
translateAndCheckAbsoluteWorkspacePath
|
|
26
|
-
} from "./chunk-6PLDPT2C.js";
|
|
27
|
-
import {
|
|
28
|
-
writeStderrLine
|
|
29
|
-
} from "./chunk-KGJGEEVR.js";
|
|
30
24
|
import {
|
|
31
25
|
ROOT_CONTEXT,
|
|
32
26
|
context,
|
|
@@ -1516,6 +1510,7 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
1516
1510
|
session_metadata: { since: "v1" },
|
|
1517
1511
|
session_organization: { since: "v1" },
|
|
1518
1512
|
session_export: { since: "v1" },
|
|
1513
|
+
standalone_sessions_v1: { since: "v1" },
|
|
1519
1514
|
session_transcript: { since: "v1" },
|
|
1520
1515
|
session_transcript_pagination: { since: "v1" },
|
|
1521
1516
|
// Daemon supports the MCP client guardrail surface: an in-process
|
|
@@ -1582,8 +1577,8 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
1582
1577
|
// unregistered — the toggle takes effect on the next ACP child spawn
|
|
1583
1578
|
// (`tools.disabled` is consulted at `Config` construction time).
|
|
1584
1579
|
workspace_tool_toggle: { since: "v1" },
|
|
1585
|
-
|
|
1586
|
-
|
|
1580
|
+
workspace_skill_settings_toggle: { since: "v1" },
|
|
1581
|
+
workspace_skill_settings_batch_toggle: { since: "v1" },
|
|
1587
1582
|
extension_batch_activation_v2: { since: "v1" },
|
|
1588
1583
|
workspace_skill_manage: { since: "v1" },
|
|
1589
1584
|
workspace_settings: { since: "v1" },
|
|
@@ -1601,13 +1596,12 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
1601
1596
|
// Workspace trust policy changes rebuild the affected runtime generation
|
|
1602
1597
|
// without restarting the daemon. V2 trust status exposes convergence.
|
|
1603
1598
|
workspace_trust_hot_reload: { since: "v1" },
|
|
1604
|
-
// `POST /workspace/init` scaffolds an empty
|
|
1605
|
-
// `
|
|
1606
|
-
// the bound workspace root. Body: `{force?: boolean}`. Default
|
|
1599
|
+
// `POST /workspace/init` scaffolds an empty `QWEN.md` (or the
|
|
1600
|
+
// workspace `context.fileName` value injected as `contextFilename`)
|
|
1601
|
+
// at the bound workspace root. Body: `{force?: boolean}`. Default
|
|
1607
1602
|
// refuses with 409 when the file already exists; `force: true`
|
|
1608
|
-
// overwrites. Mechanical only — does NOT call the LLM. To AI-fill
|
|
1609
|
-
//
|
|
1610
|
-
// `POST /session/:id/prompt`.
|
|
1603
|
+
// overwrites. Mechanical only — does NOT call the LLM. To AI-fill the
|
|
1604
|
+
// file, the caller should follow up with `POST /session/:id/prompt`.
|
|
1611
1605
|
workspace_init: { since: "v1" },
|
|
1612
1606
|
// `POST /workspace/setup-github` installs the fixed
|
|
1613
1607
|
// qwen-code-action workflow set into the bound workspace after
|
|
@@ -1774,6 +1768,7 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
1774
1768
|
// `workspace_extensions` contract.
|
|
1775
1769
|
extension_management_v2: { since: "v1" },
|
|
1776
1770
|
extension_git_credentials: { since: "v1" },
|
|
1771
|
+
extension_local_path_install: { since: "v1" },
|
|
1777
1772
|
// Workspace-qualified, daemon-local persisted transcript paging. The tag is
|
|
1778
1773
|
// unconditional because the route also serves a trusted single-workspace
|
|
1779
1774
|
// primary; authorization is evaluated for the selected runtime per request.
|
|
@@ -1839,10 +1834,15 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
1839
1834
|
// WebShell daemon with native Host integration and the hot-applied enabled
|
|
1840
1835
|
// gate. `/live/status` remains the dynamic readiness surface for the Host,
|
|
1841
1836
|
// permissions, self-checks, and provider reachability.
|
|
1842
|
-
realtime_voice: { since: "v1" }
|
|
1837
|
+
realtime_voice: { since: "v1" },
|
|
1838
|
+
web_terminal: { since: "v1" }
|
|
1843
1839
|
};
|
|
1844
1840
|
var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
|
|
1845
1841
|
["require_auth", (toggles) => toggles.requireAuth === true],
|
|
1842
|
+
[
|
|
1843
|
+
"standalone_sessions_v1",
|
|
1844
|
+
(toggles) => toggles.standaloneSessionsAvailable === true
|
|
1845
|
+
],
|
|
1846
1846
|
["mcp_workspace_pool", (toggles) => toggles.mcpPoolActive === true],
|
|
1847
1847
|
["mcp_pool_restart", (toggles) => toggles.mcpPoolActive === true],
|
|
1848
1848
|
[
|
|
@@ -1960,7 +1960,8 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
|
|
|
1960
1960
|
[
|
|
1961
1961
|
"realtime_voice",
|
|
1962
1962
|
(toggles) => toggles.acpHttpEnabled === true && toggles.realtimeVoiceEnabled === true
|
|
1963
|
-
]
|
|
1963
|
+
],
|
|
1964
|
+
["web_terminal", (toggles) => toggles.acpHttpEnabled === true]
|
|
1964
1965
|
]);
|
|
1965
1966
|
var SERVE_FEATURES = Object.freeze(
|
|
1966
1967
|
Object.keys(SERVE_CAPABILITY_REGISTRY)
|
|
@@ -2393,235 +2394,6 @@ function installServeAppLifecycle(app, lifecycle = new ServeAppLifecycleControll
|
|
|
2393
2394
|
}
|
|
2394
2395
|
__name(installServeAppLifecycle, "installServeAppLifecycle");
|
|
2395
2396
|
|
|
2396
|
-
// packages/cli/src/serve/server/request-helpers.ts
|
|
2397
|
-
init_esbuild_shims();
|
|
2398
|
-
function sendJsonBodyParserError(res, err) {
|
|
2399
|
-
if (err instanceof SyntaxError && "status" in err && err.status === 400) {
|
|
2400
|
-
res.status(400).json({ error: "Invalid JSON in request body" });
|
|
2401
|
-
return true;
|
|
2402
|
-
}
|
|
2403
|
-
if (err && typeof err === "object" && "status" in err && err.status === 413) {
|
|
2404
|
-
res.status(413).json({ error: "Request body too large (max 10 MB)" });
|
|
2405
|
-
return true;
|
|
2406
|
-
}
|
|
2407
|
-
return false;
|
|
2408
|
-
}
|
|
2409
|
-
__name(sendJsonBodyParserError, "sendJsonBodyParserError");
|
|
2410
|
-
var PROTOTYPE_POLLUTION_KEYS = /* @__PURE__ */ new Set([
|
|
2411
|
-
"__proto__",
|
|
2412
|
-
"constructor",
|
|
2413
|
-
"prototype"
|
|
2414
|
-
]);
|
|
2415
|
-
var CLIENT_ID_HEADER = "x-qwen-client-id";
|
|
2416
|
-
var MAX_CLIENT_ID_LENGTH = 128;
|
|
2417
|
-
var MAX_TOOL_NAME_LENGTH = 256;
|
|
2418
|
-
var MAX_SERVER_NAME_LENGTH = 256;
|
|
2419
|
-
var CLIENT_ID_RE = /^[A-Za-z0-9._:-]+$/;
|
|
2420
|
-
var INVALID_PERMISSION_OUTCOME_ERROR = '`outcome` must be `{ outcome: "cancelled" }` or `{ outcome: "selected", optionId: string }`';
|
|
2421
|
-
var deferredRuntimeTimingKey = Symbol(
|
|
2422
|
-
"deferredRuntimeRequestTiming"
|
|
2423
|
-
);
|
|
2424
|
-
function setDeferredRuntimeRequestTiming(req, timing) {
|
|
2425
|
-
req[deferredRuntimeTimingKey] = timing;
|
|
2426
|
-
}
|
|
2427
|
-
__name(setDeferredRuntimeRequestTiming, "setDeferredRuntimeRequestTiming");
|
|
2428
|
-
function getDeferredRuntimeRequestTiming(req) {
|
|
2429
|
-
return req[deferredRuntimeTimingKey];
|
|
2430
|
-
}
|
|
2431
|
-
__name(getDeferredRuntimeRequestTiming, "getDeferredRuntimeRequestTiming");
|
|
2432
|
-
function safeBody(req) {
|
|
2433
|
-
const raw = req.body;
|
|
2434
|
-
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
|
|
2435
|
-
return /* @__PURE__ */ Object.create(null);
|
|
2436
|
-
}
|
|
2437
|
-
const out = /* @__PURE__ */ Object.create(null);
|
|
2438
|
-
for (const [key, value] of Object.entries(raw)) {
|
|
2439
|
-
if (PROTOTYPE_POLLUTION_KEYS.has(key)) continue;
|
|
2440
|
-
out[key] = value;
|
|
2441
|
-
}
|
|
2442
|
-
return out;
|
|
2443
|
-
}
|
|
2444
|
-
__name(safeBody, "safeBody");
|
|
2445
|
-
function parseOptionalWorkspaceCwd(body, boundWorkspace, res) {
|
|
2446
|
-
const hasCwd = "cwd" in body;
|
|
2447
|
-
if (hasCwd && typeof body["cwd"] !== "string") {
|
|
2448
|
-
res.status(400).json({ error: "`cwd` must be a string absolute path when provided" });
|
|
2449
|
-
return void 0;
|
|
2450
|
-
}
|
|
2451
|
-
if (hasCwd && body["cwd"].length > MAX_WORKSPACE_PATH_LENGTH) {
|
|
2452
|
-
res.status(400).json({
|
|
2453
|
-
error: `\`cwd\` exceeds the ${MAX_WORKSPACE_PATH_LENGTH}-character limit`
|
|
2454
|
-
});
|
|
2455
|
-
return void 0;
|
|
2456
|
-
}
|
|
2457
|
-
const cwd = translateAndCheckAbsoluteWorkspacePath(
|
|
2458
|
-
hasCwd ? body["cwd"] : boundWorkspace
|
|
2459
|
-
);
|
|
2460
|
-
if (cwd === null) {
|
|
2461
|
-
res.status(400).json({ error: "`cwd` must be an absolute path when provided" });
|
|
2462
|
-
return void 0;
|
|
2463
|
-
}
|
|
2464
|
-
return cwd;
|
|
2465
|
-
}
|
|
2466
|
-
__name(parseOptionalWorkspaceCwd, "parseOptionalWorkspaceCwd");
|
|
2467
|
-
function requireSessionId(req, res) {
|
|
2468
|
-
const sessionId = req.params["id"];
|
|
2469
|
-
if (!sessionId) {
|
|
2470
|
-
res.status(400).json({ error: "`sessionId` route parameter is required" });
|
|
2471
|
-
return null;
|
|
2472
|
-
}
|
|
2473
|
-
return normalizeSessionIdForLookup(sessionId);
|
|
2474
|
-
}
|
|
2475
|
-
__name(requireSessionId, "requireSessionId");
|
|
2476
|
-
function parseClientIdHeader(req, res) {
|
|
2477
|
-
const raw = req.get(CLIENT_ID_HEADER);
|
|
2478
|
-
if (raw === void 0 || raw === "") return void 0;
|
|
2479
|
-
if (raw.length > MAX_CLIENT_ID_LENGTH || !CLIENT_ID_RE.test(raw)) {
|
|
2480
|
-
res.status(400).json({
|
|
2481
|
-
error: "`X-Qwen-Client-Id` must be a non-empty token of 128 characters or fewer",
|
|
2482
|
-
code: "invalid_client_id"
|
|
2483
|
-
});
|
|
2484
|
-
return null;
|
|
2485
|
-
}
|
|
2486
|
-
return raw;
|
|
2487
|
-
}
|
|
2488
|
-
__name(parseClientIdHeader, "parseClientIdHeader");
|
|
2489
|
-
function detectFromLoopback(req) {
|
|
2490
|
-
const addr = req.socket?.remoteAddress;
|
|
2491
|
-
if (typeof addr !== "string") return false;
|
|
2492
|
-
if (addr === "::1") return true;
|
|
2493
|
-
if (addr.startsWith("127.")) return true;
|
|
2494
|
-
if (addr.startsWith("::ffff:127.")) return true;
|
|
2495
|
-
return false;
|
|
2496
|
-
}
|
|
2497
|
-
__name(detectFromLoopback, "detectFromLoopback");
|
|
2498
|
-
function validateMcpRuntimeServerName(name, res) {
|
|
2499
|
-
if (typeof name !== "string" || name.length === 0) {
|
|
2500
|
-
res.status(400).json({
|
|
2501
|
-
error: "Server name is required and must be a non-empty string",
|
|
2502
|
-
code: "invalid_server_name"
|
|
2503
|
-
});
|
|
2504
|
-
return false;
|
|
2505
|
-
}
|
|
2506
|
-
if (name.length > MAX_SERVER_NAME_LENGTH) {
|
|
2507
|
-
res.status(400).json({
|
|
2508
|
-
error: `Server name exceeds ${MAX_SERVER_NAME_LENGTH}-character limit`,
|
|
2509
|
-
code: "invalid_server_name"
|
|
2510
|
-
});
|
|
2511
|
-
return false;
|
|
2512
|
-
}
|
|
2513
|
-
if (!/^[A-Za-z0-9_-]+$/.test(name)) {
|
|
2514
|
-
res.status(400).json({
|
|
2515
|
-
error: "Server name must contain only alphanumeric characters, underscores, and hyphens",
|
|
2516
|
-
code: "invalid_server_name"
|
|
2517
|
-
});
|
|
2518
|
-
return false;
|
|
2519
|
-
}
|
|
2520
|
-
if (name === "__proto__" || name === "constructor" || name === "prototype") {
|
|
2521
|
-
res.status(400).json({
|
|
2522
|
-
error: "Server name must not be a reserved JS property name",
|
|
2523
|
-
code: "invalid_server_name"
|
|
2524
|
-
});
|
|
2525
|
-
return false;
|
|
2526
|
-
}
|
|
2527
|
-
return true;
|
|
2528
|
-
}
|
|
2529
|
-
__name(validateMcpRuntimeServerName, "validateMcpRuntimeServerName");
|
|
2530
|
-
function parseAndValidateWorkspaceClientId(req, res, bridge) {
|
|
2531
|
-
const raw = parseClientIdHeader(req, res);
|
|
2532
|
-
if (raw === null || raw === void 0) return raw;
|
|
2533
|
-
const bridges = Array.isArray(bridge) ? bridge : [bridge];
|
|
2534
|
-
if (!bridges.some((candidate) => candidate.knownClientIds().has(raw))) {
|
|
2535
|
-
res.status(400).json({
|
|
2536
|
-
error: `Client id "${raw}" is not registered for this workspace`,
|
|
2537
|
-
code: "invalid_client_id",
|
|
2538
|
-
clientId: raw
|
|
2539
|
-
});
|
|
2540
|
-
return null;
|
|
2541
|
-
}
|
|
2542
|
-
return raw;
|
|
2543
|
-
}
|
|
2544
|
-
__name(parseAndValidateWorkspaceClientId, "parseAndValidateWorkspaceClientId");
|
|
2545
|
-
function createBuildWorkspaceCtx(boundWorkspace) {
|
|
2546
|
-
return (route, clientId) => ({
|
|
2547
|
-
originatorClientId: clientId,
|
|
2548
|
-
route,
|
|
2549
|
-
workspaceCwd: boundWorkspace
|
|
2550
|
-
});
|
|
2551
|
-
}
|
|
2552
|
-
__name(createBuildWorkspaceCtx, "createBuildWorkspaceCtx");
|
|
2553
|
-
function parsePermissionVoteBody(req, res) {
|
|
2554
|
-
const body = safeBody(req);
|
|
2555
|
-
const outcome = body["outcome"];
|
|
2556
|
-
if (!isValidOutcome(outcome)) {
|
|
2557
|
-
res.status(400).json({ error: INVALID_PERMISSION_OUTCOME_ERROR });
|
|
2558
|
-
return void 0;
|
|
2559
|
-
}
|
|
2560
|
-
return {
|
|
2561
|
-
...body,
|
|
2562
|
-
outcome
|
|
2563
|
-
};
|
|
2564
|
-
}
|
|
2565
|
-
__name(parsePermissionVoteBody, "parsePermissionVoteBody");
|
|
2566
|
-
function isValidOutcome(raw) {
|
|
2567
|
-
if (typeof raw !== "object" || raw === null) return false;
|
|
2568
|
-
const obj = raw;
|
|
2569
|
-
if (obj["outcome"] === "cancelled") return true;
|
|
2570
|
-
return obj["outcome"] === "selected" && typeof obj["optionId"] === "string" && obj["optionId"].length > 0;
|
|
2571
|
-
}
|
|
2572
|
-
__name(isValidOutcome, "isValidOutcome");
|
|
2573
|
-
var MIN_QUERY_MAX_QUEUED = 16;
|
|
2574
|
-
var MAX_QUERY_MAX_QUEUED = 2048;
|
|
2575
|
-
function parseMaxQueuedQuery(raw, res) {
|
|
2576
|
-
if (raw === void 0) return void 0;
|
|
2577
|
-
if (typeof raw !== "string" || !/^\d+$/.test(raw)) {
|
|
2578
|
-
writeStderrLine(
|
|
2579
|
-
`qwen serve: rejected ?maxQueued ${safeLogValue(raw)} (not a decimal integer)`
|
|
2580
|
-
);
|
|
2581
|
-
res.status(400).json({
|
|
2582
|
-
error: "`maxQueued` must be a decimal integer",
|
|
2583
|
-
code: "invalid_max_queued"
|
|
2584
|
-
});
|
|
2585
|
-
return null;
|
|
2586
|
-
}
|
|
2587
|
-
const n = Number.parseInt(raw, 10);
|
|
2588
|
-
if (!Number.isFinite(n) || n < MIN_QUERY_MAX_QUEUED || n > MAX_QUERY_MAX_QUEUED) {
|
|
2589
|
-
writeStderrLine(
|
|
2590
|
-
`qwen serve: rejected ?maxQueued ${safeLogValue(raw)} (outside [${MIN_QUERY_MAX_QUEUED}, ${MAX_QUERY_MAX_QUEUED}])`
|
|
2591
|
-
);
|
|
2592
|
-
res.status(400).json({
|
|
2593
|
-
error: `\`maxQueued\` must be in [${MIN_QUERY_MAX_QUEUED}, ${MAX_QUERY_MAX_QUEUED}]`,
|
|
2594
|
-
code: "invalid_max_queued"
|
|
2595
|
-
});
|
|
2596
|
-
return null;
|
|
2597
|
-
}
|
|
2598
|
-
return n;
|
|
2599
|
-
}
|
|
2600
|
-
__name(parseMaxQueuedQuery, "parseMaxQueuedQuery");
|
|
2601
|
-
function safeLogValue(raw) {
|
|
2602
|
-
return JSON.stringify(String(raw)).slice(0, 82);
|
|
2603
|
-
}
|
|
2604
|
-
__name(safeLogValue, "safeLogValue");
|
|
2605
|
-
function parseLastEventId(raw) {
|
|
2606
|
-
if (typeof raw !== "string" || !/^\d+$/.test(raw)) {
|
|
2607
|
-
if (typeof raw === "string" && raw.length > 0) {
|
|
2608
|
-
writeStderrLine(
|
|
2609
|
-
`qwen serve: rejected Last-Event-ID ${safeLogValue(raw)} (not a decimal integer)`
|
|
2610
|
-
);
|
|
2611
|
-
}
|
|
2612
|
-
return void 0;
|
|
2613
|
-
}
|
|
2614
|
-
const n = Number.parseInt(raw, 10);
|
|
2615
|
-
if (!Number.isFinite(n) || n > Number.MAX_SAFE_INTEGER) {
|
|
2616
|
-
writeStderrLine(
|
|
2617
|
-
`qwen serve: rejected Last-Event-ID ${safeLogValue(raw)} (exceeds Number.MAX_SAFE_INTEGER)`
|
|
2618
|
-
);
|
|
2619
|
-
return void 0;
|
|
2620
|
-
}
|
|
2621
|
-
return n;
|
|
2622
|
-
}
|
|
2623
|
-
__name(parseLastEventId, "parseLastEventId");
|
|
2624
|
-
|
|
2625
2397
|
// packages/cli/src/serve/rate-limit.ts
|
|
2626
2398
|
init_esbuild_shims();
|
|
2627
2399
|
var MAX_BUCKETS = 1e4;
|
|
@@ -4176,26 +3948,6 @@ export {
|
|
|
4176
3948
|
conversationRootCompromisedError,
|
|
4177
3949
|
ServeAppLifecycleController,
|
|
4178
3950
|
installServeAppLifecycle,
|
|
4179
|
-
sendJsonBodyParserError,
|
|
4180
|
-
CLIENT_ID_HEADER,
|
|
4181
|
-
MAX_CLIENT_ID_LENGTH,
|
|
4182
|
-
MAX_TOOL_NAME_LENGTH,
|
|
4183
|
-
MAX_SERVER_NAME_LENGTH,
|
|
4184
|
-
CLIENT_ID_RE,
|
|
4185
|
-
setDeferredRuntimeRequestTiming,
|
|
4186
|
-
getDeferredRuntimeRequestTiming,
|
|
4187
|
-
safeBody,
|
|
4188
|
-
parseOptionalWorkspaceCwd,
|
|
4189
|
-
requireSessionId,
|
|
4190
|
-
parseClientIdHeader,
|
|
4191
|
-
detectFromLoopback,
|
|
4192
|
-
validateMcpRuntimeServerName,
|
|
4193
|
-
parseAndValidateWorkspaceClientId,
|
|
4194
|
-
createBuildWorkspaceCtx,
|
|
4195
|
-
parsePermissionVoteBody,
|
|
4196
|
-
parseMaxQueuedQuery,
|
|
4197
|
-
safeLogValue,
|
|
4198
|
-
parseLastEventId,
|
|
4199
3951
|
createRateLimiter,
|
|
4200
3952
|
setRateLimiter,
|
|
4201
3953
|
getRateLimiter,
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
} from "./chunk-P3QQPMQA.js";
|
|
6
|
-
import {
|
|
7
|
-
classifyRetryError
|
|
8
|
-
} from "./chunk-J2OSJFP3.js";
|
|
9
|
-
import {
|
|
4
|
+
classifyRetryError,
|
|
10
5
|
formatQuotaExhaustedMessage,
|
|
11
6
|
getRetryAfterDelayMs,
|
|
12
7
|
getRetryDelayMs,
|
|
13
8
|
isQuotaExhaustedError,
|
|
14
9
|
isQwenQuotaExceededError,
|
|
15
10
|
isRateLimitError
|
|
16
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DYXFD5RO.js";
|
|
17
12
|
import {
|
|
18
13
|
createDebugLogger,
|
|
19
14
|
getErrorStatus
|
|
@@ -27,6 +22,13 @@ import {
|
|
|
27
22
|
|
|
28
23
|
// packages/core/src/utils/retry.ts
|
|
29
24
|
init_esbuild_shims();
|
|
25
|
+
|
|
26
|
+
// packages/core/src/utils/retryContext.ts
|
|
27
|
+
init_esbuild_shims();
|
|
28
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
29
|
+
var retryContext = new AsyncLocalStorage();
|
|
30
|
+
|
|
31
|
+
// packages/core/src/utils/retry.ts
|
|
30
32
|
var debugLogger = createDebugLogger("RETRY");
|
|
31
33
|
var PERSISTENT_MAX_BACKOFF_MS = 5 * 60 * 1e3;
|
|
32
34
|
var PERSISTENT_CAP_MS = 6 * 60 * 60 * 1e3;
|
|
@@ -331,10 +333,16 @@ function logRetryAtStatusLevel(message, retryDiagnostics, error, errorStatus) {
|
|
|
331
333
|
__name(logRetryAtStatusLevel, "logRetryAtStatusLevel");
|
|
332
334
|
|
|
333
335
|
export {
|
|
336
|
+
retryContext,
|
|
334
337
|
isUnattendedMode,
|
|
335
338
|
delay,
|
|
336
339
|
retryWithBackoff
|
|
337
340
|
};
|
|
341
|
+
/**
|
|
342
|
+
* @license
|
|
343
|
+
* Copyright 2026 Qwen Team
|
|
344
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
345
|
+
*/
|
|
338
346
|
/**
|
|
339
347
|
* @license
|
|
340
348
|
* Copyright 2025 Google LLC
|