@qwen-code/qwen-code 0.22.2-preview.0 → 0.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/goal-draft/SKILL.md +109 -0
- package/bundled/qc-helper/docs/configuration/settings.md +12 -12
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/commands.md +2 -1
- package/bundled/qc-helper/docs/features/goals.md +58 -0
- package/bundled/qc-helper/docs/features/headless.md +13 -11
- package/bundled/qc-helper/docs/features/status-line.md +3 -3
- package/chunks/MaxSizedBox-X5FZSNAJ.js +112 -0
- package/chunks/{StandaloneSessionPicker-KFMJILVY.js → StandaloneSessionPicker-AVLI6VJP.js} +76 -76
- package/chunks/{acpAgent-KNFTTDWL.js → acpAgent-MXEAN54C.js} +994 -277
- package/chunks/{agent-6V6MZOA7.js → agent-PJIPDWHB.js} +41 -41
- package/chunks/agent-headless-B4JVD7UK.js +87 -0
- package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-HGMBACVE.js} +7 -7
- package/chunks/{artifact-tool-XDJCZZCF.js → artifact-tool-5YT4QF7Y.js} +2 -2
- package/chunks/{askUserQuestion-ZXXERLEV.js → askUserQuestion-4SWJY65V.js} +2 -2
- package/chunks/bridge-FKZTVIS3.js +121 -0
- package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-X4AZ6IXX.js} +1 -1
- package/chunks/channel-settings-store-4UFCLBBG.js +117 -0
- package/chunks/{channel-worker-group-EVDC2P4K.js → channel-worker-group-27HMGD5S.js} +7 -6
- package/chunks/{channel-worker-manager-IJJZHGEI.js → channel-worker-manager-QEGX646Z.js} +9 -7
- package/chunks/{channel-worker-supervisor-YSKB5GVB.js → channel-worker-supervisor-UEW2WWCC.js} +5 -4
- package/chunks/{chunk-7QGEJI7M.js → chunk-23RFD54N.js} +1 -1
- package/chunks/{chunk-K5PNJ6VL.js → chunk-2K6ORIHJ.js} +13 -13
- package/chunks/{chunk-OGZAQWJP.js → chunk-2NYCN6F2.js} +11 -11
- package/chunks/chunk-2TNL5KPM.js +49 -0
- package/chunks/{chunk-ZEADBZLO.js → chunk-3AFMQUTI.js} +3 -3
- package/chunks/{chunk-LRLMDV5X.js → chunk-3DXFGHAJ.js} +185 -174
- package/chunks/{chunk-73WFGVIZ.js → chunk-3FDFA4MZ.js} +3 -3
- package/chunks/{chunk-WBT3STGU.js → chunk-3I6UTTDX.js} +1 -1
- package/chunks/{chunk-FVDQ5E67.js → chunk-3JGZSIDA.js} +3 -3
- package/chunks/{chunk-JJJD6QCC.js → chunk-3SGB2UHX.js} +15 -10
- package/chunks/{chunk-77TOMRBG.js → chunk-43GGFFLY.js} +3 -3
- package/chunks/{chunk-ZJG323IA.js → chunk-43UYNAWX.js} +6 -4
- package/chunks/{chunk-T2HMXHYA.js → chunk-4CDSK5AZ.js} +6 -6
- package/chunks/chunk-4CMJKUND.js +95 -0
- package/chunks/{chunk-EB4VDXNI.js → chunk-4FTKQNWJ.js} +1 -1
- package/chunks/{chunk-PAJGKZAA.js → chunk-4HV6HH33.js} +10 -8
- package/chunks/{chunk-BQBUZDDH.js → chunk-4J657AJR.js} +3 -3
- package/chunks/{chunk-BU7OUDQB.js → chunk-4JWNNLPT.js} +4 -4
- package/chunks/{chunk-4N6UAPD3.js → chunk-4MQEPP3Y.js} +9 -84
- package/chunks/{chunk-I6HWGOWD.js → chunk-5O72BNDD.js} +93 -14
- package/chunks/{chunk-IKN3IUJP.js → chunk-5XBFCMWD.js} +2 -2
- package/chunks/{chunk-2YDYDDE2.js → chunk-66KDY3LV.js} +3 -3
- package/chunks/{chunk-UVDOONRU.js → chunk-6CGL7E7G.js} +2 -2
- package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
- package/chunks/{chunk-SKNVVYIJ.js → chunk-6IUNAPLR.js} +3 -3
- package/chunks/{chunk-VUZY6MEQ.js → chunk-6LFJEACX.js} +4 -4
- package/chunks/{chunk-H2MDBYLL.js → chunk-6LFTG244.js} +8 -8
- package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
- package/chunks/{chunk-4IDJQOCO.js → chunk-77RG5SFQ.js} +1 -1
- package/chunks/{chunk-SDVF6A42.js → chunk-7DJCPZE3.js} +3 -3
- package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
- package/chunks/{chunk-H4JK2A2V.js → chunk-7UYV53BC.js} +1 -1
- package/chunks/{chunk-6HOU52QX.js → chunk-A7YP63XN.js} +4 -4
- package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
- package/chunks/{chunk-XO4NGYRP.js → chunk-AGR5UROZ.js} +5 -5
- package/chunks/{chunk-5T4LWWNX.js → chunk-B7CDU2SL.js} +2 -2
- package/chunks/{chunk-GQAIZL3H.js → chunk-BAJKAAOY.js} +68 -64
- package/chunks/{chunk-DWRFOH3G.js → chunk-BBWV7ONL.js} +3 -3
- package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
- package/chunks/{chunk-RUJTCU46.js → chunk-BNMF3K5X.js} +20 -19
- package/chunks/{chunk-IPQA4SR5.js → chunk-BWORX6FA.js} +1 -1
- package/chunks/{chunk-BKDAF7ES.js → chunk-BXDAPVQU.js} +2 -2
- package/chunks/{chunk-FY62MBPS.js → chunk-C6K43ZDE.js} +4 -4
- package/chunks/{chunk-JUIJ3FXC.js → chunk-CAJTKR6W.js} +5 -5
- package/chunks/{chunk-EADEZDPO.js → chunk-CCBZDVUA.js} +30 -25
- package/chunks/{chunk-DP7LABIB.js → chunk-CMHFCLBU.js} +1 -1
- package/chunks/{chunk-5AFPOEY3.js → chunk-CPGJJJLU.js} +1 -1
- package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
- package/chunks/{chunk-EWBY3PFB.js → chunk-CSMI4FP5.js} +1 -1
- package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
- package/chunks/{chunk-TQYZG5DU.js → chunk-DZWPESIF.js} +3 -3
- package/chunks/{chunk-5Y2JCJAH.js → chunk-EFUM7RVY.js} +15 -2
- package/chunks/{chunk-3UZCLCXR.js → chunk-EKSCLBBF.js} +3 -3
- package/chunks/{chunk-LJP2BBMK.js → chunk-EOGELB3H.js} +4 -4
- package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
- package/chunks/{chunk-RQAMNZ4Y.js → chunk-F5SZP77N.js} +310 -78
- package/chunks/{chunk-SQPOJ4ZI.js → chunk-F6FV3C5K.js} +12 -7
- package/chunks/{chunk-C2BAEV64.js → chunk-F7TNAPZ4.js} +9 -7
- package/chunks/{chunk-OAAPGZVH.js → chunk-FBSSIAAQ.js} +6 -6
- package/chunks/{chunk-2FN2HNTI.js → chunk-FDY5RMGH.js} +2 -2
- package/chunks/{chunk-U66FXEH2.js → chunk-FY76G3G5.js} +5 -5
- package/chunks/{chunk-LKOSBI2M.js → chunk-G34IR3D6.js} +9 -9
- package/chunks/{chunk-ZWKGZB2K.js → chunk-H2WDGQ6D.js} +3 -3
- package/chunks/chunk-H72BQNM3.js +645 -0
- package/chunks/{chunk-ILPXSKGQ.js → chunk-HVEYF6VT.js} +2 -2
- package/chunks/{chunk-EAV3TENS.js → chunk-HVQ3B7FF.js} +2 -2
- package/chunks/{chunk-MI7CMXPU.js → chunk-IJKTMLBE.js} +1 -1
- package/chunks/{chunk-IN66KO3N.js → chunk-IK5BW3CS.js} +2 -2
- package/chunks/{chunk-5NV2AN56.js → chunk-IOPCFOTF.js} +3 -3
- package/chunks/{chunk-O3BUXIPM.js → chunk-IZIVM7LZ.js} +3 -3
- package/chunks/{chunk-I6VVOZDK.js → chunk-J2OSJFP3.js} +2 -2
- package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
- package/chunks/{chunk-76WGY6LW.js → chunk-JCQD3INC.js} +3 -3
- package/chunks/{chunk-CITGRGCM.js → chunk-JHS74YAB.js} +4 -1
- package/chunks/{chunk-GXWY24QS.js → chunk-JSC3H3TD.js} +33 -10
- package/chunks/{chunk-NUHCXGAD.js → chunk-JSHHYW6T.js} +4 -4
- package/chunks/{chunk-5CW26JIE.js → chunk-JU4EEXC7.js} +2 -2
- package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
- package/chunks/{chunk-DX5FZGHZ.js → chunk-K2NQPH5D.js} +3 -3
- package/chunks/{chunk-VLY6XOBY.js → chunk-KEKZFOL6.js} +1 -1
- package/chunks/{chunk-RUQBJS34.js → chunk-KUX5D6DK.js} +1200 -339
- package/chunks/{chunk-UX3IFLJM.js → chunk-L2M46FP5.js} +149 -22
- package/chunks/{chunk-6US7BF3G.js → chunk-L6BZRIUL.js} +2 -2
- package/chunks/{chunk-BGWT7VBV.js → chunk-L6YT5H34.js} +4 -4
- package/chunks/{chunk-W2WRNJKX.js → chunk-LDP5OD6N.js} +5 -5
- package/chunks/{chunk-QB5DD75E.js → chunk-LXIBMVRN.js} +7 -7
- package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
- package/chunks/{chunk-OX44MOAN.js → chunk-MIIVI25Q.js} +3 -3
- package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
- package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
- package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
- package/chunks/{chunk-MB4OCRQ2.js → chunk-O2UN57NX.js} +2 -2
- package/chunks/{chunk-TWUA5EIL.js → chunk-OIP7C4FE.js} +5 -5
- package/chunks/{chunk-UCSV2IZW.js → chunk-OIVXBW3W.js} +3 -3
- package/chunks/{chunk-TOF4UZHH.js → chunk-P2SU6ZTI.js} +3 -3
- package/chunks/{chunk-N4B7VPXK.js → chunk-P5GGM4KS.js} +5 -5
- package/chunks/{chunk-ZKAZP2ZG.js → chunk-PDMJ3KGS.js} +2 -2
- package/chunks/{chunk-RRKNX553.js → chunk-PDQGMSZK.js} +1 -1
- package/chunks/{chunk-3UXJFOB3.js → chunk-PFCQ62V4.js} +5 -5
- package/chunks/{chunk-JLGFGPZJ.js → chunk-PKAYJDB3.js} +2 -2
- package/chunks/{chunk-GTUKW3I6.js → chunk-PPKZ7JOE.js} +1 -1
- package/chunks/{chunk-HOANA6GC.js → chunk-Q26AYA62.js} +4 -4
- package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
- package/chunks/{chunk-4PLAO7FS.js → chunk-QP4C6WCE.js} +3 -3
- package/chunks/{chunk-3B5DCAQU.js → chunk-R4PMVSR5.js} +27 -25
- package/chunks/{chunk-7JJUFI36.js → chunk-RIEFGNTP.js} +579 -3419
- package/chunks/{chunk-7XKW4CVK.js → chunk-RJC5EIKY.js} +4 -4
- package/chunks/chunk-RKFGE7JH.js +93 -0
- package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
- package/chunks/{chunk-GZJUCMH4.js → chunk-RUGNCYNO.js} +11 -633
- package/chunks/{chunk-ZLTEQYNC.js → chunk-SFPGAQUL.js} +2 -2
- package/chunks/{chunk-K6FURWIX.js → chunk-SJ3ZUWFK.js} +26 -4
- package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
- package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
- package/chunks/{chunk-O5YGAEQS.js → chunk-T32W2JHI.js} +6 -6
- package/chunks/chunk-T3WXYEZ4.js +304 -0
- package/chunks/{chunk-D6XO27Z5.js → chunk-TGWAQ5RB.js} +750 -296
- package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
- package/chunks/{chunk-OI2DR6QB.js → chunk-TRZTNIQ6.js} +2 -2
- package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
- package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
- package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
- package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
- package/chunks/{chunk-RQ5ASDFQ.js → chunk-V4QXXQJ2.js} +3 -3
- package/chunks/{chunk-BVE5EMIG.js → chunk-V5J4J5TP.js} +2 -2
- package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
- package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
- package/chunks/{chunk-V3GINY6K.js → chunk-VVW4ZNFY.js} +3 -3
- package/chunks/{chunk-YT5XN3HV.js → chunk-W5MJJ2V7.js} +1 -1
- package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
- package/chunks/{chunk-FN5C6C7G.js → chunk-WKK5BQNP.js} +151 -60
- package/chunks/chunk-XDFHY4R3.js +1584 -0
- package/chunks/{chunk-L436XFLJ.js → chunk-XDLEZ5HX.js} +1 -1
- package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
- package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
- package/chunks/{chunk-2MHGD7EE.js → chunk-XRSOI3DL.js} +1 -1
- package/chunks/{chunk-FJWICLG7.js → chunk-Y3QL45LS.js} +1 -1
- package/chunks/{chunk-RCDXSEJ5.js → chunk-Y6LSMB6J.js} +1 -1
- package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
- package/chunks/{chunk-4X5GYZFO.js → chunk-Z7FLBQPR.js} +7 -7
- package/chunks/{chunk-3BV7TZNQ.js → chunk-Z7TGYN5F.js} +3 -3
- package/chunks/{chunk-4Z3PSHN4.js → chunk-ZFKOCECU.js} +2 -2
- package/chunks/chunk-ZGXYO7DY.js +3416 -0
- package/chunks/{chunk-E6FGMDFQ.js → chunk-ZU4UDIWX.js} +19 -1
- package/chunks/config-utils-BBOCOGZW.js +113 -0
- package/chunks/contextCommand-EET67MQ2.js +108 -0
- package/chunks/{core-runtime-6TBMEULI.js → core-runtime-677KFX6Q.js} +53 -53
- package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
- package/chunks/{create-sub-session-SAOMTP62.js → create-sub-session-JKZAYZX7.js} +160 -79
- package/chunks/{cron-create-IJGVR5R2.js → cron-create-KJ4IY6PP.js} +57 -10
- package/chunks/{cron-delete-4N5BI6GL.js → cron-delete-MBLQCAYY.js} +4 -4
- package/chunks/{cron-list-2CATIPUX.js → cron-list-DWH2PQ47.js} +4 -4
- package/chunks/{daemon-NAYK4XXU.js → daemon-MJQUO7RA.js} +28 -1
- package/chunks/{daemon-git-worktree-guard-TYLESM6G.js → daemon-git-worktree-guard-6MVAAZZZ.js} +53 -53
- package/chunks/daemon-status-provider-RFKZOK3S.js +119 -0
- package/chunks/daemon-trust-policy-DRZPFB4Q.js +114 -0
- package/chunks/{daemon-trust-policy-monitor-WWX7I7P6.js → daemon-trust-policy-monitor-B5U6TQX5.js} +59 -59
- package/chunks/deferred-core-runtime-BBVIOP24.js +116 -0
- package/chunks/{display-image-DR55LL6M.js → display-image-BE7I6ZB6.js} +5 -5
- package/chunks/{dist-FVJZSIO4.js → dist-ILDBUWDB.js} +71 -19
- package/chunks/{dist-6H6RZ5H6.js → dist-QODVOVWI.js} +58 -35
- package/chunks/earlyInputCapture-2JOMMNQ4.js +109 -0
- package/chunks/{edit-GBDKI5DZ.js → edit-BSV6YRVW.js} +42 -42
- package/chunks/{en-6MDBWMTG.js → en-YLXBXM4Z.js} +2 -1
- package/chunks/{enter-worktree-UOZ6ZTP7.js → enter-worktree-MQXFFPKM.js} +7 -7
- package/chunks/{enterPlanMode-2KTIPPM3.js → enterPlanMode-PKNF35FE.js} +41 -41
- package/chunks/{environment-XJ75LJ6N.js → environment-MOZMPUHR.js} +55 -55
- package/chunks/errors-DMPQVYJL.js +115 -0
- package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-L344UY7K.js} +7 -7
- package/chunks/{exitPlanMode-AUMYTFIQ.js → exitPlanMode-UE4FGCY4.js} +41 -41
- package/chunks/{fast-path-TU7U2ETU.js → fast-path-773PV7PU.js} +5 -5
- package/chunks/{gemini-FKMYDP64.js → gemini-IP4FJAP5.js} +101 -100
- package/chunks/{geminiContentGenerator-WSHP7CSR.js → geminiContentGenerator-PUNEBWJW.js} +8 -8
- package/chunks/{glob-EOM6XK7H.js → glob-CZHOWUEA.js} +41 -41
- package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-YZQJXTGH.js} +9 -8
- package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
- package/chunks/handleAutoUpdate-SGXKTQM6.js +111 -0
- package/chunks/{i18n-XX7U2Q3X.js → i18n-B42HKHKH.js} +54 -54
- package/chunks/{image-gen-63NN2H5N.js → image-gen-HAYOEQ4O.js} +9 -9
- package/chunks/initializer-FB66WYR3.js +115 -0
- package/chunks/installationInfo-Y7AULNMX.js +109 -0
- package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
- package/chunks/list-2HWGSVRA.js +118 -0
- package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
- package/chunks/loadedSettingsAdapter-7Y7IEI6T.js +112 -0
- package/chunks/{loggingContentGenerator-TUDGCVUG.js → loggingContentGenerator-2GGZNGLG.js} +35 -22
- package/chunks/{loop-wakeup-XBPB2BRO.js → loop-wakeup-XJFONSQ7.js} +5 -5
- package/chunks/{ls-WFONAND2.js → ls-3VAT2J7A.js} +4 -4
- package/chunks/{lsp-DUKPDUXN.js → lsp-5W7IRUBH.js} +2 -2
- package/chunks/{managed-npm-update-5K4FWFX2.js → managed-npm-update-5TEV2E3J.js} +54 -54
- package/chunks/mcp-QGG5NMJJ.js +112 -0
- package/chunks/{monitor-UUHIAGT7.js → monitor-FI7PY36Z.js} +41 -41
- package/chunks/nonInteractiveCli-4LO2TL72.js +186 -0
- package/chunks/{notebook-edit-GZPB3Q57.js → notebook-edit-TPGMGBST.js} +42 -42
- package/chunks/{openaiContentGenerator-RPP6YBS3.js → openaiContentGenerator-SUCYANUZ.js} +24 -24
- package/chunks/pidfile-JMF2CLMY.js +113 -0
- package/chunks/{processUtils-ENAY2GSA.js → processUtils-IQZBYWSB.js} +2 -2
- package/chunks/prompt-terminal-ledger-DCZO6S7C.js +107 -0
- package/chunks/{qwenContentGenerator-GLUZVJAU.js → qwenContentGenerator-J4TXFGJT.js} +46 -46
- package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-RF33DNZW.js} +8 -8
- package/chunks/{read-file-75R5LUWQ.js → read-file-QE2B5FTX.js} +12 -12
- package/chunks/{read-mcp-resource-7A7NFSFL.js → read-mcp-resource-XD257PGJ.js} +2 -2
- package/chunks/{record-artifact-CPJ4IJSD.js → record-artifact-RZGZBENU.js} +4 -4
- package/chunks/{report-findings-VFM5DENC.js → report-findings-Q3SYKKW5.js} +5 -5
- package/chunks/{request-shutdown-AXVOFN5C.js → request-shutdown-BCLA3JV2.js} +7 -7
- package/chunks/resumeHistoryUtils-CZ4JRDVW.js +120 -0
- package/chunks/{ripGrep-FNLXQYBS.js → ripGrep-R6B6HWPX.js} +17 -17
- package/chunks/{run-qwen-serve-FJD4VMI2.js → run-qwen-serve-TPHZMSXJ.js} +148 -319
- package/chunks/{runtime-INDSJB4K.js → runtime-TTIGSBM4.js} +62 -62
- package/chunks/scheduled-tasks-QB4ZVUQS.js +129 -0
- package/chunks/{scheduler-Z52TCSUG.js → scheduler-YRUG22M7.js} +55 -55
- package/chunks/{sdk-exporters-http-XXSKBD2C.js → sdk-exporters-http-KCJ4ZFG7.js} +2 -2
- package/chunks/{sdk-impl-VPNBLV7I.js → sdk-impl-HLSEDAEP.js} +4 -4
- package/chunks/{send-message-A2GXDX3B.js → send-message-Y5I6NYAM.js} +7 -7
- package/chunks/serve-MXXCDAQN.js +120 -0
- package/chunks/{server-PSN5OOSX.js → server-DFUSSSHI.js} +19760 -19444
- package/chunks/{session-JPE34X6Q.js → session-3TEHNENZ.js} +100 -99
- package/chunks/{settings-IVGC4UYK.js → settings-VOZYKLTT.js} +58 -58
- package/chunks/{shell-A5PZGPBR.js → shell-6RTKZVMI.js} +41 -41
- package/chunks/{skill-UUXQPDEH.js → skill-FEOKFX26.js} +22 -21
- package/chunks/{skill-settings-WVRXLTK4.js → skill-settings-VA4XVYVL.js} +58 -58
- package/chunks/spawnChannel-F6WVP723.js +114 -0
- package/chunks/{standalone-update-IRFRNGAA.js → standalone-update-RGILUQVK.js} +55 -55
- package/chunks/{startInteractiveUI-MC4GLL6G.js → startInteractiveUI-WHJPFOGH.js} +2757 -2223
- package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
- package/chunks/{task-create-CDJSOEQD.js → task-create-TMSV7RD5.js} +11 -11
- package/chunks/{task-list-BELMPA75.js → task-list-W55RBFRX.js} +5 -5
- package/chunks/{task-stop-U3S3KZG2.js → task-stop-CXEH5L2D.js} +2 -2
- package/chunks/{task-update-77VCFDDZ.js → task-update-N536I4GQ.js} +11 -11
- package/chunks/{team-create-WO5ZBCFW.js → team-create-QYSWCYCL.js} +41 -41
- package/chunks/{team-delete-YWFXX77L.js → team-delete-FJRFX33M.js} +5 -5
- package/chunks/{team-plan-approval-KAVKRN7U.js → team-plan-approval-P7DAD644.js} +41 -41
- package/chunks/{terminal-image-renderer-SMRRNI6Z.js → terminal-image-renderer-SMQE46UJ.js} +55 -55
- package/chunks/theme-manager-RFO5WWFF.js +104 -0
- package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
- package/chunks/{tool-search-FBN6OC6U.js → tool-search-F2EMIAPV.js} +17 -17
- package/chunks/total-session-admission-HTVTP4BS.js +116 -0
- package/chunks/{trustedFolders-B4LPJBFK.js → trustedFolders-7OCNMUQE.js} +54 -54
- package/chunks/{update-relaunch-X5TJVKVG.js → update-relaunch-4GF3OXMB.js} +5 -5
- package/chunks/{updateCheck-JCLP5JFT.js → updateCheck-7QBDXZRT.js} +56 -56
- package/chunks/useAutoAcceptIndicator-UI4SNL2O.js +122 -0
- package/chunks/{validateNonInterActiveAuth-W7HYH5ZN.js → validateNonInterActiveAuth-BPPA563H.js} +96 -95
- package/chunks/{version-JG4J76GL.js → version-ANP4TS6O.js} +1 -1
- package/chunks/{web-fetch-SPLMEDWF.js → web-fetch-QJADSAH3.js} +16 -16
- package/chunks/{web-search-PNW6OEH6.js → web-search-7TTQKEKM.js} +9 -9
- package/chunks/{workflow-QHOIIXJO.js → workflow-5XN6XSOT.js} +105 -60
- package/chunks/workspace-providers-status-PDFZWL5Q.js +116 -0
- package/chunks/{workspace-registration-store-H375IYR2.js → workspace-registration-store-XKVW2YVH.js} +1 -1
- package/chunks/{workspace-registry-XTLCD7Z2.js → workspace-registry-23R7XRB5.js} +61 -59
- package/chunks/workspace-service-MUYO2QIC.js +131 -0
- package/chunks/workspace-skills-status-IKECTOOQ.js +115 -0
- package/chunks/{workspace-trust-reconciler-6SC6RKQE.js → workspace-trust-reconciler-KLGOB53D.js} +67 -65
- package/chunks/write-file-GGRBB5TZ.js +90 -0
- package/chunks/{zh-TW-MV4FWFB6.js → zh-TW-RPTMRTHG.js} +2 -1
- package/chunks/{zh-X3WGU6SI.js → zh-UNY63FR3.js} +2 -1
- package/chunks/{zoom-image-WGNPZ572.js → zoom-image-6ASG6J4C.js} +12 -12
- package/cli.js +14 -14
- package/locales/en.js +2 -0
- package/locales/zh-TW.js +2 -0
- package/locales/zh.js +2 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-yq7z7Anb.js → abnfDiagram-VCTEODGH-uS-vtfs3.js} +1 -1
- package/web-shell/assets/{arc-CbJO0xnT.js → arc-BSTnk5pu.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-CRh89421.js → architectureDiagram-5GKGNRK7-DCMyiqzy.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-C75KAhKv.js → blockDiagram-NRAW4CY4-C7_gt0r1.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BzlMveFB.js → c4Diagram-UCG6FXSJ-BeQg2L8B.js} +1 -1
- package/web-shell/assets/channel-CENAhErJ.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DA8QDX3a.js → chunk-2Q5K7J3B-DnV9bKBe.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-Bgu7gQ7Y.js → chunk-5VM5RSS4-rT1GAcT7.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-BOew7pIK.js → chunk-F27PBJKO-BcgSxqGA.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-DHx1I-hO.js → chunk-G27WJ6UU-Bw1ZhyZq.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-SarFW0WU.js → chunk-JWPE2WC7-D4iDw-96.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-BLzP083Z.js → chunk-LCL6LL3I-D3MB3GTZ.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-Bmkv_iKm.js → chunk-POPQ4Y6H-Cep2ndrS.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-MPx9r1N2.js → chunk-SVP7TREG-BuahMHJc.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-Ck-09rKG.js → chunk-XXDRQBXY-BdujIvJY.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DWm6lfOG.js → cose-bilkent-JH36ORCC-CGLLUbF8.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-DcBUyr5R.js → cynefin-OW5HDTMX-D6kDsRSh.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Df8qmd_p.js → cynefinDiagram-5FMLGOSQ-CCy78qZx.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-DDmGspD7.js → dagre-3AP2YEHR-D5gJuJsf.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-BK_qFvbi.js → diagram-S7CK7UJ4-ZwEZ5W__.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-Uw3AP_bi.js → diagram-UQ7AKVKN-B036APjv.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-CJOQKxY7.js → diagram-VSXAHHWV-BfDJ57Fq.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-DhdvZna5.js → diagram-VX7I27RA-Wha0p5rT.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-edQU0nlP.js → diagram-Z3DM3KII-L20bz2K1.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-4kugBEsO.js → ebnfDiagram-PWID7BFC-D1ZM0Cp7.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-BMkFivWO.js → erDiagram-SSCWMZ5O-CMtA19v8.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-BM1ea8g-.js → flowDiagram-A5DVABFB-D96m326S.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CXj_cKRf.js → ganttDiagram-EL5Y4UJY-BuHiYG2o.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-D0nEqwqu.js → gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js} +1 -1
- package/web-shell/assets/index-8hXIpvo4.js +1865 -0
- package/web-shell/assets/{index-B6JN54Pd.js → index-CBGz4Qjl.js} +1 -1
- package/web-shell/assets/{index-C-XlQn24.css → index-DclEv91i.css} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-DF7aGGbQ.js → infoDiagram-RXCK75RN-B6DAOyXe.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CZYNX1lL.js → ishikawaDiagram-5VMMS53U-Bpg-joFo.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-CvrqMUz1.js → journeyDiagram-EYS64GPL-BclrHzGa.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-BZNJQZBj.js → kanban-definition-3QL26DDD-5gJzNTYG.js} +1 -1
- package/web-shell/assets/{layout-Bf83x7D6.js → layout-CEz_1L8z.js} +1 -1
- package/web-shell/assets/{linear-Bkc3ES2f.js → linear-CBjTq9Hc.js} +1 -1
- package/web-shell/assets/{mermaid.core-C6xuovwz.js → mermaid.core-Dzhbxx_I.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzH6gVRg.js → mindmap-definition-FBJOCRG2-DQdVqlBF.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DCvLh2fa.js → pegDiagram-XKGWAZYB-D1JZlYXL.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BtjVlx_6.js → pieDiagram-E7YTZNPT-BmkpYL0w.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-IbroqxFe.js → quadrantDiagram-AXDQQJYC-DRvD6co5.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-BvMykiWW.js → railroadDiagram-O6MQD6OU-CEdjDuoo.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D-HHMyrh.js → requirementDiagram-EFPCY7ZU-BCHG-ie8.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C0XXhB6d.js → sankeyDiagram-P5KCCOFB-C9cZMnye.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DseAXj5d.js → sequenceDiagram-WJ2MYXX4-DYHRV4zL.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-Cek2EweK.js → sizeCapture-X5ZJPWSS-DlK21aye.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-yLv8wafW.js → stateDiagram-HBIQ2CUA-BrmZssvk.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-Cwz-opvE.js → swimlanes-XN3QIQJK-D9xfcayR.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-BJuFD7OG.js → timeline-definition-24CTP7MA-D4gdDL_d.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-CNAavdoV.js → vennDiagram-4TSXK5OY-DdhIExjI.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-DaIjAidq.js → wardleyDiagram-VM6X3IG4-C9RS_Zof.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DkcQXjTy.js → xychartDiagram-S5SC5T6Z-orRgmxWk.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/MaxSizedBox-XYQOMOBE.js +0 -112
- package/chunks/agent-headless-3ZC4LX3E.js +0 -87
- package/chunks/bridge-LFFLHLU5.js +0 -119
- package/chunks/channel-settings-store-CAL2HWAH.js +0 -117
- package/chunks/chunk-JS73NNWF.js +0 -30
- package/chunks/chunk-VGHZT6JR.js +0 -51
- package/chunks/config-utils-YMJNA25D.js +0 -113
- package/chunks/contextCommand-WMPSNKPG.js +0 -108
- package/chunks/daemon-status-provider-YBQAZD3G.js +0 -118
- package/chunks/daemon-trust-policy-O75ZSIJN.js +0 -114
- package/chunks/deferred-core-runtime-MGCCR6LA.js +0 -116
- package/chunks/earlyInputCapture-2EJKJET3.js +0 -109
- package/chunks/errors-XEI3SJRV.js +0 -115
- package/chunks/handleAutoUpdate-S4CLP36D.js +0 -111
- package/chunks/initializer-D3CA3272.js +0 -115
- package/chunks/installationInfo-HVDQOSIE.js +0 -109
- package/chunks/list-XUDSTGT3.js +0 -118
- package/chunks/loadedSettingsAdapter-ZOJ4QEID.js +0 -112
- package/chunks/mcp-QJ6AUYE5.js +0 -112
- package/chunks/nonInteractiveCli-PAWO75YO.js +0 -185
- package/chunks/pidfile-RF3WUFKR.js +0 -113
- package/chunks/prompt-terminal-ledger-4CCXZ2LF.js +0 -107
- package/chunks/resumeHistoryUtils-GFPJD2XB.js +0 -120
- package/chunks/serve-GVD2WXVL.js +0 -120
- package/chunks/spawnChannel-KTURLD4B.js +0 -113
- package/chunks/theme-manager-A7CPN7F4.js +0 -104
- package/chunks/total-session-admission-B7U6UWKQ.js +0 -114
- package/chunks/useAutoAcceptIndicator-VBT3NKDM.js +0 -122
- package/chunks/workspace-providers-status-653DTR35.js +0 -116
- package/chunks/workspace-service-KVJWACCS.js +0 -131
- package/chunks/workspace-skills-status-TRJ2VWGU.js +0 -115
- package/chunks/write-file-EAZSJZKR.js +0 -90
- package/web-shell/assets/channel-B3sGR79J.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +0 -1
- package/web-shell/assets/index-DLjXM0dn.js +0 -1860
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +0 -8
|
@@ -40,19 +40,26 @@ import {
|
|
|
40
40
|
resolveAcpHttpEnabled,
|
|
41
41
|
setDeferredRuntimeRequestTiming,
|
|
42
42
|
toDaemonStatusMemoryLimits
|
|
43
|
-
} from "./chunk-
|
|
44
|
-
import "./chunk-VGHZT6JR.js";
|
|
43
|
+
} from "./chunk-F6FV3C5K.js";
|
|
45
44
|
import {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
ConversationDirectoryIdentityError,
|
|
46
|
+
assertExactConversationRootIdentity,
|
|
47
|
+
createConversationRootIdentity,
|
|
48
|
+
inspectConversationDirectoryIdentity,
|
|
49
|
+
materializeConversationDirectoryIdentity,
|
|
50
|
+
revalidateConversationRootIdentity
|
|
51
|
+
} from "./chunk-T3WXYEZ4.js";
|
|
51
52
|
import {
|
|
52
53
|
formatMemoryBudgetStderr,
|
|
53
54
|
resolveDaemonMemoryBudget,
|
|
54
55
|
serveJournalGrowthPoolMb
|
|
55
56
|
} from "./chunk-UXEO7E3V.js";
|
|
57
|
+
import {
|
|
58
|
+
isLoopbackBind
|
|
59
|
+
} from "./chunk-RXFQM6FQ.js";
|
|
60
|
+
import {
|
|
61
|
+
normalizeSessionIdForLookup
|
|
62
|
+
} from "./chunk-ZEZKIS2K.js";
|
|
56
63
|
import "./chunk-NYWWQ437.js";
|
|
57
64
|
import {
|
|
58
65
|
resolveSessionRestoreTimeoutMs
|
|
@@ -90,12 +97,12 @@ import {
|
|
|
90
97
|
MAX_REGISTERED_WORKSPACES,
|
|
91
98
|
resolveWorkspaceInputs,
|
|
92
99
|
workspaceRegistrationId
|
|
93
|
-
} from "./chunk-
|
|
94
|
-
import "./chunk-
|
|
100
|
+
} from "./chunk-77RG5SFQ.js";
|
|
101
|
+
import "./chunk-43UYNAWX.js";
|
|
95
102
|
import {
|
|
96
103
|
LOAD_REPLAY_META_KEY
|
|
97
104
|
} from "./chunk-OZ6KS6KW.js";
|
|
98
|
-
import "./chunk-
|
|
105
|
+
import "./chunk-ERFDKH32.js";
|
|
99
106
|
import {
|
|
100
107
|
canonicalizeWorkspace,
|
|
101
108
|
translateAndCheckAbsoluteWorkspacePath
|
|
@@ -103,26 +110,27 @@ import {
|
|
|
103
110
|
import {
|
|
104
111
|
ExtraCaInspectionError,
|
|
105
112
|
loadableCertificates
|
|
106
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-4HV6HH33.js";
|
|
107
114
|
import "./chunk-FYJ7W2PI.js";
|
|
108
115
|
import "./chunk-Z7B6SRPM.js";
|
|
109
116
|
import {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
isChannelDeliveryError
|
|
113
|
-
} from "./chunk-7CWEZQ6T.js";
|
|
117
|
+
ChannelWebhookEnqueueError
|
|
118
|
+
} from "./chunk-STUJ7IMZ.js";
|
|
114
119
|
import {
|
|
115
120
|
normalizeWorkerDiagnostic,
|
|
116
121
|
sanitizeWorkerDiagnostic
|
|
117
122
|
} from "./chunk-JVPFTDBK.js";
|
|
123
|
+
import {
|
|
124
|
+
channelSelectionNames
|
|
125
|
+
} from "./chunk-ALMR3E6Q.js";
|
|
118
126
|
import {
|
|
119
127
|
QWEN_SERVER_TOKEN_ENV
|
|
120
128
|
} from "./chunk-GYTKQYDB.js";
|
|
121
129
|
import {
|
|
122
|
-
|
|
123
|
-
|
|
130
|
+
ChannelDeliveryError,
|
|
131
|
+
isChannelDeliveryError
|
|
132
|
+
} from "./chunk-RKFGE7JH.js";
|
|
124
133
|
import "./chunk-UDG5EZJI.js";
|
|
125
|
-
import "./chunk-M5GB774H.js";
|
|
126
134
|
import {
|
|
127
135
|
EXTERNAL_TOOL_GUARD_PROVIDER_ATTACHED_VALUE,
|
|
128
136
|
EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
|
|
@@ -130,6 +138,7 @@ import {
|
|
|
130
138
|
PRIVATE_EXTERNAL_TOOL_GUARD_ENV,
|
|
131
139
|
PRIVATE_EXTERNAL_TOOL_GUARD_PROVIDER_ENV
|
|
132
140
|
} from "./chunk-3VUENPWF.js";
|
|
141
|
+
import "./chunk-M5GB774H.js";
|
|
133
142
|
import {
|
|
134
143
|
MAX_DAEMON_WORKSPACES
|
|
135
144
|
} from "./chunk-5HBA2Z7V.js";
|
|
@@ -150,7 +159,7 @@ import {
|
|
|
150
159
|
} from "./chunk-5PA6UEYA.js";
|
|
151
160
|
import {
|
|
152
161
|
getCliVersion
|
|
153
|
-
} from "./chunk-
|
|
162
|
+
} from "./chunk-7UYV53BC.js";
|
|
154
163
|
import "./chunk-W3N5XAZ6.js";
|
|
155
164
|
import "./chunk-NPQ5ZKRP.js";
|
|
156
165
|
import {
|
|
@@ -193,7 +202,7 @@ import {
|
|
|
193
202
|
// packages/cli/src/serve/run-qwen-serve.ts
|
|
194
203
|
init_esbuild_shims();
|
|
195
204
|
var import_express = __toESM(require_express(), 1);
|
|
196
|
-
import { X509Certificate, createHash as
|
|
205
|
+
import { X509Certificate, createHash as createHash2, timingSafeEqual } from "node:crypto";
|
|
197
206
|
import { execFile } from "node:child_process";
|
|
198
207
|
import * as fs from "node:fs";
|
|
199
208
|
import { createServer } from "node:http";
|
|
@@ -1404,7 +1413,7 @@ function createConcreteLogger(input) {
|
|
|
1404
1413
|
}
|
|
1405
1414
|
});
|
|
1406
1415
|
let timeout;
|
|
1407
|
-
const deadline = new Promise((
|
|
1416
|
+
const deadline = new Promise((resolve3) => {
|
|
1408
1417
|
timeout = setTimeout(() => {
|
|
1409
1418
|
try {
|
|
1410
1419
|
input.warnOnce(
|
|
@@ -1413,7 +1422,7 @@ function createConcreteLogger(input) {
|
|
|
1413
1422
|
);
|
|
1414
1423
|
} catch {
|
|
1415
1424
|
} finally {
|
|
1416
|
-
|
|
1425
|
+
resolve3();
|
|
1417
1426
|
}
|
|
1418
1427
|
}, input.policy.closeDrainBudgetMs);
|
|
1419
1428
|
timeout.unref();
|
|
@@ -1761,249 +1770,7 @@ __name(initDaemonLogger, "initDaemonLogger");
|
|
|
1761
1770
|
init_esbuild_shims();
|
|
1762
1771
|
import { readdir, rmdir } from "node:fs/promises";
|
|
1763
1772
|
import { homedir } from "node:os";
|
|
1764
|
-
import { resolve
|
|
1765
|
-
|
|
1766
|
-
// packages/cli/src/utils/conversation-directory-identity.ts
|
|
1767
|
-
init_esbuild_shims();
|
|
1768
|
-
import { createHash as createHash2 } from "node:crypto";
|
|
1769
|
-
import { lstat, mkdir, realpath } from "node:fs/promises";
|
|
1770
|
-
import { isAbsolute, join as join2, relative as relative2, resolve, sep } from "node:path";
|
|
1771
|
-
function hasVerifiableInode(ino) {
|
|
1772
|
-
return Number(ino) !== 0;
|
|
1773
|
-
}
|
|
1774
|
-
__name(hasVerifiableInode, "hasVerifiableInode");
|
|
1775
|
-
var ConversationDirectoryIdentityError = class extends Error {
|
|
1776
|
-
constructor(scope, reason, cause) {
|
|
1777
|
-
super(
|
|
1778
|
-
`Conversation ${scope} identity validation failed: ${reason}`,
|
|
1779
|
-
cause !== void 0 ? { cause } : void 0
|
|
1780
|
-
);
|
|
1781
|
-
this.scope = scope;
|
|
1782
|
-
this.reason = reason;
|
|
1783
|
-
}
|
|
1784
|
-
static {
|
|
1785
|
-
__name(this, "ConversationDirectoryIdentityError");
|
|
1786
|
-
}
|
|
1787
|
-
name = "ConversationDirectoryIdentityError";
|
|
1788
|
-
};
|
|
1789
|
-
function throwIdentityIoError(scope, cause) {
|
|
1790
|
-
throw new ConversationDirectoryIdentityError(scope, "io_error", cause);
|
|
1791
|
-
}
|
|
1792
|
-
__name(throwIdentityIoError, "throwIdentityIoError");
|
|
1793
|
-
var isSameConversationPath = /* @__PURE__ */ __name((left, right) => process.platform === "win32" ? left.toLowerCase() === right.toLowerCase() : left === right, "isSameConversationPath");
|
|
1794
|
-
function getConversationDirectoryName(storageSessionId) {
|
|
1795
|
-
if (storageSessionId.length === 0 || storageSessionId.length > 256) {
|
|
1796
|
-
throw new ConversationDirectoryIdentityError("child", "invalid_session_id");
|
|
1797
|
-
}
|
|
1798
|
-
return `conversation-${createHash2("sha256").update(storageSessionId).digest("hex")}`;
|
|
1799
|
-
}
|
|
1800
|
-
__name(getConversationDirectoryName, "getConversationDirectoryName");
|
|
1801
|
-
function validateDirectoryStats(stats, scope) {
|
|
1802
|
-
if (stats.isSymbolicLink() || !stats.isDirectory()) {
|
|
1803
|
-
throw new ConversationDirectoryIdentityError(scope, "not_directory");
|
|
1804
|
-
}
|
|
1805
|
-
if (process.platform !== "win32" && typeof process.getuid === "function" && stats.uid !== process.getuid()) {
|
|
1806
|
-
throw new ConversationDirectoryIdentityError(scope, "wrong_owner");
|
|
1807
|
-
}
|
|
1808
|
-
if (process.platform !== "win32" && (stats.mode & 63) !== 0) {
|
|
1809
|
-
throw new ConversationDirectoryIdentityError(scope, "wrong_mode");
|
|
1810
|
-
}
|
|
1811
|
-
}
|
|
1812
|
-
__name(validateDirectoryStats, "validateDirectoryStats");
|
|
1813
|
-
function hasRootIdentity(stats, root) {
|
|
1814
|
-
if (!root.inodeVerifiable) return stats.dev === root.device;
|
|
1815
|
-
return hasVerifiableInode(stats.ino) && stats.dev === root.device && stats.ino === root.inode;
|
|
1816
|
-
}
|
|
1817
|
-
__name(hasRootIdentity, "hasRootIdentity");
|
|
1818
|
-
function isSameDirectoryIdentity(before, after) {
|
|
1819
|
-
if (!hasVerifiableInode(before.ino) || !hasVerifiableInode(after.ino)) {
|
|
1820
|
-
return before.dev === after.dev;
|
|
1821
|
-
}
|
|
1822
|
-
return before.dev === after.dev && before.ino === after.ino;
|
|
1823
|
-
}
|
|
1824
|
-
__name(isSameDirectoryIdentity, "isSameDirectoryIdentity");
|
|
1825
|
-
function hasExpectedDirectoryIdentity(identity, expected) {
|
|
1826
|
-
const inodesProvable = hasVerifiableInode(identity.inode) && hasVerifiableInode(expected.inode);
|
|
1827
|
-
return identity.storageSessionId === expected.storageSessionId && identity.name === expected.name && isSameConversationPath(identity.canonicalPath, expected.canonicalPath) && identity.device === expected.device && (!inodesProvable || identity.inode === expected.inode) && isSameConversationPath(
|
|
1828
|
-
identity.root.configuredRoot,
|
|
1829
|
-
expected.root.configuredRoot
|
|
1830
|
-
) && isSameConversationPath(
|
|
1831
|
-
identity.root.canonicalRoot,
|
|
1832
|
-
expected.root.canonicalRoot
|
|
1833
|
-
) && identity.root.device === expected.root.device && (!identity.root.inodeVerifiable || !expected.root.inodeVerifiable || identity.root.inode === expected.root.inode);
|
|
1834
|
-
}
|
|
1835
|
-
__name(hasExpectedDirectoryIdentity, "hasExpectedDirectoryIdentity");
|
|
1836
|
-
async function createConversationRootIdentity(configuredRoot) {
|
|
1837
|
-
try {
|
|
1838
|
-
await mkdir(configuredRoot, { recursive: true, mode: 448 });
|
|
1839
|
-
} catch (error) {
|
|
1840
|
-
let existing;
|
|
1841
|
-
try {
|
|
1842
|
-
existing = await lstat(configuredRoot);
|
|
1843
|
-
} catch {
|
|
1844
|
-
throwIdentityIoError("root", error);
|
|
1845
|
-
}
|
|
1846
|
-
validateDirectoryStats(existing, "root");
|
|
1847
|
-
throwIdentityIoError("root", error);
|
|
1848
|
-
}
|
|
1849
|
-
let before;
|
|
1850
|
-
try {
|
|
1851
|
-
before = await lstat(configuredRoot);
|
|
1852
|
-
} catch (error) {
|
|
1853
|
-
throwIdentityIoError("root", error);
|
|
1854
|
-
}
|
|
1855
|
-
validateDirectoryStats(before, "root");
|
|
1856
|
-
let canonicalRoot;
|
|
1857
|
-
let after;
|
|
1858
|
-
try {
|
|
1859
|
-
canonicalRoot = await realpath(configuredRoot);
|
|
1860
|
-
after = await lstat(canonicalRoot);
|
|
1861
|
-
} catch (error) {
|
|
1862
|
-
throwIdentityIoError("root", error);
|
|
1863
|
-
}
|
|
1864
|
-
validateDirectoryStats(after, "root");
|
|
1865
|
-
if (!isSameDirectoryIdentity(before, after)) {
|
|
1866
|
-
throw new ConversationDirectoryIdentityError("root", "identity_changed");
|
|
1867
|
-
}
|
|
1868
|
-
return {
|
|
1869
|
-
configuredRoot,
|
|
1870
|
-
canonicalRoot,
|
|
1871
|
-
device: after.dev,
|
|
1872
|
-
inode: after.ino,
|
|
1873
|
-
inodeVerifiable: hasVerifiableInode(after.ino)
|
|
1874
|
-
};
|
|
1875
|
-
}
|
|
1876
|
-
__name(createConversationRootIdentity, "createConversationRootIdentity");
|
|
1877
|
-
async function revalidateConversationRootIdentity(root) {
|
|
1878
|
-
let configuredStats;
|
|
1879
|
-
try {
|
|
1880
|
-
configuredStats = await lstat(root.configuredRoot);
|
|
1881
|
-
} catch (error) {
|
|
1882
|
-
throwIdentityIoError("root", error);
|
|
1883
|
-
}
|
|
1884
|
-
validateDirectoryStats(configuredStats, "root");
|
|
1885
|
-
if (!hasRootIdentity(configuredStats, root)) {
|
|
1886
|
-
throw new ConversationDirectoryIdentityError("root", "identity_changed");
|
|
1887
|
-
}
|
|
1888
|
-
let canonical;
|
|
1889
|
-
try {
|
|
1890
|
-
canonical = await realpath(root.configuredRoot);
|
|
1891
|
-
} catch (error) {
|
|
1892
|
-
throwIdentityIoError("root", error);
|
|
1893
|
-
}
|
|
1894
|
-
if (!isSameConversationPath(canonical, root.canonicalRoot)) {
|
|
1895
|
-
throw new ConversationDirectoryIdentityError(
|
|
1896
|
-
"root",
|
|
1897
|
-
"canonical_path_changed"
|
|
1898
|
-
);
|
|
1899
|
-
}
|
|
1900
|
-
let canonicalStats;
|
|
1901
|
-
try {
|
|
1902
|
-
canonicalStats = await lstat(root.canonicalRoot);
|
|
1903
|
-
} catch (error) {
|
|
1904
|
-
throwIdentityIoError("root", error);
|
|
1905
|
-
}
|
|
1906
|
-
validateDirectoryStats(canonicalStats, "root");
|
|
1907
|
-
if (!hasRootIdentity(canonicalStats, root)) {
|
|
1908
|
-
throw new ConversationDirectoryIdentityError("root", "identity_changed");
|
|
1909
|
-
}
|
|
1910
|
-
return root;
|
|
1911
|
-
}
|
|
1912
|
-
__name(revalidateConversationRootIdentity, "revalidateConversationRootIdentity");
|
|
1913
|
-
async function assertExactConversationRootIdentity(root, candidate) {
|
|
1914
|
-
await revalidateConversationRootIdentity(root);
|
|
1915
|
-
const resolvedCandidate = resolve(candidate);
|
|
1916
|
-
if (!isSameConversationPath(resolvedCandidate, root.configuredRoot) && !isSameConversationPath(resolvedCandidate, root.canonicalRoot)) {
|
|
1917
|
-
throw new ConversationDirectoryIdentityError("root", "unexpected_identity");
|
|
1918
|
-
}
|
|
1919
|
-
let stats;
|
|
1920
|
-
let canonical;
|
|
1921
|
-
try {
|
|
1922
|
-
stats = await lstat(resolvedCandidate);
|
|
1923
|
-
validateDirectoryStats(stats, "root");
|
|
1924
|
-
canonical = await realpath(resolvedCandidate);
|
|
1925
|
-
} catch (error) {
|
|
1926
|
-
if (error instanceof ConversationDirectoryIdentityError) throw error;
|
|
1927
|
-
throwIdentityIoError("root", error);
|
|
1928
|
-
}
|
|
1929
|
-
if (!isSameConversationPath(canonical, root.canonicalRoot) || !hasRootIdentity(stats, root)) {
|
|
1930
|
-
throw new ConversationDirectoryIdentityError("root", "unexpected_identity");
|
|
1931
|
-
}
|
|
1932
|
-
return root;
|
|
1933
|
-
}
|
|
1934
|
-
__name(assertExactConversationRootIdentity, "assertExactConversationRootIdentity");
|
|
1935
|
-
async function inspectConversationDirectoryIdentity(root, storageSessionId, expected) {
|
|
1936
|
-
await revalidateConversationRootIdentity(root);
|
|
1937
|
-
const name = getConversationDirectoryName(storageSessionId);
|
|
1938
|
-
const candidate = join2(root.canonicalRoot, name);
|
|
1939
|
-
let before;
|
|
1940
|
-
try {
|
|
1941
|
-
before = await lstat(candidate);
|
|
1942
|
-
} catch (error) {
|
|
1943
|
-
if (error.code === "ENOENT") return void 0;
|
|
1944
|
-
throwIdentityIoError("child", error);
|
|
1945
|
-
}
|
|
1946
|
-
validateDirectoryStats(before, "child");
|
|
1947
|
-
let canonical;
|
|
1948
|
-
let after;
|
|
1949
|
-
try {
|
|
1950
|
-
canonical = await realpath(candidate);
|
|
1951
|
-
after = await lstat(canonical);
|
|
1952
|
-
} catch (error) {
|
|
1953
|
-
if (error.code === "ENOENT") return void 0;
|
|
1954
|
-
throwIdentityIoError("child", error);
|
|
1955
|
-
}
|
|
1956
|
-
validateDirectoryStats(after, "child");
|
|
1957
|
-
const child = relative2(root.canonicalRoot, canonical);
|
|
1958
|
-
if (child !== name || child.includes(sep) || child.startsWith("..") || isAbsolute(child)) {
|
|
1959
|
-
throw new ConversationDirectoryIdentityError("child", "not_direct_child");
|
|
1960
|
-
}
|
|
1961
|
-
if (!isSameDirectoryIdentity(before, after)) {
|
|
1962
|
-
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
1963
|
-
}
|
|
1964
|
-
await revalidateConversationRootIdentity(root);
|
|
1965
|
-
const identity = {
|
|
1966
|
-
root,
|
|
1967
|
-
storageSessionId,
|
|
1968
|
-
name,
|
|
1969
|
-
canonicalPath: canonical,
|
|
1970
|
-
device: after.dev,
|
|
1971
|
-
inode: after.ino
|
|
1972
|
-
};
|
|
1973
|
-
if (expected && !hasExpectedDirectoryIdentity(identity, expected)) {
|
|
1974
|
-
throw new ConversationDirectoryIdentityError(
|
|
1975
|
-
"child",
|
|
1976
|
-
"unexpected_identity"
|
|
1977
|
-
);
|
|
1978
|
-
}
|
|
1979
|
-
return identity;
|
|
1980
|
-
}
|
|
1981
|
-
__name(inspectConversationDirectoryIdentity, "inspectConversationDirectoryIdentity");
|
|
1982
|
-
async function materializeConversationDirectoryIdentity(root, storageSessionId) {
|
|
1983
|
-
await revalidateConversationRootIdentity(root);
|
|
1984
|
-
const name = getConversationDirectoryName(storageSessionId);
|
|
1985
|
-
const candidate = join2(root.canonicalRoot, name);
|
|
1986
|
-
let created = false;
|
|
1987
|
-
try {
|
|
1988
|
-
await mkdir(candidate, { mode: 448 });
|
|
1989
|
-
created = true;
|
|
1990
|
-
} catch (error) {
|
|
1991
|
-
if (error.code !== "EEXIST") {
|
|
1992
|
-
throwIdentityIoError("child", error);
|
|
1993
|
-
}
|
|
1994
|
-
}
|
|
1995
|
-
const identity = await inspectConversationDirectoryIdentity(
|
|
1996
|
-
root,
|
|
1997
|
-
storageSessionId
|
|
1998
|
-
);
|
|
1999
|
-
if (!identity) {
|
|
2000
|
-
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
2001
|
-
}
|
|
2002
|
-
return { identity, created };
|
|
2003
|
-
}
|
|
2004
|
-
__name(materializeConversationDirectoryIdentity, "materializeConversationDirectoryIdentity");
|
|
2005
|
-
|
|
2006
|
-
// packages/cli/src/serve/conversations/conversation-workspace.ts
|
|
1773
|
+
import { resolve } from "node:path";
|
|
2007
1774
|
function liveIdentityError(error, exactRoot = false, creatingRoot = false) {
|
|
2008
1775
|
if (!(error instanceof ConversationDirectoryIdentityError)) throw error;
|
|
2009
1776
|
if (error.reason === "io_error" && error.cause !== void 0) {
|
|
@@ -2061,7 +1828,7 @@ function liveIdentityError(error, exactRoot = false, creatingRoot = false) {
|
|
|
2061
1828
|
}
|
|
2062
1829
|
__name(liveIdentityError, "liveIdentityError");
|
|
2063
1830
|
function getConversationRootPath(homeDir = homedir()) {
|
|
2064
|
-
return
|
|
1831
|
+
return resolve(homeDir, "Documents", "Qwen Code", "Conversations");
|
|
2065
1832
|
}
|
|
2066
1833
|
__name(getConversationRootPath, "getConversationRootPath");
|
|
2067
1834
|
async function revalidateConversationRoot(root) {
|
|
@@ -3105,8 +2872,8 @@ async function flushDaemonLogBounded(daemonLog, budgetMs) {
|
|
|
3105
2872
|
await Promise.race([
|
|
3106
2873
|
daemonLog.flush().catch(() => {
|
|
3107
2874
|
}),
|
|
3108
|
-
new Promise((
|
|
3109
|
-
timer = setTimeout(
|
|
2875
|
+
new Promise((resolve3) => {
|
|
2876
|
+
timer = setTimeout(resolve3, budgetMs);
|
|
3110
2877
|
timer.unref();
|
|
3111
2878
|
})
|
|
3112
2879
|
]);
|
|
@@ -3337,7 +3104,7 @@ try {
|
|
|
3337
3104
|
`;
|
|
3338
3105
|
async function verifyWorkerTlsTrust(opts) {
|
|
3339
3106
|
const timeoutMs = opts.timeoutMs ?? 5e3;
|
|
3340
|
-
return new Promise((
|
|
3107
|
+
return new Promise((resolve3) => {
|
|
3341
3108
|
execFile(
|
|
3342
3109
|
process.execPath,
|
|
3343
3110
|
[
|
|
@@ -3358,10 +3125,10 @@ async function verifyWorkerTlsTrust(opts) {
|
|
|
3358
3125
|
(error, stdout) => {
|
|
3359
3126
|
try {
|
|
3360
3127
|
const result = JSON.parse(stdout);
|
|
3361
|
-
|
|
3128
|
+
resolve3(result.ok ? void 0 : result);
|
|
3362
3129
|
} catch {
|
|
3363
3130
|
const failure = error;
|
|
3364
|
-
|
|
3131
|
+
resolve3({
|
|
3365
3132
|
code: failure?.code != null ? String(failure.code) : "WORKER_TLS_VERIFY_FAILED",
|
|
3366
3133
|
message: failure?.message ?? "TLS verification probe failed."
|
|
3367
3134
|
});
|
|
@@ -3799,12 +3566,12 @@ __name(hasRetryableChannelWorkerShutdownError, "hasRetryableChannelWorkerShutdow
|
|
|
3799
3566
|
var channelWorkerRuntimePromise;
|
|
3800
3567
|
async function loadChannelWorkerRuntime() {
|
|
3801
3568
|
channelWorkerRuntimePromise ??= Promise.all([
|
|
3802
|
-
import("./channel-worker-supervisor-
|
|
3803
|
-
import("./pidfile-
|
|
3804
|
-
import("./runtime-
|
|
3569
|
+
import("./channel-worker-supervisor-UEW2WWCC.js"),
|
|
3570
|
+
import("./pidfile-JMF2CLMY.js"),
|
|
3571
|
+
import("./runtime-TTIGSBM4.js"),
|
|
3805
3572
|
import("./cli-entry-path-4VJ3Y6T2.js"),
|
|
3806
|
-
import("./channel-worker-group-
|
|
3807
|
-
import("./channel-worker-manager-
|
|
3573
|
+
import("./channel-worker-group-27HMGD5S.js"),
|
|
3574
|
+
import("./channel-worker-manager-QEGX646Z.js")
|
|
3808
3575
|
]).then(
|
|
3809
3576
|
([
|
|
3810
3577
|
supervisor,
|
|
@@ -3910,7 +3677,7 @@ function shouldPreheatBridge(deps) {
|
|
|
3910
3677
|
__name(shouldPreheatBridge, "shouldPreheatBridge");
|
|
3911
3678
|
var coreRuntimePromise;
|
|
3912
3679
|
function loadCoreRuntime() {
|
|
3913
|
-
coreRuntimePromise ??= import("./core-runtime-
|
|
3680
|
+
coreRuntimePromise ??= import("./core-runtime-677KFX6Q.js");
|
|
3914
3681
|
return coreRuntimePromise;
|
|
3915
3682
|
}
|
|
3916
3683
|
__name(loadCoreRuntime, "loadCoreRuntime");
|
|
@@ -3946,10 +3713,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
|
|
|
3946
3713
|
var settingsRuntimePromise;
|
|
3947
3714
|
function loadSettingsRuntimeModules() {
|
|
3948
3715
|
settingsRuntimePromise ??= Promise.all([
|
|
3949
|
-
import("./settings-
|
|
3950
|
-
import("./environment-
|
|
3951
|
-
import("./loadedSettingsAdapter-
|
|
3952
|
-
import("./trustedFolders-
|
|
3716
|
+
import("./settings-VOZYKLTT.js"),
|
|
3717
|
+
import("./environment-MOZMPUHR.js"),
|
|
3718
|
+
import("./loadedSettingsAdapter-7Y7IEI6T.js"),
|
|
3719
|
+
import("./trustedFolders-7OCNMUQE.js")
|
|
3953
3720
|
]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
|
|
3954
3721
|
settings,
|
|
3955
3722
|
environment,
|
|
@@ -3962,8 +3729,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
|
|
|
3962
3729
|
var channelWebhookConfigRuntimePromise;
|
|
3963
3730
|
function loadChannelWebhookConfigRuntime() {
|
|
3964
3731
|
channelWebhookConfigRuntimePromise ??= Promise.all([
|
|
3965
|
-
import("./runtime-
|
|
3966
|
-
import("./config-utils-
|
|
3732
|
+
import("./runtime-TTIGSBM4.js"),
|
|
3733
|
+
import("./config-utils-BBOCOGZW.js")
|
|
3967
3734
|
]).then(([channelRuntime, configUtils]) => ({
|
|
3968
3735
|
loadChannelsConfig: channelRuntime.loadChannelsConfig,
|
|
3969
3736
|
parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
|
|
@@ -3989,18 +3756,18 @@ async function loadServeRuntimeModules() {
|
|
|
3989
3756
|
workspaceRegistryModule,
|
|
3990
3757
|
promptLedgerModule
|
|
3991
3758
|
] = await Promise.all([
|
|
3992
|
-
import("./server-
|
|
3993
|
-
import("./bridge-
|
|
3994
|
-
import("./spawnChannel-
|
|
3759
|
+
import("./server-DFUSSSHI.js"),
|
|
3760
|
+
import("./bridge-FKZTVIS3.js"),
|
|
3761
|
+
import("./spawnChannel-F6WVP723.js"),
|
|
3995
3762
|
import("./process-registry-PMJOA5CO.js"),
|
|
3996
|
-
import("./workspace-service-
|
|
3763
|
+
import("./workspace-service-MUYO2QIC.js"),
|
|
3997
3764
|
import("./types-WYCFCEHR.js"),
|
|
3998
|
-
import("./daemon-status-provider-
|
|
3999
|
-
import("./workspace-providers-status-
|
|
4000
|
-
import("./workspace-skills-status-
|
|
4001
|
-
import("./total-session-admission-
|
|
4002
|
-
import("./workspace-registry-
|
|
4003
|
-
import("./prompt-terminal-ledger-
|
|
3765
|
+
import("./daemon-status-provider-RFKZOK3S.js"),
|
|
3766
|
+
import("./workspace-providers-status-PDFZWL5Q.js"),
|
|
3767
|
+
import("./workspace-skills-status-IKECTOOQ.js"),
|
|
3768
|
+
import("./total-session-admission-HTVTP4BS.js"),
|
|
3769
|
+
import("./workspace-registry-23R7XRB5.js"),
|
|
3770
|
+
import("./prompt-terminal-ledger-DCZO6S7C.js")
|
|
4004
3771
|
]);
|
|
4005
3772
|
return {
|
|
4006
3773
|
createServeApp: serverModule.createServeApp,
|
|
@@ -4045,7 +3812,7 @@ function sessionIdleTimeoutMs(value) {
|
|
|
4045
3812
|
return value !== void 0 ? channelIdleTimeoutMs(value) : DEFAULT_SESSION_IDLE_TIMEOUT_MS;
|
|
4046
3813
|
}
|
|
4047
3814
|
__name(sessionIdleTimeoutMs, "sessionIdleTimeoutMs");
|
|
4048
|
-
function currentServeFeaturesForRunQwenServe(opts, sessionShellCommandEnabled, sessionArtifactsPersistenceAvailable, env) {
|
|
3815
|
+
function currentServeFeaturesForRunQwenServe(opts, sessionShellCommandEnabled, sessionArtifactsPersistenceAvailable, currentSessionSchedulingAvailable, env) {
|
|
4049
3816
|
return getAdvertisedServeFeatures(void 0, {
|
|
4050
3817
|
requireAuth: opts.requireAuth === true,
|
|
4051
3818
|
mcpPoolActive: opts.mcpPoolActive !== false,
|
|
@@ -4057,6 +3824,7 @@ function currentServeFeaturesForRunQwenServe(opts, sessionShellCommandEnabled, s
|
|
|
4057
3824
|
sessionShellCommandEnabled,
|
|
4058
3825
|
sessionArtifactsPersistenceAvailable,
|
|
4059
3826
|
sessionGenerationAvailable: true,
|
|
3827
|
+
currentSessionSchedulingAvailable,
|
|
4060
3828
|
workspaceGenerationAvailable: true,
|
|
4061
3829
|
rateLimit: opts.rateLimit === true,
|
|
4062
3830
|
reloadAvailable: true,
|
|
@@ -4083,6 +3851,7 @@ function createBootstrapCapabilities(input) {
|
|
|
4083
3851
|
input.opts,
|
|
4084
3852
|
input.sessionShellCommandEnabled,
|
|
4085
3853
|
input.sessionArtifactsPersistenceAvailable,
|
|
3854
|
+
input.currentSessionSchedulingAvailable,
|
|
4086
3855
|
input.env
|
|
4087
3856
|
),
|
|
4088
3857
|
modelServices: [],
|
|
@@ -4198,12 +3967,12 @@ async function waitForRuntimeStartingForShutdown(runtimeStarting, daemonLog, tim
|
|
|
4198
3967
|
let timer;
|
|
4199
3968
|
await Promise.race([
|
|
4200
3969
|
runtimeStarting,
|
|
4201
|
-
new Promise((
|
|
3970
|
+
new Promise((resolve3) => {
|
|
4202
3971
|
timer = setTimeout(() => {
|
|
4203
3972
|
daemonLog.warn(
|
|
4204
3973
|
`${timeoutMs}ms runtime-startup wait reached during shutdown; continuing listener close`
|
|
4205
3974
|
);
|
|
4206
|
-
|
|
3975
|
+
resolve3();
|
|
4207
3976
|
}, timeoutMs);
|
|
4208
3977
|
timer.unref();
|
|
4209
3978
|
})
|
|
@@ -4242,6 +4011,7 @@ function createBootstrapServeApp(input) {
|
|
|
4242
4011
|
qwenCodeVersion,
|
|
4243
4012
|
sessionShellCommandEnabled,
|
|
4244
4013
|
sessionArtifactsPersistenceAvailable,
|
|
4014
|
+
currentSessionSchedulingAvailable,
|
|
4245
4015
|
permissionPolicy,
|
|
4246
4016
|
multiWorkspaceCapabilitiesRequireRuntime,
|
|
4247
4017
|
getRuntimeError,
|
|
@@ -4301,6 +4071,7 @@ function createBootstrapServeApp(input) {
|
|
|
4301
4071
|
qwenCodeVersion,
|
|
4302
4072
|
sessionShellCommandEnabled,
|
|
4303
4073
|
sessionArtifactsPersistenceAvailable,
|
|
4074
|
+
currentSessionSchedulingAvailable,
|
|
4304
4075
|
permissionPolicy,
|
|
4305
4076
|
env: process.env
|
|
4306
4077
|
})
|
|
@@ -4418,6 +4189,7 @@ function createBootstrapServeApp(input) {
|
|
|
4418
4189
|
opts,
|
|
4419
4190
|
sessionShellCommandEnabled,
|
|
4420
4191
|
sessionArtifactsPersistenceAvailable,
|
|
4192
|
+
currentSessionSchedulingAvailable,
|
|
4421
4193
|
process.env
|
|
4422
4194
|
)
|
|
4423
4195
|
},
|
|
@@ -4614,8 +4386,8 @@ function matchesWebhookSecret(candidate, expected) {
|
|
|
4614
4386
|
if (typeof candidate !== "string" || typeof expected !== "string" || expected.length === 0) {
|
|
4615
4387
|
return false;
|
|
4616
4388
|
}
|
|
4617
|
-
const expectedDigest =
|
|
4618
|
-
const candidateDigest =
|
|
4389
|
+
const expectedDigest = createHash2("sha256").update(expected).digest();
|
|
4390
|
+
const candidateDigest = createHash2("sha256").update(candidate).digest();
|
|
4619
4391
|
return timingSafeEqual(expectedDigest, candidateDigest);
|
|
4620
4392
|
}
|
|
4621
4393
|
__name(matchesWebhookSecret, "matchesWebhookSecret");
|
|
@@ -5041,7 +4813,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5041
4813
|
}
|
|
5042
4814
|
let workspaceRegistrationStore = deps.workspaceRegistrationStore;
|
|
5043
4815
|
if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
|
|
5044
|
-
const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-
|
|
4816
|
+
const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-XKVW2YVH.js");
|
|
5045
4817
|
workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
|
|
5046
4818
|
}
|
|
5047
4819
|
if (workspaceRegistrationStore) {
|
|
@@ -5325,7 +5097,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5325
5097
|
"qwen serve: required external tool guard handshake succeeded."
|
|
5326
5098
|
);
|
|
5327
5099
|
}
|
|
5328
|
-
const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-
|
|
5100
|
+
const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-6MVAAZZZ.js");
|
|
5329
5101
|
const daemonToolGuardHandler = createDaemonToolGuard(
|
|
5330
5102
|
externalToolGuardHandler
|
|
5331
5103
|
);
|
|
@@ -5371,8 +5143,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5371
5143
|
let resolveServeAppStartup;
|
|
5372
5144
|
let rejectServeAppStartup;
|
|
5373
5145
|
let serveAppStartupSettled = false;
|
|
5374
|
-
const serveAppStartupReady = new Promise((
|
|
5375
|
-
resolveServeAppStartup =
|
|
5146
|
+
const serveAppStartupReady = new Promise((resolve3, reject) => {
|
|
5147
|
+
resolveServeAppStartup = resolve3;
|
|
5376
5148
|
rejectServeAppStartup = reject;
|
|
5377
5149
|
});
|
|
5378
5150
|
void serveAppStartupReady.catch(() => void 0);
|
|
@@ -5402,8 +5174,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5402
5174
|
let startRuntimeAfterHealth;
|
|
5403
5175
|
let startRuntimeForRequest;
|
|
5404
5176
|
const deferRuntimeUntilFirstHealth = deps.resolveOnListen === true && deps.deferRuntimeUntilFirstHealth === true;
|
|
5405
|
-
const runtimeReady = new Promise((
|
|
5406
|
-
markRuntimeReady =
|
|
5177
|
+
const runtimeReady = new Promise((resolve3, reject) => {
|
|
5178
|
+
markRuntimeReady = resolve3;
|
|
5407
5179
|
markRuntimeFailed = reject;
|
|
5408
5180
|
});
|
|
5409
5181
|
void runtimeReady.catch(() => {
|
|
@@ -5664,7 +5436,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5664
5436
|
loadCoreRuntime(),
|
|
5665
5437
|
loadSettingsRuntimeModules(),
|
|
5666
5438
|
cliVersionPromise,
|
|
5667
|
-
import("./daemon-trust-policy-
|
|
5439
|
+
import("./daemon-trust-policy-DRZPFB4Q.js")
|
|
5668
5440
|
]);
|
|
5669
5441
|
cliVersion = resolvedCliVersion;
|
|
5670
5442
|
settingsRuntime.environment.preResolveHomeEnvOverrides();
|
|
@@ -6040,7 +5812,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6040
5812
|
resolveSkillSettings,
|
|
6041
5813
|
skillSettingStrings,
|
|
6042
5814
|
updateWorkspaceSkillSettingLists
|
|
6043
|
-
} = await import("./skill-settings-
|
|
5815
|
+
} = await import("./skill-settings-VA4XVYVL.js");
|
|
6044
5816
|
const fresh = loadSettingsForPersistence(workspace);
|
|
6045
5817
|
const normalizedName = skillName.trim().toLowerCase();
|
|
6046
5818
|
const resolved = resolveSkillSettings(fresh);
|
|
@@ -6105,7 +5877,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6105
5877
|
resolveSkillSettings,
|
|
6106
5878
|
skillSettingStrings,
|
|
6107
5879
|
updateWorkspaceSkillSettingLists
|
|
6108
|
-
} = await import("./skill-settings-
|
|
5880
|
+
} = await import("./skill-settings-VA4XVYVL.js");
|
|
6109
5881
|
const fresh = loadSettingsForPersistence(workspace);
|
|
6110
5882
|
const resolved = resolveSkillSettings(fresh);
|
|
6111
5883
|
const initialDisabled = skillSettingStrings(
|
|
@@ -6210,7 +5982,43 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6210
5982
|
);
|
|
6211
5983
|
}
|
|
6212
5984
|
}), "persistSettingsFn");
|
|
6213
|
-
const { createSubSessionLauncher } = await
|
|
5985
|
+
const [{ createSubSessionLauncher }, scheduledTaskRoutes] = await Promise.all([
|
|
5986
|
+
import("./create-sub-session-JKZAYZX7.js"),
|
|
5987
|
+
import("./scheduled-tasks-QB4ZVUQS.js")
|
|
5988
|
+
]);
|
|
5989
|
+
const createCurrentSessionScheduledTaskHandler = /* @__PURE__ */ __name((workspaceCwd, runtimeBaseDir, getBridge, assertGenerationOpen) => async ({
|
|
5990
|
+
callerSessionId,
|
|
5991
|
+
cron,
|
|
5992
|
+
prompt,
|
|
5993
|
+
recurring,
|
|
5994
|
+
assertCallerPromptActive
|
|
5995
|
+
}) => {
|
|
5996
|
+
const targetBridge = getBridge();
|
|
5997
|
+
if (!targetBridge) {
|
|
5998
|
+
throw new Error(
|
|
5999
|
+
"Current-session scheduling is unavailable while the workspace runtime is starting."
|
|
6000
|
+
);
|
|
6001
|
+
}
|
|
6002
|
+
const task = await scheduledTaskRoutes.createScheduledTaskWithExistingSession(
|
|
6003
|
+
{
|
|
6004
|
+
workspaceCwd,
|
|
6005
|
+
runtimeBaseDir,
|
|
6006
|
+
bridge: targetBridge,
|
|
6007
|
+
assertGenerationOpen,
|
|
6008
|
+
resolveLiveSessionOwner: /* @__PURE__ */ __name((sessionId) => workspaceRegistryForPersistence.current === void 0 ? { kind: "unavailable" } : workspaceRegistryForPersistence.current.resolveLiveSessionOwner(
|
|
6009
|
+
sessionId
|
|
6010
|
+
), "resolveLiveSessionOwner")
|
|
6011
|
+
},
|
|
6012
|
+
{
|
|
6013
|
+
sessionId: callerSessionId,
|
|
6014
|
+
cron,
|
|
6015
|
+
prompt,
|
|
6016
|
+
recurring
|
|
6017
|
+
},
|
|
6018
|
+
{ source: "cron-tool", assertCallerPromptActive }
|
|
6019
|
+
);
|
|
6020
|
+
return { id: task.id, cron: task.cron };
|
|
6021
|
+
}, "createCurrentSessionScheduledTaskHandler");
|
|
6214
6022
|
const subSessionLauncher = createSubSessionLauncher({
|
|
6215
6023
|
getBridge: /* @__PURE__ */ __name(() => bridgeRef, "getBridge"),
|
|
6216
6024
|
boundWorkspace,
|
|
@@ -6227,6 +6035,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6227
6035
|
// connection that hosts a named client MCP server (#5626).
|
|
6228
6036
|
clientMcpSender: clientMcpSenderRegistry.lookup,
|
|
6229
6037
|
onCreateSubSession: subSessionLauncher.launch,
|
|
6038
|
+
onCreateCurrentSessionScheduledTask: createCurrentSessionScheduledTaskHandler(
|
|
6039
|
+
boundWorkspace,
|
|
6040
|
+
primarySessionRuntimeBaseDir,
|
|
6041
|
+
() => bridgeRef,
|
|
6042
|
+
() => primaryGenerationGuard.assertOpen()
|
|
6043
|
+
),
|
|
6230
6044
|
onChannelDelivery: createBoundChannelDeliveryHandler(
|
|
6231
6045
|
boundWorkspace,
|
|
6232
6046
|
() => channelWorkerManager,
|
|
@@ -6572,6 +6386,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6572
6386
|
),
|
|
6573
6387
|
clientMcpSender: secondaryClientMcpSenderRegistry.lookup,
|
|
6574
6388
|
onCreateSubSession: secondarySubSessionLauncher.launch,
|
|
6389
|
+
onCreateCurrentSessionScheduledTask: createCurrentSessionScheduledTaskHandler(
|
|
6390
|
+
workspaceInput.cwd,
|
|
6391
|
+
secondaryEnv.sessionRuntimeBaseDir,
|
|
6392
|
+
() => secondaryBridgeRef,
|
|
6393
|
+
() => secondaryGenerationGuard.assertOpen()
|
|
6394
|
+
),
|
|
6575
6395
|
onChannelDelivery: createBoundChannelDeliveryHandler(
|
|
6576
6396
|
workspaceInput.cwd,
|
|
6577
6397
|
() => channelWorkerManager,
|
|
@@ -6931,6 +6751,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6931
6751
|
boundWorkspace: cwd,
|
|
6932
6752
|
...provenance === "live-conversation" ? {
|
|
6933
6753
|
notifySentCompletion: true,
|
|
6754
|
+
getStandaloneSessionService: /* @__PURE__ */ __name(() => (runtimeApp ?? runtimeAppForCleanup)?.locals?.["standaloneSessionService"], "getStandaloneSessionService"),
|
|
6934
6755
|
isolatedWorkspace: {
|
|
6935
6756
|
materializeDirectory: /* @__PURE__ */ __name((sessionId) => liveConversationWorkspace.materializeConversationDirectory(
|
|
6936
6757
|
sessionId
|
|
@@ -6953,6 +6774,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6953
6774
|
),
|
|
6954
6775
|
clientMcpSender: wsClientMcpRegistry.lookup,
|
|
6955
6776
|
onCreateSubSession: wsSubSessionLauncher.launch,
|
|
6777
|
+
onCreateCurrentSessionScheduledTask: createCurrentSessionScheduledTaskHandler(
|
|
6778
|
+
cwd,
|
|
6779
|
+
wsEnv.sessionRuntimeBaseDir,
|
|
6780
|
+
() => wsBridgeRef,
|
|
6781
|
+
() => generationGuard.assertOpen()
|
|
6782
|
+
),
|
|
6956
6783
|
onChannelDelivery: createBoundChannelDeliveryHandler(
|
|
6957
6784
|
cwd,
|
|
6958
6785
|
() => channelWorkerManager,
|
|
@@ -7439,8 +7266,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7439
7266
|
{ createChannelManagementService },
|
|
7440
7267
|
{ WorkspaceChannelSettingsStore }
|
|
7441
7268
|
] = await Promise.all([
|
|
7442
|
-
import("./channel-management-service-
|
|
7443
|
-
import("./channel-settings-store-
|
|
7269
|
+
import("./channel-management-service-X4AZ6IXX.js"),
|
|
7270
|
+
import("./channel-settings-store-4UFCLBBG.js")
|
|
7444
7271
|
]);
|
|
7445
7272
|
return createChannelManagementService({
|
|
7446
7273
|
workspaceCwd: targetRuntime.workspaceCwd,
|
|
@@ -7520,6 +7347,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7520
7347
|
// (keepalive) and reloads them on boot (rehydration). Off by default so
|
|
7521
7348
|
// direct createServeApp embeds/tests don't spawn sessions.
|
|
7522
7349
|
manageScheduledTaskSessions: true,
|
|
7350
|
+
currentSessionSchedulingAvailable: deps.bridge === void 0,
|
|
7523
7351
|
fsFactory: routeFsFactory,
|
|
7524
7352
|
primaryWorkspaceTrusted: trustedWorkspace,
|
|
7525
7353
|
primaryRuntimeEnv,
|
|
@@ -7644,8 +7472,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7644
7472
|
{ createWorkspaceTrustReconciler },
|
|
7645
7473
|
{ createDaemonTrustPolicyMonitor }
|
|
7646
7474
|
] = await Promise.all([
|
|
7647
|
-
import("./workspace-trust-reconciler-
|
|
7648
|
-
import("./daemon-trust-policy-monitor-
|
|
7475
|
+
import("./workspace-trust-reconciler-KLGOB53D.js"),
|
|
7476
|
+
import("./daemon-trust-policy-monitor-B5U6TQX5.js")
|
|
7649
7477
|
]);
|
|
7650
7478
|
const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
|
|
7651
7479
|
const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
|
|
@@ -7740,7 +7568,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7740
7568
|
handle?.disposeWorkspace(runtimeToDispose.workspaceId);
|
|
7741
7569
|
const deadline = Date.now() + 1e3;
|
|
7742
7570
|
while ((handle?.getWorkspaceActivity(runtimeToDispose.workspaceId).memoryTasks ?? 0) > 0 && Date.now() < deadline) {
|
|
7743
|
-
await new Promise((
|
|
7571
|
+
await new Promise((resolve3) => setTimeout(resolve3, 25));
|
|
7744
7572
|
}
|
|
7745
7573
|
if ((handle?.getWorkspaceActivity(runtimeToDispose.workspaceId).memoryTasks ?? 0) > 0) {
|
|
7746
7574
|
throw new Error(
|
|
@@ -7817,6 +7645,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7817
7645
|
qwenCodeVersion: cliVersion,
|
|
7818
7646
|
sessionShellCommandEnabled,
|
|
7819
7647
|
sessionArtifactsPersistenceAvailable,
|
|
7648
|
+
currentSessionSchedulingAvailable: false,
|
|
7820
7649
|
permissionPolicy,
|
|
7821
7650
|
multiWorkspaceCapabilitiesRequireRuntime: workspaceInputs.length > 1,
|
|
7822
7651
|
getRuntimeError: /* @__PURE__ */ __name(() => runtimeStartupError, "getRuntimeError"),
|
|
@@ -7860,7 +7689,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7860
7689
|
);
|
|
7861
7690
|
}
|
|
7862
7691
|
const channelValidationSettingsRuntime = opts.channelSelection ? await loadSettingsRuntimeModules() : void 0;
|
|
7863
|
-
const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-
|
|
7692
|
+
const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-DRZPFB4Q.js") : void 0;
|
|
7864
7693
|
const channelValidationTrustSnapshot = channelValidationTrustPolicy ? await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot() : void 0;
|
|
7865
7694
|
const resolveChannelWorkspaceGroupsAtListen = /* @__PURE__ */ __name(() => {
|
|
7866
7695
|
if (!opts.channelSelection || !channelValidationSettingsRuntime || !channelRuntime) {
|
|
@@ -7966,7 +7795,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7966
7795
|
if (opts.channelSelection) {
|
|
7967
7796
|
reserveChannelServicePidfile(opts.channelSelection);
|
|
7968
7797
|
}
|
|
7969
|
-
return await new Promise((
|
|
7798
|
+
return await new Promise((resolve3, reject) => {
|
|
7970
7799
|
let closeHost;
|
|
7971
7800
|
const onListening = /* @__PURE__ */ __name((error) => {
|
|
7972
7801
|
if (error) return;
|
|
@@ -8997,7 +8826,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8997
8826
|
loggerPublished = true;
|
|
8998
8827
|
loggerLifecycle.published();
|
|
8999
8828
|
void (liveDiscoveryPublish ?? Promise.resolve()).then(
|
|
9000
|
-
() =>
|
|
8829
|
+
() => resolve3(handle)
|
|
9001
8830
|
);
|
|
9002
8831
|
} else {
|
|
9003
8832
|
void runtimeReady.then(
|
|
@@ -9005,7 +8834,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
9005
8834
|
await liveDiscoveryPublish;
|
|
9006
8835
|
loggerPublished = true;
|
|
9007
8836
|
loggerLifecycle.published();
|
|
9008
|
-
|
|
8837
|
+
resolve3(handle);
|
|
9009
8838
|
},
|
|
9010
8839
|
(err) => {
|
|
9011
8840
|
void handle.close().then(
|
|
@@ -9054,10 +8883,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
9054
8883
|
drainHost: /* @__PURE__ */ __name(() => {
|
|
9055
8884
|
if (closeHost) return closeHost();
|
|
9056
8885
|
if (!server.listening) return Promise.resolve();
|
|
9057
|
-
return new Promise((
|
|
8886
|
+
return new Promise((resolve4, rejectClose) => {
|
|
9058
8887
|
server.close((error) => {
|
|
9059
8888
|
if (error) rejectClose(error);
|
|
9060
|
-
else
|
|
8889
|
+
else resolve4();
|
|
9061
8890
|
});
|
|
9062
8891
|
});
|
|
9063
8892
|
}, "drainHost")
|