@qwen-code/qwen-code 0.24.5-preview.0 → 0.24.5
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/browser-use/SKILL.md +11 -10
- package/bundled/browser-use/runtime/index.js +70 -31
- package/bundled/browser-use/runtime/native-host.js +1 -0
- package/bundled/browser-use/runtime/scripts/native-host-setup.js +1 -0
- package/bundled/computer-use/SKILL.md +182 -224
- package/bundled/qc-helper/docs/configuration/model-providers.md +13 -2
- package/bundled/qc-helper/docs/conversations-recovery.md +10 -0
- package/bundled/qc-helper/docs/features/browser-use.md +22 -12
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +2 -2
- package/bundled/qc-helper/docs/features/channels/dws.md +7 -7
- package/bundled/qc-helper/docs/features/channels/feishu.md +1 -1
- package/bundled/qc-helper/docs/features/channels/github.md +13 -9
- package/bundled/qc-helper/docs/features/channels/gitlab.md +12 -5
- package/bundled/qc-helper/docs/features/channels/overview.md +121 -46
- package/bundled/qc-helper/docs/features/channels/plugins.md +12 -12
- package/bundled/qc-helper/docs/features/channels/qqbot.md +5 -5
- package/bundled/qc-helper/docs/features/channels/telegram.md +5 -5
- package/bundled/qc-helper/docs/features/channels/wecom.md +5 -4
- package/bundled/qc-helper/docs/features/channels/weixin.md +3 -3
- package/bundled/qc-helper/docs/features/code-review.md +4 -0
- package/bundled/qc-helper/docs/features/computer-use.md +1 -1
- package/bundled/qc-helper/docs/quickstart.md +14 -14
- package/bundled/qc-helper/docs/qwen-serve.md +10 -4
- package/bundled/review/SKILL.md +44 -9
- package/bundled/review/references/persistence.md +3 -4
- package/chunks/{MaxSizedBox-3RXPTLCS.js → MaxSizedBox-4MLWQHF3.js} +33 -31
- package/chunks/{StandaloneSessionPicker-74775YBZ.js → StandaloneSessionPicker-PDNU6KJJ.js} +50 -48
- package/chunks/{acp-subagent-executor-OQXOMTFK.js → acp-subagent-executor-JB2J6N73.js} +35 -33
- package/chunks/{acpAgent-MD56LD7L.js → acpAgent-CAPZFZCW.js} +123 -97
- package/chunks/{agent-75EZNG2Q.js → agent-MTWGIPWC.js} +18 -16
- package/chunks/{agent-headless-TQ6MWUDT.js → agent-headless-Z27XJSXK.js} +18 -16
- package/chunks/{anthropicContentGenerator-DCDXTX3R.js → anthropicContentGenerator-VAFZRJWG.js} +3 -3
- package/chunks/{askUserQuestion-2NU6CXK2.js → askUserQuestion-V4OFZD5D.js} +1 -1
- package/chunks/{bridge-KGJYQUWD.js → bridge-BUCSJHCE.js} +35 -33
- package/chunks/{channel-management-service-YN4A3BJ6.js → channel-management-service-Q2B7WUPL.js} +27 -10
- package/chunks/{channel-settings-store-773UOD6B.js → channel-settings-store-U25CVEL6.js} +42 -40
- package/chunks/{channel-worker-group-AKPVHRUO.js → channel-worker-group-QNX4OIMZ.js} +5 -5
- package/chunks/{channel-worker-manager-TDAQSKWX.js → channel-worker-manager-IJCPV4WY.js} +24 -5
- package/chunks/{channel-worker-supervisor-PUMSN4J2.js → channel-worker-supervisor-ENJ2AE2N.js} +4 -4
- package/chunks/{chunk-OU4ZCLGJ.js → chunk-242INZ6Y.js} +1 -1
- package/chunks/{chunk-JOFZBTVL.js → chunk-245NB3M4.js} +1 -1
- package/chunks/{chunk-LISITUEH.js → chunk-26KGIWIW.js} +1 -1
- package/chunks/{chunk-WPHZEGFC.js → chunk-2RQEWY2P.js} +1 -1
- package/chunks/{chunk-DCTJ3GVF.js → chunk-2SCE6YR2.js} +3 -3
- package/chunks/{chunk-STKUN7BR.js → chunk-2XNGG7R3.js} +1 -1
- package/chunks/{chunk-OQE7AA2W.js → chunk-36ZMEEBW.js} +16 -12
- package/chunks/{chunk-Y53WH7VD.js → chunk-44K6Q5AW.js} +3 -3
- package/chunks/{chunk-N4VKU36J.js → chunk-465XOJLQ.js} +1 -1
- package/chunks/{chunk-HD4IXPPC.js → chunk-4A4XNQEZ.js} +3 -3
- package/chunks/{chunk-RXB6Y33E.js → chunk-4VULJ3LV.js} +1 -1
- package/chunks/{chunk-EBRC4GX2.js → chunk-4XXUGJJS.js} +1 -1
- package/chunks/{chunk-MVC4XLNM.js → chunk-53IRNMPU.js} +118 -5
- package/chunks/{chunk-VGLXXHTF.js → chunk-5BLOZPTW.js} +1 -1
- package/chunks/{chunk-3SK2A75W.js → chunk-5OJQLD3P.js} +3 -3
- package/chunks/{chunk-WVNCMGAO.js → chunk-6FURC4LI.js} +1 -1
- package/chunks/{chunk-WVTM33Q3.js → chunk-6KXQIDK2.js} +4 -4
- package/chunks/{chunk-ZKDUQHU4.js → chunk-7MNHZUTA.js} +35 -18
- package/chunks/{chunk-JEIPBSGX.js → chunk-7P5WZQXF.js} +7 -7
- package/chunks/{chunk-GGUOO2XC.js → chunk-7RCAMBLN.js} +1 -1
- package/chunks/{chunk-FBLGI2SO.js → chunk-AAOMFXVZ.js} +7 -7
- package/chunks/{chunk-JM76TMGV.js → chunk-ACLD6C3R.js} +8798 -7901
- package/chunks/{chunk-4FCWKBOC.js → chunk-ALTMZEBU.js} +6 -6
- package/chunks/{chunk-ZHQSWNO6.js → chunk-AN62TPO6.js} +1 -1
- package/chunks/{chunk-U5DPG7JW.js → chunk-AYTI24XN.js} +1 -1
- package/chunks/{chunk-B53FO7JN.js → chunk-AZN2GSLM.js} +2 -2
- package/chunks/{chunk-6KQQPPFF.js → chunk-B3J4BSPL.js} +1 -1
- package/chunks/{chunk-SLSH5TFD.js → chunk-BMCDSO77.js} +4 -4
- package/chunks/{chunk-DBYUN4U3.js → chunk-BUDUHXX3.js} +1 -1
- package/chunks/{chunk-TS4Y2MHO.js → chunk-CGREZDGO.js} +1 -1
- package/chunks/chunk-CLNDQINM.js +523 -0
- package/chunks/{chunk-LNUQA3OE.js → chunk-CVRZNFXO.js} +1 -1
- package/chunks/{chunk-3DBI3LLL.js → chunk-CWLTXYKP.js} +4 -4
- package/chunks/{chunk-B3XMX4SN.js → chunk-DACCX4JI.js} +4 -4
- package/chunks/{chunk-YWZOEHBT.js → chunk-DE2WI7RU.js} +192 -62
- package/chunks/{chunk-3TQVPDCN.js → chunk-DU53RB7A.js} +2 -2
- package/chunks/{chunk-2KZURPTB.js → chunk-DZCTQ2MF.js} +6 -1
- package/chunks/{chunk-35SABQFH.js → chunk-DZUNDX4M.js} +1 -1
- package/chunks/{chunk-4INF7OYV.js → chunk-ELY2U74S.js} +2 -2
- package/chunks/chunk-EMGHODF7.js +56 -0
- package/chunks/{chunk-5FZKG4JB.js → chunk-EMOTEATH.js} +1 -1
- package/chunks/{chunk-LW7WW3Z5.js → chunk-ERGQUKZ2.js} +1 -1
- package/chunks/{chunk-TNWJJEDT.js → chunk-ES6EQNGR.js} +6 -6
- package/chunks/{chunk-E3TLOFX7.js → chunk-EUHSEMO4.js} +62 -7
- package/chunks/{chunk-N25B6FZN.js → chunk-EYCDA5MN.js} +2 -0
- package/chunks/{chunk-GPTEZLRR.js → chunk-F4ERRMCO.js} +25 -23
- package/chunks/{chunk-SXFZ5P7F.js → chunk-FE7D3WKV.js} +1 -1
- package/chunks/{chunk-XEXNBTYX.js → chunk-FH45BQGZ.js} +3 -3
- package/chunks/{chunk-CAORZAZD.js → chunk-FLBUHGL4.js} +10 -10
- package/chunks/{chunk-X2R47SFR.js → chunk-FLVPNMCS.js} +1 -1
- package/chunks/{chunk-5SZSV2CK.js → chunk-FVIJFKEQ.js} +3 -3
- package/chunks/{chunk-KFLDZ3HB.js → chunk-G6XRNTXF.js} +1 -1
- package/chunks/{chunk-2JHQ2J3Y.js → chunk-G72UHXC3.js} +5 -5
- package/chunks/{chunk-4A255ZI6.js → chunk-GAHZJLQG.js} +2 -2
- package/chunks/{chunk-7IVZOKKW.js → chunk-GKJGKTWJ.js} +3 -3
- package/chunks/{chunk-KY4HZXLV.js → chunk-GLPNIOEV.js} +33 -2
- package/chunks/{chunk-6PRSQUPJ.js → chunk-GQZZGEMS.js} +1 -1
- package/chunks/{chunk-G2AE7GYZ.js → chunk-GRUASRWC.js} +1 -1
- package/chunks/{chunk-HH7R6RLK.js → chunk-GTQ35GRO.js} +1 -1
- package/chunks/{chunk-LWRJLRZS.js → chunk-GYLDOFLU.js} +3 -3
- package/chunks/{chunk-MZRJ2JJS.js → chunk-HDSI3RDN.js} +136 -9
- package/chunks/{chunk-RO5K7QUL.js → chunk-HHMJ5ONX.js} +45 -31
- package/chunks/{chunk-E4HNTYHK.js → chunk-HVVQYSBA.js} +32 -9
- package/chunks/{chunk-H2GVLBFU.js → chunk-I36GIR6K.js} +64 -2
- package/chunks/{chunk-VTFLRL55.js → chunk-IBRV4T3I.js} +2 -2
- package/chunks/{chunk-4VSTV4C2.js → chunk-IH22ZGZI.js} +53 -2
- package/chunks/{chunk-AOW7WIWE.js → chunk-IQH7Q5OP.js} +4 -4
- package/chunks/{chunk-OB444SG3.js → chunk-IYKGSUTA.js} +1 -1
- package/chunks/{chunk-HS5OZTQF.js → chunk-J2FLXQJM.js} +1 -1
- package/chunks/{chunk-BBCH7PBA.js → chunk-KACKEW2M.js} +2 -2
- package/chunks/{chunk-JE3J5HFM.js → chunk-KAOHUUM7.js} +62 -251
- package/chunks/{chunk-JCMDVGPR.js → chunk-KGLPVCX7.js} +2 -2
- package/chunks/{chunk-QKXZOHHQ.js → chunk-LDURD6EP.js} +15 -62
- package/chunks/{chunk-O4IH5UEC.js → chunk-LLIYDIGU.js} +20 -20
- package/chunks/{chunk-3XHMOJCP.js → chunk-MBC3PULP.js} +1 -1
- package/chunks/{chunk-SRZA7OU4.js → chunk-MMCGLNPP.js} +6 -6
- package/chunks/{chunk-3NG2ZQAJ.js → chunk-NZC74TT2.js} +1 -1
- package/chunks/{chunk-47C3HPMW.js → chunk-O5YL6KSX.js} +47 -18
- package/chunks/{chunk-EIHZ4FFM.js → chunk-O6PPYFQN.js} +3 -3
- package/chunks/{chunk-XCU752HT.js → chunk-OICDXWXP.js} +13 -19
- package/chunks/{chunk-VJCKLKZX.js → chunk-OOU7XOZF.js} +3 -3
- package/chunks/{chunk-OM5NSL25.js → chunk-P4P7CH7H.js} +38 -38
- package/chunks/{chunk-CIS4SY3R.js → chunk-PPBZHGEQ.js} +3 -3
- package/chunks/{chunk-PB7JBAHF.js → chunk-PVBIEIVZ.js} +0 -1
- package/chunks/{chunk-GG3MO6NO.js → chunk-PWGMHXIV.js} +2 -2
- package/chunks/{chunk-6N2PJAZG.js → chunk-PX2ZOOGQ.js} +1 -1
- package/chunks/{chunk-NNN2PKPV.js → chunk-PYYPSK6Q.js} +36 -495
- package/chunks/{chunk-TKOQGFRE.js → chunk-PZOWKCPJ.js} +1 -1
- package/chunks/{chunk-PJ546DX4.js → chunk-Q36IJ74U.js} +17 -11
- package/chunks/chunk-Q4FJVWI4.js +78 -0
- package/chunks/{chunk-PA4HU5IQ.js → chunk-QATPE3SN.js} +13 -7
- package/chunks/{chunk-MBUUQJPV.js → chunk-QGKAYDES.js} +5 -5
- package/chunks/{chunk-TFBQ5CKI.js → chunk-QNEBHC2E.js} +1 -1
- package/chunks/{chunk-6NA357SF.js → chunk-QTNSMJKU.js} +1 -1
- package/chunks/{chunk-TDLEDOJN.js → chunk-QU7VULWX.js} +5 -4
- package/chunks/{chunk-LOTGIM6V.js → chunk-R3IFSY55.js} +20 -20
- package/chunks/{chunk-ZX6EZ7EH.js → chunk-RBE3WRSN.js} +3 -3
- package/chunks/{chunk-YSZ2XZTG.js → chunk-RBKZ6SK4.js} +5 -5
- package/chunks/{chunk-FLRFAPDA.js → chunk-RCL6OXZC.js} +5 -5
- package/chunks/{chunk-H4W6TJFJ.js → chunk-RONRTFAQ.js} +1 -1
- package/chunks/{chunk-ZEGLZ3MN.js → chunk-SCYKHWRM.js} +5 -5
- package/chunks/{chunk-STUJ7IMZ.js → chunk-SI7XKACY.js} +56 -56
- package/chunks/{chunk-RL2HSTEB.js → chunk-SYZPPX3O.js} +1492 -1140
- package/chunks/{chunk-VUYJRNG5.js → chunk-T7TJPVTY.js} +3 -3
- package/chunks/{chunk-4V5YKOBI.js → chunk-TF7UC7F6.js} +3 -3
- package/chunks/{chunk-NXZD3VNX.js → chunk-TL7DSR47.js} +1 -1
- package/chunks/{chunk-BVFBDXI2.js → chunk-TPFV5YZK.js} +1 -1
- package/chunks/{chunk-YIHOHHJL.js → chunk-TZHXHWEW.js} +1 -1
- package/chunks/{chunk-3X5BDEXS.js → chunk-U6RMVE5X.js} +8 -8
- package/chunks/{chunk-HRVFPNGT.js → chunk-VFNKO4FK.js} +4 -4
- package/chunks/{chunk-VPALWDQL.js → chunk-VUIH3BQL.js} +31 -12
- package/chunks/{chunk-WVNML4HH.js → chunk-VW33WARJ.js} +1 -1
- package/chunks/{chunk-MICQVBPI.js → chunk-WCLHOKAZ.js} +1 -1
- package/chunks/{chunk-KMQ2ZH3Q.js → chunk-WVWCRZ6M.js} +2 -2
- package/chunks/{chunk-5NFAKADR.js → chunk-WZCVB2ER.js} +1 -36
- package/chunks/{chunk-JNQEW7B2.js → chunk-X3A72KX5.js} +6 -6
- package/chunks/{chunk-3JSIWFNA.js → chunk-XHHUGXYW.js} +527 -135
- package/chunks/{chunk-VIA4STCR.js → chunk-YCCBLTSL.js} +3 -3
- package/chunks/{chunk-Q5IEY2TN.js → chunk-Z3I5B4DH.js} +1 -1
- package/chunks/{chunk-O346IB64.js → chunk-ZAJNI63I.js} +1 -1
- package/chunks/{chunk-QR4U27UW.js → chunk-ZJFCDRVP.js} +4 -4
- package/chunks/{codex-subagent-executor-437LQYGM.js → codex-subagent-executor-IKWULWIZ.js} +35 -33
- package/chunks/{config-utils-CVLI36KM.js → config-utils-3IOTAFBG.js} +38 -34
- package/chunks/{contextCommand-2KSW7H5F.js → contextCommand-ZKG2JFCR.js} +33 -31
- package/chunks/{core-runtime-4IB27E7J.js → core-runtime-5CAK5DSM.js} +32 -30
- package/chunks/{create-sub-session-A73TQDAN.js → create-sub-session-DG4CVOQC.js} +33 -31
- package/chunks/{daemon-Y6AOK7LF.js → daemon-D4OAVQKB.js} +1 -1
- package/chunks/{daemon-git-worktree-guard-BTKVV3DZ.js → daemon-git-worktree-guard-S3SFT3H7.js} +32 -30
- package/chunks/{daemon-status-provider-ETDIOWMS.js → daemon-status-provider-GG64ZJR3.js} +40 -38
- package/chunks/{daemon-trust-policy-U5SPHJLP.js → daemon-trust-policy-XNWYLQ32.js} +38 -36
- package/chunks/{daemon-trust-policy-monitor-QKRCO5WI.js → daemon-trust-policy-monitor-DR5CRWMM.js} +38 -36
- package/chunks/{deferred-core-runtime-FRELZPIE.js → deferred-core-runtime-V4Q674KN.js} +32 -30
- package/chunks/{dist-54LGNLWW.js → dist-3M75XY4G.js} +1 -1
- package/chunks/{dist-YZBMQPNS.js → dist-6U5NQYA7.js} +5 -5
- package/chunks/{dist-FVMLRUVM.js → dist-AS2RPYOB.js} +1 -1
- package/chunks/{dist-HANHY2MK.js → dist-GFT4GU72.js} +2 -2
- package/chunks/{dist-Y5GP7SWL.js → dist-J7JK3GPY.js} +10 -9
- package/chunks/{dist-O723VE2K.js → dist-JTPRKF5H.js} +30 -27
- package/chunks/{dist-MGZKUISU.js → dist-MOO5VOC5.js} +7 -20
- package/chunks/{dist-IZ66D5A3.js → dist-NJ2L5QKL.js} +1 -1
- package/chunks/{dist-EI2XAB4W.js → dist-YC6LDCKH.js} +22 -28
- package/chunks/{edit-TQ3CABYP.js → edit-FPIWTN3L.js} +20 -18
- package/chunks/{enter-worktree-J46XVFRS.js → enter-worktree-55OWD4LT.js} +4 -3
- package/chunks/{enterPlanMode-JHOWELZO.js → enterPlanMode-GDZVXYB2.js} +18 -16
- package/chunks/{environment-LUM7XX27.js → environment-Q2BVTUQO.js} +36 -32
- package/chunks/{errors-SH32ID5I.js → errors-MZTLVUEM.js} +34 -32
- package/chunks/{execution-sandbox-settings-HIYVUBII.js → execution-sandbox-settings-3WJ67GX3.js} +3 -1
- package/chunks/{execution-tool-IIEL25CL.js → execution-tool-DZ4XSEFZ.js} +21 -19
- package/chunks/{execution-worker-NKKEZ4XF.js → execution-worker-L3TM3F5D.js} +24 -22
- package/chunks/{exit-worktree-BC4SDZCC.js → exit-worktree-MI6N4OUP.js} +4 -3
- package/chunks/{exitPlanMode-PUICCCQ5.js → exitPlanMode-VIGOD2KP.js} +18 -16
- package/chunks/{fast-path-QH3QTZZA.js → fast-path-JCKEFUUL.js} +4 -4
- package/chunks/{fast-path-settings-TQAYWLXR.js → fast-path-settings-VIYSH3SD.js} +2 -2
- package/chunks/{glob-OEB4WH3Z.js → glob-UOKQZHKL.js} +18 -16
- package/chunks/{goal-tools-KWGKFUSK.js → goal-tools-G4RIX4ER.js} +18 -16
- package/chunks/{handleAutoUpdate-KEA7JSUD.js → handleAutoUpdate-UZZEGL3N.js} +34 -32
- package/chunks/{i18n-AC3MUXKZ.js → i18n-IL33FVND.js} +32 -30
- package/chunks/{initializer-WBD32BEX.js → initializer-BCXBRM6Y.js} +38 -36
- package/chunks/{installationInfo-JRGFTKWY.js → installationInfo-V7OKUOJV.js} +32 -30
- package/chunks/{list-S7KW7NBX.js → list-LQHG6SXA.js} +41 -39
- package/chunks/{llm-E32WLISX.js → llm-JWCANCDC.js} +85 -74
- package/chunks/{llm-content-generator-OMKJHC5P.js → llm-content-generator-OXMMHUVK.js} +3 -3
- package/chunks/{loadedSettingsAdapter-5OSU3J46.js → loadedSettingsAdapter-EKXSRWMY.js} +38 -36
- package/chunks/{local-execution-environment-IQHCTUJ5.js → local-execution-environment-XIQLRMLF.js} +24 -22
- package/chunks/{loggingContentGenerator-JIYG3LJS.js → loggingContentGenerator-6KHNZDTZ.js} +20 -18
- package/chunks/{managed-npm-update-RKAT7AMQ.js → managed-npm-update-MBUH5TIX.js} +32 -30
- package/chunks/managed-runtime-attestation-worker-G23AEEMF.js +367 -0
- package/chunks/{mcp-SV72BZKG.js → mcp-AYVCEEN7.js} +38 -36
- package/chunks/{model-call-collection-PKDMVCZN.js → model-call-collection-OKUGOY4B.js} +1 -1
- package/chunks/{model-configuration-A52XMQW7.js → model-configuration-Q3MNGG3B.js} +38 -36
- package/chunks/{modelConfigUtils-7O4P3SLE.js → modelConfigUtils-WC5XDR34.js} +33 -31
- package/chunks/{monitor-ZXRV2DJB.js → monitor-7JUZXYZN.js} +18 -16
- package/chunks/{nonInteractiveCli-UPSGIYRC.js → nonInteractiveCli-B3GCZ6NJ.js} +74 -73
- package/chunks/{nonInteractiveToolExecutor-TDKVR43J.js → nonInteractiveToolExecutor-IUHO7PXG.js} +19 -17
- package/chunks/{notebook-edit-FBVHAHYM.js → notebook-edit-IYDACZDW.js} +19 -17
- package/chunks/{omni-3NREMV2Q.js → omni-DLBHISHC.js} +10 -7
- package/chunks/{openaiContentGenerator-EWPBZFIT.js → openaiContentGenerator-W5GN6H6Z.js} +12 -10
- package/chunks/{openaiResponsesContentGenerator-3CI3PINB.js → openaiResponsesContentGenerator-BXXRYJQQ.js} +5 -5
- package/chunks/{pidfile-BBUANGZX.js → pidfile-QIBF53CW.js} +32 -30
- package/chunks/{processUtils-6OHQLG7W.js → processUtils-2LU22KCR.js} +2 -2
- package/chunks/{prompt-terminal-ledger-ZBFYXJ4L.js → prompt-terminal-ledger-LXFVLR6C.js} +33 -31
- package/chunks/{qwenContentGenerator-62F5IKXJ.js → qwenContentGenerator-LYMLXBWI.js} +21 -19
- package/chunks/{reactive-degrade-URJMXJ7N.js → reactive-degrade-HPYBJHYA.js} +6 -6
- package/chunks/{read-file-IM4Q5TKI.js → read-file-SXS2MKDY.js} +6 -3
- package/chunks/{record-artifact-K4XSMW4X.js → record-artifact-XP3X7RE5.js} +3 -2
- package/chunks/{record-source-XZCI3IGU.js → record-source-2VBLKVIE.js} +2 -2
- package/chunks/{report-findings-MCGXBQFX.js → report-findings-D2QUYUOG.js} +4 -3
- package/chunks/{request-shutdown-TT62PREA.js → request-shutdown-R5SA5GE3.js} +1 -1
- package/chunks/{resumeHistoryUtils-O3NQMDVR.js → resumeHistoryUtils-UPGZGP5V.js} +35 -33
- package/chunks/{ripGrep-BG2FEVIV.js → ripGrep-X33VVIN5.js} +8 -5
- package/chunks/{run-qwen-serve-GMLWJITM.js → run-qwen-serve-CUB2NZ6P.js} +278 -79
- package/chunks/{runtime-SSGPOXRZ.js → runtime-2DAVBADX.js} +43 -41
- package/chunks/{sandboxConfig-ALYLLNWY.js → sandboxConfig-ESBH3F27.js} +34 -32
- package/chunks/{scheduled-tasks-QJTC5XQ7.js → scheduled-tasks-TGWYXZWW.js} +38 -36
- package/chunks/{scheduler-PEXTY7IG.js → scheduler-XGLZCXPN.js} +34 -32
- package/chunks/{send-message-3UM7XRTB.js → send-message-FBU6WDID.js} +1 -1
- package/chunks/{serve-OVAUTKXK.js → serve-7RX4AIID.js} +38 -36
- package/chunks/{server-3MMYOOJW.js → server-MJETIFJS.js} +1789 -375
- package/chunks/{session-PZBIKBQJ.js → session-7AVYU3TC.js} +75 -74
- package/chunks/{session-attachments-root-ESP5CNBV.js → session-attachments-root-RONFQ3D3.js} +32 -30
- package/chunks/{session-pr-refresh-B3N7PKUP.js → session-pr-refresh-ZPT6TAD4.js} +37 -35
- package/chunks/{settings-KSQ2DGPY.js → settings-FPMUAVWD.js} +37 -35
- package/chunks/{shell-3V26EVNC.js → shell-THD5EYOK.js} +18 -16
- package/chunks/{skill-XP7F3LBV.js → skill-2D6KXDC5.js} +52 -13
- package/chunks/{skill-settings-PDESL7S3.js → skill-settings-XW7X244B.js} +38 -36
- package/chunks/{spawnChannel-NVO7CCBW.js → spawnChannel-DBSAAUUT.js} +34 -32
- package/chunks/{standalone-update-FDWS2EGF.js → standalone-update-TFAWA676.js} +33 -31
- package/chunks/{start-opentui-ui-WIFFY5UD.js → start-opentui-ui-VYMAXPBH.js} +87 -86
- package/chunks/{startInteractiveUI-YBLIRIHD.js → startInteractiveUI-Z54XKH35.js} +1037 -966
- package/chunks/{task-create-PEI7AJLE.js → task-create-PVF66J3R.js} +2 -2
- package/chunks/{task-update-MQZRWBGK.js → task-update-RSIITTOK.js} +2 -2
- package/chunks/{team-create-Z5JUEMB7.js → team-create-TPCELNBJ.js} +18 -16
- package/chunks/{team-plan-approval-ZLLHMEQN.js → team-plan-approval-RUURGHQL.js} +18 -16
- package/chunks/{terminal-image-renderer-QFO2JTTT.js → terminal-image-renderer-SLJVUD4Z.js} +32 -30
- package/chunks/{theme-manager-N7ILUTRY.js → theme-manager-VBOIN2KT.js} +32 -30
- package/chunks/{tool-call-PLSQ34VE.js → tool-call-DUHP6UXC.js} +2 -2
- package/chunks/{tool-result-media-OAHUKGRK.js → tool-result-media-WU6QAREN.js} +10 -7
- package/chunks/{tool-search-534QKE2X.js → tool-search-ET4NH2LK.js} +7 -4
- package/chunks/{total-session-admission-EZJQKTPF.js → total-session-admission-UWMJWTWP.js} +35 -33
- package/chunks/{trustedFolders-4ZEV6RXD.js → trustedFolders-3WNZBUH7.js} +33 -31
- package/chunks/{update-relaunch-GB3SGRDP.js → update-relaunch-SHS3BD6V.js} +5 -5
- package/chunks/{updateCheck-DVAGAEQ4.js → updateCheck-MDF2FCRN.js} +32 -30
- package/chunks/{upload-config-DMZVTDH7.js → upload-config-LVVUIKA2.js} +4 -4
- package/chunks/{useAutoAcceptIndicator-PTQBS42B.js → useAutoAcceptIndicator-26OOM7OM.js} +41 -39
- package/chunks/{validateNonInterActiveAuth-DU3WXVSU.js → validateNonInterActiveAuth-TBCZCQIN.js} +72 -71
- package/chunks/{version-PNMZGKCV.js → version-MICV7I4Y.js} +1 -1
- package/chunks/{web-fetch-LMCOAHW6.js → web-fetch-3O2DFRE5.js} +13 -9
- package/chunks/{web-search-N7RR74LA.js → web-search-5FS3NB3D.js} +4 -4
- package/chunks/{web-shell-static-GI6FVIMI.js → web-shell-static-E3O6NW7Y.js} +4 -3
- package/chunks/{workflow-ZZPHI7FK.js → workflow-FRJO5ZUI.js} +19 -17
- package/chunks/{workspace-providers-status-TU73CNRF.js → workspace-providers-status-I5MO7Z2T.js} +43 -41
- package/chunks/{workspace-registration-store-743FRSOU.js → workspace-registration-store-CBHKV34L.js} +1 -1
- package/chunks/{workspace-registry-S7QTXFWM.js → workspace-registry-2UKNZO5M.js} +35 -33
- package/chunks/{workspace-runtime-coordinator-GWNDUIGO.js → workspace-runtime-coordinator-TKCI5WJW.js} +36 -34
- package/chunks/{workspace-service-CERZFJ3B.js → workspace-service-M3ZKR6WL.js} +40 -38
- package/chunks/{workspace-skills-status-5M3EIAUY.js → workspace-skills-status-OC3EYL7U.js} +41 -39
- package/chunks/{workspace-trust-reconciler-Q3LUKMQB.js → workspace-trust-reconciler-YQZSUOH4.js} +41 -39
- package/chunks/{write-file-CT54LXQL.js → write-file-BATJLBJX.js} +21 -19
- package/chunks/{zoom-image-EU3PGSZM.js → zoom-image-5I7DDLQE.js} +10 -6
- package/cli-entry.js +13 -0
- package/cli.js +24 -12
- package/execution-worker.js +1 -1
- package/export-transcript-document.css +1 -1
- package/export-transcript-document.js +104 -104
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DDYEvG-M.js → abnfDiagram-VCTEODGH-DQHroFS1.js} +1 -1
- package/web-shell/assets/{arc-DQncKWFX.js → arc-BrOc_HVh.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-C0-8u9zj.js → architectureDiagram-5GKGNRK7-DXce8IH6.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-Cpt59Ge5.js → blockDiagram-NRAW4CY4-96A3Q3-l.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BvESWh83.js → c4Diagram-UCG6FXSJ-CQBg2PSg.js} +1 -1
- package/web-shell/assets/channel-CBP6pwSs.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-wKulGIU6.js → chunk-2Q5K7J3B-i_jhVz-t.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-BX6kRoq7.js → chunk-5VM5RSS4-Cx3gMrWT.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-wA4IqTt-.js → chunk-F27PBJKO-B9WwW7C0.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-B7hzevlb.js → chunk-G27WJ6UU-B8t0FNPI.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-BdBg9pJg.js → chunk-JWPE2WC7-Dg0__6CF.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-DghmF6LJ.js → chunk-LCL6LL3I-DUwE5g3m.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-BbReTOod.js → chunk-POPQ4Y6H-BirYW5iS.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-C1t0_19D.js → chunk-SVP7TREG-_ONJKtFF.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-DQBby5mI.js → chunk-XXDRQBXY-DGi0chgj.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-_4_fFrN3.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-_4_fFrN3.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-CNrSyg7B.js → cose-bilkent-JH36ORCC-BSSFxREn.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-DoxgDRN-.js → cynefin-OW5HDTMX-h-oYVCez.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BmUwbS8Q.js → cynefinDiagram-5FMLGOSQ-CXj6T7Pm.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-BJrOVIjc.js → dagre-3AP2YEHR-Ch9GIhJm.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-TDX4KU9V.js → diagram-S7CK7UJ4-Cq3W541T.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-D3VUQkGl.js → diagram-UQ7AKVKN-Bm1R5-sN.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-CqCpgViy.js → diagram-VSXAHHWV-BW2qG6Vh.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-CthqfwCs.js → diagram-VX7I27RA-DN96PhRe.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-BRY3Ahvu.js → diagram-Z3DM3KII-A8MnwaJr.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-tJvTnIwp.js → ebnfDiagram-PWID7BFC-CZTpUypI.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-DT4b7w5B.js → erDiagram-SSCWMZ5O-CbxCRFru.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-C5oirWSf.js → flowDiagram-A5DVABFB-Bt1PM2Dy.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-ZD3kNlO4.js → ganttDiagram-EL5Y4UJY-CTgim3LX.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Bp1sg_wH.js → gitGraphDiagram-WWUBYQGX-h4jX7S4l.js} +1 -1
- package/web-shell/assets/{index-DSIzVof7.js → index-BDxWHGNm.js} +1 -1
- package/web-shell/assets/index-Bd3iA5Er.js +2407 -0
- package/web-shell/assets/index-DuwfO01z.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-Btumz_CZ.js → infoDiagram-RXCK75RN-DsIsFmZ4.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Dx8_uvso.js → ishikawaDiagram-5VMMS53U-BgF2V3rC.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-DS5spUhj.js → journeyDiagram-EYS64GPL-CJ2ibWhB.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-DttC9d4D.js → kanban-definition-3QL26DDD-oqNfpjND.js} +1 -1
- package/web-shell/assets/{layout-BDOJQJbX.js → layout-DKF2f-UC.js} +1 -1
- package/web-shell/assets/{linear-BsUVMxld.js → linear-CadmYA8J.js} +1 -1
- package/web-shell/assets/{mermaid.core-De4-EW4Z.js → mermaid.core-BSD13L-h.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-BsYY98Wv.js → mindmap-definition-FBJOCRG2-Cg3jlHzV.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DXnnQrVY.js → pegDiagram-XKGWAZYB-BGzqlBWk.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-DGLAGUYR.js → pieDiagram-E7YTZNPT-BVDdPYnC.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-Y8DcMTa5.js → quadrantDiagram-AXDQQJYC-D7maRW6r.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-ZgauslUZ.js → railroadDiagram-O6MQD6OU-C7J0Nnqc.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-Kxtu4twe.js → requirementDiagram-EFPCY7ZU-CDEpUB7S.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-BKsLF9EA.js → sankeyDiagram-P5KCCOFB-DoA0BWeR.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D8sCv1NK.js → sequenceDiagram-WJ2MYXX4-DlqRjDLl.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-BX8sokZX.js → sizeCapture-X5ZJPWSS-3l2EJ1DB.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-DFMl58kv.js → stateDiagram-HBIQ2CUA-Bdq0N6Lr.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DtdYpKZp.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-BnMwURLN.js → swimlanes-XN3QIQJK-B4ArxdLV.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-B_iL0Dc4.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-C8y77DDz.js → timeline-definition-24CTP7MA-B_Ug6D_k.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DOWQgX9u.js → vennDiagram-4TSXK5OY-BR9tvaDT.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BM0AVIzE.js → wardleyDiagram-VM6X3IG4-BdGIt6qE.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-B18-YghG.js → xychartDiagram-S5SC5T6Z-NxS8XkXN.js} +1 -1
- package/web-shell/index.html +2 -2
- package/web-shell/sw.js +1 -1
- package/bundled/computer-use/references/macos.md +0 -208
- package/bundled/computer-use/references/windows-linux.md +0 -247
- package/web-shell/assets/channel-B88Zt8_x.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-Dp-7ruHm.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-Dp-7ruHm.js +0 -1
- package/web-shell/assets/index-CpxLhWqx.js +0 -2337
- package/web-shell/assets/index-mr0Sw0G-.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B3HSbbo2.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-FnO0SUMi.js +0 -8
|
@@ -49,9 +49,10 @@ import {
|
|
|
49
49
|
parseDaemonStatusDetail,
|
|
50
50
|
positiveFiniteOrNull,
|
|
51
51
|
prepareManagedScratchRoot,
|
|
52
|
+
pushChannelRestoreIssues,
|
|
52
53
|
resolveAcpHttpEnabled,
|
|
53
54
|
toDaemonStatusMemoryLimits
|
|
54
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-I36GIR6K.js";
|
|
55
56
|
import {
|
|
56
57
|
ConversationDirectoryIdentityError,
|
|
57
58
|
assertExactConversationRootIdentity,
|
|
@@ -63,7 +64,7 @@ import {
|
|
|
63
64
|
isSameConversationDirectoryObject,
|
|
64
65
|
materializeConversationDirectoryIdentity,
|
|
65
66
|
revalidateConversationRootIdentity
|
|
66
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-PVBIEIVZ.js";
|
|
67
68
|
import {
|
|
68
69
|
formatHostForAuthority,
|
|
69
70
|
isLoopbackAddress,
|
|
@@ -79,12 +80,13 @@ import {
|
|
|
79
80
|
normalizeSessionIdForLookup
|
|
80
81
|
} from "./chunk-ZEZKIS2K.js";
|
|
81
82
|
import "./chunk-NYWWQ437.js";
|
|
82
|
-
import
|
|
83
|
-
require_express
|
|
84
|
-
} from "./chunk-5NFAKADR.js";
|
|
83
|
+
import "./chunk-EMGHODF7.js";
|
|
85
84
|
import {
|
|
86
85
|
resolveWebShellDir
|
|
87
86
|
} from "./chunk-FBX2SDQ4.js";
|
|
87
|
+
import {
|
|
88
|
+
require_express
|
|
89
|
+
} from "./chunk-WZCVB2ER.js";
|
|
88
90
|
import {
|
|
89
91
|
ConversationRuntimeOwnershipError,
|
|
90
92
|
LIVE_HOST_PROTOCOL_VERSION
|
|
@@ -112,16 +114,16 @@ import {
|
|
|
112
114
|
import "./chunk-CKXUWR6I.js";
|
|
113
115
|
import {
|
|
114
116
|
resolveChannelCwd
|
|
115
|
-
} from "./chunk-
|
|
116
|
-
import "./chunk-
|
|
117
|
+
} from "./chunk-5BLOZPTW.js";
|
|
118
|
+
import "./chunk-IH22ZGZI.js";
|
|
117
119
|
import {
|
|
118
120
|
resolveMaxRegisteredWorkspaces,
|
|
119
121
|
resolveWorkspaceInputs,
|
|
120
122
|
workspaceRegistrationId
|
|
121
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-FE7D3WKV.js";
|
|
122
124
|
import {
|
|
123
125
|
assertChannelControlWorkspaceCapacity
|
|
124
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-RBE3WRSN.js";
|
|
125
127
|
import {
|
|
126
128
|
LOAD_REPLAY_META_KEY
|
|
127
129
|
} from "./chunk-LDH7MN44.js";
|
|
@@ -133,19 +135,19 @@ import {
|
|
|
133
135
|
import {
|
|
134
136
|
ExtraCaInspectionError,
|
|
135
137
|
loadableCertificates
|
|
136
|
-
} from "./chunk-
|
|
138
|
+
} from "./chunk-PPBZHGEQ.js";
|
|
137
139
|
import "./chunk-FYJ7W2PI.js";
|
|
138
140
|
import "./chunk-Z7B6SRPM.js";
|
|
139
141
|
import {
|
|
140
142
|
ChannelWebhookEnqueueError
|
|
141
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-SI7XKACY.js";
|
|
142
144
|
import {
|
|
143
145
|
QWEN_SERVER_TOKEN_ENV
|
|
144
146
|
} from "./chunk-GYTKQYDB.js";
|
|
145
147
|
import {
|
|
146
148
|
normalizeWorkerDiagnostic,
|
|
147
149
|
sanitizeWorkerDiagnostic
|
|
148
|
-
} from "./chunk-
|
|
150
|
+
} from "./chunk-FLVPNMCS.js";
|
|
149
151
|
import {
|
|
150
152
|
channelSelectionNames,
|
|
151
153
|
normalizeServeChannelSelection
|
|
@@ -171,13 +173,13 @@ import {
|
|
|
171
173
|
import "./chunk-TZBFVXNX.js";
|
|
172
174
|
import {
|
|
173
175
|
sanitizeLogText
|
|
174
|
-
} from "./chunk-
|
|
176
|
+
} from "./chunk-DE2WI7RU.js";
|
|
175
177
|
import "./chunk-6HOTTZKB.js";
|
|
176
178
|
import {
|
|
177
179
|
consumeServeFastPathRejectedLoaderKeys,
|
|
178
180
|
loadServeFastPathSettings,
|
|
179
181
|
preResolveServeFastPathHomeEnvOverrides
|
|
180
|
-
} from "./chunk-
|
|
182
|
+
} from "./chunk-J2FLXQJM.js";
|
|
181
183
|
import "./chunk-BW4333PP.js";
|
|
182
184
|
import {
|
|
183
185
|
acquireInheritedLoaderEnvScrub,
|
|
@@ -188,13 +190,13 @@ import {
|
|
|
188
190
|
} from "./chunk-CCGFXABG.js";
|
|
189
191
|
import {
|
|
190
192
|
getCliVersion
|
|
191
|
-
} from "./chunk-
|
|
193
|
+
} from "./chunk-2XNGG7R3.js";
|
|
192
194
|
import "./chunk-2RJJSLCF.js";
|
|
193
195
|
import {
|
|
194
196
|
InvalidExecutionSandboxConfigError,
|
|
195
197
|
assertExecutionSandboxSupported,
|
|
196
198
|
readOperatorSandboxSettings
|
|
197
|
-
} from "./chunk-
|
|
199
|
+
} from "./chunk-GLPNIOEV.js";
|
|
198
200
|
import {
|
|
199
201
|
getGlobalQwenDirLite,
|
|
200
202
|
resolveConfigPathLite
|
|
@@ -3017,6 +3019,53 @@ var ChannelDeliveryAuthorizationStore = class {
|
|
|
3017
3019
|
}
|
|
3018
3020
|
};
|
|
3019
3021
|
|
|
3022
|
+
// packages/cli/src/serve/channel-restore-failures.ts
|
|
3023
|
+
init_esbuild_shims();
|
|
3024
|
+
function restoreFailureMessage(message) {
|
|
3025
|
+
return sanitizeLogText(
|
|
3026
|
+
redactLogCredentials(normalizeWorkerDiagnostic(message)),
|
|
3027
|
+
512
|
|
3028
|
+
);
|
|
3029
|
+
}
|
|
3030
|
+
__name(restoreFailureMessage, "restoreFailureMessage");
|
|
3031
|
+
function createChannelRestoreFailures(options = {}) {
|
|
3032
|
+
const byWorkspace = /* @__PURE__ */ new Map();
|
|
3033
|
+
const isStale = options.isStale ?? (() => false);
|
|
3034
|
+
return {
|
|
3035
|
+
record(failures) {
|
|
3036
|
+
for (const failure of failures) {
|
|
3037
|
+
let channels = byWorkspace.get(failure.workspaceCwd);
|
|
3038
|
+
if (!channels) {
|
|
3039
|
+
channels = /* @__PURE__ */ new Map();
|
|
3040
|
+
byWorkspace.set(failure.workspaceCwd, channels);
|
|
3041
|
+
}
|
|
3042
|
+
channels.set(failure.channel, {
|
|
3043
|
+
workspaceCwd: failure.workspaceCwd,
|
|
3044
|
+
channel: failure.channel,
|
|
3045
|
+
message: restoreFailureMessage(failure.message)
|
|
3046
|
+
});
|
|
3047
|
+
}
|
|
3048
|
+
},
|
|
3049
|
+
get(workspaceCwd, channel) {
|
|
3050
|
+
const failure = byWorkspace.get(workspaceCwd)?.get(channel);
|
|
3051
|
+
return failure && !isStale(failure) ? failure : void 0;
|
|
3052
|
+
},
|
|
3053
|
+
list() {
|
|
3054
|
+
return [...byWorkspace.values()].flatMap((channels) => [...channels.values()]).filter((failure) => !isStale(failure));
|
|
3055
|
+
},
|
|
3056
|
+
clear(workspaceCwd, channel) {
|
|
3057
|
+
const channels = byWorkspace.get(workspaceCwd);
|
|
3058
|
+
if (!channels) return;
|
|
3059
|
+
channels.delete(channel);
|
|
3060
|
+
if (channels.size === 0) byWorkspace.delete(workspaceCwd);
|
|
3061
|
+
},
|
|
3062
|
+
clearAll() {
|
|
3063
|
+
byWorkspace.clear();
|
|
3064
|
+
}
|
|
3065
|
+
};
|
|
3066
|
+
}
|
|
3067
|
+
__name(createChannelRestoreFailures, "createChannelRestoreFailures");
|
|
3068
|
+
|
|
3020
3069
|
// packages/cli/src/serve/channel-workspace-grouping.ts
|
|
3021
3070
|
init_esbuild_shims();
|
|
3022
3071
|
function resolveChannelOwnerCwd(rawCwd, workspaceCwd) {
|
|
@@ -3244,6 +3293,7 @@ function resolveStartupChannelSelection(input) {
|
|
|
3244
3293
|
selection: { mode: "all" },
|
|
3245
3294
|
ownerHints: /* @__PURE__ */ new Map(),
|
|
3246
3295
|
tolerantNames: /* @__PURE__ */ new Set(),
|
|
3296
|
+
claimants: /* @__PURE__ */ new Map(),
|
|
3247
3297
|
diagnostics
|
|
3248
3298
|
};
|
|
3249
3299
|
}
|
|
@@ -3267,6 +3317,12 @@ function resolveStartupChannelSelection(input) {
|
|
|
3267
3317
|
selection: names.length > 0 ? { mode: "names", names } : void 0,
|
|
3268
3318
|
ownerHints,
|
|
3269
3319
|
tolerantNames,
|
|
3320
|
+
claimants: new Map(
|
|
3321
|
+
[...claimsByName].map(([name, claims]) => [
|
|
3322
|
+
name,
|
|
3323
|
+
claims.map((claim) => claim.workspaceCwd)
|
|
3324
|
+
])
|
|
3325
|
+
),
|
|
3270
3326
|
diagnostics
|
|
3271
3327
|
};
|
|
3272
3328
|
}
|
|
@@ -4117,12 +4173,12 @@ __name(hasRetryableChannelWorkerShutdownError, "hasRetryableChannelWorkerShutdow
|
|
|
4117
4173
|
var channelWorkerRuntimePromise;
|
|
4118
4174
|
async function loadChannelWorkerRuntime() {
|
|
4119
4175
|
channelWorkerRuntimePromise ??= Promise.all([
|
|
4120
|
-
import("./channel-worker-supervisor-
|
|
4121
|
-
import("./pidfile-
|
|
4122
|
-
import("./runtime-
|
|
4176
|
+
import("./channel-worker-supervisor-ENJ2AE2N.js"),
|
|
4177
|
+
import("./pidfile-QIBF53CW.js"),
|
|
4178
|
+
import("./runtime-2DAVBADX.js"),
|
|
4123
4179
|
import("./cli-entry-path-4VJ3Y6T2.js"),
|
|
4124
|
-
import("./channel-worker-group-
|
|
4125
|
-
import("./channel-worker-manager-
|
|
4180
|
+
import("./channel-worker-group-QNX4OIMZ.js"),
|
|
4181
|
+
import("./channel-worker-manager-IJCPV4WY.js")
|
|
4126
4182
|
]).then(
|
|
4127
4183
|
([
|
|
4128
4184
|
supervisor,
|
|
@@ -4229,7 +4285,7 @@ function shouldPreheatBridge(deps) {
|
|
|
4229
4285
|
__name(shouldPreheatBridge, "shouldPreheatBridge");
|
|
4230
4286
|
var coreRuntimePromise;
|
|
4231
4287
|
function loadCoreRuntime() {
|
|
4232
|
-
coreRuntimePromise ??= import("./core-runtime-
|
|
4288
|
+
coreRuntimePromise ??= import("./core-runtime-5CAK5DSM.js");
|
|
4233
4289
|
return coreRuntimePromise;
|
|
4234
4290
|
}
|
|
4235
4291
|
__name(loadCoreRuntime, "loadCoreRuntime");
|
|
@@ -4265,10 +4321,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
|
|
|
4265
4321
|
var settingsRuntimePromise;
|
|
4266
4322
|
function loadSettingsRuntimeModules() {
|
|
4267
4323
|
settingsRuntimePromise ??= Promise.all([
|
|
4268
|
-
import("./settings-
|
|
4269
|
-
import("./environment-
|
|
4270
|
-
import("./loadedSettingsAdapter-
|
|
4271
|
-
import("./trustedFolders-
|
|
4324
|
+
import("./settings-FPMUAVWD.js"),
|
|
4325
|
+
import("./environment-Q2BVTUQO.js"),
|
|
4326
|
+
import("./loadedSettingsAdapter-EKXSRWMY.js"),
|
|
4327
|
+
import("./trustedFolders-3WNZBUH7.js")
|
|
4272
4328
|
]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
|
|
4273
4329
|
settings,
|
|
4274
4330
|
environment,
|
|
@@ -4281,8 +4337,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
|
|
|
4281
4337
|
var channelWebhookConfigRuntimePromise;
|
|
4282
4338
|
function loadChannelWebhookConfigRuntime() {
|
|
4283
4339
|
channelWebhookConfigRuntimePromise ??= Promise.all([
|
|
4284
|
-
import("./runtime-
|
|
4285
|
-
import("./config-utils-
|
|
4340
|
+
import("./runtime-2DAVBADX.js"),
|
|
4341
|
+
import("./config-utils-3IOTAFBG.js")
|
|
4286
4342
|
]).then(([channelRuntime, configUtils]) => ({
|
|
4287
4343
|
loadChannelsConfig: channelRuntime.loadChannelsConfig,
|
|
4288
4344
|
parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
|
|
@@ -4309,19 +4365,19 @@ async function loadServeRuntimeModules() {
|
|
|
4309
4365
|
workspaceRuntimeCoordinatorModule,
|
|
4310
4366
|
promptLedgerModule
|
|
4311
4367
|
] = await Promise.all([
|
|
4312
|
-
import("./server-
|
|
4313
|
-
import("./bridge-
|
|
4314
|
-
import("./spawnChannel-
|
|
4368
|
+
import("./server-MJETIFJS.js"),
|
|
4369
|
+
import("./bridge-BUCSJHCE.js"),
|
|
4370
|
+
import("./spawnChannel-DBSAAUUT.js"),
|
|
4315
4371
|
import("./process-registry-MDKO6QY2.js"),
|
|
4316
|
-
import("./workspace-service-
|
|
4372
|
+
import("./workspace-service-M3ZKR6WL.js"),
|
|
4317
4373
|
import("./types-HKLPXZB3.js"),
|
|
4318
|
-
import("./daemon-status-provider-
|
|
4319
|
-
import("./workspace-providers-status-
|
|
4320
|
-
import("./workspace-skills-status-
|
|
4321
|
-
import("./total-session-admission-
|
|
4322
|
-
import("./workspace-registry-
|
|
4323
|
-
import("./workspace-runtime-coordinator-
|
|
4324
|
-
import("./prompt-terminal-ledger-
|
|
4374
|
+
import("./daemon-status-provider-GG64ZJR3.js"),
|
|
4375
|
+
import("./workspace-providers-status-I5MO7Z2T.js"),
|
|
4376
|
+
import("./workspace-skills-status-OC3EYL7U.js"),
|
|
4377
|
+
import("./total-session-admission-UWMJWTWP.js"),
|
|
4378
|
+
import("./workspace-registry-2UKNZO5M.js"),
|
|
4379
|
+
import("./workspace-runtime-coordinator-TKCI5WJW.js"),
|
|
4380
|
+
import("./prompt-terminal-ledger-LXFVLR6C.js")
|
|
4325
4381
|
]);
|
|
4326
4382
|
return {
|
|
4327
4383
|
createServeApp: serverModule.createServeApp,
|
|
@@ -4562,6 +4618,7 @@ function createBootstrapServeApp(input) {
|
|
|
4562
4618
|
getRuntimeError,
|
|
4563
4619
|
getChannelWorkerSnapshot,
|
|
4564
4620
|
getChannelWorkerSnapshots,
|
|
4621
|
+
getChannelRestoreFailures,
|
|
4565
4622
|
onHealthServed
|
|
4566
4623
|
} = input;
|
|
4567
4624
|
const app = (0, import_express.default)();
|
|
@@ -4659,6 +4716,7 @@ function createBootstrapServeApp(input) {
|
|
|
4659
4716
|
};
|
|
4660
4717
|
const daemonLogStatus = daemonLog.getStatus();
|
|
4661
4718
|
const issues = [issue];
|
|
4719
|
+
pushChannelRestoreIssues(issues, getChannelRestoreFailures());
|
|
4662
4720
|
if (daemonLogStatus.health === "degraded") {
|
|
4663
4721
|
issues.push({
|
|
4664
4722
|
code: "daemon_log_degraded",
|
|
@@ -5432,7 +5490,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5432
5490
|
let workspaceRegistrationStore = deps.workspaceRegistrationStore;
|
|
5433
5491
|
const explicitWorkspaceCount = workspaceInputs.length;
|
|
5434
5492
|
if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
|
|
5435
|
-
const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-
|
|
5493
|
+
const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-CBHKV34L.js");
|
|
5436
5494
|
workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
|
|
5437
5495
|
}
|
|
5438
5496
|
if (workspaceRegistrationStore) {
|
|
@@ -5550,9 +5608,22 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5550
5608
|
});
|
|
5551
5609
|
loggerLifecycle.initialized(daemonLog);
|
|
5552
5610
|
let channelSelectionFromSettings = false;
|
|
5553
|
-
|
|
5611
|
+
const channelSelectionFromFlag = opts.channelSelection !== void 0;
|
|
5612
|
+
const bootChannelOwnerHints = /* @__PURE__ */ new Map();
|
|
5554
5613
|
let channelOwnerHints = /* @__PURE__ */ new Map();
|
|
5555
5614
|
let channelStartupTolerantNames = /* @__PURE__ */ new Set();
|
|
5615
|
+
const lateRestoredWorkspaces = /* @__PURE__ */ new Set();
|
|
5616
|
+
let bootChannelClaimants = /* @__PURE__ */ new Map();
|
|
5617
|
+
const channelRestoreFailures = createChannelRestoreFailures({
|
|
5618
|
+
isStale: /* @__PURE__ */ __name((failure) => {
|
|
5619
|
+
if (channelWorkerManager?.committedChannelNames().includes(failure.channel)) {
|
|
5620
|
+
return true;
|
|
5621
|
+
}
|
|
5622
|
+
const registry = (runtimeApp ?? runtimeAppForCleanup)?.locals?.["workspaceRegistry"];
|
|
5623
|
+
return registry ? !registry.getByWorkspaceCwd(failure.workspaceCwd) : false;
|
|
5624
|
+
}, "isStale")
|
|
5625
|
+
});
|
|
5626
|
+
let channelHostingStoppedByOperator = false;
|
|
5556
5627
|
const reportConfiguredChannelStartupFailure = /* @__PURE__ */ __name((error) => {
|
|
5557
5628
|
const message = sanitizeLogText(
|
|
5558
5629
|
redactLogCredentials(
|
|
@@ -5600,6 +5671,20 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5600
5671
|
workspaceCwd: workspace.cwd,
|
|
5601
5672
|
primary: index === 0
|
|
5602
5673
|
}));
|
|
5674
|
+
const loadStartupChannelsFor = /* @__PURE__ */ __name((workspaceCwd) => (workspaceCwd === boundWorkspace ? bootSettings : loadServeFastPathSettings(workspaceCwd))?.serve?.channels, "loadStartupChannelsFor");
|
|
5675
|
+
const startupChannelsForWorkspace = /* @__PURE__ */ __name((workspaceCwd) => {
|
|
5676
|
+
const restored = resolveStartupChannelSelection({
|
|
5677
|
+
// Never the primary workspace, and read from disk rather than from the
|
|
5678
|
+
// boot snapshot: this runs long after boot, and the file may have been
|
|
5679
|
+
// edited since — through the management API among other things.
|
|
5680
|
+
workspaces: [{ workspaceCwd, primary: false }],
|
|
5681
|
+
loadStartupChannels: /* @__PURE__ */ __name((cwd) => loadServeFastPathSettings(cwd)?.serve?.channels, "loadStartupChannels")
|
|
5682
|
+
});
|
|
5683
|
+
for (const diagnostic of restored.diagnostics) {
|
|
5684
|
+
reportStartupChannelDiagnostic(diagnostic);
|
|
5685
|
+
}
|
|
5686
|
+
return restored.selection?.mode === "names" ? restored.selection.names : [];
|
|
5687
|
+
}, "startupChannelsForWorkspace");
|
|
5603
5688
|
if (!opts.channelSelection && (bootSettings?.serve?.channels !== void 0 || startupChannelWorkspaces.length > 1)) {
|
|
5604
5689
|
try {
|
|
5605
5690
|
const restored = resolveStartupChannelSelection({
|
|
@@ -5608,9 +5693,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5608
5693
|
// registered workspace is read here, through the same loader, so a
|
|
5609
5694
|
// secondary workspace contributes exactly what it would contribute if
|
|
5610
5695
|
// it were the one the daemon bound to.
|
|
5611
|
-
loadStartupChannels:
|
|
5612
|
-
workspaceCwd
|
|
5613
|
-
))?.serve?.channels, "loadStartupChannels")
|
|
5696
|
+
loadStartupChannels: loadStartupChannelsFor
|
|
5614
5697
|
});
|
|
5615
5698
|
for (const diagnostic of restored.diagnostics) {
|
|
5616
5699
|
reportStartupChannelDiagnostic(diagnostic);
|
|
@@ -5618,14 +5701,21 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5618
5701
|
opts.channelSelection = restored.selection;
|
|
5619
5702
|
if (opts.channelSelection) {
|
|
5620
5703
|
channelSelectionFromSettings = true;
|
|
5621
|
-
|
|
5622
|
-
|
|
5704
|
+
for (const [name, owner] of restored.ownerHints) {
|
|
5705
|
+
bootChannelOwnerHints.set(name, owner);
|
|
5706
|
+
}
|
|
5707
|
+
channelOwnerHints = new Map(bootChannelOwnerHints);
|
|
5623
5708
|
channelStartupTolerantNames = restored.tolerantNames;
|
|
5709
|
+
bootChannelClaimants = restored.claimants;
|
|
5624
5710
|
channelRuntime = await ensureChannelRuntime();
|
|
5625
5711
|
daemonLog.info("restoring channels from workspace serve.channels", {
|
|
5626
5712
|
channels: channelSelectionNames(opts.channelSelection),
|
|
5627
5713
|
workspaceCwd: boundWorkspace,
|
|
5628
|
-
...restored.ownerHints.size > 0 ? {
|
|
5714
|
+
...restored.ownerHints.size > 0 ? {
|
|
5715
|
+
// The daemon log renders each field with String(), so an
|
|
5716
|
+
// object here would print as "[object Object]".
|
|
5717
|
+
requestedByWorkspace: [...restored.ownerHints].map(([name, owner]) => `${name}@${owner}`).join(",")
|
|
5718
|
+
} : {}
|
|
5629
5719
|
});
|
|
5630
5720
|
}
|
|
5631
5721
|
} catch (error) {
|
|
@@ -5810,7 +5900,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5810
5900
|
"qwen serve: required external tool guard handshake succeeded."
|
|
5811
5901
|
);
|
|
5812
5902
|
}
|
|
5813
|
-
const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-
|
|
5903
|
+
const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-S3SFT3H7.js");
|
|
5814
5904
|
const daemonToolGuardHandler = createDaemonToolGuard(
|
|
5815
5905
|
externalToolGuardHandler
|
|
5816
5906
|
);
|
|
@@ -5979,8 +6069,39 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5979
6069
|
await manager.shutdown().catch(() => void 0);
|
|
5980
6070
|
throw daemonDrainingError();
|
|
5981
6071
|
}
|
|
5982
|
-
|
|
6072
|
+
const result = await manager.setSelection(selection);
|
|
6073
|
+
channelHostingStoppedByOperator = false;
|
|
6074
|
+
channelRestoreFailures.clearAll();
|
|
6075
|
+
return result;
|
|
5983
6076
|
}, "setChannelWorkerSelection");
|
|
6077
|
+
const channelStartupMessages = /* @__PURE__ */ __name((err) => {
|
|
6078
|
+
const startupFailures = err?.startupFailures;
|
|
6079
|
+
return new Map(
|
|
6080
|
+
(Array.isArray(startupFailures) ? startupFailures : []).map((failure) => [failure.channel, failure.message])
|
|
6081
|
+
);
|
|
6082
|
+
}, "channelStartupMessages");
|
|
6083
|
+
const lateRestoreFailures = /* @__PURE__ */ __name((workspaceCwd, requested, err) => {
|
|
6084
|
+
const committed = new Set(channelWorkerManager?.committedChannelNames());
|
|
6085
|
+
const reported = channelStartupMessages(err);
|
|
6086
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
6087
|
+
return requested.filter((channel) => !committed.has(channel)).map((channel) => ({
|
|
6088
|
+
workspaceCwd,
|
|
6089
|
+
channel,
|
|
6090
|
+
message: reported.get(channel) ?? message
|
|
6091
|
+
}));
|
|
6092
|
+
}, "lateRestoreFailures");
|
|
6093
|
+
const addChannelsToSelection = /* @__PURE__ */ __name(async (names) => {
|
|
6094
|
+
if (channelControlDraining) throw daemonDrainingError();
|
|
6095
|
+
const manager = await ensureChannelWorkerManager?.();
|
|
6096
|
+
if (!manager) throw new Error("Channel worker manager is unavailable.");
|
|
6097
|
+
if (channelControlDraining) {
|
|
6098
|
+
await manager.shutdown().catch(() => void 0);
|
|
6099
|
+
throw daemonDrainingError();
|
|
6100
|
+
}
|
|
6101
|
+
await manager.addChannels(names, {
|
|
6102
|
+
precondition: /* @__PURE__ */ __name(() => !channelHostingStoppedByOperator, "precondition")
|
|
6103
|
+
});
|
|
6104
|
+
}, "addChannelsToSelection");
|
|
5984
6105
|
const stopChannelWorker = /* @__PURE__ */ __name(async () => {
|
|
5985
6106
|
if (channelControlDraining) throw daemonDrainingError();
|
|
5986
6107
|
const manager = channelWorkerManager ?? await channelWorkerManagerStarting;
|
|
@@ -5991,7 +6112,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
5991
6112
|
if (!manager) {
|
|
5992
6113
|
return { changed: false, state: getChannelWorkerControl() };
|
|
5993
6114
|
}
|
|
5994
|
-
|
|
6115
|
+
const result = await manager.stopSelection();
|
|
6116
|
+
if (result.changed) {
|
|
6117
|
+
channelHostingStoppedByOperator = true;
|
|
6118
|
+
channelRestoreFailures.clearAll();
|
|
6119
|
+
}
|
|
6120
|
+
return result;
|
|
5995
6121
|
}, "stopChannelWorker");
|
|
5996
6122
|
const reloadChannelWorker = /* @__PURE__ */ __name(async () => {
|
|
5997
6123
|
if (channelControlDraining) throw daemonDrainingError();
|
|
@@ -6161,7 +6287,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6161
6287
|
loadCoreRuntime(),
|
|
6162
6288
|
loadSettingsRuntimeModules(),
|
|
6163
6289
|
cliVersionPromise,
|
|
6164
|
-
import("./daemon-trust-policy-
|
|
6290
|
+
import("./daemon-trust-policy-XNWYLQ32.js")
|
|
6165
6291
|
]);
|
|
6166
6292
|
getWorkspaceRuntimeCoordinatorIfSupported = runtime.getWorkspaceRuntimeCoordinatorIfSupported;
|
|
6167
6293
|
cliVersion = resolvedCliVersion;
|
|
@@ -6614,7 +6740,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6614
6740
|
skillSettingStrings,
|
|
6615
6741
|
skillToggleBlockForName,
|
|
6616
6742
|
updateWorkspaceSkillSettingLists
|
|
6617
|
-
} = await import("./skill-settings-
|
|
6743
|
+
} = await import("./skill-settings-XW7X244B.js");
|
|
6618
6744
|
const fresh = loadSettingsForPersistence(workspace);
|
|
6619
6745
|
const workspaceDisabled = skillSettingStrings(
|
|
6620
6746
|
fresh,
|
|
@@ -6678,7 +6804,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6678
6804
|
skillSettingStrings,
|
|
6679
6805
|
skillToggleBlockForName,
|
|
6680
6806
|
updateWorkspaceSkillSettingLists
|
|
6681
|
-
} = await import("./skill-settings-
|
|
6807
|
+
} = await import("./skill-settings-XW7X244B.js");
|
|
6682
6808
|
const fresh = loadSettingsForPersistence(workspace);
|
|
6683
6809
|
const initialDisabled = skillSettingStrings(
|
|
6684
6810
|
fresh,
|
|
@@ -6791,10 +6917,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
6791
6917
|
}
|
|
6792
6918
|
}), "persistSettingsFn");
|
|
6793
6919
|
const [{ createSubSessionLauncher }, scheduledTaskRoutes] = await Promise.all([
|
|
6794
|
-
import("./create-sub-session-
|
|
6795
|
-
import("./scheduled-tasks-
|
|
6920
|
+
import("./create-sub-session-DG4CVOQC.js"),
|
|
6921
|
+
import("./scheduled-tasks-TGWYXZWW.js")
|
|
6796
6922
|
]);
|
|
6797
|
-
const { sessionAttachmentsRoots } = await import("./session-attachments-root-
|
|
6923
|
+
const { sessionAttachmentsRoots } = await import("./session-attachments-root-RONFQ3D3.js");
|
|
6798
6924
|
const createCurrentSessionScheduledTaskHandler = /* @__PURE__ */ __name((workspaceCwd, runtimeBaseDir, getBridge, assertGenerationOpen) => async ({
|
|
6799
6925
|
callerSessionId,
|
|
6800
6926
|
cron,
|
|
@@ -7651,7 +7777,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
7651
7777
|
};
|
|
7652
7778
|
sessionPrRefreshTimer?.dispose();
|
|
7653
7779
|
const refreshGeneration = ++sessionPrRefreshGeneration;
|
|
7654
|
-
void import("./session-pr-refresh-
|
|
7780
|
+
void import("./session-pr-refresh-ZPT6TAD4.js").then((mod) => {
|
|
7655
7781
|
if (refreshGeneration !== sessionPrRefreshGeneration) return;
|
|
7656
7782
|
sessionPrRefreshTimer = mod.startSessionPrRefreshTimer({
|
|
7657
7783
|
workspaceRegistry,
|
|
@@ -8084,22 +8210,67 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8084
8210
|
);
|
|
8085
8211
|
channelWebhookConfigVersion += 1;
|
|
8086
8212
|
refreshChannelWebhookConfigs?.();
|
|
8087
|
-
if (
|
|
8088
|
-
|
|
8089
|
-
|
|
8090
|
-
|
|
8091
|
-
|
|
8092
|
-
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8213
|
+
if (channelWorkerManager) {
|
|
8214
|
+
const manager = channelWorkerManager;
|
|
8215
|
+
const activatedCwd = runtimeAdded.workspaceCwd;
|
|
8216
|
+
const activatedTrusted = runtimeAdded.trusted;
|
|
8217
|
+
void (async () => {
|
|
8218
|
+
try {
|
|
8219
|
+
if (activatedTrusted) {
|
|
8220
|
+
await manager.restoreWorkspace(activatedCwd);
|
|
8221
|
+
}
|
|
8222
|
+
await manager.refreshWorkspaces();
|
|
8223
|
+
} catch (err) {
|
|
8224
|
+
daemonLog.error(
|
|
8225
|
+
"workspace channel worker startup error",
|
|
8226
|
+
err instanceof Error ? err : null
|
|
8227
|
+
);
|
|
8228
|
+
} finally {
|
|
8229
|
+
writeChannelWorkerPidfile();
|
|
8230
|
+
}
|
|
8231
|
+
})();
|
|
8232
|
+
}
|
|
8233
|
+
const workspaceCwd = runtimeAdded.workspaceCwd;
|
|
8234
|
+
if (!runtimeAdded.trusted || runtimeAdded.primary || channelSelectionFromFlag || lateRestoredWorkspaces.has(workspaceCwd) || // A remote workspace's `serve.channels` is not this daemon's to
|
|
8235
|
+
// host, the same exclusion boot applies.
|
|
8236
|
+
readSshWorkspace(workspaceCwd)) {
|
|
8237
|
+
return;
|
|
8238
|
+
}
|
|
8239
|
+
if (channelHostingStoppedByOperator) {
|
|
8240
|
+
daemonLog.info(
|
|
8241
|
+
"skipping serve.channels for a workspace registered after boot: channel hosting was stopped",
|
|
8242
|
+
{ workspaceCwd }
|
|
8243
|
+
);
|
|
8244
|
+
return;
|
|
8245
|
+
}
|
|
8246
|
+
if (channelWorkerManager?.state().selection?.mode === "all") {
|
|
8247
|
+
return;
|
|
8248
|
+
}
|
|
8249
|
+
const requested = startupChannelsForWorkspace(workspaceCwd);
|
|
8250
|
+
if (requested.length === 0) return;
|
|
8251
|
+
lateRestoredWorkspaces.add(workspaceCwd);
|
|
8252
|
+
daemonLog.info(
|
|
8253
|
+
"restoring serve.channels for a workspace registered after boot",
|
|
8254
|
+
{ workspaceCwd, channels: requested }
|
|
8255
|
+
);
|
|
8256
|
+
void addChannelsToSelection(requested).catch((err) => {
|
|
8096
8257
|
daemonLog.error(
|
|
8097
|
-
|
|
8098
|
-
|
|
8258
|
+
`serve.channels for a workspace registered after boot were not restored: ${sanitizeLogText(
|
|
8259
|
+
redactLogCredentials(
|
|
8260
|
+
err instanceof Error ? err.message : String(err)
|
|
8261
|
+
),
|
|
8262
|
+
512
|
|
8263
|
+
)}`,
|
|
8264
|
+
null,
|
|
8265
|
+
{ workspaceCwd }
|
|
8099
8266
|
);
|
|
8100
|
-
|
|
8267
|
+
if (channelControlDraining) return;
|
|
8268
|
+
channelRestoreFailures.record(
|
|
8269
|
+
lateRestoreFailures(workspaceCwd, requested, err)
|
|
8270
|
+
);
|
|
8271
|
+
}).finally(() => {
|
|
8101
8272
|
writeChannelWorkerPidfile();
|
|
8102
|
-
}
|
|
8273
|
+
});
|
|
8103
8274
|
},
|
|
8104
8275
|
beginDrain(runtimeToDrain) {
|
|
8105
8276
|
if (runtimeToDrain.primary) {
|
|
@@ -8335,13 +8506,14 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8335
8506
|
{ createChannelManagementService },
|
|
8336
8507
|
{ WorkspaceChannelSettingsStore }
|
|
8337
8508
|
] = await Promise.all([
|
|
8338
|
-
import("./channel-management-service-
|
|
8339
|
-
import("./channel-settings-store-
|
|
8509
|
+
import("./channel-management-service-Q2B7WUPL.js"),
|
|
8510
|
+
import("./channel-settings-store-U25CVEL6.js")
|
|
8340
8511
|
]);
|
|
8341
8512
|
return createChannelManagementService({
|
|
8342
8513
|
workspaceCwd: targetRuntime.workspaceCwd,
|
|
8343
8514
|
store: new WorkspaceChannelSettingsStore(targetRuntime.workspaceCwd),
|
|
8344
|
-
manager: await ensureChannelWorkerManager()
|
|
8515
|
+
manager: await ensureChannelWorkerManager(),
|
|
8516
|
+
restoreFailures: channelRestoreFailures
|
|
8345
8517
|
});
|
|
8346
8518
|
})();
|
|
8347
8519
|
channelManagementServices.set(targetRuntime, pending);
|
|
@@ -8427,6 +8599,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8427
8599
|
daemonLog,
|
|
8428
8600
|
getChannelWorkerSnapshot,
|
|
8429
8601
|
getChannelWorkerSnapshots,
|
|
8602
|
+
getChannelRestoreFailures: /* @__PURE__ */ __name(() => channelRestoreFailures.list(), "getChannelRestoreFailures"),
|
|
8430
8603
|
getChannelWorkerControl,
|
|
8431
8604
|
isChannelControlDraining: /* @__PURE__ */ __name(() => channelControlDraining, "isChannelControlDraining"),
|
|
8432
8605
|
isChannelControlInitializing: /* @__PURE__ */ __name(() => channelWorkerManagerStarting !== void 0, "isChannelControlInitializing"),
|
|
@@ -8499,7 +8672,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8499
8672
|
),
|
|
8500
8673
|
updateModelContextWindow: /* @__PURE__ */ __name((workspace, key, size, assertGenerationOpen) => withSettingsLock(workspace, async () => {
|
|
8501
8674
|
assertGenerationOpen();
|
|
8502
|
-
const { updateModelContextWindow } = await import("./model-configuration-
|
|
8675
|
+
const { updateModelContextWindow } = await import("./model-configuration-Q3MNGG3B.js");
|
|
8503
8676
|
return updateModelContextWindow(
|
|
8504
8677
|
loadSettingsForPersistence(workspace),
|
|
8505
8678
|
key,
|
|
@@ -8537,7 +8710,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8537
8710
|
const adapter = settingsRuntime.loadedSettingsAdapter.createLoadedSettingsAdapter(
|
|
8538
8711
|
fresh
|
|
8539
8712
|
);
|
|
8540
|
-
const { getAuthTypeFromEnv } = await import("./modelConfigUtils-
|
|
8713
|
+
const { getAuthTypeFromEnv } = await import("./modelConfigUtils-WC5XDR34.js");
|
|
8541
8714
|
const hasConversationAuth = adapter.getValue("security.auth.selectedType") || getAuthTypeFromEnv(primaryRuntimeEnv.effectiveEnv);
|
|
8542
8715
|
await core.applyProviderInstallPlan(plan, {
|
|
8543
8716
|
settings: adapter,
|
|
@@ -8576,8 +8749,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8576
8749
|
{ createWorkspaceTrustReconciler },
|
|
8577
8750
|
{ createDaemonTrustPolicyMonitor }
|
|
8578
8751
|
] = await Promise.all([
|
|
8579
|
-
import("./workspace-trust-reconciler-
|
|
8580
|
-
import("./daemon-trust-policy-monitor-
|
|
8752
|
+
import("./workspace-trust-reconciler-YQZSUOH4.js"),
|
|
8753
|
+
import("./daemon-trust-policy-monitor-DR5CRWMM.js")
|
|
8581
8754
|
]);
|
|
8582
8755
|
const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
|
|
8583
8756
|
const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
|
|
@@ -8756,6 +8929,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8756
8929
|
getRuntimeError: /* @__PURE__ */ __name(() => runtimeStartupError, "getRuntimeError"),
|
|
8757
8930
|
getChannelWorkerSnapshot,
|
|
8758
8931
|
getChannelWorkerSnapshots,
|
|
8932
|
+
getChannelRestoreFailures: /* @__PURE__ */ __name(() => channelRestoreFailures.list(), "getChannelRestoreFailures"),
|
|
8759
8933
|
onHealthServed: deferRuntimeUntilFirstHealth ? () => startRuntimeAfterHealth?.() : void 0
|
|
8760
8934
|
});
|
|
8761
8935
|
const deferredChannelWebhookAuth = deferRuntimeUntilFirstHealth ? createDeferredChannelWebhookAuth(
|
|
@@ -8774,7 +8948,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8774
8948
|
// through (and start the runtime) exactly like the warm app would.
|
|
8775
8949
|
// Dynamic import keeps web-shell-static out of the serve fast-path
|
|
8776
8950
|
// static closure (see the import-boundary guards in fast-path.test.ts).
|
|
8777
|
-
isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-
|
|
8951
|
+
isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-E3O6NW7Y.js").then(
|
|
8778
8952
|
(webShellStatic) => webShellStatic.isPreAuthWebShellRequest(req)
|
|
8779
8953
|
) : void 0
|
|
8780
8954
|
});
|
|
@@ -8903,7 +9077,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
8903
9077
|
if (opts.channelSelection) {
|
|
8904
9078
|
try {
|
|
8905
9079
|
channelValidationSettingsRuntime = await loadSettingsRuntimeModules();
|
|
8906
|
-
channelValidationTrustPolicy = await import("./daemon-trust-policy-
|
|
9080
|
+
channelValidationTrustPolicy = await import("./daemon-trust-policy-XNWYLQ32.js");
|
|
8907
9081
|
channelValidationTrustSnapshot = await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot();
|
|
8908
9082
|
if (opts.channelSelection.mode === "names" && workspaceInputs.length > MAX_CHANNEL_CONTROL_WORKSPACES) {
|
|
8909
9083
|
const resolved = resolveChannelWorkspaceGroupsAtListen();
|
|
@@ -9539,6 +9713,22 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
9539
9713
|
throw error2;
|
|
9540
9714
|
}
|
|
9541
9715
|
closeServerAfterChannelWorkerStartupFailure = false;
|
|
9716
|
+
if (opts.channelSelection?.mode === "names") {
|
|
9717
|
+
const reported = channelStartupMessages(error2);
|
|
9718
|
+
const message = error2 instanceof Error ? error2.message : String(error2);
|
|
9719
|
+
channelRestoreFailures.record(
|
|
9720
|
+
opts.channelSelection.names.flatMap((channel) => {
|
|
9721
|
+
const owners = bootChannelClaimants.get(channel) ?? [
|
|
9722
|
+
boundWorkspace
|
|
9723
|
+
];
|
|
9724
|
+
return owners.map((workspaceCwd) => ({
|
|
9725
|
+
workspaceCwd,
|
|
9726
|
+
channel,
|
|
9727
|
+
message: reported.get(channel) ?? message
|
|
9728
|
+
}));
|
|
9729
|
+
})
|
|
9730
|
+
);
|
|
9731
|
+
}
|
|
9542
9732
|
opts.channelSelection = void 0;
|
|
9543
9733
|
reportConfiguredChannelStartupFailure(error2);
|
|
9544
9734
|
try {
|
|
@@ -9973,6 +10163,15 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
|
|
|
9973
10163
|
code: skip.code,
|
|
9974
10164
|
channel: skip.channel
|
|
9975
10165
|
});
|
|
10166
|
+
channelRestoreFailures.record(
|
|
10167
|
+
(bootChannelClaimants.get(skip.channel) ?? []).map(
|
|
10168
|
+
(workspaceCwd) => ({
|
|
10169
|
+
workspaceCwd,
|
|
10170
|
+
channel: skip.channel,
|
|
10171
|
+
message: skip.message
|
|
10172
|
+
})
|
|
10173
|
+
)
|
|
10174
|
+
);
|
|
9976
10175
|
}
|
|
9977
10176
|
if (resolved.skipped.length > 0) {
|
|
9978
10177
|
const hosted = new Set(
|