@qwen-code/qwen-code 0.22.0-nightly.20260825.22bb5e8b9f → 0.22.1
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/coordinate/SKILL.md +3 -3
- package/bundled/qc-helper/docs/configuration/model-providers.md +2 -0
- package/bundled/qc-helper/docs/configuration/settings.md +6 -6
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +3 -3
- package/bundled/qc-helper/docs/features/code-review.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +2 -0
- package/bundled/review/SKILL.md +47 -12
- package/bundled/review/references/persistence.md +6 -6
- package/bundled/review/references/posting.md +2 -2
- package/chunks/MaxSizedBox-UUTUE42J.js +112 -0
- package/chunks/{StandaloneSessionPicker-NEWUAPCT.js → StandaloneSessionPicker-XF2TVJFK.js} +78 -77
- package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
- package/chunks/{acpAgent-A5CIQGW6.js → acpAgent-GY53MJIW.js} +254 -158
- package/chunks/{agent-TQ6CYOIL.js → agent-7U6CC5KF.js} +41 -41
- package/chunks/agent-headless-32O4L2CT.js +87 -0
- package/chunks/{anthropicContentGenerator-FSBGS426.js → anthropicContentGenerator-U76GTVB6.js} +7 -7
- package/chunks/{artifact-tool-UQTNZDUF.js → artifact-tool-XDJCZZCF.js} +2 -2
- package/chunks/{askUserQuestion-BSZALR7M.js → askUserQuestion-ZXXERLEV.js} +2 -2
- package/chunks/{bridge-MBOVCHXN.js → bridge-DFX2FFH4.js} +57 -56
- package/chunks/{ca-DZBZOMLU.js → ca-7HPYOYSZ.js} +1 -0
- package/chunks/{channel-management-service-XGGL6PLF.js → channel-management-service-HXXS3HOZ.js} +4 -4
- package/chunks/channel-settings-store-ELLH2M4M.js +117 -0
- package/chunks/{channel-worker-group-GIXIF4VT.js → channel-worker-group-EVDC2P4K.js} +5 -5
- package/chunks/{channel-worker-manager-ZBSYXJEB.js → channel-worker-manager-IJJZHGEI.js} +5 -5
- package/chunks/{channel-worker-supervisor-NI6JEY4Q.js → channel-worker-supervisor-YSKB5GVB.js} +9 -5
- package/chunks/{chunk-CPZQJP6J.js → chunk-27ONXAFY.js} +1 -1
- package/chunks/{chunk-FXNLH7E6.js → chunk-2CRNTW2B.js} +18 -2
- package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
- package/chunks/{chunk-YX4II73B.js → chunk-2FN2HNTI.js} +2 -2
- package/chunks/{chunk-7KGJGYGA.js → chunk-2MHGD7EE.js} +1 -1
- package/chunks/{chunk-H5K5MRU7.js → chunk-2NCVUT3C.js} +4 -4
- package/chunks/{chunk-VLEGGCEA.js → chunk-2NNTE2ED.js} +171 -1
- package/chunks/{chunk-LNKZTLTH.js → chunk-2SERYG4T.js} +1 -1
- package/chunks/{chunk-UEHH33VE.js → chunk-2YDYDDE2.js} +6 -6
- package/chunks/{chunk-U7GJPTEY.js → chunk-2YEZNBSD.js} +66 -60
- package/chunks/{chunk-L6PFEZUM.js → chunk-2ZV3CZKI.js} +82 -12
- package/chunks/{chunk-36XTQW3N.js → chunk-3B5DCAQU.js} +28 -11
- package/chunks/{chunk-DE24WTEJ.js → chunk-3BV7TZNQ.js} +3 -3
- package/chunks/{chunk-IKPQM6I5.js → chunk-3FSBMAYD.js} +1 -1
- package/chunks/{chunk-J54EA46E.js → chunk-3UZCLCXR.js} +3 -3
- package/chunks/{chunk-ZROP2DTX.js → chunk-43C2II2G.js} +5 -5
- package/chunks/{chunk-2ZH5XAOO.js → chunk-47SIHHPL.js} +8 -8
- package/chunks/{chunk-EEBIINBT.js → chunk-4DCP3362.js} +6 -14
- package/chunks/{chunk-DF6DJZIX.js → chunk-4TPAG3O7.js} +1 -1
- package/chunks/{chunk-6L5EXDDN.js → chunk-5CI4AXDD.js} +4 -4
- package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
- package/chunks/{chunk-YPJVAQ7V.js → chunk-5MK32KJV.js} +3 -3
- package/chunks/{chunk-XXA72PGJ.js → chunk-5T4LWWNX.js} +2 -2
- package/chunks/{chunk-NA6AZRDQ.js → chunk-5Y2JCJAH.js} +2 -2
- package/chunks/{chunk-3ROKI6MD.js → chunk-5ZYZPDDF.js} +978 -886
- package/chunks/{chunk-U4SJGOBF.js → chunk-62PXFOK4.js} +4 -4
- package/chunks/{chunk-SKXXO64C.js → chunk-6E4WHQJV.js} +1 -1
- package/chunks/{chunk-6Y7XMJFF.js → chunk-6HTMIKXZ.js} +6 -6
- package/chunks/{chunk-MGEXTDBI.js → chunk-6KS24S3X.js} +2 -2
- package/chunks/{chunk-ZJWFRMCY.js → chunk-6US7BF3G.js} +2 -2
- package/chunks/{chunk-RSOG6JND.js → chunk-6YAR6ZU3.js} +2 -2
- package/chunks/{chunk-Z3GFRVAY.js → chunk-73WFGVIZ.js} +3 -3
- package/chunks/{chunk-IX3CWNG7.js → chunk-76WGY6LW.js} +3 -3
- package/chunks/{chunk-CGWPQ6IM.js → chunk-77TOMRBG.js} +3 -3
- package/chunks/{chunk-JVTU5JYO.js → chunk-7AS7QX72.js} +1 -1
- package/chunks/{chunk-RLIS2VLZ.js → chunk-7DPKPBOQ.js} +2 -2
- package/chunks/{chunk-XQNWTA4Y.js → chunk-7JPW6IYH.js} +1 -1
- package/chunks/{chunk-UEY5WCRB.js → chunk-7QGEJI7M.js} +1 -1
- package/chunks/{chunk-GWUZOBCQ.js → chunk-A7X32SCT.js} +5 -5
- package/chunks/{chunk-R7Q5V3A5.js → chunk-AYVIGUUK.js} +1 -1
- package/chunks/{chunk-AIT6BMBI.js → chunk-BDHLBR46.js} +17 -3
- package/chunks/{chunk-3G6MRLTM.js → chunk-BKDAF7ES.js} +2 -2
- package/chunks/{chunk-5AHCPETA.js → chunk-BQBUZDDH.js} +3 -3
- package/chunks/{chunk-3KV5KXKU.js → chunk-BVE5EMIG.js} +2 -2
- package/chunks/{chunk-NDVTSFWZ.js → chunk-BX2BZPFJ.js} +3 -3
- package/chunks/{chunk-7UVAWPYG.js → chunk-C4WBKZJT.js} +4 -4
- package/chunks/{chunk-HYBEI2LH.js → chunk-CITGRGCM.js} +2 -1
- package/chunks/{chunk-TEQKBONY.js → chunk-CPPYZHBN.js} +1 -1
- package/chunks/chunk-DCSAVGDJ.js +20 -0
- package/chunks/{chunk-RSWDOHXS.js → chunk-DEYPMJPD.js} +1 -1
- package/chunks/{chunk-OWE7TE3F.js → chunk-DP7LABIB.js} +1 -1
- package/chunks/{chunk-LQF4PWEU.js → chunk-E4I5MVBR.js} +1 -1
- package/chunks/{chunk-NFDTDV37.js → chunk-E55H6BZ7.js} +4 -0
- package/chunks/{chunk-K623ENWT.js → chunk-E6FGMDFQ.js} +4 -0
- package/chunks/{chunk-QWTNAHCM.js → chunk-EAV3TENS.js} +3 -3
- package/chunks/{chunk-27HAGBZG.js → chunk-EB4VDXNI.js} +1 -1
- package/chunks/{chunk-RDPKOVXL.js → chunk-EC5BONC3.js} +1 -1
- package/chunks/{chunk-JHZIPJWY.js → chunk-EEQYTWGU.js} +5 -5
- package/chunks/{chunk-MFSV57XN.js → chunk-EKP3M4RF.js} +1 -1
- package/chunks/{chunk-R544UY5E.js → chunk-ELY4QVIB.js} +1 -1
- package/chunks/{chunk-PFCVB5ZI.js → chunk-EMGAVCBZ.js} +2 -2
- package/chunks/{chunk-JGDTCEBH.js → chunk-FJWICLG7.js} +1 -1
- package/chunks/{chunk-OXMS5HCS.js → chunk-FK4H3V6S.js} +5 -5
- package/chunks/{chunk-WANR3VVK.js → chunk-FN5C6C7G.js} +125 -60
- package/chunks/{chunk-5PVLDRGJ.js → chunk-FPH6TXD3.js} +1 -1
- package/chunks/{chunk-OY3ZSNQC.js → chunk-FVDQ5E67.js} +3 -3
- package/chunks/{chunk-J752LLEJ.js → chunk-GNMJNDZE.js} +1 -1
- package/chunks/{chunk-MSCVPOZR.js → chunk-GNRVKN76.js} +4 -4
- package/chunks/{chunk-FNZ42WN7.js → chunk-GTUKW3I6.js} +1 -1
- package/chunks/{chunk-NSPS67BG.js → chunk-GZJUCMH4.js} +1 -1
- package/chunks/{chunk-SNWAXNJ4.js → chunk-HJOWQUE2.js} +14 -11
- package/chunks/{chunk-3K5ORUVO.js → chunk-I32QCIK7.js} +1 -1
- package/chunks/{chunk-BOQRZ443.js → chunk-I6VVOZDK.js} +2 -2
- package/chunks/{chunk-KUPVZ4EO.js → chunk-I6YW3T3W.js} +207 -26
- package/chunks/{chunk-O6CS7VRT.js → chunk-ICWGPK23.js} +7 -7
- package/chunks/{chunk-EFT2T2LA.js → chunk-IJVDHPKD.js} +2 -2
- package/chunks/{chunk-SEMN7BNM.js → chunk-IKN3IUJP.js} +9 -8
- package/chunks/{chunk-O5ONGZGZ.js → chunk-ILPXSKGQ.js} +2 -2
- package/chunks/{chunk-QQQSUCC4.js → chunk-IPQA4SR5.js} +1 -1
- package/chunks/{chunk-SXBRB7ZP.js → chunk-IRIX323G.js} +2 -2
- package/chunks/{chunk-EJ5XRNOK.js → chunk-J7MLXFC5.js} +2 -2
- package/chunks/{chunk-KDGY3ST4.js → chunk-JECO75XD.js} +2 -2
- package/chunks/chunk-JLGFGPZJ.js +346 -0
- package/chunks/{chunk-COT2IXPM.js → chunk-JUIJ3FXC.js} +5 -5
- package/chunks/{chunk-IFWUT4GY.js → chunk-JVPFTDBK.js} +1 -1
- package/chunks/{chunk-455ZIBFX.js → chunk-K63NK3KL.js} +13 -13
- package/chunks/{chunk-MBLNXX3G.js → chunk-KCOXDRQL.js} +5 -5
- package/chunks/{chunk-3LUGIYS3.js → chunk-KOJ6MHD5.js} +3 -1
- package/chunks/{chunk-W4JA6Z44.js → chunk-KWFP3WV6.js} +9 -7
- package/chunks/{chunk-QKSMM4HF.js → chunk-L436XFLJ.js} +1 -1
- package/chunks/{chunk-M4TV7AJX.js → chunk-LI2HEMKO.js} +4 -4
- package/chunks/{chunk-FLTGTSLG.js → chunk-LJP2BBMK.js} +4 -4
- package/chunks/{chunk-HTIG2U5C.js → chunk-LRKMQPMD.js} +1 -1
- package/chunks/{chunk-YS4H3OFV.js → chunk-MDZO5V2O.js} +6 -6
- package/chunks/{chunk-2HYQZYPT.js → chunk-MW5AHWOZ.js} +7 -7
- package/chunks/{chunk-SJDR2S55.js → chunk-MYLXL7F6.js} +11 -11
- package/chunks/{chunk-PIZZIIEA.js → chunk-MZS7GEC7.js} +1 -1
- package/chunks/{chunk-H3JIT2M6.js → chunk-NER3H7PI.js} +1 -1
- package/chunks/{chunk-XYUJPDPB.js → chunk-NVK4HJYQ.js} +1 -1
- package/chunks/{chunk-GQQHY6TL.js → chunk-NY3IJYAV.js} +7 -7
- package/chunks/{chunk-3E53DKST.js → chunk-O3BUXIPM.js} +3 -3
- package/chunks/{chunk-QOUFO7TV.js → chunk-O5YGAEQS.js} +6 -6
- package/chunks/{chunk-OINGLDAX.js → chunk-ODXCSIH5.js} +4 -4
- package/chunks/{chunk-FMDWTE5I.js → chunk-OI2DR6QB.js} +2 -2
- package/chunks/{chunk-ENZMDVCM.js → chunk-OQ6LTSX3.js} +1 -1
- package/chunks/{chunk-KUDADN3R.js → chunk-OT26ITEY.js} +3 -3
- package/chunks/{chunk-FZUVUBYH.js → chunk-OX44MOAN.js} +3 -3
- package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
- package/chunks/{chunk-D2IGZJA7.js → chunk-PAJGKZAA.js} +272 -3
- package/chunks/{chunk-MTKBZIXU.js → chunk-PVBT5QPD.js} +1 -1
- package/chunks/{chunk-HDH5IDJH.js → chunk-R2ZJH3FV.js} +3 -3
- package/chunks/{chunk-SJLW5XGQ.js → chunk-RRKNX553.js} +1 -1
- package/chunks/{chunk-JS55F2GJ.js → chunk-SDVF6A42.js} +3 -3
- package/chunks/{chunk-DZPWZPGJ.js → chunk-SKNVVYIJ.js} +3 -3
- package/chunks/{chunk-SIC4S3RX.js → chunk-SLEWBQWM.js} +2 -2
- package/chunks/{chunk-P7DVAZKV.js → chunk-SM7ZVKTF.js} +7 -7
- package/chunks/{chunk-3N7EFOOM.js → chunk-SQPOJ4ZI.js} +11 -1
- package/chunks/{chunk-YOM3CJOP.js → chunk-SRGENTPF.js} +19 -19
- package/chunks/{chunk-ZB7VDPZB.js → chunk-T2CRBIDJ.js} +1 -1
- package/chunks/{chunk-F37T2S4O.js → chunk-T2HMXHYA.js} +6 -6
- package/chunks/{chunk-5X33EPHJ.js → chunk-T6OODF2U.js} +1 -1
- package/chunks/{chunk-7GECZMES.js → chunk-TKO4TLT6.js} +3 -3
- package/chunks/{chunk-PQ4RTSTH.js → chunk-TOF4UZHH.js} +3 -3
- package/chunks/{chunk-LD76HNCC.js → chunk-UCSV2IZW.js} +3 -3
- package/chunks/{chunk-EUZE3GSL.js → chunk-UX3IFLJM.js} +93 -9
- package/chunks/{chunk-AHQBSQYT.js → chunk-V3GINY6K.js} +3 -3
- package/chunks/{chunk-DD5XZICM.js → chunk-VL4YX3FH.js} +1 -1
- package/chunks/{chunk-DLYJ3RN7.js → chunk-VMDURMFY.js} +58 -32
- package/chunks/{chunk-E6BJFSLJ.js → chunk-W2WRNJKX.js} +6 -6
- package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
- package/chunks/{chunk-QKGJIP2H.js → chunk-WBT3STGU.js} +1 -1
- package/chunks/{chunk-X3PRXXUH.js → chunk-WEGXPP5E.js} +1 -1
- package/chunks/{chunk-V6R3IEHF.js → chunk-XJS54K4A.js} +2 -2
- package/chunks/{chunk-NDJ3436G.js → chunk-XNXWEGKB.js} +3 -3
- package/chunks/{chunk-UFWRXRQ5.js → chunk-XYX474JQ.js} +1312 -290
- package/chunks/{chunk-UY2JOZK7.js → chunk-ZEADBZLO.js} +3 -3
- package/chunks/{chunk-SNJOBGQV.js → chunk-ZJG323IA.js} +4 -3
- package/chunks/{chunk-CZIF7I53.js → chunk-ZKAZP2ZG.js} +2 -2
- package/chunks/{chunk-DV3KOUUU.js → chunk-ZLTEQYNC.js} +2 -2
- package/chunks/{chunk-RLR7K4JJ.js → chunk-ZWKGZB2K.js} +3 -3
- package/chunks/{chunk-EJ2GPZDU.js → chunk-ZXDM7DYV.js} +1049 -383
- package/chunks/config-utils-7M6PCTLT.js +113 -0
- package/chunks/contextCommand-G4QG3TW6.js +108 -0
- package/chunks/{core-runtime-SZFD2YQA.js → core-runtime-PKNQ63VL.js} +53 -52
- package/chunks/{create-sub-session-OXESCUS7.js → create-sub-session-PLGPY6TV.js} +53 -52
- package/chunks/{create-sub-session-5ZLCAS2P.js → create-sub-session-RVHSWVAP.js} +3 -3
- package/chunks/{cron-create-P4CPPO25.js → cron-create-IJGVR5R2.js} +4 -4
- package/chunks/{cron-delete-FPD75GL4.js → cron-delete-4N5BI6GL.js} +4 -4
- package/chunks/{cron-list-QPML4MWL.js → cron-list-2CATIPUX.js} +4 -4
- package/chunks/{daemon-HY4AVTUM.js → daemon-NAYK4XXU.js} +34 -12
- package/chunks/{daemon-git-worktree-guard-EAVTZ6CE.js → daemon-git-worktree-guard-LDBJXH2U.js} +331 -86
- package/chunks/daemon-status-provider-F5FEHVVG.js +118 -0
- package/chunks/daemon-trust-policy-C6YTU5CQ.js +114 -0
- package/chunks/{daemon-trust-policy-monitor-ITF54474.js → daemon-trust-policy-monitor-IGEJPHQ4.js} +59 -58
- package/chunks/{deferred-core-runtime-WQ4NQA3N.js → deferred-core-runtime-GHT3GDOR.js} +53 -52
- package/chunks/{display-image-HOBBUJS5.js → display-image-DR55LL6M.js} +5 -5
- package/chunks/dist-4Q7NTUNB.js +2512 -0
- package/chunks/{dist-RW4QZD3K.js → dist-6H6RZ5H6.js} +2 -2
- package/chunks/{dist-ZUWCGMJ4.js → dist-7CKN54NL.js} +1 -1
- package/chunks/{dist-ZQJEKFZH.js → dist-DJBNNPLN.js} +1 -1
- package/chunks/{dist-5BX3J3AL.js → dist-FVJZSIO4.js} +28 -7
- package/chunks/{dist-OB6D7E7T.js → dist-SATKXKUR.js} +1 -1
- package/chunks/{dist-MEANA2OS.js → dist-TJUDJTCB.js} +1 -1
- package/chunks/{dist-4LRFQF7R.js → dist-UQUFZDIY.js} +1 -1
- package/chunks/{dist-7HGG7XLA.js → dist-ZBVOXSKF.js} +1 -1
- package/chunks/earlyInputCapture-HOSJTLWP.js +109 -0
- package/chunks/{edit-4MZYBPF5.js → edit-KSPVUEAS.js} +42 -42
- package/chunks/{en-X66KZS7T.js → en-6MDBWMTG.js} +1 -0
- package/chunks/{enter-worktree-WNR4JUPU.js → enter-worktree-UOZ6ZTP7.js} +7 -7
- package/chunks/{enterPlanMode-2EL6YAM5.js → enterPlanMode-DZTABSKN.js} +41 -41
- package/chunks/{environment-4QYNT2L3.js → environment-JXOSW25V.js} +57 -54
- package/chunks/{errors-N66MMOYD.js → errors-IOXFDE4J.js} +55 -54
- package/chunks/{exit-worktree-BUHUM6YC.js → exit-worktree-G2QATUCV.js} +7 -7
- package/chunks/{exitPlanMode-F73VQJBO.js → exitPlanMode-PZG4FXRB.js} +41 -41
- package/chunks/{fast-path-3L4YK6SO.js → fast-path-EBS7NAVL.js} +2 -2
- package/chunks/{gemini-4PINQJWX.js → gemini-JELEKOVS.js} +107 -103
- package/chunks/{geminiContentGenerator-7T7IU2V5.js → geminiContentGenerator-I2CKP7XI.js} +8 -8
- package/chunks/{glob-TWUYSRRG.js → glob-TDVEVPQZ.js} +41 -41
- package/chunks/{goal-tools-FTDQHRRX.js → goal-tools-CNVXMSZD.js} +70 -27
- package/chunks/{grep-QUQ3J6SR.js → grep-3NLSS32D.js} +6 -6
- package/chunks/handleAutoUpdate-AWAGHKOX.js +111 -0
- package/chunks/{i18n-Q6K7AX7Y.js → i18n-CYA25C5F.js} +54 -53
- package/chunks/{image-gen-RYOBEDNB.js → image-gen-63NN2H5N.js} +9 -9
- package/chunks/initializer-JD2FLNLO.js +115 -0
- package/chunks/installationInfo-N3DCWVWR.js +109 -0
- package/chunks/{keychain-token-storage-LQTBIXSX.js → keychain-token-storage-3MGFRYGM.js} +2 -2
- package/chunks/list-XDQAUET5.js +118 -0
- package/chunks/{list-agents-522ILPAR.js → list-agents-EXRSHIDJ.js} +2 -2
- package/chunks/loadedSettingsAdapter-IK7H5JRK.js +112 -0
- package/chunks/{loggingContentGenerator-RTDUJF6Y.js → loggingContentGenerator-CZWUAHAI.js} +20 -20
- package/chunks/{loop-wakeup-VSA4TBIC.js → loop-wakeup-XBPB2BRO.js} +5 -5
- package/chunks/{ls-FUCLEBTL.js → ls-WFONAND2.js} +4 -4
- package/chunks/{lsp-FYP6TW4R.js → lsp-DUKPDUXN.js} +2 -2
- package/chunks/{managed-npm-update-NUDVKV7F.js → managed-npm-update-54W23SP5.js} +54 -53
- package/chunks/mcp-2E7ZLMEE.js +112 -0
- package/chunks/{monitor-AU2SG5OL.js → monitor-A4J5QRGJ.js} +41 -41
- package/chunks/nonInteractiveCli-ZNDXB62Y.js +185 -0
- package/chunks/{notebook-edit-TGU7XHIO.js → notebook-edit-4ANFZON5.js} +42 -42
- package/chunks/{openaiContentGenerator-QPFWSUPT.js → openaiContentGenerator-JCCJJQZC.js} +24 -24
- package/chunks/pidfile-DHV2Y7UD.js +113 -0
- package/chunks/{processUtils-ZSHN6VGJ.js → processUtils-JJAR56SO.js} +2 -2
- package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +107 -0
- package/chunks/{qwenContentGenerator-MEXKZX5O.js → qwenContentGenerator-5JM44ZSA.js} +46 -46
- package/chunks/{qwenOAuth2-QHHUP4KQ.js → qwenOAuth2-JIYAWXTW.js} +8 -8
- package/chunks/{read-file-T7ESVJAQ.js → read-file-N3E5DY7N.js} +12 -12
- package/chunks/{read-mcp-resource-5QGBDZ43.js → read-mcp-resource-7A7NFSFL.js} +2 -2
- package/chunks/read-package-up-6T6ICKR7.js +13 -0
- package/chunks/{record-artifact-K6BYYWXY.js → record-artifact-CPJ4IJSD.js} +4 -4
- package/chunks/report-findings-VFM5DENC.js +33 -0
- package/chunks/{request-shutdown-EUXDG4IH.js → request-shutdown-AXVOFN5C.js} +7 -7
- package/chunks/{resumeHistoryUtils-JFEAZEWW.js → resumeHistoryUtils-YQRITQAG.js} +60 -59
- package/chunks/{ripGrep-KOP6AHIX.js → ripGrep-NEIHKBKB.js} +17 -17
- package/chunks/{run-qwen-serve-IAVPTDB7.js → run-qwen-serve-IWGPZADI.js} +577 -67
- package/chunks/{runtime-ZICTJKT5.js → runtime-I76HPFUE.js} +64 -63
- package/chunks/{scheduler-YNVAANNX.js → scheduler-M6YL4K4I.js} +55 -54
- package/chunks/{sdk-exporters-http-GCVM7E4X.js → sdk-exporters-http-XXSKBD2C.js} +2 -2
- package/chunks/{sdk-impl-E3KA6NMY.js → sdk-impl-VPNBLV7I.js} +4 -4
- package/chunks/{send-message-EJUCEIKN.js → send-message-A2GXDX3B.js} +7 -7
- package/chunks/{serve-NF25WYMU.js → serve-XY5S63GN.js} +59 -58
- package/chunks/{server-7LKYWHCE.js → server-TWXRRREO.js} +605 -334
- package/chunks/{session-5FBBDYPI.js → session-IT5ZXU7A.js} +104 -99
- package/chunks/{settings-F7IXLQQW.js → settings-IX5HOOCG.js} +58 -57
- package/chunks/{shell-IJYC4BVX.js → shell-LZ55AAJB.js} +41 -41
- package/chunks/{skill-RTZU743G.js → skill-WSZ53D2R.js} +107 -23
- package/chunks/{skill-settings-ZOHS4J2E.js → skill-settings-5U7FTJIK.js} +58 -57
- package/chunks/{spawnChannel-JLKWUMTV.js → spawnChannel-TMC6VXGN.js} +55 -54
- package/chunks/{standalone-update-W44DUURE.js → standalone-update-CUYGWTR4.js} +55 -54
- package/chunks/{startInteractiveUI-7HPDSR7W.js → startInteractiveUI-O6BI2OSA.js} +219 -170
- package/chunks/{syntheticOutput-3ITPRJOB.js → syntheticOutput-5AJ444QT.js} +3 -3
- package/chunks/{task-create-USIZE733.js → task-create-CDJSOEQD.js} +11 -11
- package/chunks/{task-list-AWAJUPIP.js → task-list-BELMPA75.js} +5 -5
- package/chunks/{task-stop-I2CQSMDX.js → task-stop-U3S3KZG2.js} +2 -2
- package/chunks/{task-update-TFF2KJGL.js → task-update-77VCFDDZ.js} +11 -11
- package/chunks/{team-create-IU2A6HD3.js → team-create-UF4TMQEH.js} +41 -41
- package/chunks/{team-delete-E4C4AMPF.js → team-delete-YWFXX77L.js} +5 -5
- package/chunks/{team-plan-approval-BWI43D37.js → team-plan-approval-U57NSR6C.js} +41 -41
- package/chunks/{terminal-image-renderer-GQAMHJF2.js → terminal-image-renderer-DRL3BROJ.js} +55 -54
- package/chunks/theme-manager-HHJPUDRN.js +104 -0
- package/chunks/{todoWrite-ZUS3HGEF.js → todoWrite-435EO2CS.js} +4 -4
- package/chunks/{tool-search-TQNHT22X.js → tool-search-SV35UV72.js} +17 -17
- package/chunks/{total-session-admission-JMM73HNK.js → total-session-admission-TQI7TCTL.js} +57 -56
- package/chunks/{trustedFolders-BKQ2UXIB.js → trustedFolders-YKK67IP3.js} +54 -53
- package/chunks/{update-relaunch-WI7IWWCM.js → update-relaunch-DX7LVA4P.js} +5 -5
- package/chunks/{updateCheck-K6WUHPPT.js → updateCheck-6JRTKTUF.js} +58 -57
- package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +122 -0
- package/chunks/{validateNonInterActiveAuth-RXCZM7MM.js → validateNonInterActiveAuth-B26O4YJP.js} +100 -95
- package/chunks/{version-IRAYALVC.js → version-K5D7VJ4B.js} +2 -2
- package/chunks/{web-fetch-FUG5KGKQ.js → web-fetch-VFHZLLNZ.js} +16 -16
- package/chunks/{web-search-SO3LHSHP.js → web-search-AQE5A4J5.js} +9 -9
- package/chunks/{workflow-XJRA3GRI.js → workflow-XL6AEUZ7.js} +150 -52
- package/chunks/workspace-providers-status-H6TG34YV.js +116 -0
- package/chunks/{workspace-registration-store-LCB4GHNP.js → workspace-registration-store-I4U3V5LL.js} +1 -1
- package/chunks/{workspace-registry-QWPFWGEF.js → workspace-registry-2PWNIYNI.js} +57 -56
- package/chunks/{workspace-service-MPGLZJF6.js → workspace-service-4FGTUJLA.js} +65 -64
- package/chunks/workspace-skills-status-7VOLUDT6.js +115 -0
- package/chunks/{workspace-trust-reconciler-4QDDGBQZ.js → workspace-trust-reconciler-GJ466KCE.js} +65 -64
- package/chunks/write-file-PWOYCT2K.js +90 -0
- package/chunks/{zh-TW-FZ3ETVR2.js → zh-TW-MV4FWFB6.js} +1 -0
- package/chunks/{zh-K3OJZ5LI.js → zh-X3WGU6SI.js} +1 -0
- package/chunks/{zoom-image-TCBO2YL5.js → zoom-image-NYJPC3NI.js} +12 -12
- package/cli.js +13 -13
- package/locales/ca.js +1 -0
- package/locales/en.js +1 -0
- package/locales/zh-TW.js +1 -0
- package/locales/zh.js +1 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-hQsSuKY7.js → abnfDiagram-VCTEODGH-yq7z7Anb.js} +1 -1
- package/web-shell/assets/{arc-CpKLq3XD.js → arc-CbJO0xnT.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-Bplk1J-m.js → architectureDiagram-5GKGNRK7-CRh89421.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-B-cca4ej.js → blockDiagram-NRAW4CY4-C75KAhKv.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ8cn00E.js → c4Diagram-UCG6FXSJ-BzlMveFB.js} +1 -1
- package/web-shell/assets/channel-B3sGR79J.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DEQ2uYU0.js → chunk-2Q5K7J3B-DA8QDX3a.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-DqH8Lz-4.js → chunk-5VM5RSS4-Bgu7gQ7Y.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-Dru7qMTB.js → chunk-F27PBJKO-BOew7pIK.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-DN8KcdzT.js → chunk-G27WJ6UU-DHx1I-hO.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-DMS-EquZ.js → chunk-JWPE2WC7-SarFW0WU.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-ubbLaEwq.js → chunk-LCL6LL3I-BLzP083Z.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DdIZqnYy.js → chunk-POPQ4Y6H-Bmkv_iKm.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-DkgYFSnb.js → chunk-SVP7TREG-MPx9r1N2.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-CaesHiYG.js → chunk-XXDRQBXY-Ck-09rKG.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-bqnC4Oq-.js → cose-bilkent-JH36ORCC-DWm6lfOG.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-mDRBhRzB.js → cynefin-OW5HDTMX-DcBUyr5R.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-B4Tod_Ik.js → cynefinDiagram-5FMLGOSQ-Df8qmd_p.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-DU9f-iCw.js → dagre-3AP2YEHR-DDmGspD7.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-BsYVeB7c.js → diagram-S7CK7UJ4-BK_qFvbi.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-frM5Sn9C.js → diagram-UQ7AKVKN-Uw3AP_bi.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-C1Z7uZdv.js → diagram-VSXAHHWV-CJOQKxY7.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-CIY4x0M9.js → diagram-VX7I27RA-DhdvZna5.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-hTl4GIbg.js → diagram-Z3DM3KII-edQU0nlP.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-4loIGTHZ.js → ebnfDiagram-PWID7BFC-4kugBEsO.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-B9Up14ul.js → erDiagram-SSCWMZ5O-BMkFivWO.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CIPfQBl9.js → flowDiagram-A5DVABFB-BM1ea8g-.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DaZk3lrl.js → ganttDiagram-EL5Y4UJY-CXj_cKRf.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-D-knAHoQ.js → gitGraphDiagram-WWUBYQGX-D0nEqwqu.js} +1 -1
- package/web-shell/assets/{index-Di8dYJlQ.js → index-B6JN54Pd.js} +1 -1
- package/web-shell/assets/{index-RNKRtdDf.css → index-C-XlQn24.css} +1 -1
- package/web-shell/assets/{index-pkWucfFU.js → index-DLjXM0dn.js} +367 -367
- package/web-shell/assets/{infoDiagram-RXCK75RN-7AJndIyq.js → infoDiagram-RXCK75RN-DF7aGGbQ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-DjIU3IKv.js → ishikawaDiagram-5VMMS53U-CZYNX1lL.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-D3cf3462.js → journeyDiagram-EYS64GPL-CvrqMUz1.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-CmuPjlRe.js → kanban-definition-3QL26DDD-BZNJQZBj.js} +1 -1
- package/web-shell/assets/{layout-C2Ci1XAx.js → layout-Bf83x7D6.js} +1 -1
- package/web-shell/assets/{linear-CqOKGHue.js → linear-Bkc3ES2f.js} +1 -1
- package/web-shell/assets/{mermaid.core-Bnt57s5_.js → mermaid.core-C6xuovwz.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-BSSJVfj3.js → mindmap-definition-FBJOCRG2-DzH6gVRg.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DNLHwge4.js → pegDiagram-XKGWAZYB-DCvLh2fa.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-CYRSio_9.js → pieDiagram-E7YTZNPT-BtjVlx_6.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CzSwKETq.js → quadrantDiagram-AXDQQJYC-IbroqxFe.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-Dzbg_Jis.js → railroadDiagram-O6MQD6OU-BvMykiWW.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CY3Apuzl.js → requirementDiagram-EFPCY7ZU-D-HHMyrh.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-432Hiv50.js → sankeyDiagram-P5KCCOFB-C0XXhB6d.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-CucAf-fk.js → sequenceDiagram-WJ2MYXX4-DseAXj5d.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-RBc9fiXv.js → sizeCapture-X5ZJPWSS-Cek2EweK.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BwsgjK6k.js → stateDiagram-HBIQ2CUA-yLv8wafW.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-DMMYIqPz.js → swimlanes-XN3QIQJK-Cwz-opvE.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-BbmmEMJb.js → timeline-definition-24CTP7MA-BJuFD7OG.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DlfQjNzM.js → vennDiagram-4TSXK5OY-CNAavdoV.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-86EXFbP6.js → wardleyDiagram-VM6X3IG4-DaIjAidq.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-794nZBSV.js → xychartDiagram-S5SC5T6Z-DkcQXjTy.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/MaxSizedBox-RQWAKXYC.js +0 -111
- package/chunks/agent-headless-YBSOXERA.js +0 -87
- package/chunks/channel-settings-store-DD6W3EJQ.js +0 -116
- package/chunks/config-utils-WXWWMH2D.js +0 -112
- package/chunks/contextCommand-UKPGPBW5.js +0 -107
- package/chunks/daemon-status-provider-D2HNWRDK.js +0 -116
- package/chunks/daemon-trust-policy-F4JM5CKX.js +0 -113
- package/chunks/earlyInputCapture-54M7AWAF.js +0 -108
- package/chunks/handleAutoUpdate-T36AMYVP.js +0 -110
- package/chunks/initializer-6USYPDX7.js +0 -114
- package/chunks/installationInfo-46TRIE5M.js +0 -108
- package/chunks/list-BCX6JAYS.js +0 -117
- package/chunks/loadedSettingsAdapter-7OBB7B6J.js +0 -111
- package/chunks/mcp-FCS6V74Y.js +0 -111
- package/chunks/nonInteractiveCli-CQUUSJ3N.js +0 -180
- package/chunks/pidfile-SIEQM3X5.js +0 -112
- package/chunks/prompt-terminal-ledger-YIAGDBHG.js +0 -106
- package/chunks/theme-manager-73W4SEDX.js +0 -103
- package/chunks/useAutoAcceptIndicator-SMCU7IYQ.js +0 -121
- package/chunks/workspace-providers-status-ZYXLTCJ5.js +0 -115
- package/chunks/workspace-skills-status-ZVFYCT5C.js +0 -114
- package/chunks/write-file-2KVXXVWB.js +0 -90
- package/web-shell/assets/channel-DggMZLoL.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DPMQMV0q.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DPMQMV0q.js +0 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C_HLER48.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-KP0j5nd5.js +0 -8
|
@@ -21,13 +21,13 @@ import {
|
|
|
21
21
|
shouldSuppressRememberErrorDetails,
|
|
22
22
|
workspaceMemoryFailureCode,
|
|
23
23
|
workspaceMemoryFailureDiagnostics
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-KWFP3WV6.js";
|
|
25
25
|
import {
|
|
26
26
|
deriveWebSocketBase,
|
|
27
27
|
openQwenAsrRealtimeStream,
|
|
28
28
|
openVoiceStream,
|
|
29
29
|
openVoiceStreamWithRetry
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-CPPYZHBN.js";
|
|
31
31
|
import {
|
|
32
32
|
SetupGithubError,
|
|
33
33
|
collectSessionData,
|
|
@@ -39,15 +39,15 @@ import {
|
|
|
39
39
|
toJson,
|
|
40
40
|
toJsonl,
|
|
41
41
|
toMarkdown
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-HJOWQUE2.js";
|
|
43
43
|
import {
|
|
44
44
|
OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
|
|
45
45
|
ObservedChannelContactStore
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-4TPAG3O7.js";
|
|
47
47
|
import {
|
|
48
48
|
escapeAnsiCtrlCodes
|
|
49
49
|
} from "./chunk-E7REAOTN.js";
|
|
50
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-L436XFLJ.js";
|
|
51
51
|
import "./chunk-2MIN6GRR.js";
|
|
52
52
|
import "./chunk-QHTIBUWB.js";
|
|
53
53
|
import "./chunk-TXASDT2M.js";
|
|
@@ -128,7 +128,7 @@ import {
|
|
|
128
128
|
tagListener,
|
|
129
129
|
unsafeRevealSecret,
|
|
130
130
|
validateMcpRuntimeServerName
|
|
131
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-SQPOJ4ZI.js";
|
|
132
132
|
import "./chunk-VGHZT6JR.js";
|
|
133
133
|
import {
|
|
134
134
|
isValidSessionId,
|
|
@@ -139,56 +139,11 @@ import {
|
|
|
139
139
|
isLoopbackBind
|
|
140
140
|
} from "./chunk-RXFQM6FQ.js";
|
|
141
141
|
import "./chunk-UXEO7E3V.js";
|
|
142
|
-
import {
|
|
143
|
-
createTotalSessionAdmissionController
|
|
144
|
-
} from "./chunk-X2UOOG5V.js";
|
|
145
|
-
import {
|
|
146
|
-
WorkspaceGenerationClosedError,
|
|
147
|
-
createSingleWorkspaceRegistry,
|
|
148
|
-
createWorkspaceSessionOwnerIndex
|
|
149
|
-
} from "./chunk-K3LPAED5.js";
|
|
150
|
-
import {
|
|
151
|
-
isInternalWorkspaceRuntime
|
|
152
|
-
} from "./chunk-NYWWQ437.js";
|
|
153
|
-
import "./chunk-OIBUG24X.js";
|
|
154
|
-
import {
|
|
155
|
-
MAX_SESSION_RESTORE_TIMEOUT_MS,
|
|
156
|
-
resolveSessionRestoreTimeoutMs,
|
|
157
|
-
restoreRetryAfterSeconds
|
|
158
|
-
} from "./chunk-4JRM2BSM.js";
|
|
159
|
-
import {
|
|
160
|
-
assertValidChannelSecretUpdates
|
|
161
|
-
} from "./chunk-RSOG6JND.js";
|
|
162
|
-
import {
|
|
163
|
-
createWorkspaceProvidersStatusProvider
|
|
164
|
-
} from "./chunk-GQQHY6TL.js";
|
|
165
|
-
import "./chunk-4K7NQDCG.js";
|
|
166
|
-
import {
|
|
167
|
-
getAuthTypeFromEnv,
|
|
168
|
-
resolveCliGenerationConfig
|
|
169
|
-
} from "./chunk-MSCVPOZR.js";
|
|
170
|
-
import {
|
|
171
|
-
createWorkspaceSkillsStatusProvider
|
|
172
|
-
} from "./chunk-NDVTSFWZ.js";
|
|
173
|
-
import "./chunk-BGXZBI5B.js";
|
|
174
|
-
import {
|
|
175
|
-
isServeDebugMode,
|
|
176
|
-
mountWebShellAssets,
|
|
177
|
-
mountWebShellSpaFallback
|
|
178
|
-
} from "./chunk-DIMEPKCW.js";
|
|
179
|
-
import {
|
|
180
|
-
require_express
|
|
181
|
-
} from "./chunk-AYHQZBJ4.js";
|
|
182
|
-
import "./chunk-FBX2SDQ4.js";
|
|
183
|
-
import {
|
|
184
|
-
evaluateDaemonWorkspaceTrust,
|
|
185
|
-
readDaemonTrustPolicySnapshot
|
|
186
|
-
} from "./chunk-YPJVAQ7V.js";
|
|
187
142
|
import {
|
|
188
143
|
readRecentPromptTerminals,
|
|
189
144
|
reconcileDanglingPromptTerminals,
|
|
190
145
|
withPromptTerminals
|
|
191
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-IRIX323G.js";
|
|
192
147
|
import {
|
|
193
148
|
EMPTY_WORKSPACE_VOICE_UPDATE_ERROR,
|
|
194
149
|
MAX_WORKSPACE_SKILL_NAME_LENGTH,
|
|
@@ -202,14 +157,14 @@ import {
|
|
|
202
157
|
validateWorkspaceSkillName,
|
|
203
158
|
validateWorkspaceVoiceState,
|
|
204
159
|
voiceSettingsScopeToWire
|
|
205
|
-
} from "./chunk-
|
|
160
|
+
} from "./chunk-MYLXL7F6.js";
|
|
206
161
|
import {
|
|
207
162
|
PermissionRulesValidationError,
|
|
208
163
|
buildPermissionSettings,
|
|
209
164
|
isPermissionRuleType,
|
|
210
165
|
normalizePermissionRules,
|
|
211
166
|
readPermissionRuleSet
|
|
212
|
-
} from "./chunk-
|
|
167
|
+
} from "./chunk-I32QCIK7.js";
|
|
213
168
|
import {
|
|
214
169
|
assertVoiceBaseUrlNetworkAllowed,
|
|
215
170
|
isStreamingVoiceModel,
|
|
@@ -217,47 +172,45 @@ import {
|
|
|
217
172
|
resolveVoiceTranscriptionConfig,
|
|
218
173
|
sanitizeVoiceErrorMessage,
|
|
219
174
|
transcribeVoiceAudio
|
|
220
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-76WGY6LW.js";
|
|
221
176
|
import {
|
|
222
177
|
isVoiceEnabled,
|
|
223
178
|
isVoiceMode,
|
|
224
179
|
readVoiceModel
|
|
225
|
-
} from "./chunk-
|
|
226
|
-
import "./chunk-
|
|
227
|
-
import "./chunk-Z4X5MTRT.js";
|
|
180
|
+
} from "./chunk-2MHGD7EE.js";
|
|
181
|
+
import "./chunk-2SERYG4T.js";
|
|
228
182
|
import {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
mapWorkspaceSkillToggleError
|
|
232
|
-
} from "./chunk-Z7VOMGDC.js";
|
|
183
|
+
createTotalSessionAdmissionController
|
|
184
|
+
} from "./chunk-X2UOOG5V.js";
|
|
233
185
|
import {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
import "./chunk-57OAHC2Y.js";
|
|
186
|
+
WorkspaceGenerationClosedError,
|
|
187
|
+
createSingleWorkspaceRegistry,
|
|
188
|
+
createWorkspaceSessionOwnerIndex
|
|
189
|
+
} from "./chunk-K3LPAED5.js";
|
|
239
190
|
import {
|
|
240
|
-
|
|
241
|
-
} from "./chunk-
|
|
191
|
+
isInternalWorkspaceRuntime
|
|
192
|
+
} from "./chunk-NYWWQ437.js";
|
|
193
|
+
import "./chunk-OIBUG24X.js";
|
|
242
194
|
import {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
} from "./chunk-
|
|
195
|
+
MAX_SESSION_RESTORE_TIMEOUT_MS,
|
|
196
|
+
resolveSessionRestoreTimeoutMs,
|
|
197
|
+
restoreRetryAfterSeconds
|
|
198
|
+
} from "./chunk-4JRM2BSM.js";
|
|
199
|
+
import {
|
|
200
|
+
assertValidChannelSecretUpdates
|
|
201
|
+
} from "./chunk-6YAR6ZU3.js";
|
|
247
202
|
import {
|
|
248
203
|
createDaemonStatusProvider
|
|
249
|
-
} from "./chunk-
|
|
204
|
+
} from "./chunk-ODXCSIH5.js";
|
|
250
205
|
import "./chunk-JS73NNWF.js";
|
|
251
|
-
import "./chunk-
|
|
252
|
-
import
|
|
253
|
-
snapshotProcessEnv
|
|
254
|
-
} from "./chunk-HDH5IDJH.js";
|
|
206
|
+
import "./chunk-4DCP3362.js";
|
|
207
|
+
import "./chunk-DCSAVGDJ.js";
|
|
255
208
|
import {
|
|
256
209
|
SessionArtifactAuthorizationError,
|
|
257
210
|
SessionArtifactValidationError,
|
|
258
211
|
createAcpSessionBridge,
|
|
259
212
|
parseSessionSource
|
|
260
|
-
} from "./chunk-
|
|
213
|
+
} from "./chunk-I6YW3T3W.js";
|
|
261
214
|
import {
|
|
262
215
|
EVENT_SCHEMA_VERSION,
|
|
263
216
|
EventBus,
|
|
@@ -265,26 +218,74 @@ import {
|
|
|
265
218
|
} from "./chunk-7U5G6JXI.js";
|
|
266
219
|
import "./chunk-WCCLLK7X.js";
|
|
267
220
|
import "./chunk-OCPBI7J5.js";
|
|
221
|
+
import {
|
|
222
|
+
createWorkspaceProvidersStatusProvider
|
|
223
|
+
} from "./chunk-NY3IJYAV.js";
|
|
224
|
+
import "./chunk-4K7NQDCG.js";
|
|
225
|
+
import {
|
|
226
|
+
getAuthTypeFromEnv,
|
|
227
|
+
resolveCliGenerationConfig
|
|
228
|
+
} from "./chunk-GNRVKN76.js";
|
|
229
|
+
import {
|
|
230
|
+
snapshotProcessEnv
|
|
231
|
+
} from "./chunk-R2ZJH3FV.js";
|
|
232
|
+
import {
|
|
233
|
+
createWorkspaceSkillsStatusProvider
|
|
234
|
+
} from "./chunk-BX2BZPFJ.js";
|
|
235
|
+
import "./chunk-BGXZBI5B.js";
|
|
236
|
+
import "./chunk-Z4X5MTRT.js";
|
|
237
|
+
import {
|
|
238
|
+
WorkspacePermissionRulesSessionRequiredError,
|
|
239
|
+
WorkspaceSettingsPartialPersistError,
|
|
240
|
+
mapWorkspaceSkillToggleError
|
|
241
|
+
} from "./chunk-Z7VOMGDC.js";
|
|
242
|
+
import {
|
|
243
|
+
isServeDebugMode,
|
|
244
|
+
mountWebShellAssets,
|
|
245
|
+
mountWebShellSpaFallback
|
|
246
|
+
} from "./chunk-DIMEPKCW.js";
|
|
247
|
+
import {
|
|
248
|
+
require_express
|
|
249
|
+
} from "./chunk-AYHQZBJ4.js";
|
|
250
|
+
import "./chunk-FBX2SDQ4.js";
|
|
251
|
+
import {
|
|
252
|
+
evaluateDaemonWorkspaceTrust,
|
|
253
|
+
readDaemonTrustPolicySnapshot
|
|
254
|
+
} from "./chunk-5MK32KJV.js";
|
|
255
|
+
import {
|
|
256
|
+
daemonObservedContactsPath,
|
|
257
|
+
loadChannelsConfig
|
|
258
|
+
} from "./chunk-SM7ZVKTF.js";
|
|
259
|
+
import "./chunk-A7X32SCT.js";
|
|
260
|
+
import "./chunk-57OAHC2Y.js";
|
|
261
|
+
import {
|
|
262
|
+
parseChannelWebhookConfigLenient
|
|
263
|
+
} from "./chunk-EAV3TENS.js";
|
|
264
|
+
import "./chunk-7JPW6IYH.js";
|
|
265
|
+
import {
|
|
266
|
+
supportedChannelCatalog
|
|
267
|
+
} from "./chunk-IKN3IUJP.js";
|
|
268
|
+
import "./chunk-V6WHFGST.js";
|
|
269
|
+
import {
|
|
270
|
+
getStableLiveDiscoveryBaseDir
|
|
271
|
+
} from "./chunk-5MK45KZ3.js";
|
|
272
|
+
import {
|
|
273
|
+
LIVE_HOST_BUNDLE_ID,
|
|
274
|
+
LIVE_HOST_PROTOCOL_VERSION,
|
|
275
|
+
LIVE_INPUT_AUDIO_EPOCH_BYTES
|
|
276
|
+
} from "./chunk-NKLP3DCK.js";
|
|
268
277
|
import {
|
|
269
278
|
createSpawnChannelFactory
|
|
270
|
-
} from "./chunk-
|
|
279
|
+
} from "./chunk-GZJUCMH4.js";
|
|
271
280
|
import {
|
|
272
281
|
STATUS_SCHEMA_VERSION,
|
|
273
282
|
SessionRestoreTimeoutError,
|
|
274
283
|
createIdleWorkspaceMemoryStatus,
|
|
275
284
|
mapDomainErrorToErrorKind
|
|
276
|
-
} from "./chunk-
|
|
285
|
+
} from "./chunk-CITGRGCM.js";
|
|
277
286
|
import "./chunk-K6KS3LTN.js";
|
|
278
287
|
import "./chunk-HMJ2P3SV.js";
|
|
279
288
|
import "./chunk-7E7UCJHS.js";
|
|
280
|
-
import {
|
|
281
|
-
parseChannelWebhookConfigLenient
|
|
282
|
-
} from "./chunk-QWTNAHCM.js";
|
|
283
|
-
import "./chunk-XQNWTA4Y.js";
|
|
284
|
-
import {
|
|
285
|
-
supportedChannelCatalog
|
|
286
|
-
} from "./chunk-SEMN7BNM.js";
|
|
287
|
-
import "./chunk-V6WHFGST.js";
|
|
288
289
|
import {
|
|
289
290
|
MAX_REGISTERED_WORKSPACES,
|
|
290
291
|
WorkspaceDisplayNameValidationError,
|
|
@@ -292,13 +293,13 @@ import {
|
|
|
292
293
|
WorkspaceRegistrationStoreLimitError,
|
|
293
294
|
normalizeWorkspaceDisplayName,
|
|
294
295
|
workspaceRegistrationId
|
|
295
|
-
} from "./chunk-
|
|
296
|
+
} from "./chunk-OQ6LTSX3.js";
|
|
296
297
|
import {
|
|
297
298
|
CHANNEL_PROMPT_META_KEY,
|
|
298
299
|
DAEMON_PROMPT_DISPLAY_TEXT_META_KEY,
|
|
299
300
|
REQUESTED_SESSION_ID_META_KEY,
|
|
300
301
|
gradeActiveWorkCoverage
|
|
301
|
-
} from "./chunk-
|
|
302
|
+
} from "./chunk-OZ6KS6KW.js";
|
|
302
303
|
import {
|
|
303
304
|
BranchWhilePromptActiveError,
|
|
304
305
|
BridgeChannelQuarantinedError,
|
|
@@ -354,7 +355,7 @@ import {
|
|
|
354
355
|
} from "./chunk-7CWEZQ6T.js";
|
|
355
356
|
import {
|
|
356
357
|
normalizeWorkerDiagnostic
|
|
357
|
-
} from "./chunk-
|
|
358
|
+
} from "./chunk-JVPFTDBK.js";
|
|
358
359
|
import {
|
|
359
360
|
QWEN_SERVER_TOKEN_ENV
|
|
360
361
|
} from "./chunk-GYTKQYDB.js";
|
|
@@ -369,7 +370,7 @@ import "./chunk-3VUENPWF.js";
|
|
|
369
370
|
import "./chunk-5HBA2Z7V.js";
|
|
370
371
|
import {
|
|
371
372
|
sanitizeLogText
|
|
372
|
-
} from "./chunk-
|
|
373
|
+
} from "./chunk-E55H6BZ7.js";
|
|
373
374
|
import "./chunk-IW6RQPQB.js";
|
|
374
375
|
import {
|
|
375
376
|
WORKSPACE_RESTRICTED_SETTING_KEYS,
|
|
@@ -381,24 +382,26 @@ import {
|
|
|
381
382
|
getWritableScopes,
|
|
382
383
|
loadSettings,
|
|
383
384
|
validateSettingValue
|
|
384
|
-
} from "./chunk-
|
|
385
|
+
} from "./chunk-MDZO5V2O.js";
|
|
385
386
|
import "./chunk-RKUWKYED.js";
|
|
386
|
-
import "./chunk-
|
|
387
|
+
import "./chunk-BDHLBR46.js";
|
|
387
388
|
import "./chunk-GOXKNSDZ.js";
|
|
388
389
|
import "./chunk-IDS7MSUP.js";
|
|
389
390
|
import {
|
|
390
391
|
detectSystemLanguage,
|
|
391
392
|
resolveLanguageSetting
|
|
392
|
-
} from "./chunk-
|
|
393
|
+
} from "./chunk-W2WRNJKX.js";
|
|
393
394
|
import {
|
|
394
395
|
SUPPORTED_LANGUAGES,
|
|
395
396
|
resolveSupportedLanguage
|
|
396
397
|
} from "./chunk-5EJZE3FP.js";
|
|
397
|
-
import "./chunk-
|
|
398
|
+
import "./chunk-2CRNTW2B.js";
|
|
398
399
|
import "./chunk-5PA6UEYA.js";
|
|
400
|
+
import "./chunk-6KS24S3X.js";
|
|
401
|
+
import "./chunk-W3N5XAZ6.js";
|
|
399
402
|
import {
|
|
400
403
|
getWorkspaceTrustStatus
|
|
401
|
-
} from "./chunk-
|
|
404
|
+
} from "./chunk-XNXWEGKB.js";
|
|
402
405
|
import "./chunk-NPQ5ZKRP.js";
|
|
403
406
|
import {
|
|
404
407
|
isWithinRoot as isWithinRoot2
|
|
@@ -428,21 +431,20 @@ import {
|
|
|
428
431
|
shouldShowStep,
|
|
429
432
|
watchRepoBranch,
|
|
430
433
|
writeWorkspaceContextFile
|
|
431
|
-
} from "./chunk-
|
|
432
|
-
import "./chunk-
|
|
433
|
-
import "./chunk-
|
|
434
|
-
import "./chunk-YLFLHKDL.js";
|
|
435
|
-
import "./chunk-HTIG2U5C.js";
|
|
434
|
+
} from "./chunk-VMDURMFY.js";
|
|
435
|
+
import "./chunk-J7MLXFC5.js";
|
|
436
|
+
import "./chunk-LRKMQPMD.js";
|
|
436
437
|
import "./chunk-LJZSMWOH.js";
|
|
437
|
-
import "./chunk-
|
|
438
|
-
import "./chunk-
|
|
438
|
+
import "./chunk-47SIHHPL.js";
|
|
439
|
+
import "./chunk-JLGFGPZJ.js";
|
|
440
|
+
import "./chunk-SKNVVYIJ.js";
|
|
439
441
|
import {
|
|
440
442
|
readWorktreeSession,
|
|
441
443
|
writeWorktreeSession
|
|
442
|
-
} from "./chunk-
|
|
443
|
-
import "./chunk-
|
|
444
|
-
import "./chunk-
|
|
445
|
-
import "./chunk-
|
|
444
|
+
} from "./chunk-UCSV2IZW.js";
|
|
445
|
+
import "./chunk-T2HMXHYA.js";
|
|
446
|
+
import "./chunk-3FSBMAYD.js";
|
|
447
|
+
import "./chunk-XJS54K4A.js";
|
|
446
448
|
import "./chunk-ZPJWUGCS.js";
|
|
447
449
|
import {
|
|
448
450
|
QwenOAuth2Client,
|
|
@@ -452,8 +454,8 @@ import {
|
|
|
452
454
|
isDeviceAuthorizationSuccess,
|
|
453
455
|
isDeviceTokenPending,
|
|
454
456
|
isDeviceTokenSuccess
|
|
455
|
-
} from "./chunk-
|
|
456
|
-
import "./chunk-
|
|
457
|
+
} from "./chunk-ZWKGZB2K.js";
|
|
458
|
+
import "./chunk-OX44MOAN.js";
|
|
457
459
|
import {
|
|
458
460
|
BuiltinAgentRegistry,
|
|
459
461
|
Client,
|
|
@@ -475,12 +477,16 @@ import {
|
|
|
475
477
|
SessionOrganizationError,
|
|
476
478
|
SessionOrganizationService,
|
|
477
479
|
SessionService,
|
|
480
|
+
SessionStorageEntryError,
|
|
481
|
+
SessionTranscriptChangedError,
|
|
478
482
|
SessionTranscriptCursorCodec,
|
|
483
|
+
SessionTranscriptIdentityUnavailableError,
|
|
479
484
|
SessionTranscriptPageTooLargeError,
|
|
480
485
|
SessionTranscriptReader,
|
|
481
486
|
SessionTranscriptSnapshotUnavailableError,
|
|
482
487
|
SessionTranscriptTooLargeError,
|
|
483
488
|
SessionWriterError,
|
|
489
|
+
SessionWriterUnavailableError,
|
|
484
490
|
StandardFileSystemService,
|
|
485
491
|
StdioClientTransport,
|
|
486
492
|
StreamableHTTPClientTransport,
|
|
@@ -504,7 +510,7 @@ import {
|
|
|
504
510
|
sleepInhibitor,
|
|
505
511
|
stripTerminalControlSequences,
|
|
506
512
|
upsertSessionPr
|
|
507
|
-
} from "./chunk-
|
|
513
|
+
} from "./chunk-XYX474JQ.js";
|
|
508
514
|
import "./chunk-GOFAQQZA.js";
|
|
509
515
|
import "./chunk-5M6IDOMF.js";
|
|
510
516
|
import "./chunk-TWPJO254.js";
|
|
@@ -512,12 +518,12 @@ import "./chunk-CQ35AJ4Z.js";
|
|
|
512
518
|
import {
|
|
513
519
|
MAX_JOBS,
|
|
514
520
|
nextDurableFireMs
|
|
515
|
-
} from "./chunk-
|
|
516
|
-
import "./chunk-
|
|
517
|
-
import "./chunk-
|
|
518
|
-
import "./chunk-
|
|
521
|
+
} from "./chunk-3UZCLCXR.js";
|
|
522
|
+
import "./chunk-TOF4UZHH.js";
|
|
523
|
+
import "./chunk-O3BUXIPM.js";
|
|
524
|
+
import "./chunk-ZLTEQYNC.js";
|
|
519
525
|
import "./chunk-6PVPNMXU.js";
|
|
520
|
-
import "./chunk-
|
|
526
|
+
import "./chunk-AYVIGUUK.js";
|
|
521
527
|
import {
|
|
522
528
|
nextFireTime,
|
|
523
529
|
parseCron
|
|
@@ -530,39 +536,39 @@ import {
|
|
|
530
536
|
readCronTasks,
|
|
531
537
|
taskHasLegacyCondition,
|
|
532
538
|
updateCronTasks
|
|
533
|
-
} from "./chunk-
|
|
539
|
+
} from "./chunk-JECO75XD.js";
|
|
534
540
|
import "./chunk-O6GEWCJA.js";
|
|
535
541
|
import "./chunk-T26EAKDL.js";
|
|
536
542
|
import {
|
|
537
543
|
GitWorktreeService,
|
|
538
544
|
writeWorktreeSessionMarker
|
|
539
|
-
} from "./chunk-
|
|
545
|
+
} from "./chunk-LJP2BBMK.js";
|
|
540
546
|
import "./chunk-CPBF7KYF.js";
|
|
541
|
-
import "./chunk-
|
|
542
|
-
import "./chunk-
|
|
543
|
-
import "./chunk-
|
|
547
|
+
import "./chunk-5Y2JCJAH.js";
|
|
548
|
+
import "./chunk-T2CRBIDJ.js";
|
|
549
|
+
import "./chunk-77TOMRBG.js";
|
|
544
550
|
import {
|
|
545
551
|
findGitRoot,
|
|
546
552
|
glob
|
|
547
|
-
} from "./chunk-
|
|
548
|
-
import "./chunk-
|
|
549
|
-
import "./chunk-
|
|
550
|
-
import "./chunk-
|
|
553
|
+
} from "./chunk-DEYPMJPD.js";
|
|
554
|
+
import "./chunk-T6OODF2U.js";
|
|
555
|
+
import "./chunk-27ONXAFY.js";
|
|
556
|
+
import "./chunk-ZEADBZLO.js";
|
|
551
557
|
import {
|
|
552
558
|
parseGoalControlRequest
|
|
553
|
-
} from "./chunk-
|
|
559
|
+
} from "./chunk-FN5C6C7G.js";
|
|
554
560
|
import {
|
|
555
561
|
APPROVAL_MODES
|
|
556
|
-
} from "./chunk-
|
|
562
|
+
} from "./chunk-BVE5EMIG.js";
|
|
557
563
|
import "./chunk-MLXTMF7H.js";
|
|
558
564
|
import "./chunk-NAVJD2PQ.js";
|
|
559
|
-
import "./chunk-
|
|
560
|
-
import "./chunk-
|
|
565
|
+
import "./chunk-FVDQ5E67.js";
|
|
566
|
+
import "./chunk-V3GINY6K.js";
|
|
561
567
|
import "./chunk-QHMLYMMS.js";
|
|
562
568
|
import {
|
|
563
569
|
recordDaemonBridgeError,
|
|
564
570
|
recordDaemonHttpRequest
|
|
565
|
-
} from "./chunk-
|
|
571
|
+
} from "./chunk-SDVF6A42.js";
|
|
566
572
|
import "./chunk-P3QQPMQA.js";
|
|
567
573
|
import {
|
|
568
574
|
addDaemonRequestAttribute,
|
|
@@ -575,24 +581,24 @@ import {
|
|
|
575
581
|
recordDaemonHttpResponse,
|
|
576
582
|
runWithDaemonTelemetryContext,
|
|
577
583
|
withDaemonRequestSpan
|
|
578
|
-
} from "./chunk-
|
|
584
|
+
} from "./chunk-ILPXSKGQ.js";
|
|
579
585
|
import "./chunk-XWRJCPHC.js";
|
|
580
586
|
import "./chunk-VNOVK4I7.js";
|
|
581
587
|
import "./chunk-SAH4BD2J.js";
|
|
582
|
-
import "./chunk-
|
|
583
|
-
import "./chunk-
|
|
588
|
+
import "./chunk-ZKAZP2ZG.js";
|
|
589
|
+
import "./chunk-DP7LABIB.js";
|
|
584
590
|
import "./chunk-S6LOFUVP.js";
|
|
585
591
|
import "./chunk-2LD5U7Q3.js";
|
|
586
592
|
import "./chunk-DJ2GSRLV.js";
|
|
587
|
-
import "./chunk-
|
|
593
|
+
import "./chunk-I6VVOZDK.js";
|
|
588
594
|
import "./chunk-K2OJUPOE.js";
|
|
589
595
|
import "./chunk-CFKIH3D3.js";
|
|
590
|
-
import "./chunk-
|
|
591
|
-
import "./chunk-
|
|
596
|
+
import "./chunk-EB4VDXNI.js";
|
|
597
|
+
import "./chunk-FJWICLG7.js";
|
|
592
598
|
import {
|
|
593
599
|
parseLineTolerant,
|
|
594
600
|
read
|
|
595
|
-
} from "./chunk-
|
|
601
|
+
} from "./chunk-UX3IFLJM.js";
|
|
596
602
|
import "./chunk-YRLW2MSX.js";
|
|
597
603
|
import "./chunk-VGC4I5JJ.js";
|
|
598
604
|
import {
|
|
@@ -603,41 +609,41 @@ import {
|
|
|
603
609
|
getAllGeminiMdFilenames,
|
|
604
610
|
isUtf8CompatibleEncoding,
|
|
605
611
|
isWithinRoot
|
|
606
|
-
} from "./chunk-
|
|
607
|
-
import "./chunk-
|
|
608
|
-
import "./chunk-
|
|
612
|
+
} from "./chunk-WBT3STGU.js";
|
|
613
|
+
import "./chunk-PVBT5QPD.js";
|
|
614
|
+
import "./chunk-IPQA4SR5.js";
|
|
609
615
|
import "./chunk-WZAD4ZNJ.js";
|
|
610
616
|
import "./chunk-FPGTNKCP.js";
|
|
611
|
-
import "./chunk-
|
|
612
|
-
import "./chunk-
|
|
617
|
+
import "./chunk-SLEWBQWM.js";
|
|
618
|
+
import "./chunk-ICWGPK23.js";
|
|
613
619
|
import "./chunk-XZA32HII.js";
|
|
614
|
-
import "./chunk-
|
|
615
|
-
import "./chunk-
|
|
620
|
+
import "./chunk-7QGEJI7M.js";
|
|
621
|
+
import "./chunk-GTUKW3I6.js";
|
|
616
622
|
import "./chunk-HHJLM3WQ.js";
|
|
617
623
|
import {
|
|
618
624
|
isTelemetrySdkInitialized,
|
|
619
625
|
redactUrlCredentials,
|
|
620
626
|
stripAnsiAndControl
|
|
621
|
-
} from "./chunk-
|
|
627
|
+
} from "./chunk-6US7BF3G.js";
|
|
622
628
|
import "./chunk-74TONY4F.js";
|
|
623
|
-
import "./chunk-
|
|
629
|
+
import "./chunk-VL4YX3FH.js";
|
|
624
630
|
import {
|
|
625
631
|
SubagentError,
|
|
626
632
|
SubagentErrorCode
|
|
627
|
-
} from "./chunk-
|
|
628
|
-
import "./chunk-
|
|
633
|
+
} from "./chunk-JUIJ3FXC.js";
|
|
634
|
+
import "./chunk-E6FGMDFQ.js";
|
|
629
635
|
import {
|
|
630
636
|
escapeXml
|
|
631
637
|
} from "./chunk-AQ37AY7B.js";
|
|
632
|
-
import "./chunk-
|
|
633
|
-
import "./chunk-
|
|
638
|
+
import "./chunk-RRKNX553.js";
|
|
639
|
+
import "./chunk-KOJ6MHD5.js";
|
|
634
640
|
import {
|
|
635
641
|
FatalConfigError,
|
|
636
642
|
Storage,
|
|
637
643
|
createDebugLogger,
|
|
638
644
|
getErrorMessage,
|
|
639
645
|
runWithoutDebugLogSession
|
|
640
|
-
} from "./chunk-
|
|
646
|
+
} from "./chunk-2NNTE2ED.js";
|
|
641
647
|
import {
|
|
642
648
|
writeStderrLine,
|
|
643
649
|
writeStderrLineSafe,
|
|
@@ -3752,6 +3758,17 @@ function resolveWorkspaceRuntimeFromParam(registry, req, res, paramName = "works
|
|
|
3752
3758
|
return runtime;
|
|
3753
3759
|
}
|
|
3754
3760
|
__name(resolveWorkspaceRuntimeFromParam, "resolveWorkspaceRuntimeFromParam");
|
|
3761
|
+
function resolveTrustedRuntime(registry, req, res, paramName = "workspace") {
|
|
3762
|
+
const runtime = resolveWorkspaceRuntimeFromParam(
|
|
3763
|
+
registry,
|
|
3764
|
+
req,
|
|
3765
|
+
res,
|
|
3766
|
+
paramName
|
|
3767
|
+
);
|
|
3768
|
+
if (!runtime) return null;
|
|
3769
|
+
return requireTrustedWorkspaceRuntime(runtime, res) ? runtime : null;
|
|
3770
|
+
}
|
|
3771
|
+
__name(resolveTrustedRuntime, "resolveTrustedRuntime");
|
|
3755
3772
|
function resolveWorkspaceRuntimeWithLiveCompatibilityFromParam(registry, req, res, paramName = "workspace") {
|
|
3756
3773
|
if (typeof registry.getManagedEntryByWorkspaceId !== "function" || typeof registry.getManagedEntryByWorkspaceCwd !== "function") {
|
|
3757
3774
|
return resolveWorkspaceRuntimeFromParam(registry, req, res, paramName);
|
|
@@ -8287,56 +8304,68 @@ function isBoundTask(task) {
|
|
|
8287
8304
|
return typeof task.sessionId === "string" && task.sessionId.length > 0;
|
|
8288
8305
|
}
|
|
8289
8306
|
__name(isBoundTask, "isBoundTask");
|
|
8290
|
-
async function disableTasksForSessions(projectRoot, sessionIds) {
|
|
8307
|
+
async function disableTasksForSessions(projectRoot, sessionIds, options = {}) {
|
|
8291
8308
|
if (sessionIds.length === 0) return;
|
|
8292
8309
|
const targets = new Set(sessionIds);
|
|
8293
|
-
await updateCronTasks(
|
|
8294
|
-
|
|
8295
|
-
|
|
8296
|
-
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
|
|
8302
|
-
|
|
8303
|
-
|
|
8310
|
+
await updateCronTasks(
|
|
8311
|
+
projectRoot,
|
|
8312
|
+
(tasks) => {
|
|
8313
|
+
let changed = false;
|
|
8314
|
+
const next = tasks.map((task) => {
|
|
8315
|
+
if (isBoundTask(task) && targets.has(task.sessionId) && task.enabled !== false) {
|
|
8316
|
+
changed = true;
|
|
8317
|
+
return { ...task, enabled: false, disabledByArchive: true };
|
|
8318
|
+
}
|
|
8319
|
+
return task;
|
|
8320
|
+
});
|
|
8321
|
+
return changed ? next : tasks;
|
|
8322
|
+
},
|
|
8323
|
+
options
|
|
8324
|
+
);
|
|
8304
8325
|
}
|
|
8305
8326
|
__name(disableTasksForSessions, "disableTasksForSessions");
|
|
8306
|
-
async function enableTasksForSessions(projectRoot, sessionIds, now = Date.now()) {
|
|
8327
|
+
async function enableTasksForSessions(projectRoot, sessionIds, now = Date.now(), options = {}) {
|
|
8307
8328
|
if (sessionIds.length === 0) return;
|
|
8308
8329
|
const targets = new Set(sessionIds);
|
|
8309
|
-
await updateCronTasks(
|
|
8310
|
-
|
|
8311
|
-
|
|
8312
|
-
|
|
8313
|
-
|
|
8314
|
-
|
|
8315
|
-
|
|
8316
|
-
|
|
8317
|
-
|
|
8318
|
-
|
|
8319
|
-
|
|
8320
|
-
|
|
8321
|
-
|
|
8330
|
+
await updateCronTasks(
|
|
8331
|
+
projectRoot,
|
|
8332
|
+
(tasks) => {
|
|
8333
|
+
let changed = false;
|
|
8334
|
+
const next = tasks.map((task) => {
|
|
8335
|
+
if (isBoundTask(task) && targets.has(task.sessionId) && task.enabled === false && task.disabledByArchive === true) {
|
|
8336
|
+
changed = true;
|
|
8337
|
+
const resumed = { ...task, enabled: true };
|
|
8338
|
+
delete resumed.disabledByArchive;
|
|
8339
|
+
const minute = now - now % 6e4;
|
|
8340
|
+
if (resumed.recurring) {
|
|
8341
|
+
resumed.lastFiredAt = minute;
|
|
8342
|
+
} else {
|
|
8343
|
+
resumed.createdAt = now;
|
|
8344
|
+
resumed.lastFiredAt = minute;
|
|
8345
|
+
}
|
|
8346
|
+
return resumed;
|
|
8322
8347
|
}
|
|
8323
|
-
return
|
|
8324
|
-
}
|
|
8325
|
-
return
|
|
8326
|
-
}
|
|
8327
|
-
|
|
8328
|
-
|
|
8348
|
+
return task;
|
|
8349
|
+
});
|
|
8350
|
+
return changed ? next : tasks;
|
|
8351
|
+
},
|
|
8352
|
+
options
|
|
8353
|
+
);
|
|
8329
8354
|
}
|
|
8330
8355
|
__name(enableTasksForSessions, "enableTasksForSessions");
|
|
8331
|
-
async function removeTasksForSessions(projectRoot, sessionIds) {
|
|
8356
|
+
async function removeTasksForSessions(projectRoot, sessionIds, options = {}) {
|
|
8332
8357
|
if (sessionIds.length === 0) return;
|
|
8333
8358
|
const targets = new Set(sessionIds);
|
|
8334
|
-
await updateCronTasks(
|
|
8335
|
-
|
|
8336
|
-
|
|
8337
|
-
|
|
8338
|
-
|
|
8339
|
-
|
|
8359
|
+
await updateCronTasks(
|
|
8360
|
+
projectRoot,
|
|
8361
|
+
(tasks) => {
|
|
8362
|
+
const next = tasks.filter(
|
|
8363
|
+
(task) => !isBoundTask(task) || !targets.has(task.sessionId)
|
|
8364
|
+
);
|
|
8365
|
+
return next.length === tasks.length ? tasks : next;
|
|
8366
|
+
},
|
|
8367
|
+
options
|
|
8368
|
+
);
|
|
8340
8369
|
}
|
|
8341
8370
|
__name(removeTasksForSessions, "removeTasksForSessions");
|
|
8342
8371
|
|
|
@@ -8458,10 +8487,22 @@ async function runWithDaemonWriterLease(params) {
|
|
|
8458
8487
|
} = params;
|
|
8459
8488
|
let lease;
|
|
8460
8489
|
try {
|
|
8461
|
-
|
|
8490
|
+
const leaseOptions = {
|
|
8462
8491
|
processKind: "daemon",
|
|
8463
|
-
reclaimPolicy: "never"
|
|
8464
|
-
|
|
8492
|
+
reclaimPolicy: "never",
|
|
8493
|
+
takeoverPolicy: "certified"
|
|
8494
|
+
};
|
|
8495
|
+
try {
|
|
8496
|
+
lease = await service.acquireSessionWriterLease(sessionId, leaseOptions);
|
|
8497
|
+
} catch (error2) {
|
|
8498
|
+
if (!(error2 instanceof SessionWriterUnavailableError) && !(error2 instanceof SessionTranscriptChangedError)) {
|
|
8499
|
+
throw error2;
|
|
8500
|
+
}
|
|
8501
|
+
lease = await service.acquireSessionMaintenanceLease(
|
|
8502
|
+
sessionId,
|
|
8503
|
+
leaseOptions
|
|
8504
|
+
);
|
|
8505
|
+
}
|
|
8465
8506
|
} catch (error2) {
|
|
8466
8507
|
return { mutationApplied: false, error: error2 };
|
|
8467
8508
|
}
|
|
@@ -8538,27 +8579,61 @@ function logMaintenanceLeaseReleaseFailure(params) {
|
|
|
8538
8579
|
}
|
|
8539
8580
|
__name(logMaintenanceLeaseReleaseFailure, "logMaintenanceLeaseReleaseFailure");
|
|
8540
8581
|
async function classifySessionLocation(service, sessionId) {
|
|
8541
|
-
return service.
|
|
8582
|
+
return service.getMaintainableSessionLocation(sessionId);
|
|
8542
8583
|
}
|
|
8543
8584
|
__name(classifySessionLocation, "classifySessionLocation");
|
|
8544
8585
|
function sessionLocationError(sessionId) {
|
|
8545
|
-
|
|
8586
|
+
const error2 = new SessionConflictError(sessionId);
|
|
8587
|
+
error2.message = `Session "${sessionId}" exists in both active and archived directories. Retry with resolveConflicts: true to keep one copy.`;
|
|
8588
|
+
return error2;
|
|
8546
8589
|
}
|
|
8547
8590
|
__name(sessionLocationError, "sessionLocationError");
|
|
8548
|
-
function updateScheduledTaskForMaintenance(service, sessionId, action) {
|
|
8591
|
+
function updateScheduledTaskForMaintenance(service, sessionId, action, assertCanMutate) {
|
|
8549
8592
|
if (action === "archive") {
|
|
8550
|
-
return disableTasksForSessions(service.getProjectRoot(), [sessionId]
|
|
8593
|
+
return disableTasksForSessions(service.getProjectRoot(), [sessionId], {
|
|
8594
|
+
assertCanCommit: assertCanMutate
|
|
8595
|
+
});
|
|
8551
8596
|
}
|
|
8552
8597
|
if (action === "unarchive") {
|
|
8553
|
-
return enableTasksForSessions(
|
|
8598
|
+
return enableTasksForSessions(
|
|
8599
|
+
service.getProjectRoot(),
|
|
8600
|
+
[sessionId],
|
|
8601
|
+
Date.now(),
|
|
8602
|
+
{ assertCanCommit: assertCanMutate }
|
|
8603
|
+
);
|
|
8554
8604
|
}
|
|
8555
|
-
return removeTasksForSessions(service.getProjectRoot(), [sessionId]
|
|
8605
|
+
return removeTasksForSessions(service.getProjectRoot(), [sessionId], {
|
|
8606
|
+
assertCanCommit: assertCanMutate
|
|
8607
|
+
});
|
|
8556
8608
|
}
|
|
8557
8609
|
__name(updateScheduledTaskForMaintenance, "updateScheduledTaskForMaintenance");
|
|
8558
|
-
async function deletePersistedSessionWithLease(service, sessionId) {
|
|
8610
|
+
async function deletePersistedSessionWithLease(service, sessionId, assertCanMutate) {
|
|
8559
8611
|
const initialLocation = await classifySessionLocation(service, sessionId);
|
|
8560
8612
|
if (initialLocation === void 0) {
|
|
8561
|
-
|
|
8613
|
+
let maintenanceError;
|
|
8614
|
+
try {
|
|
8615
|
+
assertCanMutate?.();
|
|
8616
|
+
await updateScheduledTaskForMaintenance(
|
|
8617
|
+
service,
|
|
8618
|
+
sessionId,
|
|
8619
|
+
"delete",
|
|
8620
|
+
assertCanMutate
|
|
8621
|
+
);
|
|
8622
|
+
} catch (error2) {
|
|
8623
|
+
maintenanceError = error2;
|
|
8624
|
+
logSessionArchiveWarning(
|
|
8625
|
+
`scheduled task lifecycle update failed action=delete workspace=${safeLogValue(
|
|
8626
|
+
service.getProjectRoot()
|
|
8627
|
+
)} session=${safeLogValue(sessionId)} error=${safeLogValue(
|
|
8628
|
+
errorMessage(error2)
|
|
8629
|
+
)}`
|
|
8630
|
+
);
|
|
8631
|
+
}
|
|
8632
|
+
return {
|
|
8633
|
+
kind: "notFound",
|
|
8634
|
+
mutationApplied: false,
|
|
8635
|
+
maintenanceError
|
|
8636
|
+
};
|
|
8562
8637
|
}
|
|
8563
8638
|
const mutation = await runWithDaemonWriterLease({
|
|
8564
8639
|
action: "delete",
|
|
@@ -8572,26 +8647,38 @@ async function deletePersistedSessionWithLease(service, sessionId) {
|
|
|
8572
8647
|
mutationApplied: false
|
|
8573
8648
|
};
|
|
8574
8649
|
}
|
|
8575
|
-
await
|
|
8576
|
-
|
|
8650
|
+
const removed = await service.removeSession(sessionId, {
|
|
8651
|
+
assertStorageUnchanged: assertOwnedAndUnchanged,
|
|
8652
|
+
assertCanMutate
|
|
8653
|
+
});
|
|
8577
8654
|
return {
|
|
8578
8655
|
value: removed ? "removed" : "notFound",
|
|
8579
8656
|
mutationApplied: removed
|
|
8580
8657
|
};
|
|
8581
8658
|
}, "mutate"),
|
|
8582
8659
|
mutationAppliedAfterError: /* @__PURE__ */ __name(async () => await classifySessionLocation(service, sessionId) === void 0, "mutationAppliedAfterError"),
|
|
8583
|
-
afterMutationApplied: /* @__PURE__ */ __name(() =>
|
|
8660
|
+
afterMutationApplied: /* @__PURE__ */ __name(async () => {
|
|
8661
|
+
assertCanMutate?.();
|
|
8662
|
+
await updateScheduledTaskForMaintenance(
|
|
8663
|
+
service,
|
|
8664
|
+
sessionId,
|
|
8665
|
+
"delete",
|
|
8666
|
+
assertCanMutate
|
|
8667
|
+
);
|
|
8668
|
+
}, "afterMutationApplied")
|
|
8584
8669
|
});
|
|
8585
8670
|
if (mutation.error !== void 0) {
|
|
8586
8671
|
return {
|
|
8587
8672
|
kind: "error",
|
|
8588
8673
|
error: mutation.error,
|
|
8589
|
-
mutationApplied: mutation.mutationApplied
|
|
8674
|
+
mutationApplied: mutation.mutationApplied,
|
|
8675
|
+
maintenanceError: mutation.maintenanceError
|
|
8590
8676
|
};
|
|
8591
8677
|
}
|
|
8592
8678
|
return {
|
|
8593
8679
|
kind: mutation.value ?? "notFound",
|
|
8594
|
-
mutationApplied: mutation.mutationApplied
|
|
8680
|
+
mutationApplied: mutation.mutationApplied,
|
|
8681
|
+
maintenanceError: mutation.maintenanceError
|
|
8595
8682
|
};
|
|
8596
8683
|
}
|
|
8597
8684
|
__name(deletePersistedSessionWithLease, "deletePersistedSessionWithLease");
|
|
@@ -8602,6 +8689,7 @@ async function deleteDaemonSessions(params) {
|
|
|
8602
8689
|
bridge,
|
|
8603
8690
|
coordinator,
|
|
8604
8691
|
coordinatorLockHeld = false,
|
|
8692
|
+
assertCanMutate,
|
|
8605
8693
|
onError
|
|
8606
8694
|
} = params;
|
|
8607
8695
|
const uniqueSessionIds = [
|
|
@@ -8616,10 +8704,12 @@ async function deleteDaemonSessions(params) {
|
|
|
8616
8704
|
uniqueSessionIds.map(async (sessionId) => {
|
|
8617
8705
|
try {
|
|
8618
8706
|
const mutateSession = /* @__PURE__ */ __name(async () => {
|
|
8707
|
+
assertCanMutate?.();
|
|
8619
8708
|
const removePersistedSession = /* @__PURE__ */ __name(async () => {
|
|
8620
8709
|
const result = await deletePersistedSessionWithLease(
|
|
8621
8710
|
service,
|
|
8622
|
-
sessionId
|
|
8711
|
+
sessionId,
|
|
8712
|
+
assertCanMutate
|
|
8623
8713
|
);
|
|
8624
8714
|
if (result.kind === "error") {
|
|
8625
8715
|
onError?.({
|
|
@@ -8630,7 +8720,13 @@ async function deleteDaemonSessions(params) {
|
|
|
8630
8720
|
return result;
|
|
8631
8721
|
}
|
|
8632
8722
|
try {
|
|
8633
|
-
|
|
8723
|
+
if (assertCanMutate) {
|
|
8724
|
+
await bridge.deleteSessionAttachments(sessionId, {
|
|
8725
|
+
assertCanCommit: assertCanMutate
|
|
8726
|
+
});
|
|
8727
|
+
} else {
|
|
8728
|
+
await bridge.deleteSessionAttachments(sessionId);
|
|
8729
|
+
}
|
|
8634
8730
|
return result;
|
|
8635
8731
|
} catch (error2) {
|
|
8636
8732
|
onError?.({
|
|
@@ -8641,7 +8737,8 @@ async function deleteDaemonSessions(params) {
|
|
|
8641
8737
|
return {
|
|
8642
8738
|
kind: "error",
|
|
8643
8739
|
error: error2,
|
|
8644
|
-
mutationApplied: result.mutationApplied
|
|
8740
|
+
mutationApplied: result.mutationApplied,
|
|
8741
|
+
maintenanceError: result.maintenanceError
|
|
8645
8742
|
};
|
|
8646
8743
|
}
|
|
8647
8744
|
}, "removePersistedSession");
|
|
@@ -8695,6 +8792,12 @@ async function deleteDaemonSessions(params) {
|
|
|
8695
8792
|
} else {
|
|
8696
8793
|
errors.push({ sessionId, error: errorMessage(result.error) });
|
|
8697
8794
|
}
|
|
8795
|
+
if (result.maintenanceError !== void 0) {
|
|
8796
|
+
errors.push({
|
|
8797
|
+
sessionId,
|
|
8798
|
+
error: "Scheduled task lifecycle update failed."
|
|
8799
|
+
});
|
|
8800
|
+
}
|
|
8698
8801
|
}
|
|
8699
8802
|
return { removed, notFound, errors };
|
|
8700
8803
|
}
|
|
@@ -8840,7 +8943,9 @@ async function archiveDaemonSessions(params) {
|
|
|
8840
8943
|
service,
|
|
8841
8944
|
bridge,
|
|
8842
8945
|
coordinator,
|
|
8843
|
-
coordinatorLockHeld = false
|
|
8946
|
+
coordinatorLockHeld = false,
|
|
8947
|
+
resolveConflicts = false,
|
|
8948
|
+
assertCanMutate
|
|
8844
8949
|
} = params;
|
|
8845
8950
|
const uniqueSessionIds = [
|
|
8846
8951
|
...new Set(sessionIds.map(normalizeSessionIdForLookup))
|
|
@@ -8854,6 +8959,7 @@ async function archiveDaemonSessions(params) {
|
|
|
8854
8959
|
uniqueSessionIds.map(async (sessionId) => {
|
|
8855
8960
|
try {
|
|
8856
8961
|
const mutateSession = /* @__PURE__ */ __name(async () => {
|
|
8962
|
+
assertCanMutate?.();
|
|
8857
8963
|
try {
|
|
8858
8964
|
await bridge.closeSession(sessionId, void 0, {
|
|
8859
8965
|
requireAgentClose: true
|
|
@@ -8875,12 +8981,31 @@ async function archiveDaemonSessions(params) {
|
|
|
8875
8981
|
return { kind: "notFound", mutationApplied: false };
|
|
8876
8982
|
}
|
|
8877
8983
|
if (initialLocation === "archived") {
|
|
8984
|
+
let maintenanceError;
|
|
8985
|
+
try {
|
|
8986
|
+
await updateScheduledTaskForMaintenance(
|
|
8987
|
+
service,
|
|
8988
|
+
sessionId,
|
|
8989
|
+
"archive",
|
|
8990
|
+
assertCanMutate
|
|
8991
|
+
);
|
|
8992
|
+
} catch (error2) {
|
|
8993
|
+
maintenanceError = error2;
|
|
8994
|
+
logSessionArchiveWarning(
|
|
8995
|
+
`scheduled task lifecycle update failed action=archive workspace=${safeLogValue(
|
|
8996
|
+
service.getProjectRoot()
|
|
8997
|
+
)} session=${safeLogValue(sessionId)} error=${safeLogValue(
|
|
8998
|
+
errorMessage(error2)
|
|
8999
|
+
)}`
|
|
9000
|
+
);
|
|
9001
|
+
}
|
|
8878
9002
|
return {
|
|
8879
9003
|
kind: "alreadyArchived",
|
|
8880
|
-
mutationApplied: false
|
|
9004
|
+
mutationApplied: false,
|
|
9005
|
+
maintenanceError
|
|
8881
9006
|
};
|
|
8882
9007
|
}
|
|
8883
|
-
if (initialLocation === "conflict") {
|
|
9008
|
+
if (initialLocation === "conflict" && !resolveConflicts) {
|
|
8884
9009
|
return {
|
|
8885
9010
|
kind: "error",
|
|
8886
9011
|
error: sessionLocationError(sessionId),
|
|
@@ -8908,17 +9033,18 @@ async function archiveDaemonSessions(params) {
|
|
|
8908
9033
|
mutationApplied: false
|
|
8909
9034
|
};
|
|
8910
9035
|
}
|
|
8911
|
-
if (lockedLocation === "conflict") {
|
|
9036
|
+
if (lockedLocation === "conflict" && !resolveConflicts) {
|
|
8912
9037
|
throw sessionLocationError(sessionId);
|
|
8913
9038
|
}
|
|
8914
|
-
await assertOwnedAndUnchanged();
|
|
8915
9039
|
const result = await service.archiveSessions([sessionId], {
|
|
8916
|
-
|
|
9040
|
+
resolveConflicts,
|
|
9041
|
+
assertStorageUnchanged: assertOwnedAndUnchanged,
|
|
9042
|
+
assertCanMutate
|
|
8917
9043
|
});
|
|
8918
9044
|
if (result.errors[0]) throw result.errors[0].error;
|
|
8919
9045
|
if (result.archived.length > 0) {
|
|
8920
9046
|
return {
|
|
8921
|
-
value: "archived",
|
|
9047
|
+
value: result.resolvedConflicts.length ? "resolvedConflict" : "archived",
|
|
8922
9048
|
mutationApplied: true
|
|
8923
9049
|
};
|
|
8924
9050
|
}
|
|
@@ -8928,18 +9054,28 @@ async function archiveDaemonSessions(params) {
|
|
|
8928
9054
|
};
|
|
8929
9055
|
}, "mutate"),
|
|
8930
9056
|
mutationAppliedAfterError: /* @__PURE__ */ __name(async () => await classifySessionLocation(service, sessionId) === "archived", "mutationAppliedAfterError"),
|
|
8931
|
-
afterMutationApplied: /* @__PURE__ */ __name(() =>
|
|
9057
|
+
afterMutationApplied: /* @__PURE__ */ __name(async () => {
|
|
9058
|
+
assertCanMutate?.();
|
|
9059
|
+
await updateScheduledTaskForMaintenance(
|
|
9060
|
+
service,
|
|
9061
|
+
sessionId,
|
|
9062
|
+
"archive",
|
|
9063
|
+
assertCanMutate
|
|
9064
|
+
);
|
|
9065
|
+
}, "afterMutationApplied")
|
|
8932
9066
|
});
|
|
8933
9067
|
if (mutation.error !== void 0) {
|
|
8934
9068
|
return {
|
|
8935
9069
|
kind: "error",
|
|
8936
9070
|
error: mutation.error,
|
|
8937
|
-
mutationApplied: mutation.mutationApplied
|
|
9071
|
+
mutationApplied: mutation.mutationApplied,
|
|
9072
|
+
maintenanceError: mutation.maintenanceError
|
|
8938
9073
|
};
|
|
8939
9074
|
}
|
|
8940
9075
|
return {
|
|
8941
9076
|
kind: mutation.value ?? "notFound",
|
|
8942
|
-
mutationApplied: mutation.mutationApplied
|
|
9077
|
+
mutationApplied: mutation.mutationApplied,
|
|
9078
|
+
maintenanceError: mutation.maintenanceError
|
|
8943
9079
|
};
|
|
8944
9080
|
}, "mutateSession");
|
|
8945
9081
|
return await (coordinatorLockHeld ? mutateSession() : coordinator.runExclusiveMany([sessionId], mutateSession));
|
|
@@ -8958,16 +9094,23 @@ async function archiveDaemonSessions(params) {
|
|
|
8958
9094
|
);
|
|
8959
9095
|
const archived = [];
|
|
8960
9096
|
const alreadyArchived = [];
|
|
9097
|
+
const resolvedConflicts = [];
|
|
8961
9098
|
const notFound = [];
|
|
8962
9099
|
const errors = [];
|
|
8963
9100
|
for (let i = 0; i < results.length; i++) {
|
|
8964
9101
|
const sessionId = uniqueSessionIds[i];
|
|
8965
9102
|
const result = results[i];
|
|
8966
9103
|
if (result.kind === "archived") archived.push(sessionId);
|
|
8967
|
-
else if (result.kind === "
|
|
9104
|
+
else if (result.kind === "resolvedConflict") {
|
|
9105
|
+
archived.push(sessionId);
|
|
9106
|
+
resolvedConflicts.push(sessionId);
|
|
9107
|
+
} else if (result.kind === "alreadyArchived") {
|
|
8968
9108
|
alreadyArchived.push(sessionId);
|
|
8969
9109
|
} else if (result.kind === "notFound") notFound.push(sessionId);
|
|
8970
9110
|
else errors.push({ sessionId, error: result.error });
|
|
9111
|
+
if ("maintenanceError" in result && result.maintenanceError !== void 0) {
|
|
9112
|
+
errors.push({ sessionId, error: result.maintenanceError });
|
|
9113
|
+
}
|
|
8971
9114
|
}
|
|
8972
9115
|
logSessionArchiveResult("archive", {
|
|
8973
9116
|
requested: uniqueSessionIds,
|
|
@@ -8976,7 +9119,13 @@ async function archiveDaemonSessions(params) {
|
|
|
8976
9119
|
notFound,
|
|
8977
9120
|
errors
|
|
8978
9121
|
});
|
|
8979
|
-
return {
|
|
9122
|
+
return {
|
|
9123
|
+
archived,
|
|
9124
|
+
alreadyArchived,
|
|
9125
|
+
resolvedConflicts,
|
|
9126
|
+
notFound,
|
|
9127
|
+
errors
|
|
9128
|
+
};
|
|
8980
9129
|
}
|
|
8981
9130
|
__name(archiveDaemonSessions, "archiveDaemonSessions");
|
|
8982
9131
|
async function unarchiveDaemonSessions(params) {
|
|
@@ -8984,7 +9133,9 @@ async function unarchiveDaemonSessions(params) {
|
|
|
8984
9133
|
sessionIds,
|
|
8985
9134
|
service,
|
|
8986
9135
|
coordinator,
|
|
8987
|
-
coordinatorLockHeld = false
|
|
9136
|
+
coordinatorLockHeld = false,
|
|
9137
|
+
resolveConflicts = false,
|
|
9138
|
+
assertCanMutate
|
|
8988
9139
|
} = params;
|
|
8989
9140
|
const uniqueSessionIds = [
|
|
8990
9141
|
...new Set(sessionIds.map(normalizeSessionIdForLookup))
|
|
@@ -8998,6 +9149,7 @@ async function unarchiveDaemonSessions(params) {
|
|
|
8998
9149
|
uniqueSessionIds.map(async (sessionId) => {
|
|
8999
9150
|
try {
|
|
9000
9151
|
const mutateSession = /* @__PURE__ */ __name(async () => {
|
|
9152
|
+
assertCanMutate?.();
|
|
9001
9153
|
const initialLocation = await classifySessionLocation(
|
|
9002
9154
|
service,
|
|
9003
9155
|
sessionId
|
|
@@ -9011,7 +9163,8 @@ async function unarchiveDaemonSessions(params) {
|
|
|
9011
9163
|
await updateScheduledTaskForMaintenance(
|
|
9012
9164
|
service,
|
|
9013
9165
|
sessionId,
|
|
9014
|
-
"unarchive"
|
|
9166
|
+
"unarchive",
|
|
9167
|
+
assertCanMutate
|
|
9015
9168
|
);
|
|
9016
9169
|
} catch (error2) {
|
|
9017
9170
|
maintenanceError = error2;
|
|
@@ -9029,7 +9182,7 @@ async function unarchiveDaemonSessions(params) {
|
|
|
9029
9182
|
maintenanceError
|
|
9030
9183
|
};
|
|
9031
9184
|
}
|
|
9032
|
-
if (initialLocation === "conflict") {
|
|
9185
|
+
if (initialLocation === "conflict" && !resolveConflicts) {
|
|
9033
9186
|
return {
|
|
9034
9187
|
kind: "error",
|
|
9035
9188
|
error: sessionLocationError(sessionId),
|
|
@@ -9057,17 +9210,18 @@ async function unarchiveDaemonSessions(params) {
|
|
|
9057
9210
|
mutationApplied: false
|
|
9058
9211
|
};
|
|
9059
9212
|
}
|
|
9060
|
-
if (lockedLocation === "conflict") {
|
|
9213
|
+
if (lockedLocation === "conflict" && !resolveConflicts) {
|
|
9061
9214
|
throw sessionLocationError(sessionId);
|
|
9062
9215
|
}
|
|
9063
|
-
await assertOwnedAndUnchanged();
|
|
9064
9216
|
const result = await service.unarchiveSessions([sessionId], {
|
|
9065
|
-
|
|
9217
|
+
resolveConflicts,
|
|
9218
|
+
assertStorageUnchanged: assertOwnedAndUnchanged,
|
|
9219
|
+
assertCanMutate
|
|
9066
9220
|
});
|
|
9067
9221
|
if (result.errors[0]) throw result.errors[0].error;
|
|
9068
9222
|
if (result.unarchived.length > 0) {
|
|
9069
9223
|
return {
|
|
9070
|
-
value: "unarchived",
|
|
9224
|
+
value: result.resolvedConflicts.length ? "resolvedConflict" : "unarchived",
|
|
9071
9225
|
mutationApplied: true
|
|
9072
9226
|
};
|
|
9073
9227
|
}
|
|
@@ -9077,17 +9231,22 @@ async function unarchiveDaemonSessions(params) {
|
|
|
9077
9231
|
};
|
|
9078
9232
|
}, "mutate"),
|
|
9079
9233
|
mutationAppliedAfterError: /* @__PURE__ */ __name(async () => await classifySessionLocation(service, sessionId) === "active", "mutationAppliedAfterError"),
|
|
9080
|
-
afterMutationApplied: /* @__PURE__ */ __name(() =>
|
|
9081
|
-
|
|
9082
|
-
|
|
9083
|
-
|
|
9084
|
-
|
|
9234
|
+
afterMutationApplied: /* @__PURE__ */ __name(async () => {
|
|
9235
|
+
assertCanMutate?.();
|
|
9236
|
+
await updateScheduledTaskForMaintenance(
|
|
9237
|
+
service,
|
|
9238
|
+
sessionId,
|
|
9239
|
+
"unarchive",
|
|
9240
|
+
assertCanMutate
|
|
9241
|
+
);
|
|
9242
|
+
}, "afterMutationApplied")
|
|
9085
9243
|
});
|
|
9086
9244
|
if (mutation.error !== void 0) {
|
|
9087
9245
|
return {
|
|
9088
9246
|
kind: "error",
|
|
9089
9247
|
error: mutation.error,
|
|
9090
|
-
mutationApplied: mutation.mutationApplied
|
|
9248
|
+
mutationApplied: mutation.mutationApplied,
|
|
9249
|
+
maintenanceError: mutation.maintenanceError
|
|
9091
9250
|
};
|
|
9092
9251
|
}
|
|
9093
9252
|
return {
|
|
@@ -9112,13 +9271,17 @@ async function unarchiveDaemonSessions(params) {
|
|
|
9112
9271
|
);
|
|
9113
9272
|
const unarchived = [];
|
|
9114
9273
|
const alreadyActive = [];
|
|
9274
|
+
const resolvedConflicts = [];
|
|
9115
9275
|
const notFound = [];
|
|
9116
9276
|
const errors = [];
|
|
9117
9277
|
for (let i = 0; i < results.length; i++) {
|
|
9118
9278
|
const sessionId = uniqueSessionIds[i];
|
|
9119
9279
|
const result = results[i];
|
|
9120
9280
|
if (result.kind === "unarchived") unarchived.push(sessionId);
|
|
9121
|
-
else if (result.kind === "
|
|
9281
|
+
else if (result.kind === "resolvedConflict") {
|
|
9282
|
+
unarchived.push(sessionId);
|
|
9283
|
+
resolvedConflicts.push(sessionId);
|
|
9284
|
+
} else if (result.kind === "alreadyActive") alreadyActive.push(sessionId);
|
|
9122
9285
|
else if (result.kind === "notFound") notFound.push(sessionId);
|
|
9123
9286
|
else errors.push({ sessionId, error: result.error });
|
|
9124
9287
|
if (result.maintenanceError !== void 0) {
|
|
@@ -9132,7 +9295,13 @@ async function unarchiveDaemonSessions(params) {
|
|
|
9132
9295
|
notFound,
|
|
9133
9296
|
errors
|
|
9134
9297
|
});
|
|
9135
|
-
return {
|
|
9298
|
+
return {
|
|
9299
|
+
unarchived,
|
|
9300
|
+
alreadyActive,
|
|
9301
|
+
resolvedConflicts,
|
|
9302
|
+
notFound,
|
|
9303
|
+
errors
|
|
9304
|
+
};
|
|
9136
9305
|
}
|
|
9137
9306
|
__name(unarchiveDaemonSessions, "unarchiveDaemonSessions");
|
|
9138
9307
|
|
|
@@ -9364,6 +9533,9 @@ var TRUSTED_WORKSPACE_METHODS = /* @__PURE__ */ new Set([
|
|
|
9364
9533
|
`${QWEN_METHOD_NS}workspace/mcp/resources`,
|
|
9365
9534
|
`${QWEN_METHOD_NS}workspace/mcp/servers/add`,
|
|
9366
9535
|
`${QWEN_METHOD_NS}workspace/mcp/servers/remove`,
|
|
9536
|
+
`${QWEN_METHOD_NS}sessions/delete`,
|
|
9537
|
+
`${QWEN_METHOD_NS}sessions/archive`,
|
|
9538
|
+
`${QWEN_METHOD_NS}sessions/unarchive`,
|
|
9367
9539
|
`${QWEN_METHOD_NS}workspace/agents/list`,
|
|
9368
9540
|
`${QWEN_METHOD_NS}workspace/agents/get`,
|
|
9369
9541
|
`${QWEN_METHOD_NS}workspace/agents/create`,
|
|
@@ -9393,6 +9565,9 @@ var WORKSPACE_GENERATION_MUTATION_METHODS = /* @__PURE__ */ new Set([
|
|
|
9393
9565
|
`${QWEN_METHOD_NS}file/edit`,
|
|
9394
9566
|
`${QWEN_METHOD_NS}workspace/mcp/servers/add`,
|
|
9395
9567
|
`${QWEN_METHOD_NS}workspace/mcp/servers/remove`,
|
|
9568
|
+
`${QWEN_METHOD_NS}sessions/delete`,
|
|
9569
|
+
`${QWEN_METHOD_NS}sessions/archive`,
|
|
9570
|
+
`${QWEN_METHOD_NS}sessions/unarchive`,
|
|
9396
9571
|
`${QWEN_METHOD_NS}workspace/agents/create`,
|
|
9397
9572
|
`${QWEN_METHOD_NS}workspace/agents/update`,
|
|
9398
9573
|
`${QWEN_METHOD_NS}workspace/agents/delete`,
|
|
@@ -10056,6 +10231,14 @@ var AcpDispatcher = class {
|
|
|
10056
10231
|
}
|
|
10057
10232
|
return [...new Set(sessionIds)];
|
|
10058
10233
|
}
|
|
10234
|
+
parseResolveConflicts(params) {
|
|
10235
|
+
const value = params["resolveConflicts"];
|
|
10236
|
+
if (value === void 0) return false;
|
|
10237
|
+
if (typeof value !== "boolean") {
|
|
10238
|
+
throw new AcpParamError("`resolveConflicts` must be a boolean");
|
|
10239
|
+
}
|
|
10240
|
+
return value;
|
|
10241
|
+
}
|
|
10059
10242
|
rejectActiveLiveSessionMutation(conn, id, sessionIds) {
|
|
10060
10243
|
const activeSessionId = sessionIds.find(
|
|
10061
10244
|
(sessionId) => this.liveSessionIsolation?.isSessionActive?.(sessionId)
|
|
@@ -12945,6 +13128,7 @@ var AcpDispatcher = class {
|
|
|
12945
13128
|
service: svc,
|
|
12946
13129
|
bridge: this.bridge,
|
|
12947
13130
|
coordinator: this.archiveCoordinator,
|
|
13131
|
+
assertCanMutate: assertGenerationOpen,
|
|
12948
13132
|
onError: /* @__PURE__ */ __name(({ phase, sessionId, error: error2 }) => {
|
|
12949
13133
|
const safeSessionId = logSafe(sessionId.slice(0, 8));
|
|
12950
13134
|
const safeMessage = logSafe(error2);
|
|
@@ -12954,11 +13138,13 @@ var AcpDispatcher = class {
|
|
|
12954
13138
|
}, "onError")
|
|
12955
13139
|
})
|
|
12956
13140
|
);
|
|
13141
|
+
assertGenerationOpen?.();
|
|
12957
13142
|
this.replyConn(conn, id, result);
|
|
12958
13143
|
return;
|
|
12959
13144
|
}
|
|
12960
13145
|
case `${QWEN_METHOD_NS}sessions/archive`: {
|
|
12961
13146
|
const ids = this.parseSessionIds(params);
|
|
13147
|
+
const resolveConflicts = this.parseResolveConflicts(params);
|
|
12962
13148
|
if (this.rejectActiveLiveSessionMutation(conn, id, ids)) return;
|
|
12963
13149
|
const svc = new SessionService(this.boundWorkspace, {
|
|
12964
13150
|
onWarning: logSessionArchiveWarning
|
|
@@ -12969,12 +13155,16 @@ var AcpDispatcher = class {
|
|
|
12969
13155
|
sessionIds: ids,
|
|
12970
13156
|
service: svc,
|
|
12971
13157
|
bridge: this.bridge,
|
|
12972
|
-
coordinator: this.archiveCoordinator
|
|
13158
|
+
coordinator: this.archiveCoordinator,
|
|
13159
|
+
resolveConflicts,
|
|
13160
|
+
assertCanMutate: assertGenerationOpen
|
|
12973
13161
|
})
|
|
12974
13162
|
);
|
|
13163
|
+
assertGenerationOpen?.();
|
|
12975
13164
|
this.replyConn(conn, id, {
|
|
12976
13165
|
archived: result.archived,
|
|
12977
13166
|
alreadyArchived: result.alreadyArchived,
|
|
13167
|
+
resolvedConflicts: result.resolvedConflicts,
|
|
12978
13168
|
notFound: result.notFound,
|
|
12979
13169
|
errors: this.serializeSessionErrors(result.errors)
|
|
12980
13170
|
});
|
|
@@ -12982,6 +13172,7 @@ var AcpDispatcher = class {
|
|
|
12982
13172
|
}
|
|
12983
13173
|
case `${QWEN_METHOD_NS}sessions/unarchive`: {
|
|
12984
13174
|
const ids = this.parseSessionIds(params);
|
|
13175
|
+
const resolveConflicts = this.parseResolveConflicts(params);
|
|
12985
13176
|
const svc = new SessionService(this.boundWorkspace, {
|
|
12986
13177
|
onWarning: logSessionArchiveWarning
|
|
12987
13178
|
});
|
|
@@ -12990,12 +13181,16 @@ var AcpDispatcher = class {
|
|
|
12990
13181
|
() => unarchiveDaemonSessions({
|
|
12991
13182
|
sessionIds: ids,
|
|
12992
13183
|
service: svc,
|
|
12993
|
-
coordinator: this.archiveCoordinator
|
|
13184
|
+
coordinator: this.archiveCoordinator,
|
|
13185
|
+
resolveConflicts,
|
|
13186
|
+
assertCanMutate: assertGenerationOpen
|
|
12994
13187
|
})
|
|
12995
13188
|
);
|
|
13189
|
+
assertGenerationOpen?.();
|
|
12996
13190
|
this.replyConn(conn, id, {
|
|
12997
13191
|
unarchived: result.unarchived,
|
|
12998
13192
|
alreadyActive: result.alreadyActive,
|
|
13193
|
+
resolvedConflicts: result.resolvedConflicts,
|
|
12999
13194
|
notFound: result.notFound,
|
|
13000
13195
|
errors: this.serializeSessionErrors(result.errors)
|
|
13001
13196
|
});
|
|
@@ -26073,7 +26268,26 @@ function registerSessionRoutes(app, deps) {
|
|
|
26073
26268
|
generation.guard.assertOpen();
|
|
26074
26269
|
return true;
|
|
26075
26270
|
}, "assertCurrentInternalGeneration");
|
|
26076
|
-
const
|
|
26271
|
+
const hasLifecycleStorageEvidence = /* @__PURE__ */ __name(async (service, sessionId) => {
|
|
26272
|
+
try {
|
|
26273
|
+
return await service.getMaintainableSessionLocation(sessionId) !== void 0;
|
|
26274
|
+
} catch (error2) {
|
|
26275
|
+
if (error2 instanceof SessionStorageEntryError) {
|
|
26276
|
+
return error2.reason !== "foreign_project";
|
|
26277
|
+
}
|
|
26278
|
+
if (error2 instanceof SessionTranscriptIdentityUnavailableError) {
|
|
26279
|
+
return true;
|
|
26280
|
+
}
|
|
26281
|
+
if (error2 instanceof SessionTranscriptChangedError) {
|
|
26282
|
+
return true;
|
|
26283
|
+
}
|
|
26284
|
+
if (error2 !== null && typeof error2 === "object" && typeof error2.code === "string") {
|
|
26285
|
+
return true;
|
|
26286
|
+
}
|
|
26287
|
+
throw error2;
|
|
26288
|
+
}
|
|
26289
|
+
}, "hasLifecycleStorageEvidence");
|
|
26290
|
+
const resolveQualifiedSessionRuntime = /* @__PURE__ */ __name(async (req, res, route, sessionIds, archiveState, options = {}) => {
|
|
26077
26291
|
const target = resolveQualifiedSessionTarget(req, res);
|
|
26078
26292
|
if (!target) return void 0;
|
|
26079
26293
|
if (target.kind === "ordinary") return target.runtime;
|
|
@@ -26086,6 +26300,12 @@ function registerSessionRoutes(app, deps) {
|
|
|
26086
26300
|
const runtime = generation.runtime;
|
|
26087
26301
|
const service = createWorkspaceRuntimeSessionService(runtime);
|
|
26088
26302
|
for (const sessionId of sessionIds) {
|
|
26303
|
+
if (options.lifecycleMaintenance) {
|
|
26304
|
+
if (!await hasLifecycleStorageEvidence(service, sessionId)) {
|
|
26305
|
+
throw new SessionNotFoundError(sessionId);
|
|
26306
|
+
}
|
|
26307
|
+
continue;
|
|
26308
|
+
}
|
|
26089
26309
|
const location = await service.getSessionLocation(sessionId);
|
|
26090
26310
|
if (location === "conflict") {
|
|
26091
26311
|
if (archiveState !== "active") {
|
|
@@ -26678,20 +26898,42 @@ function registerSessionRoutes(app, deps) {
|
|
|
26678
26898
|
}, "resolveSessionAnyStateRuntime");
|
|
26679
26899
|
const resolveSessionBatchRuntime = /* @__PURE__ */ __name(async (req, res, route, sessionIds) => {
|
|
26680
26900
|
if (req) {
|
|
26681
|
-
return resolveQualifiedSessionRuntime(
|
|
26901
|
+
return resolveQualifiedSessionRuntime(
|
|
26902
|
+
req,
|
|
26903
|
+
res,
|
|
26904
|
+
route,
|
|
26905
|
+
sessionIds,
|
|
26906
|
+
"any",
|
|
26907
|
+
{ lifecycleMaintenance: true }
|
|
26908
|
+
);
|
|
26682
26909
|
}
|
|
26683
26910
|
let internalRuntime;
|
|
26684
26911
|
let hasInternalSession = false;
|
|
26685
|
-
|
|
26686
|
-
|
|
26687
|
-
|
|
26688
|
-
|
|
26689
|
-
|
|
26690
|
-
|
|
26912
|
+
let hasOrdinaryLiveSession = false;
|
|
26913
|
+
const findOrdinarySessions = /* @__PURE__ */ __name(async (sessionId) => {
|
|
26914
|
+
const runtimes = /* @__PURE__ */ new Set();
|
|
26915
|
+
for (const entry of workspaceRegistry.listAllEntries()) {
|
|
26916
|
+
const generation2 = entry.current;
|
|
26917
|
+
if (entry.internal || !generation2) continue;
|
|
26918
|
+
if (entry.state !== "active" || entry.current !== generation2 || generation2.guard.closed) {
|
|
26919
|
+
sendWorkspaceRuntimeUnavailable(res);
|
|
26920
|
+
return void 0;
|
|
26921
|
+
}
|
|
26922
|
+
generation2.guard.assertOpen();
|
|
26923
|
+
const exists = await hasLifecycleStorageEvidence(
|
|
26924
|
+
createWorkspaceRuntimeSessionService(generation2.runtime),
|
|
26925
|
+
sessionId
|
|
26926
|
+
);
|
|
26927
|
+
if (entry.state !== "active" || entry.current !== generation2 || generation2.guard.closed) {
|
|
26928
|
+
sendWorkspaceRuntimeUnavailable(res);
|
|
26929
|
+
return void 0;
|
|
26691
26930
|
}
|
|
26931
|
+
if (!exists) continue;
|
|
26932
|
+
generation2.guard.assertOpen();
|
|
26933
|
+
runtimes.add(generation2.runtime);
|
|
26692
26934
|
}
|
|
26693
|
-
return
|
|
26694
|
-
}, "
|
|
26935
|
+
return runtimes;
|
|
26936
|
+
}, "findOrdinarySessions");
|
|
26695
26937
|
const sendBatchWorkspaceConflict = /* @__PURE__ */ __name(() => {
|
|
26696
26938
|
res.status(409).json({
|
|
26697
26939
|
error: "All sessions in this operation must share one workspace.",
|
|
@@ -26700,17 +26942,28 @@ function registerSessionRoutes(app, deps) {
|
|
|
26700
26942
|
}, "sendBatchWorkspaceConflict");
|
|
26701
26943
|
for (const sessionId of sessionIds) {
|
|
26702
26944
|
const candidates = /* @__PURE__ */ new Set();
|
|
26945
|
+
const ordinaryLiveCandidates = /* @__PURE__ */ new Set();
|
|
26703
26946
|
const owner = workspaceRegistry.resolveLiveSessionOwner(sessionId);
|
|
26704
26947
|
if (owner.kind === "unavailable") {
|
|
26705
26948
|
sendWorkspaceRuntimeUnavailable(res);
|
|
26706
26949
|
return void 0;
|
|
26707
26950
|
}
|
|
26708
|
-
if (owner.kind === "found"
|
|
26709
|
-
|
|
26951
|
+
if (owner.kind === "found") {
|
|
26952
|
+
if (isInternalWorkspaceRuntime(owner.runtime)) {
|
|
26953
|
+
candidates.add(owner.runtime);
|
|
26954
|
+
} else {
|
|
26955
|
+
ordinaryLiveCandidates.add(owner.runtime);
|
|
26956
|
+
hasOrdinaryLiveSession = true;
|
|
26957
|
+
}
|
|
26710
26958
|
}
|
|
26711
26959
|
if (owner.kind === "ambiguous") {
|
|
26712
26960
|
for (const runtime of owner.runtimes) {
|
|
26713
|
-
if (isInternalWorkspaceRuntime(runtime))
|
|
26961
|
+
if (isInternalWorkspaceRuntime(runtime)) {
|
|
26962
|
+
candidates.add(runtime);
|
|
26963
|
+
} else {
|
|
26964
|
+
ordinaryLiveCandidates.add(runtime);
|
|
26965
|
+
hasOrdinaryLiveSession = true;
|
|
26966
|
+
}
|
|
26714
26967
|
}
|
|
26715
26968
|
}
|
|
26716
26969
|
for (const entry of workspaceRegistry.listAllEntries()) {
|
|
@@ -26721,32 +26974,32 @@ function registerSessionRoutes(app, deps) {
|
|
|
26721
26974
|
}
|
|
26722
26975
|
const runtime = generation2.runtime;
|
|
26723
26976
|
const service = createWorkspaceRuntimeSessionService(runtime);
|
|
26724
|
-
const exists = await service
|
|
26977
|
+
const exists = await hasLifecycleStorageEvidence(service, sessionId);
|
|
26725
26978
|
if (!assertCurrentInternalGeneration(entry, generation2, res)) {
|
|
26726
26979
|
return void 0;
|
|
26727
26980
|
}
|
|
26728
26981
|
if (!exists) continue;
|
|
26729
|
-
const metadata = await readLoadableLiveConversationMetadata(
|
|
26730
|
-
sessionId,
|
|
26731
|
-
service
|
|
26732
|
-
);
|
|
26733
|
-
if (!assertCurrentInternalGeneration(entry, generation2, res)) {
|
|
26734
|
-
return void 0;
|
|
26735
|
-
}
|
|
26736
|
-
if (!metadata) continue;
|
|
26737
26982
|
candidates.add(runtime);
|
|
26738
26983
|
}
|
|
26739
|
-
if (candidates.size > 0) {
|
|
26740
|
-
|
|
26741
|
-
|
|
26742
|
-
|
|
26743
|
-
|
|
26744
|
-
|
|
26984
|
+
if (candidates.size > 0 || hasInternalSession) {
|
|
26985
|
+
if (hasOrdinaryLiveSession && ordinaryLiveCandidates.size === 0) {
|
|
26986
|
+
sendBatchWorkspaceConflict();
|
|
26987
|
+
return void 0;
|
|
26988
|
+
}
|
|
26989
|
+
for (const runtime of ordinaryLiveCandidates) {
|
|
26990
|
+
candidates.add(runtime);
|
|
26991
|
+
}
|
|
26992
|
+
const ordinarySessions = await findOrdinarySessions(sessionId);
|
|
26993
|
+
if (!ordinarySessions) return void 0;
|
|
26994
|
+
for (const runtime of ordinarySessions) {
|
|
26995
|
+
candidates.add(runtime);
|
|
26745
26996
|
}
|
|
26746
26997
|
}
|
|
26747
26998
|
if (candidates.size === 0) {
|
|
26748
26999
|
if (hasInternalSession) {
|
|
26749
|
-
|
|
27000
|
+
const ordinarySessions = await findOrdinarySessions(sessionId);
|
|
27001
|
+
if (!ordinarySessions) return void 0;
|
|
27002
|
+
if (ordinarySessions.size > 0) {
|
|
26750
27003
|
sendBatchWorkspaceConflict();
|
|
26751
27004
|
return void 0;
|
|
26752
27005
|
}
|
|
@@ -26773,20 +27026,15 @@ function registerSessionRoutes(app, deps) {
|
|
|
26773
27026
|
}
|
|
26774
27027
|
for (const sessionId of sessionIds) {
|
|
26775
27028
|
const service = createWorkspaceRuntimeSessionService(internalRuntime);
|
|
26776
|
-
if (!await service
|
|
26777
|
-
|
|
27029
|
+
if (!await hasLifecycleStorageEvidence(service, sessionId)) {
|
|
27030
|
+
const ordinarySessions = await findOrdinarySessions(sessionId);
|
|
27031
|
+
if (!ordinarySessions) return void 0;
|
|
27032
|
+
if (ordinarySessions.size > 0) {
|
|
26778
27033
|
sendBatchWorkspaceConflict();
|
|
26779
27034
|
return void 0;
|
|
26780
27035
|
}
|
|
26781
27036
|
throw new SessionNotFoundError(sessionId);
|
|
26782
27037
|
}
|
|
26783
|
-
const metadata = await readLoadableLiveConversationMetadata(
|
|
26784
|
-
sessionId,
|
|
26785
|
-
service
|
|
26786
|
-
);
|
|
26787
|
-
if (!metadata) {
|
|
26788
|
-
throw new SessionNotFoundError(sessionId);
|
|
26789
|
-
}
|
|
26790
27038
|
}
|
|
26791
27039
|
const internalEntry = workspaceRegistry.getManagedEntryByWorkspaceCwd(
|
|
26792
27040
|
internalRuntime.workspaceCwd
|
|
@@ -26819,6 +27067,16 @@ function registerSessionRoutes(app, deps) {
|
|
|
26819
27067
|
}
|
|
26820
27068
|
return [...new Set(sessionIds)];
|
|
26821
27069
|
}, "parseSessionIdsBody");
|
|
27070
|
+
const parseResolveConflicts = /* @__PURE__ */ __name((req, res) => {
|
|
27071
|
+
const value = safeBody(req)["resolveConflicts"];
|
|
27072
|
+
if (value === void 0) return false;
|
|
27073
|
+
if (typeof value === "boolean") return value;
|
|
27074
|
+
res.status(400).json({
|
|
27075
|
+
error: "`resolveConflicts` must be a boolean",
|
|
27076
|
+
code: "invalid_request"
|
|
27077
|
+
});
|
|
27078
|
+
return void 0;
|
|
27079
|
+
}, "parseResolveConflicts");
|
|
26822
27080
|
const hasControlCharacter = /* @__PURE__ */ __name((value) => Array.from(value).some((character) => {
|
|
26823
27081
|
const code = character.charCodeAt(0);
|
|
26824
27082
|
return code <= 31 || code === 127;
|
|
@@ -26843,7 +27101,7 @@ function registerSessionRoutes(app, deps) {
|
|
|
26843
27101
|
}, "parseSessionPrBody");
|
|
26844
27102
|
const serializeSessionErrors = /* @__PURE__ */ __name((errors, redactDetails = false) => errors.map((e) => ({
|
|
26845
27103
|
sessionId: e.sessionId,
|
|
26846
|
-
error: redactDetails ? "Session operation failed." : e.error instanceof Error ? e.error.message : String(e.error)
|
|
27104
|
+
error: redactDetails && !(e.error instanceof SessionConflictError) ? "Session operation failed." : e.error instanceof Error ? e.error.message : String(e.error)
|
|
26847
27105
|
})), "serializeSessionErrors");
|
|
26848
27106
|
const runResolvedSessionBatch = /* @__PURE__ */ __name(async (params) => {
|
|
26849
27107
|
const { req, res, route, sessionIds, run: run2 } = params;
|
|
@@ -26869,14 +27127,18 @@ function registerSessionRoutes(app, deps) {
|
|
|
26869
27127
|
sendWorkspaceRuntimeUnavailable(res);
|
|
26870
27128
|
return void 0;
|
|
26871
27129
|
}
|
|
26872
|
-
return {
|
|
27130
|
+
return {
|
|
27131
|
+
result: await run2(verifiedRuntime, true),
|
|
27132
|
+
internal: isInternalWorkspaceRuntime(verifiedRuntime)
|
|
27133
|
+
};
|
|
26873
27134
|
});
|
|
26874
27135
|
}, "runResolvedSessionBatch");
|
|
26875
27136
|
const deleteSessions = /* @__PURE__ */ __name((req, res, route, sessionIds) => {
|
|
26876
27137
|
const run2 = /* @__PURE__ */ __name(async (runtime, coordinatorLockHeld) => {
|
|
26877
|
-
captureRuntimeGenerationAssertion(runtime)
|
|
27138
|
+
const assertCanMutate = captureRuntimeGenerationAssertion(runtime);
|
|
27139
|
+
assertCanMutate?.();
|
|
26878
27140
|
const service = createWorkspaceRuntimeSessionService(runtime);
|
|
26879
|
-
|
|
27141
|
+
const result = await runWithSessionListInvalidation(
|
|
26880
27142
|
runtime,
|
|
26881
27143
|
["active", "archived"],
|
|
26882
27144
|
() => runWithWorkspaceRuntimeStorage(
|
|
@@ -26887,6 +27149,7 @@ function registerSessionRoutes(app, deps) {
|
|
|
26887
27149
|
bridge: runtime.bridge,
|
|
26888
27150
|
coordinator: archiveCoordinator,
|
|
26889
27151
|
coordinatorLockHeld,
|
|
27152
|
+
assertCanMutate,
|
|
26890
27153
|
onError: /* @__PURE__ */ __name(({ phase, sessionId, error: error2 }) => {
|
|
26891
27154
|
writeStderrLine(
|
|
26892
27155
|
`qwen serve: ${phase}Session failed for ${safeLogValue(sessionId)}: ${safeLogValue(error2)}`
|
|
@@ -26895,16 +27158,19 @@ function registerSessionRoutes(app, deps) {
|
|
|
26895
27158
|
})
|
|
26896
27159
|
)
|
|
26897
27160
|
);
|
|
27161
|
+
assertCanMutate?.();
|
|
27162
|
+
return result;
|
|
26898
27163
|
}, "run");
|
|
26899
27164
|
return runResolvedSessionBatch({ req, res, route, sessionIds, run: run2 });
|
|
26900
27165
|
}, "deleteSessions");
|
|
26901
|
-
const archiveSessions = /* @__PURE__ */ __name((req, res, route, sessionIds) => {
|
|
27166
|
+
const archiveSessions = /* @__PURE__ */ __name((req, res, route, sessionIds, resolveConflicts = false) => {
|
|
26902
27167
|
const run2 = /* @__PURE__ */ __name(async (runtime, coordinatorLockHeld) => {
|
|
26903
|
-
captureRuntimeGenerationAssertion(runtime)
|
|
27168
|
+
const assertCanMutate = captureRuntimeGenerationAssertion(runtime);
|
|
27169
|
+
assertCanMutate?.();
|
|
26904
27170
|
const service = createWorkspaceRuntimeSessionService(runtime, {
|
|
26905
27171
|
onWarning: logSessionArchiveWarning
|
|
26906
27172
|
});
|
|
26907
|
-
|
|
27173
|
+
const result = await runWithSessionListInvalidation(
|
|
26908
27174
|
runtime,
|
|
26909
27175
|
["active", "archived"],
|
|
26910
27176
|
() => runWithWorkspaceRuntimeStorage(
|
|
@@ -26914,20 +27180,25 @@ function registerSessionRoutes(app, deps) {
|
|
|
26914
27180
|
service,
|
|
26915
27181
|
bridge: runtime.bridge,
|
|
26916
27182
|
coordinator: archiveCoordinator,
|
|
26917
|
-
coordinatorLockHeld
|
|
27183
|
+
coordinatorLockHeld,
|
|
27184
|
+
resolveConflicts,
|
|
27185
|
+
assertCanMutate
|
|
26918
27186
|
})
|
|
26919
27187
|
)
|
|
26920
27188
|
);
|
|
27189
|
+
assertCanMutate?.();
|
|
27190
|
+
return result;
|
|
26921
27191
|
}, "run");
|
|
26922
27192
|
return runResolvedSessionBatch({ req, res, route, sessionIds, run: run2 });
|
|
26923
27193
|
}, "archiveSessions");
|
|
26924
|
-
const unarchiveSessions = /* @__PURE__ */ __name((req, res, route, sessionIds) => {
|
|
27194
|
+
const unarchiveSessions = /* @__PURE__ */ __name((req, res, route, sessionIds, resolveConflicts = false) => {
|
|
26925
27195
|
const run2 = /* @__PURE__ */ __name(async (runtime, coordinatorLockHeld) => {
|
|
26926
|
-
captureRuntimeGenerationAssertion(runtime)
|
|
27196
|
+
const assertCanMutate = captureRuntimeGenerationAssertion(runtime);
|
|
27197
|
+
assertCanMutate?.();
|
|
26927
27198
|
const service = createWorkspaceRuntimeSessionService(runtime, {
|
|
26928
27199
|
onWarning: logSessionArchiveWarning
|
|
26929
27200
|
});
|
|
26930
|
-
|
|
27201
|
+
const result = await runWithSessionListInvalidation(
|
|
26931
27202
|
runtime,
|
|
26932
27203
|
["active", "archived"],
|
|
26933
27204
|
() => runWithWorkspaceRuntimeStorage(
|
|
@@ -26936,10 +27207,14 @@ function registerSessionRoutes(app, deps) {
|
|
|
26936
27207
|
sessionIds,
|
|
26937
27208
|
service,
|
|
26938
27209
|
coordinator: archiveCoordinator,
|
|
26939
|
-
coordinatorLockHeld
|
|
27210
|
+
coordinatorLockHeld,
|
|
27211
|
+
resolveConflicts,
|
|
27212
|
+
assertCanMutate
|
|
26940
27213
|
})
|
|
26941
27214
|
)
|
|
26942
27215
|
);
|
|
27216
|
+
assertCanMutate?.();
|
|
27217
|
+
return result;
|
|
26943
27218
|
}, "run");
|
|
26944
27219
|
return runResolvedSessionBatch({ req, res, route, sessionIds, run: run2 });
|
|
26945
27220
|
}, "unarchiveSessions");
|
|
@@ -29217,19 +29492,23 @@ function registerSessionRoutes(app, deps) {
|
|
|
29217
29492
|
app.post("/sessions/archive", mutate(), async (req, res) => {
|
|
29218
29493
|
const uniqueIds = parseSessionIdsBody(req, res);
|
|
29219
29494
|
if (uniqueIds === void 0) return;
|
|
29495
|
+
const resolveConflicts = parseResolveConflicts(req, res);
|
|
29496
|
+
if (resolveConflicts === void 0) return;
|
|
29220
29497
|
if (rejectActiveLiveSessionMutation(res, uniqueIds)) return;
|
|
29221
29498
|
try {
|
|
29222
29499
|
const operation = await archiveSessions(
|
|
29223
29500
|
void 0,
|
|
29224
29501
|
res,
|
|
29225
29502
|
"POST /sessions/archive",
|
|
29226
|
-
uniqueIds
|
|
29503
|
+
uniqueIds,
|
|
29504
|
+
resolveConflicts
|
|
29227
29505
|
);
|
|
29228
29506
|
if (!operation) return;
|
|
29229
29507
|
const { result } = operation;
|
|
29230
29508
|
res.status(200).json({
|
|
29231
29509
|
archived: result.archived,
|
|
29232
29510
|
alreadyArchived: result.alreadyArchived,
|
|
29511
|
+
resolvedConflicts: result.resolvedConflicts,
|
|
29233
29512
|
notFound: result.notFound,
|
|
29234
29513
|
errors: serializeSessionErrors(result.errors, operation.internal)
|
|
29235
29514
|
});
|
|
@@ -29240,18 +29519,22 @@ function registerSessionRoutes(app, deps) {
|
|
|
29240
29519
|
app.post("/sessions/unarchive", mutate(), async (req, res) => {
|
|
29241
29520
|
const uniqueIds = parseSessionIdsBody(req, res);
|
|
29242
29521
|
if (uniqueIds === void 0) return;
|
|
29522
|
+
const resolveConflicts = parseResolveConflicts(req, res);
|
|
29523
|
+
if (resolveConflicts === void 0) return;
|
|
29243
29524
|
try {
|
|
29244
29525
|
const operation = await unarchiveSessions(
|
|
29245
29526
|
void 0,
|
|
29246
29527
|
res,
|
|
29247
29528
|
"POST /sessions/unarchive",
|
|
29248
|
-
uniqueIds
|
|
29529
|
+
uniqueIds,
|
|
29530
|
+
resolveConflicts
|
|
29249
29531
|
);
|
|
29250
29532
|
if (!operation) return;
|
|
29251
29533
|
const { result } = operation;
|
|
29252
29534
|
res.status(200).json({
|
|
29253
29535
|
unarchived: result.unarchived,
|
|
29254
29536
|
alreadyActive: result.alreadyActive,
|
|
29537
|
+
resolvedConflicts: result.resolvedConflicts,
|
|
29255
29538
|
notFound: result.notFound,
|
|
29256
29539
|
errors: serializeSessionErrors(result.errors, operation.internal)
|
|
29257
29540
|
});
|
|
@@ -29292,14 +29575,23 @@ function registerSessionRoutes(app, deps) {
|
|
|
29292
29575
|
const route = "POST /workspaces/:workspace/sessions/archive";
|
|
29293
29576
|
const uniqueIds = parseSessionIdsBody(req, res);
|
|
29294
29577
|
if (uniqueIds === void 0) return;
|
|
29578
|
+
const resolveConflicts = parseResolveConflicts(req, res);
|
|
29579
|
+
if (resolveConflicts === void 0) return;
|
|
29295
29580
|
if (rejectActiveLiveSessionMutation(res, uniqueIds)) return;
|
|
29296
29581
|
try {
|
|
29297
|
-
const operation = await archiveSessions(
|
|
29582
|
+
const operation = await archiveSessions(
|
|
29583
|
+
req,
|
|
29584
|
+
res,
|
|
29585
|
+
route,
|
|
29586
|
+
uniqueIds,
|
|
29587
|
+
resolveConflicts
|
|
29588
|
+
);
|
|
29298
29589
|
if (!operation) return;
|
|
29299
29590
|
const { result } = operation;
|
|
29300
29591
|
res.status(200).json({
|
|
29301
29592
|
archived: result.archived,
|
|
29302
29593
|
alreadyArchived: result.alreadyArchived,
|
|
29594
|
+
resolvedConflicts: result.resolvedConflicts,
|
|
29303
29595
|
notFound: result.notFound,
|
|
29304
29596
|
errors: serializeSessionErrors(result.errors, operation.internal)
|
|
29305
29597
|
});
|
|
@@ -29315,13 +29607,22 @@ function registerSessionRoutes(app, deps) {
|
|
|
29315
29607
|
const route = "POST /workspaces/:workspace/sessions/unarchive";
|
|
29316
29608
|
const uniqueIds = parseSessionIdsBody(req, res);
|
|
29317
29609
|
if (uniqueIds === void 0) return;
|
|
29610
|
+
const resolveConflicts = parseResolveConflicts(req, res);
|
|
29611
|
+
if (resolveConflicts === void 0) return;
|
|
29318
29612
|
try {
|
|
29319
|
-
const operation = await unarchiveSessions(
|
|
29613
|
+
const operation = await unarchiveSessions(
|
|
29614
|
+
req,
|
|
29615
|
+
res,
|
|
29616
|
+
route,
|
|
29617
|
+
uniqueIds,
|
|
29618
|
+
resolveConflicts
|
|
29619
|
+
);
|
|
29320
29620
|
if (!operation) return;
|
|
29321
29621
|
const { result } = operation;
|
|
29322
29622
|
res.status(200).json({
|
|
29323
29623
|
unarchived: result.unarchived,
|
|
29324
29624
|
alreadyActive: result.alreadyActive,
|
|
29625
|
+
resolvedConflicts: result.resolvedConflicts,
|
|
29325
29626
|
notFound: result.notFound,
|
|
29326
29627
|
errors: serializeSessionErrors(result.errors, operation.internal)
|
|
29327
29628
|
});
|
|
@@ -32464,12 +32765,6 @@ function registerWorkspaceStatusRoutes(app, deps) {
|
|
|
32464
32765
|
});
|
|
32465
32766
|
}
|
|
32466
32767
|
__name(registerWorkspaceStatusRoutes, "registerWorkspaceStatusRoutes");
|
|
32467
|
-
function resolveTrustedRuntime(registry, req, res) {
|
|
32468
|
-
const runtime = resolveWorkspaceRuntimeFromParam(registry, req, res);
|
|
32469
|
-
if (!runtime) return null;
|
|
32470
|
-
return requireTrustedWorkspaceRuntime(runtime, res) ? runtime : null;
|
|
32471
|
-
}
|
|
32472
|
-
__name(resolveTrustedRuntime, "resolveTrustedRuntime");
|
|
32473
32768
|
function registerWorkspaceQualifiedStatusRoutes(app, deps) {
|
|
32474
32769
|
const { workspaceRegistry, sendBridgeError: sendBridgeError2 } = deps;
|
|
32475
32770
|
app.get("/workspaces/:workspace/mcp", async (req, res) => {
|
|
@@ -37493,15 +37788,9 @@ function registerWorkspaceGitRoutes(app, deps) {
|
|
|
37493
37788
|
});
|
|
37494
37789
|
}
|
|
37495
37790
|
__name(registerWorkspaceGitRoutes, "registerWorkspaceGitRoutes");
|
|
37496
|
-
function resolveTrustedRuntime2(registry, req, res) {
|
|
37497
|
-
const runtime = resolveWorkspaceRuntimeFromParam(registry, req, res);
|
|
37498
|
-
if (!runtime) return null;
|
|
37499
|
-
return requireTrustedWorkspaceRuntime(runtime, res) ? runtime : null;
|
|
37500
|
-
}
|
|
37501
|
-
__name(resolveTrustedRuntime2, "resolveTrustedRuntime");
|
|
37502
37791
|
function registerWorkspaceQualifiedGitRoutes(app, deps) {
|
|
37503
37792
|
app.get("/workspaces/:workspace/git", async (req, res) => {
|
|
37504
|
-
const runtime =
|
|
37793
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
37505
37794
|
if (!runtime) return;
|
|
37506
37795
|
const route = "GET /workspaces/:workspace/git";
|
|
37507
37796
|
try {
|
|
@@ -37677,15 +37966,9 @@ function registerWorkspaceGitDiffRoutes(app, deps) {
|
|
|
37677
37966
|
});
|
|
37678
37967
|
}
|
|
37679
37968
|
__name(registerWorkspaceGitDiffRoutes, "registerWorkspaceGitDiffRoutes");
|
|
37680
|
-
function resolveTrustedRuntime3(registry, req, res) {
|
|
37681
|
-
const runtime = resolveWorkspaceRuntimeFromParam(registry, req, res);
|
|
37682
|
-
if (!runtime) return null;
|
|
37683
|
-
return requireTrustedWorkspaceRuntime(runtime, res) ? runtime : null;
|
|
37684
|
-
}
|
|
37685
|
-
__name(resolveTrustedRuntime3, "resolveTrustedRuntime");
|
|
37686
37969
|
function registerWorkspaceQualifiedGitDiffRoutes(app, deps) {
|
|
37687
37970
|
app.get("/workspaces/:workspace/git/diff", (req, res) => {
|
|
37688
|
-
const runtime =
|
|
37971
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
37689
37972
|
if (!runtime) return;
|
|
37690
37973
|
void handleDiffList(
|
|
37691
37974
|
res,
|
|
@@ -37696,7 +37979,7 @@ function registerWorkspaceQualifiedGitDiffRoutes(app, deps) {
|
|
|
37696
37979
|
);
|
|
37697
37980
|
});
|
|
37698
37981
|
app.get("/workspaces/:workspace/git/diff/file", (req, res) => {
|
|
37699
|
-
const runtime =
|
|
37982
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
37700
37983
|
if (!runtime) return;
|
|
37701
37984
|
void handleDiffFile(
|
|
37702
37985
|
req,
|
|
@@ -37837,15 +38120,9 @@ function registerWorkspaceGitLogRoutes(app, deps) {
|
|
|
37837
38120
|
});
|
|
37838
38121
|
}
|
|
37839
38122
|
__name(registerWorkspaceGitLogRoutes, "registerWorkspaceGitLogRoutes");
|
|
37840
|
-
function resolveTrustedRuntime4(registry, req, res) {
|
|
37841
|
-
const runtime = resolveWorkspaceRuntimeFromParam(registry, req, res);
|
|
37842
|
-
if (!runtime) return null;
|
|
37843
|
-
return requireTrustedWorkspaceRuntime(runtime, res) ? runtime : null;
|
|
37844
|
-
}
|
|
37845
|
-
__name(resolveTrustedRuntime4, "resolveTrustedRuntime");
|
|
37846
38123
|
function registerWorkspaceQualifiedGitLogRoutes(app, deps) {
|
|
37847
38124
|
app.get("/workspaces/:workspace/git/log", (req, res) => {
|
|
37848
|
-
const runtime =
|
|
38125
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
37849
38126
|
if (!runtime) return;
|
|
37850
38127
|
void handleLogList(
|
|
37851
38128
|
req,
|
|
@@ -37856,7 +38133,7 @@ function registerWorkspaceQualifiedGitLogRoutes(app, deps) {
|
|
|
37856
38133
|
);
|
|
37857
38134
|
});
|
|
37858
38135
|
app.get("/workspaces/:workspace/git/log/commit", (req, res) => {
|
|
37859
|
-
const runtime =
|
|
38136
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
37860
38137
|
if (!runtime) return;
|
|
37861
38138
|
void handleCommitDetail(
|
|
37862
38139
|
req,
|
|
@@ -37872,12 +38149,6 @@ __name(registerWorkspaceQualifiedGitLogRoutes, "registerWorkspaceQualifiedGitLog
|
|
|
37872
38149
|
// packages/cli/src/serve/routes/workspace-git-branches.ts
|
|
37873
38150
|
init_esbuild_shims();
|
|
37874
38151
|
var GIT_ERROR_MESSAGE_MAX = 512;
|
|
37875
|
-
function resolveTrustedRuntime5(registry, req, res) {
|
|
37876
|
-
const runtime = resolveWorkspaceRuntimeFromParam(registry, req, res);
|
|
37877
|
-
if (!runtime) return null;
|
|
37878
|
-
return requireTrustedWorkspaceRuntime(runtime, res) ? runtime : null;
|
|
37879
|
-
}
|
|
37880
|
-
__name(resolveTrustedRuntime5, "resolveTrustedRuntime");
|
|
37881
38152
|
function sendGitError(res, err, route, sendBridgeError2, cwd) {
|
|
37882
38153
|
let detail;
|
|
37883
38154
|
if (err && typeof err === "object" && ("stdout" in err || "stderr" in err)) {
|
|
@@ -38186,7 +38457,7 @@ function registerWorkspaceGitBranchRoutes(app, deps) {
|
|
|
38186
38457
|
__name(registerWorkspaceGitBranchRoutes, "registerWorkspaceGitBranchRoutes");
|
|
38187
38458
|
function registerWorkspaceQualifiedGitBranchRoutes(app, deps) {
|
|
38188
38459
|
app.get("/workspaces/:workspace/git/branches", (req, res) => {
|
|
38189
|
-
const runtime =
|
|
38460
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
38190
38461
|
if (!runtime) return;
|
|
38191
38462
|
void handleBranches(
|
|
38192
38463
|
res,
|
|
@@ -38201,7 +38472,7 @@ function registerWorkspaceQualifiedGitBranchRoutes(app, deps) {
|
|
|
38201
38472
|
"/workspaces/:workspace/git/checkout",
|
|
38202
38473
|
deps.mutate({ strict: true }),
|
|
38203
38474
|
(req, res) => {
|
|
38204
|
-
const runtime =
|
|
38475
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
38205
38476
|
if (!runtime) return;
|
|
38206
38477
|
try {
|
|
38207
38478
|
runtime.generationGuard?.assertOpen();
|
|
@@ -38234,7 +38505,7 @@ function registerWorkspaceQualifiedGitBranchRoutes(app, deps) {
|
|
|
38234
38505
|
"/workspaces/:workspace/git/branch",
|
|
38235
38506
|
deps.mutate({ strict: true }),
|
|
38236
38507
|
(req, res) => {
|
|
38237
|
-
const runtime =
|
|
38508
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
38238
38509
|
if (!runtime) return;
|
|
38239
38510
|
try {
|
|
38240
38511
|
runtime.generationGuard?.assertOpen();
|
|
@@ -38267,7 +38538,7 @@ function registerWorkspaceQualifiedGitBranchRoutes(app, deps) {
|
|
|
38267
38538
|
"/workspaces/:workspace/git/push",
|
|
38268
38539
|
deps.mutate({ strict: true }),
|
|
38269
38540
|
(req, res) => {
|
|
38270
|
-
const runtime =
|
|
38541
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
38271
38542
|
if (!runtime) return;
|
|
38272
38543
|
try {
|
|
38273
38544
|
runtime.generationGuard?.assertOpen();
|
|
@@ -38300,7 +38571,7 @@ function registerWorkspaceQualifiedGitBranchRoutes(app, deps) {
|
|
|
38300
38571
|
"/workspaces/:workspace/git/pull",
|
|
38301
38572
|
deps.mutate({ strict: true }),
|
|
38302
38573
|
(req, res) => {
|
|
38303
|
-
const runtime =
|
|
38574
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
38304
38575
|
if (!runtime) return;
|
|
38305
38576
|
try {
|
|
38306
38577
|
runtime.generationGuard?.assertOpen();
|
|
@@ -38333,7 +38604,7 @@ function registerWorkspaceQualifiedGitBranchRoutes(app, deps) {
|
|
|
38333
38604
|
"/workspaces/:workspace/git/commit",
|
|
38334
38605
|
deps.mutate({ strict: true }),
|
|
38335
38606
|
(req, res) => {
|
|
38336
|
-
const runtime =
|
|
38607
|
+
const runtime = resolveTrustedRuntime(deps.workspaceRegistry, req, res);
|
|
38337
38608
|
if (!runtime) return;
|
|
38338
38609
|
try {
|
|
38339
38610
|
runtime.generationGuard?.assertOpen();
|