@qwen-code/qwen-code 0.22.2 → 0.22.3
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-X42SXBJH.js} +33 -35
- package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-2FJAOLGG.js} +51 -53
- package/chunks/{acpAgent-MXEAN54C.js → acpAgent-2ZMIJAFV.js} +268 -186
- package/chunks/{agent-PJIPDWHB.js → agent-X5WX3L2I.js} +24 -26
- package/chunks/{agent-headless-B4JVD7UK.js → agent-headless-IZM25LJA.js} +24 -26
- package/chunks/{anthropicContentGenerator-HGMBACVE.js → anthropicContentGenerator-YVTB6QX7.js} +43 -47
- package/chunks/{artifact-tool-5YT4QF7Y.js → artifact-tool-XSMPHZBT.js} +9 -1
- package/chunks/{bridge-FKZTVIS3.js → bridge-ME6QXZNA.js} +37 -39
- package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-HQ6KDS7C.js} +6 -6
- package/chunks/{channel-settings-store-4UFCLBBG.js → channel-settings-store-PEOI7XCG.js} +47 -44
- 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-P5GGM4KS.js → chunk-2HYKTO7V.js} +3 -3
- package/chunks/{chunk-XDFHY4R3.js → chunk-2LNNVAUV.js} +2 -2
- package/chunks/{chunk-ZFKOCECU.js → chunk-2OBKDPZZ.js} +2 -2
- package/chunks/{chunk-3DXFGHAJ.js → chunk-2OUD5T67.js} +1 -1
- package/chunks/{chunk-EOGELB3H.js → chunk-2SXSLSQE.js} +1 -1
- package/chunks/{chunk-4JWNNLPT.js → chunk-2YOHKHYR.js} +2 -2
- package/chunks/{chunk-JU4EEXC7.js → chunk-36GSQ3MM.js} +2 -2
- package/chunks/chunk-36LGBEM6.js +130 -0
- package/chunks/{chunk-H2WDGQ6D.js → chunk-3JXM2CVW.js} +1 -1
- package/chunks/{chunk-G34IR3D6.js → chunk-3SZC4VP4.js} +26 -109
- 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-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-IJKTMLBE.js → chunk-4TT3IVGA.js} +1 -1
- package/chunks/{chunk-C6K43ZDE.js → chunk-4VPCTGH6.js} +5 -5
- package/chunks/chunk-4VQBQLIZ.js +293 -0
- package/chunks/{chunk-OIVXBW3W.js → chunk-62GQFYID.js} +1 -1
- package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
- package/chunks/{chunk-AGR5UROZ.js → chunk-6X7EU5TI.js} +17 -29
- package/chunks/{chunk-PFCQ62V4.js → chunk-6ZPDLGHN.js} +6 -6
- package/chunks/{chunk-RIEFGNTP.js → chunk-734C6JGI.js} +207 -43
- package/chunks/{chunk-FBSSIAAQ.js → chunk-73RM4POK.js} +7 -7
- package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-O2UN57NX.js → chunk-7LOELM2I.js} +19 -2
- package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
- package/chunks/{chunk-CPGJJJLU.js → chunk-7T52W4SW.js} +1 -1
- package/chunks/{chunk-5O72BNDD.js → chunk-7VMIMAVB.js} +7 -7
- package/chunks/{chunk-XRSOI3DL.js → chunk-A3LWD5MK.js} +1 -1
- package/chunks/{chunk-F7TNAPZ4.js → chunk-AIAOIFY4.js} +5 -5
- package/chunks/{chunk-4CDSK5AZ.js → chunk-AYFA7MZV.js} +2 -2
- package/chunks/{chunk-3JGZSIDA.js → chunk-B466ZSHZ.js} +1 -1
- package/chunks/{chunk-L6BZRIUL.js → chunk-B5PHIJGI.js} +182 -4
- package/chunks/{chunk-3I6UTTDX.js → chunk-BKWNKLZB.js} +19 -19
- package/chunks/{chunk-3FDFA4MZ.js → chunk-BOWFGCEU.js} +1 -1
- package/chunks/{chunk-3AFMQUTI.js → chunk-C2X7KY45.js} +1 -1
- package/chunks/{chunk-FY76G3G5.js → chunk-C3PEFRKD.js} +4 -4
- package/chunks/{chunk-FDY5RMGH.js → chunk-CFJY4DGX.js} +1 -1
- package/chunks/{chunk-CCBZDVUA.js → chunk-CIZCL2MW.js} +33 -20
- package/chunks/{chunk-LDP5OD6N.js → chunk-CLWO3B77.js} +2 -2
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-4J657AJR.js → chunk-DJECZIJX.js} +40 -40
- package/chunks/{chunk-F5SZP77N.js → chunk-DJEZ55D4.js} +71 -65
- package/chunks/{chunk-BAJKAAOY.js → chunk-DJPASAUV.js} +3840 -1055
- 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-DZWPESIF.js → chunk-EFWRMA2I.js} +3 -3
- package/chunks/{chunk-4MQEPP3Y.js → chunk-EQSBPBZ3.js} +5 -119
- 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-SJ3ZUWFK.js → chunk-GBJBJ4HX.js} +4 -4
- package/chunks/{chunk-IOPCFOTF.js → chunk-GPGU4S2N.js} +2 -2
- package/chunks/{chunk-6LFJEACX.js → chunk-GVIVASYK.js} +7 -7
- package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
- package/chunks/{chunk-A7YP63XN.js → chunk-HP5LR5HL.js} +5 -5
- 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-4HV6HH33.js → chunk-ISKH4QX3.js} +9 -9
- package/chunks/{chunk-WKK5BQNP.js → chunk-JHYH6PYQ.js} +43 -420
- package/chunks/{chunk-6IUNAPLR.js → chunk-K5KXUXWC.js} +1 -1
- 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-JSHHYW6T.js → chunk-LHBUKJG2.js} +3 -3
- package/chunks/{chunk-P2SU6ZTI.js → chunk-LUEHOUHM.js} +1 -1
- package/chunks/{chunk-66KDY3LV.js → chunk-M3QRM3DE.js} +1 -1
- package/chunks/{chunk-V4QXXQJ2.js → chunk-MF7HCQWZ.js} +2 -2
- package/chunks/{chunk-W5MJJ2V7.js → chunk-MK2GIB46.js} +1 -1
- package/chunks/{chunk-Y6LSMB6J.js → chunk-MO3FC2WT.js} +1 -1
- package/chunks/{chunk-L6YT5H34.js → chunk-MPNBVAEU.js} +4 -4
- package/chunks/{chunk-CSMI4FP5.js → chunk-MSBO7X2W.js} +1 -1
- package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
- package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
- package/chunks/{chunk-6LFTG244.js → chunk-NMOD2FXQ.js} +15 -5
- package/chunks/{chunk-KUX5D6DK.js → chunk-NV55WWD6.js} +11330 -10971
- package/chunks/{chunk-Q26AYA62.js → chunk-OU5APVWO.js} +2 -2
- package/chunks/{chunk-2K6ORIHJ.js → chunk-P2G476QN.js} +11 -11
- package/chunks/{chunk-OIP7C4FE.js → chunk-PADPMMYM.js} +4 -4
- package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
- package/chunks/{chunk-TGWAQ5RB.js → chunk-PZ66FRIC.js} +2071 -2124
- package/chunks/{chunk-7UYV53BC.js → chunk-Q2MSPKIJ.js} +1 -1
- package/chunks/{chunk-L2M46FP5.js → chunk-QYMAKPY5.js} +5 -5
- package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.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-3SGB2UHX.js → chunk-ST5MDGH3.js} +23 -11
- 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-77RG5SFQ.js → chunk-TEBDFQBZ.js} +1 -1
- package/chunks/{chunk-6CGL7E7G.js → chunk-TVC6HQ2U.js} +2 -2
- package/chunks/{chunk-BBWV7ONL.js → chunk-TZBSGJ6C.js} +6 -6
- package/chunks/{chunk-T3WXYEZ4.js → chunk-U54AYGEC.js} +38 -5
- package/chunks/{chunk-JCQD3INC.js → chunk-URE3QBBB.js} +1 -1
- package/chunks/{chunk-Y3QL45LS.js → chunk-V4264FEG.js} +8 -8
- package/chunks/{chunk-KEKZFOL6.js → chunk-V7EESTJV.js} +1 -1
- package/chunks/{chunk-R4PMVSR5.js → chunk-VBCPNIQD.js} +18 -20
- package/chunks/{chunk-RJC5EIKY.js → chunk-VGIFXISB.js} +3 -3
- package/chunks/{chunk-Z7FLBQPR.js → chunk-W3JH33JE.js} +7 -7
- package/chunks/{chunk-K2NQPH5D.js → chunk-WGY3AVGM.js} +3 -3
- 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-IK5BW3CS.js → chunk-XHF7WQ6B.js} +2 -2
- package/chunks/{chunk-2NYCN6F2.js → chunk-XSG6G3G6.js} +43 -26
- package/chunks/{chunk-HVQ3B7FF.js → chunk-Y5S7LBOZ.js} +43 -6
- package/chunks/{chunk-LXIBMVRN.js → chunk-YLSQLSH7.js} +13 -7
- package/chunks/{chunk-JSC3H3TD.js → chunk-ZEYFMJQA.js} +14 -6
- package/chunks/chunk-ZWJDJ6RU.js +2597 -0
- package/chunks/{chunk-QP4C6WCE.js → chunk-ZYMLPEZQ.js} +2 -2
- package/chunks/{chunk-BNMF3K5X.js → chunk-ZZMSC3RG.js} +52 -36
- package/chunks/{chunk-XDLEZ5HX.js → chunk-ZZUKP7HV.js} +1 -1
- package/chunks/{config-utils-BBOCOGZW.js → config-utils-R6M3TA34.js} +39 -39
- package/chunks/{contextCommand-EET67MQ2.js → contextCommand-ZCAP23J6.js} +36 -38
- package/chunks/{core-runtime-677KFX6Q.js → core-runtime-AXB6SK5D.js} +41 -43
- package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-4QNE64MR.js} +34 -36
- package/chunks/{daemon-MJQUO7RA.js → daemon-3GNHB3M2.js} +495 -7
- package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-IVAJJWYK.js} +33 -35
- package/chunks/{daemon-status-provider-RFKZOK3S.js → daemon-status-provider-K3SJ5C2U.js} +42 -44
- package/chunks/{daemon-trust-policy-DRZPFB4Q.js → daemon-trust-policy-DOR3YG62.js} +41 -43
- package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-KGGROSIV.js} +41 -43
- package/chunks/{deferred-core-runtime-BBVIOP24.js → deferred-core-runtime-WOYLUQQ7.js} +33 -35
- 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-OHBEVO4K.js} +33 -35
- package/chunks/{edit-BSV6YRVW.js → edit-LEQLAGPZ.js} +24 -26
- package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-35QCAAFP.js} +3 -3
- package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-ONQN3WHE.js} +27 -29
- package/chunks/{environment-MOZMPUHR.js → environment-UANTR7A4.js} +37 -39
- package/chunks/{errors-DMPQVYJL.js → errors-WAK6KFBC.js} +36 -38
- package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-XQD6D543.js} +3 -3
- package/chunks/{exitPlanMode-UE4FGCY4.js → exitPlanMode-UEYBG6P5.js} +24 -26
- package/chunks/{fast-path-773PV7PU.js → fast-path-WUL7UZ6H.js} +4 -4
- package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
- package/chunks/{glob-CZHOWUEA.js → glob-Y54QUWDY.js} +24 -26
- package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-PTD3MBA7.js} +2 -1
- package/chunks/{handleAutoUpdate-SGXKTQM6.js → handleAutoUpdate-FP3NWNSG.js} +37 -39
- package/chunks/{i18n-B42HKHKH.js → i18n-INIU5X7A.js} +35 -37
- package/chunks/{image-gen-HAYOEQ4O.js → image-gen-J6FDGUZP.js} +4 -6
- package/chunks/{initializer-FB66WYR3.js → initializer-TYODV6GE.js} +41 -43
- package/chunks/{installationInfo-Y7AULNMX.js → installationInfo-AAPKYDSZ.js} +33 -35
- package/chunks/{list-2HWGSVRA.js → list-TUODDN6J.js} +44 -46
- package/chunks/{gemini-IP4FJAP5.js → llm-NSAVK5V3.js} +84 -82
- package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-AY2QKXHE.js} +25 -25
- package/chunks/{loadedSettingsAdapter-7Y7IEI6T.js → loadedSettingsAdapter-KJCLZ3C4.js} +41 -43
- package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-DSFQHXIF.js} +305 -27
- package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-TSWENTK5.js} +33 -35
- package/chunks/{mcp-QGG5NMJJ.js → mcp-MWSAPFOL.js} +41 -43
- package/chunks/{monitor-FI7PY36Z.js → monitor-RW4GWJHB.js} +24 -26
- package/chunks/{nonInteractiveCli-4LO2TL72.js → nonInteractiveCli-JXKL343Q.js} +77 -78
- package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-CQNYS5OR.js} +24 -26
- package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
- package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-J6QIF7EX.js} +13 -15
- package/chunks/{pidfile-JMF2CLMY.js → pidfile-QOIQZFT2.js} +33 -35
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-IQZBYWSB.js → processUtils-GPHNANKZ.js} +2 -2
- package/chunks/{prompt-terminal-ledger-DCZO6S7C.js → prompt-terminal-ledger-FOMFTYOM.js} +34 -36
- package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-WWDXPYQI.js} +28 -30
- package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-OF5WRBQT.js} +4 -6
- package/chunks/{read-file-QE2B5FTX.js → read-file-FQUQHC6N.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-NSGF3UCB.js} +37 -39
- package/chunks/{ripGrep-R6B6HWPX.js → ripGrep-4CAT6SKV.js} +7 -7
- package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-5X6IDZER.js} +271 -86
- package/chunks/{runtime-TTIGSBM4.js → runtime-HK27GMPF.js} +46 -48
- package/chunks/{scheduled-tasks-QB4ZVUQS.js → scheduled-tasks-MN2ZZ5P6.js} +39 -41
- package/chunks/{scheduler-YRUG22M7.js → scheduler-WD4MHMO5.js} +35 -37
- 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-2XCHPPGG.js} +41 -43
- package/chunks/{server-DFUSSSHI.js → server-GO2N5DH7.js} +4148 -3348
- package/chunks/{session-3TEHNENZ.js → session-IFNHTUBT.js} +81 -82
- package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
- package/chunks/{settings-VOZYKLTT.js → settings-L6N54CU6.js} +40 -42
- package/chunks/{shell-6RTKZVMI.js → shell-4Y5LLW6N.js} +24 -26
- package/chunks/{skill-FEOKFX26.js → skill-YOWTRAKQ.js} +58 -14
- package/chunks/{skill-settings-VA4XVYVL.js → skill-settings-ZL4JY5UE.js} +41 -43
- package/chunks/{spawnChannel-F6WVP723.js → spawnChannel-ZST6XJVJ.js} +35 -37
- package/chunks/{standalone-update-RGILUQVK.js → standalone-update-THVU3OKY.js} +36 -38
- package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-XDFSHBZD.js} +401 -334
- 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-OOPXCDBA.js} +24 -26
- package/chunks/{team-delete-FJRFX33M.js → team-delete-RZVVSGCY.js} +2 -2
- package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-DSX5EWAT.js} +24 -26
- package/chunks/{terminal-image-renderer-SMQE46UJ.js → terminal-image-renderer-KS25G33E.js} +33 -35
- package/chunks/{theme-manager-RFO5WWFF.js → theme-manager-YMZNG45F.js} +33 -35
- package/chunks/{tool-search-F2EMIAPV.js → tool-search-J5Q6U7DN.js} +9 -9
- package/chunks/{total-session-admission-HTVTP4BS.js → total-session-admission-PVN64JVV.js} +37 -39
- package/chunks/{trustedFolders-7OCNMUQE.js → trustedFolders-FATSC4YI.js} +35 -37
- package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
- package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-SIKHLHVR.js} +6 -6
- package/chunks/{updateCheck-7QBDXZRT.js → updateCheck-D3YG2WCD.js} +36 -38
- package/chunks/{useAutoAcceptIndicator-UI4SNL2O.js → useAutoAcceptIndicator-ILINOSAS.js} +43 -45
- package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-JUDQP6V4.js} +74 -75
- package/chunks/{version-ANP4TS6O.js → version-C63GDDWN.js} +1 -1
- package/chunks/{web-fetch-QJADSAH3.js → web-fetch-FOQZMNSC.js} +8 -10
- package/chunks/{web-search-7TTQKEKM.js → web-search-PUJTBFUC.js} +5 -7
- package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
- package/chunks/{workflow-5XN6XSOT.js → workflow-Y5IPINVH.js} +47 -58
- package/chunks/{workspace-providers-status-PDFZWL5Q.js → workspace-providers-status-IJ4VHFMB.js} +45 -47
- package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-SMJWI2AI.js} +1 -1
- package/chunks/{workspace-registry-23R7XRB5.js → workspace-registry-BTGZIMPK.js} +37 -39
- package/chunks/{workspace-service-MUYO2QIC.js → workspace-service-SIN67ITC.js} +46 -51
- package/chunks/{workspace-skills-status-IKECTOOQ.js → workspace-skills-status-F3RKCUIX.js} +44 -46
- package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-PLIDLJZX.js} +45 -47
- package/chunks/{write-file-GGRBB5TZ.js → write-file-PAIGB33C.js} +26 -28
- package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-LYQD7BQA.js} +5 -5
- package/cli.js +14 -14
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
- package/web-shell/assets/{arc-BSTnk5pu.js → arc-D9Uls5b3.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
- package/web-shell/assets/channel-CXjVLaBa.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.js → chunk-XXDRQBXY-DMs7Rr4t.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-CGLLUbF8.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
- package/web-shell/assets/{index-CBGz4Qjl.js → index-BK_NKxiJ.js} +1 -1
- package/web-shell/assets/index-Ci-z4zWY.js +1913 -0
- package/web-shell/assets/index-LDlXZRHA.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-B6DAOyXe.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
- package/web-shell/assets/{layout-CEz_1L8z.js → layout-B9n81PC9.js} +1 -1
- package/web-shell/assets/{linear-CBjTq9Hc.js → linear-Bb6nXZQq.js} +1 -1
- package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-Cgrm3JVT.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.js → swimlanes-XN3QIQJK-ByeP3_Nu.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-D4gdDL_d.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.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/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
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
import {
|
|
4
4
|
computeCpuPercent
|
|
5
5
|
} from "./chunk-LBOVL47Y.js";
|
|
6
|
-
import {
|
|
7
|
-
RUNTIME_STARTUP_CANCELLED_MESSAGE
|
|
8
|
-
} from "./chunk-QUPXZXLV.js";
|
|
9
6
|
import {
|
|
10
7
|
resolveServeToken
|
|
11
8
|
} from "./chunk-ZELCTN6Y.js";
|
|
9
|
+
import {
|
|
10
|
+
RUNTIME_STARTUP_CANCELLED_MESSAGE
|
|
11
|
+
} from "./chunk-QUPXZXLV.js";
|
|
12
12
|
import {
|
|
13
13
|
ACCESS_LOG_CONTROLLER_LOCAL,
|
|
14
14
|
CAPABILITIES_SCHEMA_VERSION,
|
|
@@ -38,25 +38,31 @@ import {
|
|
|
38
38
|
positiveFiniteOrNull,
|
|
39
39
|
prepareManagedScratchRoot,
|
|
40
40
|
resolveAcpHttpEnabled,
|
|
41
|
-
setDeferredRuntimeRequestTiming,
|
|
42
41
|
toDaemonStatusMemoryLimits
|
|
43
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-4NDLQAY2.js";
|
|
44
43
|
import {
|
|
45
44
|
ConversationDirectoryIdentityError,
|
|
46
45
|
assertExactConversationRootIdentity,
|
|
47
46
|
createConversationRootIdentity,
|
|
47
|
+
getConversationDirectoryName,
|
|
48
|
+
getConversationStagedDirectoryName,
|
|
48
49
|
inspectConversationDirectoryIdentity,
|
|
50
|
+
inspectConversationStagedDirectoryIdentity,
|
|
51
|
+
isSameConversationDirectoryObject,
|
|
49
52
|
materializeConversationDirectoryIdentity,
|
|
50
53
|
revalidateConversationRootIdentity
|
|
51
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-U54AYGEC.js";
|
|
55
|
+
import {
|
|
56
|
+
isLoopbackBind
|
|
57
|
+
} from "./chunk-RXFQM6FQ.js";
|
|
52
58
|
import {
|
|
53
59
|
formatMemoryBudgetStderr,
|
|
54
60
|
resolveDaemonMemoryBudget,
|
|
55
61
|
serveJournalGrowthPoolMb
|
|
56
62
|
} from "./chunk-UXEO7E3V.js";
|
|
57
63
|
import {
|
|
58
|
-
|
|
59
|
-
} from "./chunk-
|
|
64
|
+
setDeferredRuntimeRequestTiming
|
|
65
|
+
} from "./chunk-SEONHUS3.js";
|
|
60
66
|
import {
|
|
61
67
|
normalizeSessionIdForLookup
|
|
62
68
|
} from "./chunk-ZEZKIS2K.js";
|
|
@@ -81,7 +87,7 @@ import {
|
|
|
81
87
|
} from "./chunk-FBX2SDQ4.js";
|
|
82
88
|
import {
|
|
83
89
|
resolveChannelCwd
|
|
84
|
-
} from "./chunk-
|
|
90
|
+
} from "./chunk-HVC3PNVC.js";
|
|
85
91
|
import {
|
|
86
92
|
LIVE_HOST_PROTOCOL_VERSION
|
|
87
93
|
} from "./chunk-NKLP3DCK.js";
|
|
@@ -92,13 +98,13 @@ import {
|
|
|
92
98
|
consumeServeFastPathRejectedLoaderKeys,
|
|
93
99
|
loadServeFastPathSettings,
|
|
94
100
|
preResolveServeFastPathHomeEnvOverrides
|
|
95
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-T7KMERIX.js";
|
|
96
102
|
import {
|
|
97
103
|
MAX_REGISTERED_WORKSPACES,
|
|
98
104
|
resolveWorkspaceInputs,
|
|
99
105
|
workspaceRegistrationId
|
|
100
|
-
} from "./chunk-
|
|
101
|
-
import "./chunk-
|
|
106
|
+
} from "./chunk-TEBDFQBZ.js";
|
|
107
|
+
import "./chunk-G6FECKTJ.js";
|
|
102
108
|
import {
|
|
103
109
|
LOAD_REPLAY_META_KEY
|
|
104
110
|
} from "./chunk-OZ6KS6KW.js";
|
|
@@ -110,22 +116,22 @@ import {
|
|
|
110
116
|
import {
|
|
111
117
|
ExtraCaInspectionError,
|
|
112
118
|
loadableCertificates
|
|
113
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-ISKH4QX3.js";
|
|
114
120
|
import "./chunk-FYJ7W2PI.js";
|
|
115
121
|
import "./chunk-Z7B6SRPM.js";
|
|
116
122
|
import {
|
|
117
123
|
ChannelWebhookEnqueueError
|
|
118
124
|
} from "./chunk-STUJ7IMZ.js";
|
|
125
|
+
import {
|
|
126
|
+
QWEN_SERVER_TOKEN_ENV
|
|
127
|
+
} from "./chunk-GYTKQYDB.js";
|
|
119
128
|
import {
|
|
120
129
|
normalizeWorkerDiagnostic,
|
|
121
130
|
sanitizeWorkerDiagnostic
|
|
122
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-RFIDDFAL.js";
|
|
123
132
|
import {
|
|
124
133
|
channelSelectionNames
|
|
125
134
|
} from "./chunk-ALMR3E6Q.js";
|
|
126
|
-
import {
|
|
127
|
-
QWEN_SERVER_TOKEN_ENV
|
|
128
|
-
} from "./chunk-GYTKQYDB.js";
|
|
129
135
|
import {
|
|
130
136
|
ChannelDeliveryError,
|
|
131
137
|
isChannelDeliveryError
|
|
@@ -144,7 +150,7 @@ import {
|
|
|
144
150
|
} from "./chunk-5HBA2Z7V.js";
|
|
145
151
|
import {
|
|
146
152
|
sanitizeLogText
|
|
147
|
-
} from "./chunk-
|
|
153
|
+
} from "./chunk-ICURCKIU.js";
|
|
148
154
|
import "./chunk-IW6RQPQB.js";
|
|
149
155
|
import "./chunk-GOXKNSDZ.js";
|
|
150
156
|
import {
|
|
@@ -156,10 +162,10 @@ import {
|
|
|
156
162
|
clearLoaderKeyRejectionReporterIfCurrent,
|
|
157
163
|
scrubInheritedLoaderEnv,
|
|
158
164
|
setLoaderKeyRejectionReporter
|
|
159
|
-
} from "./chunk-
|
|
165
|
+
} from "./chunk-MZCJWS5Y.js";
|
|
160
166
|
import {
|
|
161
167
|
getCliVersion
|
|
162
|
-
} from "./chunk-
|
|
168
|
+
} from "./chunk-Q2MSPKIJ.js";
|
|
163
169
|
import "./chunk-W3N5XAZ6.js";
|
|
164
170
|
import "./chunk-NPQ5ZKRP.js";
|
|
165
171
|
import {
|
|
@@ -182,7 +188,7 @@ import "./chunk-JVEGA3MM.js";
|
|
|
182
188
|
import {
|
|
183
189
|
writeStderrLine,
|
|
184
190
|
writeStdoutLine
|
|
185
|
-
} from "./chunk-
|
|
191
|
+
} from "./chunk-7FA2II6K.js";
|
|
186
192
|
import "./chunk-DMTGGOSA.js";
|
|
187
193
|
import "./chunk-YQ3U5MUC.js";
|
|
188
194
|
import {
|
|
@@ -620,11 +626,11 @@ async function ensureRealDirectory(fs2, dirPath, mutationAllowed = () => true) {
|
|
|
620
626
|
__name(ensureRealDirectory, "ensureRealDirectory");
|
|
621
627
|
async function activeFileSize(fs2, activePath) {
|
|
622
628
|
try {
|
|
623
|
-
const
|
|
624
|
-
if (!
|
|
629
|
+
const stat2 = await fs2.lstat(activePath);
|
|
630
|
+
if (!stat2.isFile() || stat2.isSymbolicLink()) {
|
|
625
631
|
throw new Error(`${activePath} is not a regular file`);
|
|
626
632
|
}
|
|
627
|
-
return
|
|
633
|
+
return stat2.size;
|
|
628
634
|
} catch (error) {
|
|
629
635
|
if (isErrno(error, "ENOENT")) return 0;
|
|
630
636
|
throw error;
|
|
@@ -1045,8 +1051,8 @@ __name(closeFallbackFamily, "closeFallbackFamily");
|
|
|
1045
1051
|
async function cleanupFallbacksBestEffort(input) {
|
|
1046
1052
|
const runsDir = nodePath.join(input.daemonDir, "runs");
|
|
1047
1053
|
try {
|
|
1048
|
-
const
|
|
1049
|
-
if (!
|
|
1054
|
+
const stat2 = await input.fs.lstat(runsDir);
|
|
1055
|
+
if (!stat2.isDirectory() || stat2.isSymbolicLink()) {
|
|
1050
1056
|
throw new Error(`${runsDir} is not a real directory`);
|
|
1051
1057
|
}
|
|
1052
1058
|
} catch (error) {
|
|
@@ -1768,9 +1774,10 @@ __name(initDaemonLogger, "initDaemonLogger");
|
|
|
1768
1774
|
|
|
1769
1775
|
// packages/cli/src/serve/conversations/conversation-workspace.ts
|
|
1770
1776
|
init_esbuild_shims();
|
|
1771
|
-
import {
|
|
1777
|
+
import { constants as fsConstants } from "node:fs";
|
|
1778
|
+
import { open, readdir, rename, rm, rmdir, stat } from "node:fs/promises";
|
|
1772
1779
|
import { homedir } from "node:os";
|
|
1773
|
-
import { resolve } from "node:path";
|
|
1780
|
+
import { join as join2, resolve } from "node:path";
|
|
1774
1781
|
function liveIdentityError(error, exactRoot = false, creatingRoot = false) {
|
|
1775
1782
|
if (!(error instanceof ConversationDirectoryIdentityError)) throw error;
|
|
1776
1783
|
if (error.reason === "io_error" && error.cause !== void 0) {
|
|
@@ -2012,6 +2019,171 @@ var ConversationWorkspace = class {
|
|
|
2012
2019
|
throw error;
|
|
2013
2020
|
}
|
|
2014
2021
|
}
|
|
2022
|
+
async inspectStandaloneDeletionPaths(storageSessionId, expected) {
|
|
2023
|
+
const root = await this.revalidateStandaloneRoot();
|
|
2024
|
+
try {
|
|
2025
|
+
const normal = await inspectConversationDirectoryIdentity(
|
|
2026
|
+
root,
|
|
2027
|
+
storageSessionId
|
|
2028
|
+
);
|
|
2029
|
+
const staged = await inspectConversationStagedDirectoryIdentity(
|
|
2030
|
+
root,
|
|
2031
|
+
storageSessionId
|
|
2032
|
+
);
|
|
2033
|
+
if (normal && staged) {
|
|
2034
|
+
throw new ConversationDirectoryIdentityError(
|
|
2035
|
+
"child",
|
|
2036
|
+
"unexpected_identity"
|
|
2037
|
+
);
|
|
2038
|
+
}
|
|
2039
|
+
const identity = normal ?? staged;
|
|
2040
|
+
if (identity && expected && !isSameConversationDirectoryObject(identity, expected)) {
|
|
2041
|
+
throw new ConversationDirectoryIdentityError(
|
|
2042
|
+
"child",
|
|
2043
|
+
"unexpected_identity"
|
|
2044
|
+
);
|
|
2045
|
+
}
|
|
2046
|
+
if (normal) return { status: "normal", identity: normal };
|
|
2047
|
+
if (staged) return { status: "staged", identity: staged };
|
|
2048
|
+
return { status: "absent" };
|
|
2049
|
+
} catch (error) {
|
|
2050
|
+
if (error instanceof ConversationDirectoryIdentityError && error.scope === "child") {
|
|
2051
|
+
return { status: "compromised", error };
|
|
2052
|
+
}
|
|
2053
|
+
throw error;
|
|
2054
|
+
}
|
|
2055
|
+
}
|
|
2056
|
+
async createStandaloneDeletionExpectation(storageSessionId, recorded) {
|
|
2057
|
+
if (recorded.inodeVerifiable !== (recorded.inode !== 0)) {
|
|
2058
|
+
throw new ConversationDirectoryIdentityError(
|
|
2059
|
+
"child",
|
|
2060
|
+
"unexpected_identity"
|
|
2061
|
+
);
|
|
2062
|
+
}
|
|
2063
|
+
const root = await this.revalidateStandaloneRoot();
|
|
2064
|
+
const name = getConversationDirectoryName(storageSessionId);
|
|
2065
|
+
return {
|
|
2066
|
+
root,
|
|
2067
|
+
storageSessionId,
|
|
2068
|
+
name,
|
|
2069
|
+
canonicalPath: join2(root.canonicalRoot, name),
|
|
2070
|
+
device: recorded.device,
|
|
2071
|
+
inode: recorded.inode
|
|
2072
|
+
};
|
|
2073
|
+
}
|
|
2074
|
+
async stageStandaloneDirectory(storageSessionId, expected) {
|
|
2075
|
+
const inspected = await this.inspectStandaloneDeletionPaths(
|
|
2076
|
+
storageSessionId,
|
|
2077
|
+
expected
|
|
2078
|
+
);
|
|
2079
|
+
if (inspected.status === "compromised") throw inspected.error;
|
|
2080
|
+
if (inspected.status !== "normal") {
|
|
2081
|
+
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
2082
|
+
}
|
|
2083
|
+
const root = await this.revalidateStandaloneRoot();
|
|
2084
|
+
await rename(
|
|
2085
|
+
inspected.identity.canonicalPath,
|
|
2086
|
+
join2(
|
|
2087
|
+
root.canonicalRoot,
|
|
2088
|
+
getConversationStagedDirectoryName(storageSessionId)
|
|
2089
|
+
)
|
|
2090
|
+
);
|
|
2091
|
+
await revalidateConversationRootIdentity(root);
|
|
2092
|
+
const staged = await inspectConversationStagedDirectoryIdentity(
|
|
2093
|
+
root,
|
|
2094
|
+
storageSessionId
|
|
2095
|
+
);
|
|
2096
|
+
if (!staged || !isSameConversationDirectoryObject(staged, inspected.identity)) {
|
|
2097
|
+
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
2098
|
+
}
|
|
2099
|
+
await this.syncStandaloneRoot(root);
|
|
2100
|
+
return staged;
|
|
2101
|
+
}
|
|
2102
|
+
async restoreStagedStandaloneDirectory(storageSessionId, expected) {
|
|
2103
|
+
const inspected = await this.inspectStandaloneDeletionPaths(
|
|
2104
|
+
storageSessionId,
|
|
2105
|
+
expected
|
|
2106
|
+
);
|
|
2107
|
+
if (inspected.status === "compromised") throw inspected.error;
|
|
2108
|
+
if (inspected.status !== "staged") {
|
|
2109
|
+
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
2110
|
+
}
|
|
2111
|
+
const root = await this.revalidateStandaloneRoot();
|
|
2112
|
+
await rename(
|
|
2113
|
+
inspected.identity.canonicalPath,
|
|
2114
|
+
join2(root.canonicalRoot, getConversationDirectoryName(storageSessionId))
|
|
2115
|
+
);
|
|
2116
|
+
await revalidateConversationRootIdentity(root);
|
|
2117
|
+
const restored = await inspectConversationDirectoryIdentity(
|
|
2118
|
+
root,
|
|
2119
|
+
storageSessionId
|
|
2120
|
+
);
|
|
2121
|
+
if (!restored || !isSameConversationDirectoryObject(restored, inspected.identity)) {
|
|
2122
|
+
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
2123
|
+
}
|
|
2124
|
+
await this.syncStandaloneRoot(root);
|
|
2125
|
+
return restored;
|
|
2126
|
+
}
|
|
2127
|
+
async removeStagedStandaloneDirectory(storageSessionId, expected) {
|
|
2128
|
+
const inspected = await this.inspectStandaloneDeletionPaths(
|
|
2129
|
+
storageSessionId,
|
|
2130
|
+
expected
|
|
2131
|
+
);
|
|
2132
|
+
if (inspected.status === "compromised") throw inspected.error;
|
|
2133
|
+
if (inspected.status !== "staged") {
|
|
2134
|
+
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
2135
|
+
}
|
|
2136
|
+
const confirmed = await inspectConversationStagedDirectoryIdentity(
|
|
2137
|
+
inspected.identity.root,
|
|
2138
|
+
storageSessionId
|
|
2139
|
+
);
|
|
2140
|
+
if (!confirmed || !isSameConversationDirectoryObject(confirmed, inspected.identity)) {
|
|
2141
|
+
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
2142
|
+
}
|
|
2143
|
+
await rm(confirmed.canonicalPath, { recursive: true });
|
|
2144
|
+
await this.syncStandaloneRoot(confirmed.root);
|
|
2145
|
+
}
|
|
2146
|
+
async confirmStandaloneRootDurability(root) {
|
|
2147
|
+
await this.syncStandaloneRoot(root);
|
|
2148
|
+
}
|
|
2149
|
+
async syncStandaloneRoot(root) {
|
|
2150
|
+
await revalidateConversationRootIdentity(root);
|
|
2151
|
+
let handle;
|
|
2152
|
+
try {
|
|
2153
|
+
handle = await open(
|
|
2154
|
+
root.canonicalRoot,
|
|
2155
|
+
fsConstants.O_RDONLY | (process.platform === "win32" ? 0 : fsConstants.O_NOFOLLOW ?? 0)
|
|
2156
|
+
);
|
|
2157
|
+
const stats = await handle.stat();
|
|
2158
|
+
const inodeVerifiable = Number.isSafeInteger(stats.ino) && stats.ino > 0;
|
|
2159
|
+
if (!stats.isDirectory() || stats.dev !== root.device || inodeVerifiable !== root.inodeVerifiable || root.inodeVerifiable && stats.ino !== root.inode) {
|
|
2160
|
+
throw new ConversationDirectoryIdentityError(
|
|
2161
|
+
"root",
|
|
2162
|
+
"identity_changed"
|
|
2163
|
+
);
|
|
2164
|
+
}
|
|
2165
|
+
try {
|
|
2166
|
+
await handle.sync();
|
|
2167
|
+
} catch (error) {
|
|
2168
|
+
if (process.platform !== "win32" || !["EACCES", "EINVAL", "EPERM"].includes(
|
|
2169
|
+
error.code ?? ""
|
|
2170
|
+
)) {
|
|
2171
|
+
throw error;
|
|
2172
|
+
}
|
|
2173
|
+
}
|
|
2174
|
+
const current = await stat(root.canonicalRoot);
|
|
2175
|
+
const currentInodeVerifiable = Number.isSafeInteger(current.ino) && current.ino > 0;
|
|
2176
|
+
if (!current.isDirectory() || current.dev !== root.device || currentInodeVerifiable !== root.inodeVerifiable || root.inodeVerifiable && current.ino !== root.inode) {
|
|
2177
|
+
throw new ConversationDirectoryIdentityError(
|
|
2178
|
+
"root",
|
|
2179
|
+
"identity_changed"
|
|
2180
|
+
);
|
|
2181
|
+
}
|
|
2182
|
+
} finally {
|
|
2183
|
+
await handle?.close().catch(() => void 0);
|
|
2184
|
+
}
|
|
2185
|
+
await revalidateConversationRootIdentity(root);
|
|
2186
|
+
}
|
|
2015
2187
|
};
|
|
2016
2188
|
|
|
2017
2189
|
// packages/cli/src/serve/daemon-metrics-ring.ts
|
|
@@ -3566,12 +3738,12 @@ __name(hasRetryableChannelWorkerShutdownError, "hasRetryableChannelWorkerShutdow
|
|
|
3566
3738
|
var channelWorkerRuntimePromise;
|
|
3567
3739
|
async function loadChannelWorkerRuntime() {
|
|
3568
3740
|
channelWorkerRuntimePromise ??= Promise.all([
|
|
3569
|
-
import("./channel-worker-supervisor-
|
|
3570
|
-
import("./pidfile-
|
|
3571
|
-
import("./runtime-
|
|
3741
|
+
import("./channel-worker-supervisor-FKU7DIHJ.js"),
|
|
3742
|
+
import("./pidfile-QOIQZFT2.js"),
|
|
3743
|
+
import("./runtime-HK27GMPF.js"),
|
|
3572
3744
|
import("./cli-entry-path-4VJ3Y6T2.js"),
|
|
3573
|
-
import("./channel-worker-group-
|
|
3574
|
-
import("./channel-worker-manager-
|
|
3745
|
+
import("./channel-worker-group-6NA6BBZV.js"),
|
|
3746
|
+
import("./channel-worker-manager-NEZ2J6RK.js")
|
|
3575
3747
|
]).then(
|
|
3576
3748
|
([
|
|
3577
3749
|
supervisor,
|
|
@@ -3677,7 +3849,7 @@ function shouldPreheatBridge(deps) {
|
|
|
3677
3849
|
__name(shouldPreheatBridge, "shouldPreheatBridge");
|
|
3678
3850
|
var coreRuntimePromise;
|
|
3679
3851
|
function loadCoreRuntime() {
|
|
3680
|
-
coreRuntimePromise ??= import("./core-runtime-
|
|
3852
|
+
coreRuntimePromise ??= import("./core-runtime-AXB6SK5D.js");
|
|
3681
3853
|
return coreRuntimePromise;
|
|
3682
3854
|
}
|
|
3683
3855
|
__name(loadCoreRuntime, "loadCoreRuntime");
|
|
@@ -3713,10 +3885,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
|
|
|
3713
3885
|
var settingsRuntimePromise;
|
|
3714
3886
|
function loadSettingsRuntimeModules() {
|
|
3715
3887
|
settingsRuntimePromise ??= Promise.all([
|
|
3716
|
-
import("./settings-
|
|
3717
|
-
import("./environment-
|
|
3718
|
-
import("./loadedSettingsAdapter-
|
|
3719
|
-
import("./trustedFolders-
|
|
3888
|
+
import("./settings-L6N54CU6.js"),
|
|
3889
|
+
import("./environment-UANTR7A4.js"),
|
|
3890
|
+
import("./loadedSettingsAdapter-KJCLZ3C4.js"),
|
|
3891
|
+
import("./trustedFolders-FATSC4YI.js")
|
|
3720
3892
|
]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
|
|
3721
3893
|
settings,
|
|
3722
3894
|
environment,
|
|
@@ -3729,8 +3901,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
|
|
|
3729
3901
|
var channelWebhookConfigRuntimePromise;
|
|
3730
3902
|
function loadChannelWebhookConfigRuntime() {
|
|
3731
3903
|
channelWebhookConfigRuntimePromise ??= Promise.all([
|
|
3732
|
-
import("./runtime-
|
|
3733
|
-
import("./config-utils-
|
|
3904
|
+
import("./runtime-HK27GMPF.js"),
|
|
3905
|
+
import("./config-utils-R6M3TA34.js")
|
|
3734
3906
|
]).then(([channelRuntime, configUtils]) => ({
|
|
3735
3907
|
loadChannelsConfig: channelRuntime.loadChannelsConfig,
|
|
3736
3908
|
parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
|
|
@@ -3756,18 +3928,18 @@ async function loadServeRuntimeModules() {
|
|
|
3756
3928
|
workspaceRegistryModule,
|
|
3757
3929
|
promptLedgerModule
|
|
3758
3930
|
] = await Promise.all([
|
|
3759
|
-
import("./server-
|
|
3760
|
-
import("./bridge-
|
|
3761
|
-
import("./spawnChannel-
|
|
3762
|
-
import("./process-registry-
|
|
3763
|
-
import("./workspace-service-
|
|
3764
|
-
import("./types-
|
|
3765
|
-
import("./daemon-status-provider-
|
|
3766
|
-
import("./workspace-providers-status-
|
|
3767
|
-
import("./workspace-skills-status-
|
|
3768
|
-
import("./total-session-admission-
|
|
3769
|
-
import("./workspace-registry-
|
|
3770
|
-
import("./prompt-terminal-ledger-
|
|
3931
|
+
import("./server-GO2N5DH7.js"),
|
|
3932
|
+
import("./bridge-ME6QXZNA.js"),
|
|
3933
|
+
import("./spawnChannel-ZST6XJVJ.js"),
|
|
3934
|
+
import("./process-registry-OAEG6WGC.js"),
|
|
3935
|
+
import("./workspace-service-SIN67ITC.js"),
|
|
3936
|
+
import("./types-HKLPXZB3.js"),
|
|
3937
|
+
import("./daemon-status-provider-K3SJ5C2U.js"),
|
|
3938
|
+
import("./workspace-providers-status-IJ4VHFMB.js"),
|
|
3939
|
+
import("./workspace-skills-status-F3RKCUIX.js"),
|
|
3940
|
+
import("./total-session-admission-PVN64JVV.js"),
|
|
3941
|
+
import("./workspace-registry-BTGZIMPK.js"),
|
|
3942
|
+
import("./prompt-terminal-ledger-FOMFTYOM.js")
|
|
3771
3943
|
]);
|
|
3772
3944
|
return {
|
|
3773
3945
|
createServeApp: serverModule.createServeApp,
|
|
@@ -3780,7 +3952,6 @@ async function loadServeRuntimeModules() {
|
|
|
3780
3952
|
ProcessRegistry: processRegistryModule.ProcessRegistry,
|
|
3781
3953
|
createDaemonWorkspaceService: workspaceModule.createDaemonWorkspaceService,
|
|
3782
3954
|
WorkspaceSettingsPartialPersistError: workspaceTypesModule.WorkspaceSettingsPartialPersistError,
|
|
3783
|
-
WorkspaceSkillNotToggleableError: workspaceTypesModule.WorkspaceSkillNotToggleableError,
|
|
3784
3955
|
createDaemonStatusProvider: daemonStatusProviderModule.createDaemonStatusProvider,
|
|
3785
3956
|
createWorkspaceProvidersStatusProvider: workspaceProvidersStatusModule.createWorkspaceProvidersStatusProvider,
|
|
3786
3957
|
createWorkspaceSkillsStatusProvider: workspaceSkillsStatusModule.createWorkspaceSkillsStatusProvider,
|
|
@@ -4813,7 +4984,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
4813
4984
|
}
|
|
4814
4985
|
let workspaceRegistrationStore = deps.workspaceRegistrationStore;
|
|
4815
4986
|
if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
|
|
4816
|
-
const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-
|
|
4987
|
+
const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-SMJWI2AI.js");
|
|
4817
4988
|
workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
|
|
4818
4989
|
}
|
|
4819
4990
|
if (workspaceRegistrationStore) {
|
|
@@ -5097,7 +5268,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5097
5268
|
"qwen serve: required external tool guard handshake succeeded."
|
|
5098
5269
|
);
|
|
5099
5270
|
}
|
|
5100
|
-
const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-
|
|
5271
|
+
const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-IVAJJWYK.js");
|
|
5101
5272
|
const daemonToolGuardHandler = createDaemonToolGuard(
|
|
5102
5273
|
externalToolGuardHandler
|
|
5103
5274
|
);
|
|
@@ -5166,6 +5337,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5166
5337
|
const internalRuntimeBridgesForCleanup = [];
|
|
5167
5338
|
let daemonEventLoopMonitor;
|
|
5168
5339
|
let daemonMetricsSampler;
|
|
5340
|
+
let sessionPrRefreshTimer;
|
|
5341
|
+
let sessionPrRefreshGeneration = 0;
|
|
5169
5342
|
let runtimeStartupError;
|
|
5170
5343
|
let runtimeStarting;
|
|
5171
5344
|
let markRuntimeReady;
|
|
@@ -5185,6 +5358,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5185
5358
|
daemonEventLoopMonitor = void 0;
|
|
5186
5359
|
const metricsSampler = daemonMetricsSampler;
|
|
5187
5360
|
daemonMetricsSampler = void 0;
|
|
5361
|
+
const prRefreshTimer = sessionPrRefreshTimer;
|
|
5362
|
+
sessionPrRefreshTimer = void 0;
|
|
5363
|
+
sessionPrRefreshGeneration += 1;
|
|
5364
|
+
prRefreshTimer?.dispose();
|
|
5188
5365
|
try {
|
|
5189
5366
|
eventLoopMonitor?.dispose();
|
|
5190
5367
|
} catch (err) {
|
|
@@ -5369,6 +5546,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5369
5546
|
stopSafely("scheduled-task keepalive", locals.stopScheduledTaskKeepalive);
|
|
5370
5547
|
stopSafely("workspace git state", locals.stopWorkspaceGitState);
|
|
5371
5548
|
stopSafely("Live Host coordinator", locals.stopLiveCoordinator);
|
|
5549
|
+
stopSafely("web terminal registry", locals.stopWebTerminalRegistry);
|
|
5372
5550
|
stopTrustPolicyMonitor(app2);
|
|
5373
5551
|
for (const stop of locals.subSessionStoppers ?? []) {
|
|
5374
5552
|
stopSafely("sub-session launcher", stop);
|
|
@@ -5436,7 +5614,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5436
5614
|
loadCoreRuntime(),
|
|
5437
5615
|
loadSettingsRuntimeModules(),
|
|
5438
5616
|
cliVersionPromise,
|
|
5439
|
-
import("./daemon-trust-policy-
|
|
5617
|
+
import("./daemon-trust-policy-DOR3YG62.js")
|
|
5440
5618
|
]);
|
|
5441
5619
|
cliVersion = resolvedCliVersion;
|
|
5442
5620
|
settingsRuntime.environment.preResolveHomeEnvOverrides();
|
|
@@ -5812,18 +5990,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5812
5990
|
resolveSkillSettings,
|
|
5813
5991
|
skillSettingStrings,
|
|
5814
5992
|
updateWorkspaceSkillSettingLists
|
|
5815
|
-
} = await import("./skill-settings-
|
|
5993
|
+
} = await import("./skill-settings-ZL4JY5UE.js");
|
|
5816
5994
|
const fresh = loadSettingsForPersistence(workspace);
|
|
5817
5995
|
const normalizedName = skillName.trim().toLowerCase();
|
|
5818
5996
|
const resolved = resolveSkillSettings(fresh);
|
|
5819
|
-
const disablement = resolved.disablements.get(normalizedName);
|
|
5820
|
-
if (disablement?.reason === "hard" && disablement.lockedScope) {
|
|
5821
|
-
throw new runtime.WorkspaceSkillNotToggleableError(
|
|
5822
|
-
skillName,
|
|
5823
|
-
"locked",
|
|
5824
|
-
disablement.lockedScope
|
|
5825
|
-
);
|
|
5826
|
-
}
|
|
5827
5997
|
const workspaceDisabled = skillSettingStrings(
|
|
5828
5998
|
fresh,
|
|
5829
5999
|
WORKSPACE_SETTING_SCOPE,
|
|
@@ -5877,7 +6047,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5877
6047
|
resolveSkillSettings,
|
|
5878
6048
|
skillSettingStrings,
|
|
5879
6049
|
updateWorkspaceSkillSettingLists
|
|
5880
|
-
} = await import("./skill-settings-
|
|
6050
|
+
} = await import("./skill-settings-ZL4JY5UE.js");
|
|
5881
6051
|
const fresh = loadSettingsForPersistence(workspace);
|
|
5882
6052
|
const resolved = resolveSkillSettings(fresh);
|
|
5883
6053
|
const initialDisabled = skillSettingStrings(
|
|
@@ -5894,18 +6064,6 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5894
6064
|
const outcomes = [];
|
|
5895
6065
|
for (const skillName of skillNames) {
|
|
5896
6066
|
const normalizedName = skillName.trim().toLowerCase();
|
|
5897
|
-
const disablement = resolved.disablements.get(normalizedName);
|
|
5898
|
-
if (disablement?.reason === "hard" && disablement.lockedScope) {
|
|
5899
|
-
outcomes.push({
|
|
5900
|
-
skillName,
|
|
5901
|
-
error: new runtime.WorkspaceSkillNotToggleableError(
|
|
5902
|
-
skillName,
|
|
5903
|
-
"locked",
|
|
5904
|
-
disablement.lockedScope
|
|
5905
|
-
)
|
|
5906
|
-
});
|
|
5907
|
-
continue;
|
|
5908
|
-
}
|
|
5909
6067
|
const updated = updateWorkspaceSkillSettingLists(
|
|
5910
6068
|
next,
|
|
5911
6069
|
skillName,
|
|
@@ -5983,8 +6141,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5983
6141
|
}
|
|
5984
6142
|
}), "persistSettingsFn");
|
|
5985
6143
|
const [{ createSubSessionLauncher }, scheduledTaskRoutes] = await Promise.all([
|
|
5986
|
-
import("./create-sub-session-
|
|
5987
|
-
import("./scheduled-tasks-
|
|
6144
|
+
import("./create-sub-session-4QNE64MR.js"),
|
|
6145
|
+
import("./scheduled-tasks-MN2ZZ5P6.js")
|
|
5988
6146
|
]);
|
|
5989
6147
|
const createCurrentSessionScheduledTaskHandler = /* @__PURE__ */ __name((workspaceCwd, runtimeBaseDir, getBridge, assertGenerationOpen) => async ({
|
|
5990
6148
|
callerSessionId,
|
|
@@ -6680,6 +6838,22 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6680
6838
|
metricsLoopDelay.disable();
|
|
6681
6839
|
}
|
|
6682
6840
|
};
|
|
6841
|
+
sessionPrRefreshTimer?.dispose();
|
|
6842
|
+
const refreshGeneration = ++sessionPrRefreshGeneration;
|
|
6843
|
+
void import("./session-pr-refresh-I3UBWMVP.js").then((mod) => {
|
|
6844
|
+
if (refreshGeneration !== sessionPrRefreshGeneration) return;
|
|
6845
|
+
sessionPrRefreshTimer = mod.startSessionPrRefreshTimer({
|
|
6846
|
+
workspaceRegistry,
|
|
6847
|
+
// The coordinator lives on the serve app (createServeApp below),
|
|
6848
|
+
// which is built after this timer starts; read it per tick like
|
|
6849
|
+
// the metrics sampler reads `acpHandle`.
|
|
6850
|
+
getArchiveCoordinator: /* @__PURE__ */ __name(() => app2.locals.sessionArchiveCoordinator, "getArchiveCoordinator")
|
|
6851
|
+
});
|
|
6852
|
+
}).catch((error) => {
|
|
6853
|
+
daemonLog.warn(
|
|
6854
|
+
`session-pr-refresh load failed: ${error instanceof Error ? error.message : String(error)}`
|
|
6855
|
+
);
|
|
6856
|
+
});
|
|
6683
6857
|
const createDynamicWorkspaceRuntime = /* @__PURE__ */ __name(async (cwd, buildOptions) => {
|
|
6684
6858
|
const provenance = buildOptions?.provenance ?? "existing";
|
|
6685
6859
|
if (provenance === "managed-scratch" && (!managedScratchRoot || !isManagedScratchChild(cwd, managedScratchRoot.canonicalRoot))) {
|
|
@@ -7177,6 +7351,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7177
7351
|
const app3 = serveAppForRuntimeLifecycle.current ?? runtimeApp ?? runtimeAppForCleanup;
|
|
7178
7352
|
const stopWorkspaceGitStateForWorkspace = app3?.locals?.["stopWorkspaceGitStateForWorkspace"];
|
|
7179
7353
|
const stopScheduledTaskKeepaliveForWorkspace = app3?.locals?.["stopScheduledTaskKeepaliveForWorkspace"];
|
|
7354
|
+
const releaseWebTerminalsForWorkspace = app3?.locals?.["releaseWebTerminalsForWorkspace"];
|
|
7180
7355
|
try {
|
|
7181
7356
|
stopWorkspaceGitStateForWorkspace?.(runtimeToDrain.workspaceCwd);
|
|
7182
7357
|
} catch (err) {
|
|
@@ -7195,6 +7370,14 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7195
7370
|
err instanceof Error ? err : null
|
|
7196
7371
|
);
|
|
7197
7372
|
}
|
|
7373
|
+
try {
|
|
7374
|
+
releaseWebTerminalsForWorkspace?.(runtimeToDrain.workspaceCwd);
|
|
7375
|
+
} catch (err) {
|
|
7376
|
+
daemonLog.error(
|
|
7377
|
+
"workspace web-terminal cleanup error",
|
|
7378
|
+
err instanceof Error ? err : null
|
|
7379
|
+
);
|
|
7380
|
+
}
|
|
7198
7381
|
}
|
|
7199
7382
|
let bridgeStopped = false;
|
|
7200
7383
|
try {
|
|
@@ -7266,8 +7449,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7266
7449
|
{ createChannelManagementService },
|
|
7267
7450
|
{ WorkspaceChannelSettingsStore }
|
|
7268
7451
|
] = await Promise.all([
|
|
7269
|
-
import("./channel-management-service-
|
|
7270
|
-
import("./channel-settings-store-
|
|
7452
|
+
import("./channel-management-service-HQ6KDS7C.js"),
|
|
7453
|
+
import("./channel-settings-store-PEOI7XCG.js")
|
|
7271
7454
|
]);
|
|
7272
7455
|
return createChannelManagementService({
|
|
7273
7456
|
workspaceCwd: targetRuntime.workspaceCwd,
|
|
@@ -7472,8 +7655,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7472
7655
|
{ createWorkspaceTrustReconciler },
|
|
7473
7656
|
{ createDaemonTrustPolicyMonitor }
|
|
7474
7657
|
] = await Promise.all([
|
|
7475
|
-
import("./workspace-trust-reconciler-
|
|
7476
|
-
import("./daemon-trust-policy-monitor-
|
|
7658
|
+
import("./workspace-trust-reconciler-PLIDLJZX.js"),
|
|
7659
|
+
import("./daemon-trust-policy-monitor-KGGROSIV.js")
|
|
7477
7660
|
]);
|
|
7478
7661
|
const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
|
|
7479
7662
|
const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
|
|
@@ -7669,7 +7852,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7669
7852
|
// through (and start the runtime) exactly like the warm app would.
|
|
7670
7853
|
// Dynamic import keeps web-shell-static out of the serve fast-path
|
|
7671
7854
|
// static closure (see the import-boundary guards in fast-path.test.ts).
|
|
7672
|
-
isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-
|
|
7855
|
+
isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-HNB4FDOE.js").then(
|
|
7673
7856
|
(webShellStatic) => webShellStatic.isPreAuthWebShellRequest(req)
|
|
7674
7857
|
) : void 0
|
|
7675
7858
|
});
|
|
@@ -7689,7 +7872,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7689
7872
|
);
|
|
7690
7873
|
}
|
|
7691
7874
|
const channelValidationSettingsRuntime = opts.channelSelection ? await loadSettingsRuntimeModules() : void 0;
|
|
7692
|
-
const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-
|
|
7875
|
+
const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-DOR3YG62.js") : void 0;
|
|
7693
7876
|
const channelValidationTrustSnapshot = channelValidationTrustPolicy ? await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot() : void 0;
|
|
7694
7877
|
const resolveChannelWorkspaceGroupsAtListen = /* @__PURE__ */ __name(() => {
|
|
7695
7878
|
if (!opts.channelSelection || !channelValidationSettingsRuntime || !channelRuntime) {
|
|
@@ -8577,6 +8760,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8577
8760
|
if (!preserveSignalHandlers) {
|
|
8578
8761
|
process.removeListener("SIGINT", onSignal);
|
|
8579
8762
|
process.removeListener("SIGTERM", onSignal);
|
|
8763
|
+
process.removeListener("SIGHUP", onSignal);
|
|
8580
8764
|
}
|
|
8581
8765
|
process.removeListener(
|
|
8582
8766
|
"uncaughtExceptionMonitor",
|
|
@@ -8796,6 +8980,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8796
8980
|
}
|
|
8797
8981
|
process.on("SIGINT", onSignal);
|
|
8798
8982
|
process.on("SIGTERM", onSignal);
|
|
8983
|
+
process.on("SIGHUP", onSignal);
|
|
8799
8984
|
process.on("uncaughtExceptionMonitor", onUncaughtExceptionMonitor);
|
|
8800
8985
|
server.on("error", (err) => {
|
|
8801
8986
|
daemonLog.error("server error", err instanceof Error ? err : null);
|